3_1_9_179

This commit is contained in:
Компания 1С committed 2023-10-14 22:54:00 +03:00
1 parent fffad70fe9
commit 7608f6cefa
212 files changed
+7912 -3285

No files matched your search

@@ -385,7 +385,7 @@
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:FormGroup">
<name>СписокГруппа1</name>
<name>СписокГруппаПоиск</name>
<id>188</id>
<items xsi:type="form:Button">
<name>СписокНайти</name>
@@ -475,10 +475,10 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа 1</value>
<value>Поиск</value>
</title>
<extendedTooltip>
<name>СписокГруппа1РасширеннаяПодсказка</name>
<name>СписокГруппаПоискРасширеннаяПодсказка</name>
<id>189</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -1887,11 +1887,6 @@
<value>Справка</value>
</value>
</mobileDeviceCommandBarContent>
<mobileDeviceCommandBarContent>
<value xsi:type="core:StringValue">
<value>СписокГруппа1</value>
</value>
</mobileDeviceCommandBarContent>
<mobileDeviceCommandBarContent>
<value xsi:type="core:StringValue">
<value>КомандыСписка</value>
@@ -87,27 +87,11 @@
Иначе
// Установка идентификатора.
ИдентификаторДляФормул = Справочники.ВидыКонтактнойИнформации.УникальныйИдентификаторДляФормул(
НаименованиеДляФормированияИдентификатора(), Ссылка, Родитель);
УправлениеКонтактнойИнформацией.НаименованиеДляФормированияИдентификатора(ЭтотОбъект), Ссылка, Родитель);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Функция НаименованиеДляФормированияИдентификатора()
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
СуффиксТекущегоЯзыка = МодульМультиязычностьСервер.СуффиксТекущегоЯзыка();
ЗаголовокДляИдентификатора = ?(ЗначениеЗаполнено(СуффиксТекущегоЯзыка),
ЭтотОбъект["Наименование"+ СуффиксТекущегоЯзыка],
Наименование);
Иначе
ЗаголовокДляИдентификатора = Наименование;
КонецЕсли;
Возврат ЗаголовокДляИдентификатора;
КонецФункции
Процедура ПриЧтенииПредставленийНаСервере() Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
@@ -329,7 +329,7 @@
<name>ГруппаДействие</name>
<id>65</id>
<items xsi:type="form:Button">
<name>ОбновитьСПортала1СИТС</name>
<name>ОбновитьССайта</name>
<id>67</id>
<visible>true</visible>
<enabled>true</enabled>
@@ -337,7 +337,7 @@
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ОбновитьСПортала1СИТСРасширеннаяПодсказка</name>
<name>ОбновитьССайтаРасширеннаяПодсказка</name>
<id>68</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -346,7 +346,7 @@
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ОбновитьСПортала1СИТС</commandName>
<commandName>Form.Command.ОбновитьССайта</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
@@ -546,7 +546,7 @@
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ОбновлятьСПортала1СИТС</name>
<name>ОбновлятьССайта</name>
<id>28</id>
<visible>true</visible>
<enabled>true</enabled>
@@ -558,7 +558,7 @@
</dataPath>
<titleLocation>None</titleLocation>
<extendedTooltip>
<name>ОбновлятьСПортала1СИТСРасширеннаяПодсказка</name>
<name>ОбновлятьССайтаРасширеннаяПодсказка</name>
<id>30</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -568,7 +568,7 @@
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ОбновлятьСПортала1СИТСКонтекстноеМеню</name>
<name>ОбновлятьССайтаКонтекстноеМеню</name>
<id>29</id>
<autoFill>true</autoFill>
</contextMenu>
@@ -1091,7 +1091,7 @@
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<formCommands>
<name>ОбновитьСПортала1СИТС</name>
<name>ОбновитьССайта</name>
<title>
<key>ru</key>
<value>Обновить</value>
@@ -17,7 +17,7 @@
Элементы.ГрупповоеДобавление.Видимость = Ложь;
Элементы.ФормаОбновитьИзФайла.Видимость = Ложь;
Элементы.ФормаСохранитьКак.Видимость = Ложь;
Элементы.ОбновитьСПортала1СИТС.Видимость = Ложь;
Элементы.ОбновитьССайта.Видимость = Ложь;
Элементы.СписокКонтекстноеМенюОбновитьИзФайла.Видимость = Ложь;
Элементы.СписокКонтекстноеМенюСохранитьКак.Видимость = Ложь;
Иначе
@@ -26,8 +26,8 @@
Если Не ВнешниеКомпонентыСлужебный.ДоступнаЗагрузкаСПортала() Тогда
Элементы.ДобавитьИзСервиса.Видимость = Ложь;
Элементы.ОбновлятьСПортала1СИТС.Видимость = Ложь;
Элементы.ОбновитьСПортала1СИТС.Видимость = Ложь;
Элементы.ОбновлятьССайта.Видимость = Ложь;
Элементы.ОбновитьССайта.Видимость = Ложь;
Иначе
Элементы.ДобавитьИзСервиса.Видимость = ВнешниеКомпонентыСлужебный.ДоступнаИнтерактивнаяЗагрузкаСПортала();
КонецЕсли;
@@ -109,6 +109,8 @@
//
Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Параметры.ВерсияПодсистемыНаНачалоОбновления, "3.1.6.48") < 0 Тогда
ТекстЗапроса ="ВЫБРАТЬ
| ВнешниеКомпоненты.Ссылка
|ИЗ
@@ -118,13 +120,19 @@
ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
КонецЕсли;
КонецПроцедуры
// Обработчик обновления на версию 3.1.6.48:
// - заполняет реквизиты совместимости для браузеров MacOS в справочнике "Внешние компоненты".
// Обработчик обновления:
// - на версию 3.1.6.48: Заполняет реквизиты совместимости для браузеров MacOS в справочнике "Внешние компоненты";
// - на версию 3.1.5.220: в справочник "Внешние компоненты" добавляет внешнюю компоненту ExtraCryptoAPI.
// - на версию 3.1.9.163: в справочник "Внешние компоненты" добавляет внешнюю компоненту сканирования.
//
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Параметры.ВерсияПодсистемыНаНачалоОбновления, "3.1.6.48") < 0 Тогда
Выборка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.ВнешниеКомпоненты");
Если Выборка.Количество() > 0 Тогда
ОбработатьВнешниеКомпоненты(Выборка);
@@ -133,6 +141,66 @@
ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь,
"Справочник.ВнешниеКомпоненты");
Параметры.ОбработкаЗавершена = ОбработкаЗавершена;
КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Параметры.ВерсияПодсистемыНаНачалоОбновления, "3.1.5.220") < 0
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись")
И Не ОбщегоНазначения.РазделениеВключено() Тогда
МодульЭлектроннаяПодписьСлужебныйКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебныйКлиентСервер");
МодульЭлектроннаяПодписьСлужебный = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебный");
ОписаниеКомпоненты = МодульЭлектроннаяПодписьСлужебныйКлиентСервер.ОписаниеКомпоненты();
КомпонентаПоследнейВерсииИзМакета = СтандартныеПодсистемыСервер.КомпонентаПоследнейВерсии(
ОписаниеКомпоненты.ИмяОбъекта, ОписаниеКомпоненты.ПолноеИмяМакета);
МестоположениеМакетаРазделенное = СтрРазделить(КомпонентаПоследнейВерсииИзМакета.Местоположение, ".");
ДвоичныеДанные = МодульЭлектроннаяПодписьСлужебный.ПолучитьДанныеКомпоненты(
МестоположениеМакетаРазделенное.Получить(МестоположениеМакетаРазделенное.ВГраница()));
ПараметрыКомпоненты = ВнешниеКомпонентыСлужебный.ПараметрыЗагрузки();
ПараметрыКомпоненты.Идентификатор = ОписаниеКомпоненты.ИмяОбъекта;
ПараметрыКомпоненты.Наименование = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='%1 для 1С:Предприятие'", ОбщегоНазначения.КодОсновногоЯзыка()), "ExtraCryptoAPI");
ПараметрыКомпоненты.Версия = КомпонентаПоследнейВерсииИзМакета.Версия;
ПараметрыКомпоненты.ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Добавлена автоматически %1.'", ОбщегоНазначения.КодОсновногоЯзыка()), ТекущаяДатаСеанса());
ПараметрыКомпоненты.ОбновлятьСПортала1СИТС = Истина;
ПараметрыКомпоненты.Данные = ДвоичныеДанные;
ВнешниеКомпонентыСлужебный.ЗагрузитьКомпонентуИзДвоичныхДанных(ПараметрыКомпоненты, Ложь);
Параметры.ОбработкаЗавершена = Истина;
КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Параметры.ВерсияПодсистемыНаНачалоОбновления, "3.1.9.163") < 0
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами")
И Не ОбщегоНазначения.РазделениеВключено() Тогда
МодульРаботаСФайламиСлужебныйКлиентСервер = ОбщегоНазначения.ОбщийМодуль("РаботаСФайламиСлужебныйКлиентСервер");
ОписаниеКомпоненты = МодульРаботаСФайламиСлужебныйКлиентСервер.ОписаниеКомпоненты();
КомпонентаПоследнейВерсииИзМакета = СтандартныеПодсистемыСервер.КомпонентаПоследнейВерсии(
ОписаниеКомпоненты.ИмяОбъекта, ОписаниеКомпоненты.ПолноеИмяМакета);
МестоположениеМакетаРазделенное = СтрРазделить(КомпонентаПоследнейВерсииИзМакета.Местоположение, ".");
ДвоичныеДанные = ПолучитьОбщийМакет(МестоположениеМакетаРазделенное.Получить(МестоположениеМакетаРазделенное.ВГраница()));
ПараметрыКомпоненты = ВнешниеКомпонентыСлужебный.ПараметрыЗагрузки();
ПараметрыКомпоненты.Идентификатор = ОписаниеКомпоненты.ИмяОбъекта;
ПараметрыКомпоненты.Наименование = НСтр("ru='Компонента для сканирования документов и изображений'");
ПараметрыКомпоненты.Версия = КомпонентаПоследнейВерсииИзМакета.Версия;
ПараметрыКомпоненты.ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Добавлена автоматически %1.'"), ТекущаяДатаСеанса());
ПараметрыКомпоненты.ОбновлятьСПортала1СИТС = Истина;
ПараметрыКомпоненты.Данные = ДвоичныеДанные;
ВнешниеКомпонентыСлужебный.ЗагрузитьКомпонентуИзДвоичныхДанных(ПараметрыКомпоненты, Ложь);
Параметры.ОбработкаЗавершена = Истина;
КонецЕсли;
КонецПроцедуры
@@ -6,6 +6,8 @@
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытий
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ПараметрыФормы = Новый Структура("Доверенность", ПараметрКоманды);
@@ -14,3 +16,5 @@
ПараметрыВыполненияКоманды.Окно, ПараметрыВыполненияКоманды.НавигационнаяСсылка,,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
#КонецОбласти
@@ -20,10 +20,10 @@
<excludedCommands>MoveDown</excludedCommands>
<excludedCommands>MoveUp</excludedCommands>
<items xsi:type="form:FormGroup">
<name>ТаблицаГруппа2</name>
<name>ГруппаКолонок</name>
<id>30</id>
<items xsi:type="form:FormGroup">
<name>ТаблицаГруппа1</name>
<name>ГруппаКодНаименование</name>
<id>28</id>
<items xsi:type="form:FormField">
<name>ТаблицаКод</name>
@@ -115,10 +115,10 @@
</userVisible>
<title>
<key>ru</key>
<value>Таблица группа 1</value>
<value>Группа Код</value>
</title>
<extendedTooltip>
<name>ТаблицаГруппа1РасширеннаяПодсказка</name>
<name>ГруппаКодНаименованиеРасширеннаяПодсказка</name>
<id>29</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -184,10 +184,10 @@
</userVisible>
<title>
<key>ru</key>
<value>Таблица группа 2</value>
<value>Колонок</value>
</title>
<extendedTooltip>
<name>ТаблицаГруппа2РасширеннаяПодсказка</name>
<name>ГруппаКолонокРасширеннаяПодсказка</name>
<id>31</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -171,6 +171,7 @@
<edit>
<common>true</common>
</edit>
<fillChecking>ShowError</fillChecking>
</attributes>
<attributes>
<name>НомерДоверенности</name>
@@ -20,13 +20,15 @@
&НаКлиенте
Процедура ОтменитьДоверенность(Команда)
Если ПроверитьЗаполнение() Тогда
ДанныеОтмены = МашиночитаемыеДоверенностиФНССлужебныйВызовСервера.ПолучитьФайлОтменыДоверенности(Доверенность, ПричинаОтмены);
ОписаниеДанных = Новый Структура;
ОписаниеДанных.Вставить("Операция", НСтр("ru='Отмена доверенности'"));
ОписаниеДанных.Вставить("ЗаголовокДанных", НСтр("ru='Доверенность'"));
ОписаниеДанных.Вставить("Данные", ДанныеОтмены.Содержимое);
ЭлектроннаяПодписьКлиент.Подписать(ОписаниеДанных,,Новый ОписаниеОповещения("ОтправитьОтменуДоверенности", ЭтотОбъект, ДанныеОтмены));
ЭлектроннаяПодписьКлиент.Подписать(ОписаниеДанных,,Новый ОписаниеОповещения("ПослеПодписанияДоверенности", ЭтотОбъект, ДанныеОтмены));
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -34,7 +36,7 @@
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура ОтправитьОтменуДоверенности(Результат, ДанныеОтмены) Экспорт
Процедура ПослеПодписанияДоверенности(Результат, ДанныеОтмены) Экспорт
Если Результат.Успех Тогда
Если ТипЗнч(Результат.СвойстваПодписи) = Тип("Структура") Тогда
@@ -51,11 +53,19 @@
КонецЕсли;
РезультатПроверки = ПроверитьСертификатДоверителя(Доверенность, СвойстваПодписи.Сертификат);
Если ЗначениеЗаполнено(РезультатПроверки.Ошибка) Тогда
КонтекстОшибки = МашиночитаемыеДоверенностиФНССлужебныйКлиент.КонтекстДляОбработкиОшибкиРР();
КонтекстОшибки.ЗаголовокПредупреждения = НСтр("ru='Подпись не подходит для отмены'");
МашиночитаемыеДоверенностиФНССлужебныйКлиент.ОбработатьОшибкуВзаимодействияРР(РезультатПроверки.Ошибка, КонтекстОшибки);
Возврат;
КонецЕсли;
РезультатОтмены = МашиночитаемыеДоверенностиФНССлужебныйВызовСервера.ОтменитьМЧДРР(ДанныеОтмены.ИмяФайла, ДанныеОтмены.Содержимое, СвойстваПодписи.Подпись, ДанныеОтмены.Доверенность);
Если ЗначениеЗаполнено(РезультатОтмены.Ошибка) Тогда
КонтекстОшибки = МашиночитаемыеДоверенностиФНССлужебныйКлиент.КонтекстДляОбработкиОшибкиРР();
КонтекстОшибки.ЗаголовокПредупреждения = НСтр("ru='Не удается отменить доверенность.'");
КонтекстОшибки.ЗаголовокПредупреждения = НСтр("ru='Не удается отменить доверенность'");
МашиночитаемыеДоверенностиФНССлужебныйКлиент.ОбработатьОшибкуВзаимодействияРР(РезультатОтмены.Ошибка, КонтекстОшибки);
Возврат;
КонецЕсли;
@@ -73,22 +83,51 @@
КонецПроцедуры
&НаСервере
Функция ДобавитьФайлОтзываИПолучитьРезультатРегистрации(ДанныеОтмены, СвойстваПодписи)
ФайлДоверености = Новый Файл(ДанныеОтмены.ИмяФайла);
Процедура ДобавитьФайлОтзываИПолучитьРезультатРегистрации(ДанныеОтмены, СвойстваПодписи)
ФайлДоверенности = Новый Файл(ДанныеОтмены.ИмяФайла);
ПараметрыДобавления = РаботаСФайлами.ПараметрыДобавленияФайла();
ПараметрыДобавления.ВладелецФайлов = Доверенность;
ПараметрыДобавления.ИмяБезРасширения = ФайлДоверености.ИмяБезРасширения;
ПараметрыДобавления.РасширениеБезТочки = ФайлДоверености.Расширение;
ПараметрыДобавления.ИмяБезРасширения = ФайлДоверенности.ИмяБезРасширения;
ПараметрыДобавления.РасширениеБезТочки = ФайлДоверенности.Расширение;
ПараметрыДобавления.Служебный = Истина;
ФайлЗаявленияНаОтмену = РаботаСФайлами.ДобавитьФайл(ПараметрыДобавления, ДанныеОтмены.Содержимое);
ЭлектроннаяПодпись.ДобавитьПодпись(ФайлЗаявленияНаОтмену, СвойстваПодписи);
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Справочник.МашиночитаемыеДоверенности");
ЭлементБлокировки.УстановитьЗначение("Ссылка", Доверенность);
Блокировка.Заблокировать();
ОбъектМЧД = Доверенность.ПолучитьОбъект();
ОбъектМЧД.ФайлЗаявленияНаОтмену = ФайлЗаявленияНаОтмену;
ОбъектМЧД.ДатаОтмены = ТекущаяДатаСеанса();
ОбъектМЧД.Статус = Перечисления.СтатусыМЧД.НеДействует;
ОбъектМЧД.ОбменДанными.Загрузка = Истина;
ОбъектМЧД.Записать();
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПроверитьСертификатДоверителя(Доверенность, Сертификат)
Результат = Новый Структура;
Результат.Вставить("Ошибка");
ФайлДоверенности = Доверенность.ФайлДоверенности;
РезультатПроверки = МашиночитаемыеДоверенностиФНССлужебный.ПроверитьСертификатДоверителя(Доверенность, ФайлДоверенности, Сертификат, Ложь);
Если РезультатПроверки <> Истина Тогда
ПараметрыОшибкиМЧДРР = МашиночитаемыеДоверенностиФНССлужебный.ПараметрыОшибкиМЧДРР(, , , , НСтр("ru='Подпись не подходит для отмены'"), РезультатПроверки);
Результат.Ошибка = МашиночитаемыеДоверенностиФНССлужебный.ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибкиМЧДРР);
КонецЕсли;
Возврат Результат;
КонецФункции
#КонецОбласти
@@ -51,7 +51,7 @@
<name>ГруппаДолжностноеЛицо</name>
<id>98</id>
<items xsi:type="form:FormField">
<name>ДолжностьЛицаБезДоверенности</name>
<name>ДолжностьЛицаДоверителя</name>
<id>100</id>
<visible>true</visible>
<enabled>true</enabled>
@@ -59,14 +59,14 @@
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ДолжностьЛицаБезДоверенности</segments>
<segments>ДолжностьЛицаДоверителя</segments>
</dataPath>
<handlers>
<event>OnChange</event>
<name>РеквизитПриИзменении</name>
</handlers>
<extendedTooltip>
<name>ДолжностьЛицаБезДоверенностиРасширеннаяПодсказка</name>
<name>ДолжностьЛицаДоверителяРасширеннаяПодсказка</name>
<id>102</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -76,7 +76,7 @@
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДолжностьЛицаБезДоверенностиКонтекстноеМеню</name>
<name>ДолжностьЛицаДоверителяКонтекстноеМеню</name>
<id>101</id>
<autoFill>true</autoFill>
</contextMenu>
@@ -1878,7 +1878,7 @@
</edit>
</attributes>
<attributes>
<name>ДолжностьЛицаБезДоверенности</name>
<name>ДолжностьЛицаДоверителя</name>
<title>
<key>ru</key>
<value>Должность </value>
@@ -2306,6 +2306,19 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ПоказыватьПерсональныеДанные</name>
<id>36</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ОК</name>
<title>
@@ -2387,6 +2400,12 @@
</valueType>
<keyParameter>true</keyParameter>
</parameters>
<parameters>
<name>ПоказыватьПерсональныеДанные</name>
<valueType>
<types>Boolean</types>
</valueType>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
@@ -18,6 +18,8 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ПоказыватьПерсональныеДанные = Параметры.ПоказыватьПерсональныеДанные;
ЗаполнитьСписокВидовДокументов();
Ссылка = Параметры.Ссылка;
@@ -567,7 +569,7 @@
ЭтоФизическоеЛицо = Не Форма.ЭтоДолжностноеЛицо И Не Форма.ЭтоИндивидуальныйПредприниматель;
Если ЭтоДолжностноеЛицо = Неопределено Или Не ЭтоДолжностноеЛицо Тогда
Форма.ДолжностьЛицаБезДоверенности = "";
Форма.ДолжностьЛицаДоверителя = "";
Иначе
Форма.Заголовок = НСтр("ru='Сведения о должностном лице'");
КонецЕсли;
@@ -589,6 +591,10 @@
СписокРеквизитов = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.РеквизитыФизическогоЛицаСписок(Ложь,
МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.ОпределитьВидУчастника(Форма));
Если Не Форма.ПоказыватьПерсональныеДанные Тогда
ПерсональныеДанные = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.ПерсональныеДанные();
КонецЕсли;
Для Каждого Элемент Из Форма.Элементы Цикл
Если Элемент.Имя = "Ссылка1" Тогда
@@ -598,10 +604,15 @@
Если Элемент.Вид <> ВидПоляФормы.ПолеВвода Тогда
Продолжить;
КонецЕсли;
Реквизит = СписокРеквизитов.НайтиПоЗначению(Элемент.Имя);
Если Реквизит <> Неопределено Тогда
Если Не Форма.ПоказыватьПерсональныеДанные И ПерсональныеДанные.Найти(Элемент.Имя) <> Неопределено Тогда
Форма.Элементы[Элемент.Имя].Видимость = Ложь;
Иначе
Форма.Элементы[Элемент.Имя].АвтоОтметкаНезаполненного = Не Реквизит.Пометка;
Форма.Элементы[Элемент.Имя].Видимость = Истина;
КонецЕсли;
Иначе
Форма.Элементы[Элемент.Имя].Видимость = Ложь;
КонецЕсли;
@@ -1541,7 +1541,7 @@
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ТаблицаПредставительНесколькоПредставительФЛСтрока</name>
<name>ТаблицаПредставительНесколькоЛицоПредставителяСтрока</name>
<id>199</id>
<visible>true</visible>
<enabled>true</enabled>
@@ -1549,10 +1549,10 @@
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ТаблицаПредставительНесколько.ПредставительФЛСтрока</segments>
<segments>ТаблицаПредставительНесколько.ЛицоПредставителяСтрока</segments>
</dataPath>
<extendedTooltip>
<name>ТаблицаПредставительНесколькоПредставительФЛСтрокаРасширеннаяПодсказка</name>
<name>ТаблицаПредставительНесколькоЛицоПредставителяСтрокаРасширеннаяПодсказка</name>
<id>201</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -1562,7 +1562,7 @@
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ТаблицаПредставительНесколькоПредставительФЛСтрокаКонтекстноеМеню</name>
<name>ТаблицаПредставительНесколькоЛицоПредставителяСтрокаКонтекстноеМеню</name>
<id>200</id>
<autoFill>true</autoFill>
</contextMenu>
@@ -2701,7 +2701,7 @@
</edit>
</columns>
<columns>
<name>ПредставительФЛ</name>
<name>ЛицоПредставителя</name>
<id>3</id>
<valueType>
<types>DefinedType.СторонаМЧД</types>
@@ -2714,7 +2714,7 @@
</edit>
</columns>
<columns>
<name>ПредставительФЛИдентификатор</name>
<name>ЛицоПредставителяИдентификатор</name>
<id>4</id>
<valueType>
<types>UUID</types>
@@ -2809,7 +2809,7 @@
</edit>
</columns>
<columns>
<name>ПредставительФЛСтрока</name>
<name>ЛицоПредставителяСтрока</name>
<title>
<key>ru</key>
<value>Не заполнены реквизиты</value>
@@ -38,6 +38,12 @@
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
ЕстьПравоДобавления = ПравоДоступа("Добавление", Метаданные.Справочники.МашиночитаемыеДоверенности);
Элементы.СписокЗагрузитьИзФайла.Видимость = ЕстьПравоДобавления;
Элементы.СписокЗагрузитьИзРеестраФНС.Видимость = ЕстьПравоДобавления;
Элементы.СписокПолучитьСтатус.Видимость = ПравоДоступа("Изменение", Метаданные.Справочники.МашиночитаемыеДоверенности);
КонецПроцедуры
&НаКлиенте
File diff suppressed because it is too large. Load diff
@@ -42,7 +42,7 @@
Если Не Ссылка.Пустая() Тогда
ОбновитьСтатус();
Иначе
ДополнительныеСвойства.Вставить("РассчитатьТехническийСтатус");
ДополнительныеСвойства.Вставить("ОбновитьСтатус");
КонецЕсли;
КонецПроцедуры
@@ -94,12 +94,12 @@
Для Каждого СтрокаУправляющаяКомпания Из НайденоУправляющиеКомпании Цикл
СовместныеПолномочияЛицаБезДоверенности = СтрокаУправляющаяКомпания.СовместныеПолномочия;
СовместныеПолномочияЛицаДоверителя = СтрокаУправляющаяКомпания.СовместныеПолномочия;
РеквизитыУправляющейКомпании = СтрокаУправляющаяКомпания.ДоверительРеквизиты.Получить();
Если РеквизитыУправляющейКомпании.ЭтоФизическоеЛицо Тогда
ДобавитьСтрокуДоверителя(НаборЗаписей, СтрокаУправляющаяКомпания.Доверитель, РеквизитыУправляющейКомпании,
СовместныеПолномочияЛицаБезДоверенности, СтрокаОрганизация.Доверитель, РеквизитыОрганизации);
СовместныеПолномочияЛицаДоверителя, СтрокаОрганизация.Доверитель, РеквизитыОрганизации);
Иначе
НайденоФизическиеЛица = Доверители.НайтиСтроки(Новый Структура("ИдентификаторРодителя",
@@ -109,9 +109,8 @@
РеквизитыФизическогоЛица = СтрокаФизическоеЛицо.ДоверительРеквизиты.Получить();
ДобавитьСтрокуДоверителя(НаборЗаписей, СтрокаФизическоеЛицо.Доверитель, РеквизитыФизическогоЛица,
СовместныеПолномочияЛицаБезДоверенности, СтрокаОрганизация.Доверитель, РеквизитыУправляющейКомпании,
СовместныеПолномочияЛицаДоверителя, СтрокаОрганизация.Доверитель, РеквизитыОрганизации,
СтрокаУправляющаяКомпания.Доверитель);
КонецЦикла;
КонецЕсли;
КонецЦикла;
@@ -140,23 +139,19 @@
КонецПроцедуры
Процедура ДобавитьСтрокуПредставителя(НаборЗаписей, Представитель, Реквизиты,
Процедура ДобавитьСтрокуПредставителя(НаборЗаписей, Представитель, РеквизитыФизическогоЛица,
Организация = Неопределено, РеквизитыОрганизации = Неопределено)
НоваяЗапись = НаборЗаписей.Добавить();
ЗаполнитьЗначенияСвойств(НоваяЗапись, Реквизиты);
ЗаполнитьЗначенияСвойств(НоваяЗапись, РеквизитыФизическогоЛица);
НоваяЗапись.МашиночитаемаяДоверенность = Ссылка;
НоваяЗапись.ТипУчастника = Перечисления.ТипыУчастниковМЧД.Представитель;
НоваяЗапись.СовместныеПолномочия = СовместныеПолномочия;
Если Реквизиты.ЭтоФизическоеЛицо Тогда
НоваяЗапись.ФизическоеЛицо = Представитель;
НоваяЗапись.ФИО = ФИО(Реквизиты);
НоваяЗапись.СНИЛС = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.ТолькоЦифры(Реквизиты.СтраховойНомерПФР);
Иначе
ЗаполнитьРеквизитыОрганизации(НоваяЗапись, Представитель, Реквизиты);
КонецЕсли;
НоваяЗапись.ФИО = ФИО(РеквизитыФизическогоЛица);
НоваяЗапись.СНИЛС = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.ТолькоЦифры(РеквизитыФизическогоЛица.СтраховойНомерПФР);
Если РеквизитыОрганизации <> Неопределено Тогда
ЗаполнитьРеквизитыОрганизации(НоваяЗапись, Организация, РеквизитыОрганизации);
@@ -164,23 +159,19 @@
КонецПроцедуры
Процедура ДобавитьСтрокуДоверителя(НаборЗаписей, Доверитель, Реквизиты, СовместныеПолномочияЛицаБезДоверенности,
Процедура ДобавитьСтрокуДоверителя(НаборЗаписей, Доверитель, РеквизитыФизическогоЛица, СовместныеПолномочияЛицаБезДоверенности,
Организация = Неопределено, РеквизитыОрганизации = Неопределено, УправляющаяКомпания = Неопределено)
НоваяЗапись = НаборЗаписей.Добавить();
ЗаполнитьЗначенияСвойств(НоваяЗапись, Реквизиты);
ЗаполнитьЗначенияСвойств(НоваяЗапись, РеквизитыФизическогоЛица);
НоваяЗапись.МашиночитаемаяДоверенность = Ссылка;
НоваяЗапись.ТипУчастника = Перечисления.ТипыУчастниковМЧД.Доверитель;
НоваяЗапись.СовместныеПолномочия = СовместныеПолномочияЛицаБезДоверенности;
Если Реквизиты.ЭтоФизическоеЛицо Тогда
НоваяЗапись.ФизическоеЛицо = Доверитель;
НоваяЗапись.ФИО = ФИО(Реквизиты);
НоваяЗапись.СНИЛС = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.ТолькоЦифры(Реквизиты.СтраховойНомерПФР);
Иначе
ЗаполнитьРеквизитыОрганизации(НоваяЗапись, Организация, РеквизитыОрганизации);
КонецЕсли;
НоваяЗапись.ФИО = ФИО(РеквизитыФизическогоЛица);
НоваяЗапись.СНИЛС = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.ТолькоЦифры(РеквизитыФизическогоЛица.СтраховойНомерПФР);
Если РеквизитыОрганизации <> Неопределено Тогда
ЗаполнитьРеквизитыОрганизации(НоваяЗапись, Организация, РеквизитыОрганизации);
@@ -234,7 +234,9 @@
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:ReferenceValue">
<value>Enum.ВозможностьПередоверияМЧД.EnumValue.БезПередоверия</value>
</fillValue>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
@@ -256,17 +256,20 @@
СвойстваОшибок = ОписаниеОшибок.Ошибки; // Массив Из см. ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеСвойстваОшибки
Для Каждого СвойстваОшибки Из СвойстваОшибок Цикл
НовыеСвойстваОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеСвойстваОшибки();
ЗаполнитьЗначенияСвойств(НовыеСвойстваОшибки, СвойстваОшибки);
ОписаниеСЗаголовком = "";
Если ЗначениеЗаполнено(СвойстваОшибки.ЗаголовокОшибки) Тогда
ОписаниеСЗаголовком = СвойстваОшибки.ЗаголовокОшибки + Символы.ПС;
Если ЗначениеЗаполнено(НовыеСвойстваОшибки.ЗаголовокОшибки) Тогда
ОписаниеСЗаголовком = НовыеСвойстваОшибки.ЗаголовокОшибки + Символы.ПС;
ИначеЕсли ЗначениеЗаполнено(ОписаниеОшибок.ЗаголовокОшибки) Тогда
ОписаниеСЗаголовком = ОписаниеОшибок.ЗаголовокОшибки + Символы.ПС;
КонецЕсли;
Описание = "";
Если ЗначениеЗаполнено(СвойстваОшибки.Программа) Тогда
Описание = Описание + Строка(СвойстваОшибки.Программа) + ":" + Символы.ПС;
Если ЗначениеЗаполнено(НовыеСвойстваОшибки.Программа) Тогда
Описание = Описание + Строка(НовыеСвойстваОшибки.Программа) + ":" + Символы.ПС;
КонецЕсли;
Описание = Описание + СвойстваОшибки.Описание;
Описание = Описание + НовыеСвойстваОшибки.Описание;
ОписаниеСЗаголовком = ОписаниеСЗаголовком + Описание;
СтрокаОшибки = Ошибки.Добавить();
@@ -983,7 +983,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа1</value>
<value>Отправлено</value>
</title>
<extendedTooltip>
<name>ГруппаОтборОтправленоРасширеннаяПодсказка</name>
@@ -1713,7 +1713,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа1</value>
<value>Подвал</value>
</title>
<groupHorizontalAlign>Right</groupHorizontalAlign>
<extendedTooltip>
@@ -522,7 +522,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа1</value>
<value>Отборы</value>
</title>
<extendedTooltip>
<name>ГруппаОтборыРасширеннаяПодсказка</name>
@@ -152,7 +152,7 @@
// Автор рассылки
ТекущийПользователь = Пользователи.ТекущийПользователь();
Объект.Автор = ТекущийПользователь;
Объект.ВажностьПисьма = РассылкаОтчетовКлиентСервер.ОбычнаяВажностьИнтернетПочтовогоСообщения();
Объект.ВажностьПисьма = РаботаСПочтовымиСообщениямиСлужебныйКлиентСервер.ОбычнаяВажностьИнтернетПочтовогоСообщения();
Объект.ПрикреплятьОтчетыВоВложения = Истина;
Если Не ЗначениеЗаполнено(Объект.Автор) Тогда
Отказ = Истина;
@@ -2135,7 +2135,7 @@
&НаКлиенте
Процедура ВажностьВысокая(Команда)
Объект.ВажностьПисьма = РассылкаОтчетовКлиентСервер.ВысокаяВажностьИнтернетПочтовогоСообщения();
Объект.ВажностьПисьма = РаботаСПочтовымиСообщениямиСлужебныйКлиентСервер.ВысокаяВажностьИнтернетПочтовогоСообщения();
Элементы.ГруппаВажность.Картинка = БиблиотекаКартинок.ВажностьВысокая;
Элементы.ГруппаВажность.Подсказка = НСтр("ru = 'Высокая важность'");
Модифицированность = Истина;
@@ -2143,7 +2143,7 @@
&НаКлиенте
Процедура ВажностьОбычная(Команда)
Объект.ВажностьПисьма = РассылкаОтчетовКлиентСервер.ОбычнаяВажностьИнтернетПочтовогоСообщения();
Объект.ВажностьПисьма = РаботаСПочтовымиСообщениямиСлужебныйКлиентСервер.ОбычнаяВажностьИнтернетПочтовогоСообщения();
Элементы.ГруппаВажность.Картинка = БиблиотекаКартинок.ВажностьНеЗадана;
Элементы.ГруппаВажность.Подсказка = НСтр("ru = 'Обычная важность'");
Модифицированность = Истина;
@@ -2151,7 +2151,7 @@
&НаКлиенте
Процедура ВажностьНизкая(Команда)
Объект.ВажностьПисьма = РассылкаОтчетовКлиентСервер.НизкаяВажностьИнтернетПочтовогоСообщения();
Объект.ВажностьПисьма = РаботаСПочтовымиСообщениямиСлужебныйКлиентСервер.НизкаяВажностьИнтернетПочтовогоСообщения();
Элементы.ГруппаВажность.Картинка = БиблиотекаКартинок.ВажностьНизкая;
Элементы.ГруппаВажность.Подсказка = НСтр("ru = 'Низкая важность'");
Модифицированность = Истина;
@@ -4705,10 +4705,10 @@
&НаСервере
Процедура ОтобразитьВажность()
Если Объект.ВажностьПисьма = РассылкаОтчетовКлиентСервер.ВысокаяВажностьИнтернетПочтовогоСообщения() Тогда
Если Объект.ВажностьПисьма = РаботаСПочтовымиСообщениямиСлужебныйКлиентСервер.ВысокаяВажностьИнтернетПочтовогоСообщения() Тогда
Элементы.ГруппаВажность.Картинка = БиблиотекаКартинок.ВажностьВысокая;
Элементы.ГруппаВажность.Подсказка = НСтр("ru = 'Высокая важность'");
ИначеЕсли Объект.ВажностьПисьма = РассылкаОтчетовКлиентСервер.НизкаяВажностьИнтернетПочтовогоСообщения() Тогда
ИначеЕсли Объект.ВажностьПисьма = РаботаСПочтовымиСообщениямиСлужебныйКлиентСервер.НизкаяВажностьИнтернетПочтовогоСообщения() Тогда
Элементы.ГруппаВажность.Картинка = БиблиотекаКартинок.ВажностьНизкая;
Элементы.ГруппаВажность.Подсказка = НСтр("ru = 'Низкая важность'");
Иначе
@@ -1766,7 +1766,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Горизонтальная группа 2</value>
<value>Горизонтальная группа</value>
</title>
<extendedTooltip>
<name>ГоризонтальнаяГруппа2РасширеннаяПодсказка</name>
@@ -1965,7 +1965,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Вертикальная группа 2</value>
<value>Вертикальная группа</value>
</title>
<extendedTooltip>
<name>ВертикальнаяГруппа2РасширеннаяПодсказка</name>
@@ -1993,7 +1993,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Вертикальная группа 3</value>
<value>Вертикальная группа</value>
</title>
<extendedTooltip>
<name>ВертикальнаяГруппа3РасширеннаяПодсказка</name>
@@ -178,7 +178,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа1</value>
<value>Группа команды</value>
</title>
<extendedTooltip>
<name>ГруппаКомандыРасширеннаяПодсказка</name>
@@ -610,7 +610,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа1</value>
<value>Группа свойства сертификата</value>
</title>
<extendedTooltip>
<name>ГруппаСвойстваСертификатаРасширеннаяПодсказка</name>
@@ -876,7 +876,7 @@
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<dropListButton>true</dropListButton>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<choiceParameterLinks>
@@ -894,6 +894,7 @@
</value>
</choiceParameters>
<textSize>Normal</textSize>
<choiceHistoryOnInput>DontUse</choiceHistoryOnInput>
</extInfo>
</items>
<visible>true</visible>
@@ -639,7 +639,6 @@
МашиночитаемаяДоверенность = Неопределено;
РезультатПроверкиМЧДДляПодписания = Неопределено;
Элементы.МашиночитаемаяДоверенность.СписокВыбора.Очистить();
Элементы.МашиночитаемаяДоверенность.РежимВыбораИзСписка = Ложь;
МодульМашиночитаемыеДоверенностиФНС = ОбщегоНазначения.ОбщийМодуль("МашиночитаемыеДоверенностиФНС");
СертификатКриптографии = Новый СертификатКриптографии(ПолучитьИзВременногоХранилища(СертификатАдрес));
@@ -653,8 +652,6 @@
Доверенности = МодульМашиночитаемыеДоверенностиФНС.ДоверенностиСОтбором(ОтборДляДоверенностейПоСертификату, ВыбранныеПоля);
Если Доверенности.Количество() > 0 Тогда
Элементы.МашиночитаемаяДоверенность.РежимВыбораИзСписка = Истина;
Элементы.МашиночитаемаяДоверенность.СписокВыбора.Очистить();
Для Каждого Строка Из Доверенности Цикл
Элементы.МашиночитаемаяДоверенность.СписокВыбора.Добавить(Строка.МашиночитаемаяДоверенность,
СтрШаблон("%1, %2", Строка.Наименование, Формат(Строка.ДатаВыдачи, "ДЛФ=D")));
@@ -94,7 +94,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа1</value>
<value>Шапка</value>
</title>
<extendedTooltip>
<name>ГруппаШапкаРасширеннаяПодсказка</name>
@@ -130,7 +130,7 @@
<choiceList>
<presentation>
<key>ru</key>
<value>Указанные пользователи</value>
<value>Указанные пользователи:</value>
</presentation>
<value xsi:type="core:StringValue">
<value>СписокПользователей</value>
@@ -243,6 +243,9 @@
<autoCommandBar>
<name>ТаблицаПользователейКоманднаяПанель</name>
<id>9</id>
<items xsi:type="form:FormGroup">
<name>ГруппаКнопок</name>
<id>47</id>
<items xsi:type="form:Button">
<name>ПользователиПометитьВсе</name>
<id>26</id>
@@ -295,6 +298,29 @@
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Группа кнопок</value>
</title>
<extendedTooltip>
<name>ГруппаКнопокРасширеннаяПодсказка</name>
<id>48</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<extInfo xsi:type="form:ButtonGroupExtInfo">
<representation>Compact</representation>
</extInfo>
</items>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
@@ -434,6 +460,246 @@
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаПодбор</name>
<id>49</id>
<items xsi:type="form:Table">
<name>ВыбранныеПользователи</name>
<id>51</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ВыбранныеПользователи</segments>
</dataPath>
<titleLocation>None</titleLocation>
<items xsi:type="form:FormField">
<name>ВыбранныеПользователиПользователь</name>
<id>67</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ВыбранныеПользователи.Пользователь</segments>
</dataPath>
<extendedTooltip>
<name>ВыбранныеПользователиПользовательРасширеннаяПодсказка</name>
<id>69</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ВыбранныеПользователиПользовательКонтекстноеМеню</name>
<id>68</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize>
</extInfo>
</items>
<autoCommandBar>
<name>ВыбранныеПользователиКоманднаяПанель</name>
<id>52</id>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>BeforeAddRow</event>
<name>ВыбранныеПользователиПередНачаломДобавления</name>
</handlers>
<searchStringAddition>
<name>ВыбранныеПользователиСтрокаПоиска</name>
<id>55</id>
<extendedTooltip>
<name>ВыбранныеПользователиСтрокаПоискаРасширеннаяПодсказка</name>
<id>57</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ВыбранныеПользователиСтрокаПоискаКонтекстноеМеню</name>
<id>56</id>
<autoFill>true</autoFill>
</contextMenu>
<source>ВыбранныеПользователи</source>
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchStringAddition>
<viewStatusAddition>
<name>ВыбранныеПользователиСостояниеПросмотра</name>
<id>61</id>
<extendedTooltip>
<name>ВыбранныеПользователиСостояниеПросмотраРасширеннаяПодсказка</name>
<id>63</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ВыбранныеПользователиСостояниеПросмотраКонтекстноеМеню</name>
<id>62</id>
<autoFill>true</autoFill>
</contextMenu>
<type>ViewStatusAddition</type>
<source>ВыбранныеПользователи</source>
<extInfo xsi:type="form:ViewStatusAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</viewStatusAddition>
<searchControlAddition>
<name>ВыбранныеПользователиУправлениеПоиском</name>
<id>58</id>
<extendedTooltip>
<name>ВыбранныеПользователиУправлениеПоискомРасширеннаяПодсказка</name>
<id>60</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ВыбранныеПользователиУправлениеПоискомКонтекстноеМеню</name>
<id>59</id>
<autoFill>true</autoFill>
</contextMenu>
<type>SearchControlAddition</type>
<source>ВыбранныеПользователи</source>
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchControlAddition>
<extendedTooltip>
<name>ВыбранныеПользователиРасширеннаяПодсказка</name>
<id>54</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ВыбранныеПользователиКонтекстноеМеню</name>
<id>53</id>
<autoFill>true</autoFill>
</contextMenu>
<changeRowSet>true</changeRowSet>
<changeRowOrder>true</changeRowOrder>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<autoMaxRowsCount>true</autoMaxRowsCount>
<selectionMode>MultiRow</selectionMode>
<headerHeight>1</headerHeight>
<footerHeight>1</footerHeight>
<horizontalScrollBar>AutoUse</horizontalScrollBar>
<verticalScrollBar>AutoUse</verticalScrollBar>
<horizontalLines>true</horizontalLines>
<verticalLines>true</verticalLines>
<useAlternationRowColorBWA>false</useAlternationRowColorBWA>
<searchOnInput>Auto</searchOnInput>
<initialListView>Auto</initialListView>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<fileDragMode>AsFileRef</fileDragMode>
<autoMaxCardHeight>true</autoMaxCardHeight>
<rowFilter xsi:type="core:UndefinedValue"/>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Группа подбор</value>
</title>
<extendedTooltip>
<name>ГруппаПодборРасширеннаяПодсказка</name>
<id>50</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior>
<representation>WeakSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ДекорацияПредупреждение</name>
<id>44</id>
<title>
<key>ru</key>
<value>Список заполняется автоматически при операциях с использованием ключа электронной подписи. Передавать личный ключ электронной подписи другим лицам не рекомендуется.</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДекорацияПредупреждениеРасширеннаяПодсказка</name>
<id>46</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДекорацияПредупреждениеКонтекстноеМеню</name>
<id>45</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<textColor xsi:type="core:ColorRef">
<color>Style.ПоясняющийТекст</color>
</textColor>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -655,6 +921,64 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ВыбранныеПользователи</name>
<title>
<key>ru</key>
<value>Выбранные пользователи</value>
</title>
<id>4</id>
<valueType>
<types>ValueTable</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<columns>
<name>Основной</name>
<id>5</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
<columns>
<name>Пользователь</name>
<title>
<key>ru</key>
<value>Пользователь</value>
</title>
<id>6</id>
<valueType>
<types>CatalogRef.Пользователи</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
</attributes>
<attributes>
<name>ВладелецСертификата</name>
<id>7</id>
<valueType/>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ПометитьВсе</name>
<title>
@@ -46,6 +46,37 @@
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыВыбранныеПользователи
&НаКлиенте
Процедура ВыбранныеПользователиПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, ЭтоГруппа, Параметр)
Отказ = Истина;
ПараметрыПодбора = Новый Структура;
ПараметрыПодбора.Вставить("РежимВыбора", Истина);
ПараметрыПодбора.Вставить("ЗакрыватьПриВыборе", Ложь);
ПараметрыПодбора.Вставить("МножественныйВыбор", Истина);
ПараметрыПодбора.Вставить("РасширенныйПодбор", Истина);
ПараметрыПодбора.Вставить("СкрытьПользователейБезПользователяИБ", Истина);
Выбранные = Новый Массив;
Для Каждого Строка Из ВыбранныеПользователи Цикл
Выбранные.Добавить(Строка.Пользователь);
КонецЦикла;
ПараметрыПодбора.Вставить("ВыбранныеПользователи", Выбранные);
ПараметрыПодбора.Вставить("ЗаголовокФормыПодбора",
НСтр("ru = 'Выберите пользователей, у которых сертификат будет доступен в списке выбора'"));
ПараметрыПодбора.Вставить("ЗаголовокКнопкиЗавершенияПодбора", НСтр("ru = 'Выбрать'"));
Обработчик = Новый ОписаниеОповещения("ДобавитьПользователей", ЭтотОбъект);
ОткрытьФорму("Справочник.Пользователи.ФормаВыбора", ПараметрыПодбора,,,,, Обработчик);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
@@ -59,11 +90,17 @@
Результат.Вставить("Пользователь", ПредопределенноеЗначение("Справочник.Пользователи.ПустаяСсылка"));
Если СпособВыбора = "СписокПользователей" Тогда
Если Элементы.ТаблицаПользователей.Видимость Тогда
Для Каждого СтрокаПользователя Из ТаблицаПользователей Цикл
Если СтрокаПользователя.Пометка Тогда
Результат.Пользователи.Добавить(СтрокаПользователя.Пользователь);
КонецЕсли;
КонецЦикла;
Иначе
Для Каждого СтрокаПользователя Из ВыбранныеПользователи Цикл
Результат.Пользователи.Добавить(СтрокаПользователя.Пользователь);
КонецЦикла;
КонецЕсли;
Иначе
Результат.Пользователь = ПользователиКлиент.ТекущийПользователь();
КонецЕсли;
@@ -95,6 +132,24 @@
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура ДобавитьПользователей(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
ВыбранныеПользователи.Очистить();
Для Каждого Пользователь Из Результат Цикл
НоваяСтрока = ВыбранныеПользователи.Добавить();
НоваяСтрока.Пользователь = Пользователь;
Если Пользователь = ВладелецСертификата Тогда
НоваяСтрока.Основной = Истина;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьПометкиСписка(ЗначениеПометки)
@@ -107,6 +162,7 @@
&НаСервере
Процедура НастроитьУсловноеОформление()
Если Элементы.ТаблицаПользователей.Видимость Тогда
ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("BackColor");
@@ -122,6 +178,25 @@
ЭлементПоляОформления = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
ЭлементПоляОформления.Поле = Новый ПолеКомпоновкиДанных("ТаблицаПользователей");
ЭлементПоляОформления.Использование = Истина;
КонецЕсли;
Если Элементы.ТаблицаПользователей.Видимость Тогда
ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("BackColor");
ЭлементЦветаОформления.Значение = ЦветаСтиля.ДобавленныйРеквизитФон;
ЭлементЦветаОформления.Использование = Истина;
ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВыбранныеПользователи.Основной");
ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбораДанных.ПравоеЗначение = Истина;
ЭлементОтбораДанных.Использование = Истина;
ЭлементПоляОформления = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
ЭлементПоляОформления.Поле = Новый ПолеКомпоновкиДанных("ВыбранныеПользователи");
ЭлементПоляОформления.Использование = Истина;
КонецЕсли;
КонецПроцедуры
@@ -170,7 +245,23 @@
Запрос.УстановитьПараметр("ПустойИдентификаторПользователяИБ", Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"));
Запрос.УстановитьПараметр("ВладелецСертификата", ВладелецСертификата);
ТаблицаПользователей.Загрузить(Запрос.Выполнить().Выгрузить());
Результат = Запрос.Выполнить().Выгрузить();
Если Результат.Количество() > 30 Тогда
ВыбранныеПользователи.Очистить();
Для Каждого Пользователь Из МассивПользователей Цикл
НоваяСтрока = ВыбранныеПользователи.Добавить();
НоваяСтрока.Пользователь = Пользователь;
Если Пользователь = ВладелецСертификата Тогда
НоваяСтрока.Основной = Истина;
КонецЕсли;
КонецЦикла;
Элементы.ТаблицаПользователей.Видимость = Ложь;
Элементы.ВыбранныеПользователи.Видимость = Истина;
Иначе
ТаблицаПользователей.Загрузить(Результат);
Элементы.ТаблицаПользователей.Видимость = Истина;
Элементы.ВыбранныеПользователи.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
@@ -181,10 +272,12 @@
Если КонтекстФормы.РежимПросмотра Тогда
ЭлементыФормы.ТаблицаПользователей.ТолькоПросмотр = Истина;
ЭлементыФормы.ВыбранныеПользователи.ТолькоПросмотр = Истина;
ЭлементыФормы.СпособВыбора.ТолькоПросмотр = Истина;
ЭлементыФормы.СпособВыбораСписок.ТолькоПросмотр = Истина;
Иначе
ЭлементыФормы.ТаблицаПользователей.ТолькоПросмотр = НЕ КонтекстФормы.СпособВыбора = "СписокПользователей";
ЭлементыФормы.ВыбранныеПользователи.ТолькоПросмотр = НЕ КонтекстФормы.СпособВыбора = "СписокПользователей";
КонецЕсли;
ЭлементыФормы.ПользователиПометитьВсе.Доступность = НЕ ЭлементыФормы.ТаблицаПользователей.ТолькоПросмотр;
@@ -652,7 +652,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Вертикальная группа 3</value>
<value>Вертикальная группа</value>
</title>
<extendedTooltip>
<name>ВертикальнаяГруппа3РасширеннаяПодсказка</name>
@@ -876,7 +876,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Горизонтальная группа 2</value>
<value>Горизонтальная группа</value>
</title>
<extendedTooltip>
<name>ГоризонтальнаяГруппа2РасширеннаяПодсказка</name>
@@ -992,7 +992,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Вертикальная группа 3</value>
<value>Вертикальная группа</value>
</title>
<extendedTooltip>
<name>ГоризонтальнаяГруппа3РасширеннаяПодсказка</name>
@@ -1580,7 +1580,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Горизонтальная группа 1</value>
<value>Горизонтальная группа</value>
</title>
<extendedTooltip>
<name>ГоризонтальнаяГруппа1РасширеннаяПодсказка</name>
@@ -212,7 +212,7 @@
<excludedCommands>Delete</excludedCommands>
<excludedCommands>SetDeletionMark</excludedCommands>
<items xsi:type="form:FormGroup">
<name>ВертикальнаяГруппа1</name>
<name>ПерваяКолонка</name>
<id>56</id>
<displayImportance>VeryHigh</displayImportance>
<items xsi:type="form:FormField">
@@ -300,10 +300,10 @@
</userVisible>
<title>
<key>ru</key>
<value>Вертикальная группа 1</value>
<value>Первая колонка</value>
</title>
<extendedTooltip>
<name>ВертикальнаяГруппа1РасширеннаяПодсказка</name>
<name>ПерваяКолонкаРасширеннаяПодсказка</name>
<id>57</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -320,7 +320,7 @@
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ВертикальнаяГруппа2</name>
<name>ВтораяКолонка</name>
<id>58</id>
<items xsi:type="form:FormField">
<name>СписокПорядокЗаполнения</name>
@@ -405,10 +405,10 @@
</userVisible>
<title>
<key>ru</key>
<value>Вертикальная группа 2</value>
<value>Вторая колонка</value>
</title>
<extendedTooltip>
<name>ВертикальнаяГруппа2РасширеннаяПодсказка</name>
<name>ВтораяКолонкаРасширеннаяПодсказка</name>
<id>59</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -425,7 +425,7 @@
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ВертикальнаяГруппа3</name>
<name>ТретьяКолонка</name>
<id>60</id>
<items xsi:type="form:FormField">
<name>СписокПолныйПутьWindows</name>
@@ -518,10 +518,10 @@
</userVisible>
<title>
<key>ru</key>
<value>Вертикальная группа 3</value>
<value>Третья колонка</value>
</title>
<extendedTooltip>
<name>ВертикальнаяГруппа3РасширеннаяПодсказка</name>
<name>ТретьяКолонкаРасширеннаяПодсказка</name>
<id>61</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -264,7 +264,7 @@
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
Если Элементы.Список.ТекущиеДанные <> Неопределено Тогда
Если СтандартныеПодсистемыКлиент.ЭтоЭлементДинамическогоСписка(Элементы.Список) Тогда
НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(Элементы.Список.ТекущиеДанные.Ссылка);
КонецЕсли;
ОбработкаОжиданияУстановитьДоступностьФайловыхКоманд();
@@ -771,13 +771,10 @@
&НаКлиенте
Процедура Удалить(Команда)
Если Элементы.Список.ТекущаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
ВыделенныеСтроки = ВыделенныеСтроки();
РаботаСФайламиСлужебныйКлиент.УдалитьДанные(
Новый ОписаниеОповещения("ПослеУдаленияДанных", ЭтотОбъект),
Элементы.Список.ТекущиеДанные.Ссылка, УникальныйИдентификатор);
ОписаниеОповещения = Новый ОписаниеОповещения("ПослеУдаленияДанных", ЭтотОбъект);
РаботаСФайламиСлужебныйКлиент.УдалитьДанныеФайлов(ОписаниеОповещения, ВыделенныеСтроки, УникальныйИдентификатор);
КонецПроцедуры
@@ -1635,4 +1632,18 @@
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Функция ВыделенныеСтроки()
ВыделенныеСтроки = Новый Массив;
Для Каждого ВыделеннаяСтрока Из Элементы.Список.ВыделенныеСтроки Цикл
Если ТипЗнч(ВыделеннаяСтрока) <> Тип("СтрокаГруппировкиДинамическогоСписка") Тогда
ВыделенныеСтроки.Добавить(ВыделеннаяСтрока);
КонецЕсли;
КонецЦикла;
Возврат ВыделенныеСтроки
КонецФункции
#КонецОбласти
@@ -837,7 +837,7 @@
<extInfo xsi:type="form:ButtonGroupExtInfo"/>
</items>
<items xsi:type="form:FormGroup">
<name>ФормаДереваАнкетыГруппа1</name>
<name>ФормаДереваАнкетыГруппаУдалить</name>
<id>133</id>
<items xsi:type="form:Button">
<name>ДеревоАнкетыКоманднаяПанельУдалить</name>
@@ -873,10 +873,10 @@
</userVisible>
<title>
<key>ru</key>
<value>Форма дерева анкеты группа 1</value>
<value>Удалить</value>
</title>
<extendedTooltip>
<name>ФормаДереваАнкетыГруппа1РасширеннаяПодсказка</name>
<name>ФормаДереваАнкетыГруппаУдалитьРасширеннаяПодсказка</name>
<id>134</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -1245,7 +1245,7 @@
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:FormGroup">
<name>ФормаДереваАнкетыКонтекстноеМенюГруппа1</name>
<name>ФормаДереваАнкетыКонтекстноеМенюГруппаПеремещение</name>
<id>135</id>
<items xsi:type="form:Button">
<name>ДеревоАнкетыКонтекстноеМенюПереместитьВверх</name>
@@ -1308,10 +1308,10 @@
</userVisible>
<title>
<key>ru</key>
<value>Форма дерева анкеты контекстное меню группа 1</value>
<value>Перемещение</value>
</title>
<extendedTooltip>
<name>ФормаДереваАнкетыКонтекстноеМенюГруппа1РасширеннаяПодсказка</name>
<name>ФормаДереваАнкетыКонтекстноеМенюГруппаПеремещениеРасширеннаяПодсказка</name>
<id>136</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -1323,7 +1323,7 @@
<extInfo xsi:type="form:ButtonGroupExtInfo"/>
</items>
<items xsi:type="form:FormGroup">
<name>ФормаДереваАнкетыКонтекстноеМенюГруппа2</name>
<name>ФормаДереваАнкетыКонтекстноеМенюГруппаУдалить</name>
<id>137</id>
<items xsi:type="form:Button">
<name>ДеревоАнкетыКонтекстноеМенюУдалить</name>
@@ -1359,10 +1359,10 @@
</userVisible>
<title>
<key>ru</key>
<value>Форма дерева анкеты контекстное меню группа 2</value>
<value>Удалить</value>
</title>
<extendedTooltip>
<name>ФормаДереваАнкетыКонтекстноеМенюГруппа2РасширеннаяПодсказка</name>
<name>ФормаДереваАнкетыКонтекстноеМенюГруппаУдалитьРасширеннаяПодсказка</name>
<id>138</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -4101,7 +4101,7 @@
<name>ЗначенияДополнительногоРеквизитаКоманднаяПанель</name>
<id>293</id>
<items xsi:type="form:FormGroup">
<name>ЗначенияДополнительныхРеквизитов1Группа1</name>
<name>ЗначенияДополнительныхРеквизитовГруппа</name>
<id>310</id>
<items xsi:type="form:Button">
<name>ЗначенияДополнительногоРеквизитаСоздать</name>
@@ -4162,10 +4162,10 @@
</userVisible>
<title>
<key>ru</key>
<value>Значения дополнительных реквизитов 1 группа 1</value>
<value>Группа</value>
</title>
<extendedTooltip>
<name>ЗначенияДополнительныхРеквизитов1Группа1РасширеннаяПодсказка</name>
<name>ЗначенияДополнительныхРеквизитовГруппаРасширеннаяПодсказка</name>
<id>311</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -21,7 +21,7 @@
</dataPath>
<titleLocation>None</titleLocation>
<items xsi:type="form:FormGroup">
<name>КомандыПечатиГруппа1</name>
<name>КомандыПечатиВидимостьПредставление</name>
<id>32</id>
<items xsi:type="form:FormField">
<name>КомандыПечатиВидимость</name>
@@ -119,10 +119,10 @@
</userVisible>
<title>
<key>ru</key>
<value>Команда Печати</value>
<value>Видимость и представление</value>
</title>
<extendedTooltip>
<name>КомандыПечатиГруппа1РасширеннаяПодсказка</name>
<name>КомандыПечатиВидимостьПредставлениеРасширеннаяПодсказка</name>
<id>33</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -139,7 +139,7 @@
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>КомандыПечатиГруппа2</name>
<name>КомандыПечатиГруппаКомментарий</name>
<id>44</id>
<items xsi:type="form:FormField">
<name>КомандыПечатиКомментарий</name>
@@ -197,10 +197,10 @@
</userVisible>
<title>
<key>ru</key>
<value>Команды печати группа 2</value>
<value>Комментарий</value>
</title>
<extendedTooltip>
<name>КомандыПечатиГруппа2РасширеннаяПодсказка</name>
<name>КомандыПечатиГруппаКомментарийРасширеннаяПодсказка</name>
<id>45</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -440,7 +440,7 @@
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:FormGroup">
<name>ФормаГруппа1</name>
<name>ФормаГруппаПрочее</name>
<id>39</id>
<items xsi:type="form:Button">
<name>ФормаУстановитьНастройкиПоУмолчанию</name>
@@ -480,10 +480,10 @@
</userVisible>
<title>
<key>ru</key>
<value>Форма группа 1</value>
<value>Прочее</value>
</title>
<extendedTooltip>
<name>ФормаГруппа1РасширеннаяПодсказка</name>
<name>ФормаГруппаПрочееРасширеннаяПодсказка</name>
<id>40</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -1299,9 +1299,11 @@
Для Каждого Криптопровайдер Из Результат.Программы Цикл
// Локализация
Если ЗначениеЗаполнено(Криптопровайдер.Программа) И Не ЕстьПроверяемыеПрограммы Тогда
ЕстьПроверяемыеПрограммы = Истина;
КонецЕсли;
// Конец Локализация
Найдено = Программы.НайтиСтроки(Новый Структура("ИмяПрограммы, ТипПрограммы",
Криптопровайдер.ИмяПрограммы, Криптопровайдер.ТипПрограммы));
@@ -1325,12 +1327,14 @@
КонецЦикла;
// Локализация
Если Не ЕстьПроверяемыеПрограммы Тогда
Элементы.ГруппаПодсказкаКриптопровайдеры.Видимость = Истина;
Элементы.ДекорацияПроверкаУстановкиКриптопровайдера.Заголовок = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
НСтр("ru = 'Если планируется работа с усиленной квалифицированной электронной подписью, то на компьютере должна быть установлена сертифицированная программа (средство криптографической защиты информации).
|<a href = ""%1"">Установить.</a>'"), "ПроверитьУстановкуПрограммКриптографии");
КонецЕсли;
// Конец Локализация
КонецЕсли;
Если Оповещение <> Неопределено Тогда
@@ -516,7 +516,7 @@
&НаКлиенте
Процедура ВажностьВысокая(Команда)
ВажностьПисьма = "Высокая";
ВажностьПисьма = РаботаСПочтовымиСообщениямиСлужебныйКлиентСервер.ВысокаяВажностьИнтернетПочтовогоСообщения();
Элементы.ГруппаВажность.Картинка = БиблиотекаКартинок.ВажностьВысокая;
Элементы.ГруппаВажность.Подсказка = НСтр("ru = 'Высокая важность'");
Модифицированность = Истина;
@@ -524,7 +524,7 @@
&НаКлиенте
Процедура ВажностьОбычная(Команда)
ВажностьПисьма = "Обычная";
ВажностьПисьма = РаботаСПочтовымиСообщениямиСлужебныйКлиентСервер.ОбычнаяВажностьИнтернетПочтовогоСообщения();
Элементы.ГруппаВажность.Картинка = БиблиотекаКартинок.ВажностьНеЗадана;
Элементы.ГруппаВажность.Подсказка = НСтр("ru = 'Обычная важность'");
Модифицированность = Истина;
@@ -532,7 +532,7 @@
&НаКлиенте
Процедура ВажностьНизкая(Команда)
ВажностьПисьма = "Низкая";
ВажностьПисьма = РаботаСПочтовымиСообщениямиСлужебныйКлиентСервер.НизкаяВажностьИнтернетПочтовогоСообщения();
Элементы.ГруппаВажность.Картинка = БиблиотекаКартинок.ВажностьНизкая;
Элементы.ГруппаВажность.Подсказка = НСтр("ru = 'Низкая важность'");
Модифицированность = Истина;
@@ -810,7 +810,7 @@
ПараметрыПисьма.Вставить("Тело", ТелоПисьма);
ПараметрыПисьма.Вставить("Вложения", Вложения());
ПараметрыПисьма.Вставить("Важность", ?(ЗначениеЗаполнено(ВажностьПисьма),
ВажностьИнтернетПочтовогоСообщения[ВажностьПисьма], ВажностьИнтернетПочтовогоСообщения.Обычная));
РаботаСПочтовымиСообщениямиСлужебный.ВажностьИнтернетПочтовогоСообщенияИзСтроки(ВажностьПисьма), ВажностьИнтернетПочтовогоСообщения.Обычная));
Возврат ПараметрыПисьма;
@@ -1881,12 +1881,10 @@
Подсистема.НомерЭлемента = Подсистема.НомерЭлемента + 1;
ГруппаПодсистемыИмя = Подсистема.ИмяЭлемента + "_" + Формат(Подсистема.НомерЭлемента, "ЧГ=0");
Если Не ПараметрыЗаполнения.ТолькоТекущийРаздел Тогда
Пока Элементы.Найти(ГруппаПодсистемыИмя) <> Неопределено Цикл
Подсистема.НомерЭлемента = Подсистема.НомерЭлемента + 1;
ГруппаПодсистемыИмя = Подсистема.ИмяЭлемента + "_" + Формат(Подсистема.НомерЭлемента, "ЧГ=0");
КонецЦикла;
КонецЕсли;
// Добавление отступа слева.
Если СтрокаПорядкаВывода.УровеньВложенности > 1 Тогда
@@ -51,19 +51,29 @@
КонецЕсли;
ДополнительныеПрокси = НастройкаПроксиСервера.Получить("ДополнительныеНастройкиПрокси");
Если ТипЗнч(ДополнительныеПрокси) <> Тип("Соответствие") Тогда
ОдинПроксиДляВсехПротоколов = Истина;
Иначе
// Если в настройках заданы дополнительные прокси-серверы,
// то прочитать их из настроек.
Для каждого ПротоколСервер Из ДополнительныеПрокси Цикл
Протокол = ПротоколСервер.Ключ;
НастройкаПоПротоколу = ПротоколСервер.Значение;
ЭтотОбъект["Сервер" + Протокол] = НастройкаПоПротоколу.Адрес;
ЭтотОбъект["Порт" + Протокол] = НастройкаПоПротоколу.Порт;
КонецЦикла;
ЗначениеПараметра = ДополнительныеПрокси.Получить("http");
Если ТипЗнч(ЗначениеПараметра) = Тип("Структура") Тогда
СерверHTTP = ЗначениеПараметра.Адрес;
ПортHTTP = ЗначениеПараметра.Порт;
КонецЕсли;
ЗначениеПараметра = ДополнительныеПрокси.Получить("https");
Если ТипЗнч(ЗначениеПараметра) = Тип("Структура") Тогда
СерверHTTPS = ЗначениеПараметра.Адрес;
ПортHTTPS = ЗначениеПараметра.Порт;
КонецЕсли;
ЗначениеПараметра = ДополнительныеПрокси.Получить("ftp");
Если ТипЗнч(ЗначениеПараметра) = Тип("Структура") Тогда
СерверFTP = ЗначениеПараметра.Адрес;
ПортFTP = ЗначениеПараметра.Порт;
КонецЕсли;
КонецЕсли;
@@ -1487,7 +1487,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Настройки печатных форм группа1</value>
<value>Управление флажками</value>
</title>
<extendedTooltip>
<name>УправлениеФлажкамиРасширеннаяПодсказка</name>
@@ -1565,7 +1565,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Настройки печатных форм группа1</value>
<value>Управление строками</value>
</title>
<extendedTooltip>
<name>УправлениеСтрокамиРасширеннаяПодсказка</name>
@@ -2923,6 +2923,20 @@
<common>true</common>
</edit>
</columns>
<columns>
<name>ТекстОшибкиФормирования</name>
<id>32</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
</attributes>
<attributes>
<name>ПечатнаяФормаОбразец</name>
@@ -79,7 +79,7 @@
СохранитьНастройкиКомплектаПоУмолчанию();
ЗагрузитьНастройкиКоличестваКопий();
ЕстьРазрешенныйВывод = ЕстьРазрешенныйВывод();
НастроитьВидимостьЭлементовФормы(ЕстьРазрешенныйВывод);
НастроитьВидимостьЭлементовФормы();
УстановитьПризнакДоступностиВыводаВПредставленияхПечатныхФорм(ЕстьРазрешенныйВывод);
Если Не ОбщегоНазначения.ЭтоМобильныйКлиент() И ЭтоПечатьКомплекта() Тогда
Элементы.Копий.Заголовок = НСтр("ru = 'Копий комплекта'");
@@ -934,6 +934,7 @@
НоваяНастройкаПечатнойФормы.ИмяРеквизита = РанееДобавленнаяНастройкаПечатнойФормы.ИмяРеквизита;
КонецЕсли;
НоваяНастройкаПечатнойФормы.ТекстОшибкиФормирования = ОписаниеПечатнойФормы.ТекстОшибкиФормирования;
НомерПечатнойФормы = НомерПечатнойФормы + 1;
КонецЦикла;
@@ -951,8 +952,9 @@
КонецПроцедуры
&НаСервере
Процедура НастроитьВидимостьЭлементовФормы(Знач ЕстьРазрешенныйВывод)
Процедура НастроитьВидимостьЭлементовФормы()
ЕстьРазрешенныйВывод = ЕстьРазрешенныйВывод();
ЕстьРазрешенноеРедактирование = ЕстьРазрешенноеРедактирование();
ДоступнаОтправкаПисем = Ложь;
@@ -1013,7 +1015,7 @@
КонецЕсли;
ДоступноИзменениеМакетов = ПравоДоступа("Изменение", Метаданные.РегистрыСведений.ПользовательскиеМакетыПечати) И ЕстьРедактируемыеМакеты();
Элементы.КнопкаИзменитьМакет.Видимость = ДоступноИзменениеМакетов И ЕстьДанныеДляПечати;
Элементы.КнопкаИзменитьМакет.Видимость = ДоступноИзменениеМакетов;
Элементы.ФлажокПодписьИПечать.Видимость = ЕстьПечатныеФормыСПодписьюИПечатью() И ЕстьПодписиИПечатиДляОбъектовПечати();
@@ -1122,6 +1124,37 @@
Элементы.Язык.Доступность = НастройкаПечатнойФормы.ДоступенВыводНаДругихЯзыках;
ВозниклоИсключениеПриФормировании = Не ПечатнаяФормаДоступна И НастройкаПечатнойФормы <> Неопределено
И ЗначениеЗаполнено(НастройкаПечатнойФормы.ТекстОшибкиФормирования);
Если ВозниклоИсключениеПриФормировании И ИспользуетсяПользовательскийМакет(НастройкаПечатнойФормы.ПутьКМакету) Тогда
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось сформировать печатную форму по причине:
|%1
|
|Подробности см. в журнале регистрации.
|
|Используется измененный макет, переключить на использование стандартного?'"),
НастройкаПечатнойФормы.ТекстОшибкиФормирования);
Кнопки = Новый СписокЗначений;
Кнопки.Добавить(КодВозвратаДиалога.Да, НСтр("ru = 'Использовать стандартный'"));
Кнопки.Добавить(КодВозвратаДиалога.Отмена);
ОписаниеОповещения = Новый ОписаниеОповещения("ПриПолученииОтвета", ЭтотОбъект, НастройкаПечатнойФормы);
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки, , КодВозвратаДиалога.Да);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПриПолученииОтвета(Ответ, НастройкаПечатнойФормы) Экспорт
Если Ответ = КодВозвратаДиалога.Да Тогда
ОтключитьПользовательскийМакет(НастройкаПечатнойФормы.ПутьКМакету);
ПодключитьОбработчикОжидания("ОбновитьТекущуюПечатнуюФорму", 0.1, Истина);
КонецЕсли;
КонецПроцедуры
&НаСервере
@@ -1885,7 +1918,7 @@
Процедура УстановитьДоступностьИзмененияМакета()
ПечатнаяФормаДоступна = Элементы.Страницы.ТекущаяСтраница <> Элементы.СтраницаПечатнаяФормаНедоступна;
НастройкаПечатнойФормы = НастройкаТекущейПечатнойФормы();
Элементы.КнопкаИзменитьМакет.Доступность = ПечатнаяФормаДоступна И Не ПустаяСтрока(НастройкаПечатнойФормы.ПутьКМакету);
Элементы.КнопкаИзменитьМакет.Доступность = Не ПустаяСтрока(НастройкаПечатнойФормы.ПутьКМакету);
КонецПроцедуры
&НаКлиенте
@@ -1917,16 +1950,21 @@
Возврат;
КонецЕсли;
НастройкаПечатнойФормы.ТекстОшибкиФормирования =
ПереформироватьПечатнуюФорму(НастройкаПечатнойФормы.ИмяМакета, НастройкаПечатнойФормы.ИмяРеквизита);
НастройкаПечатнойФормы.ТекущийЯзык = ТекущийЯзык;
ДобавитьУдалитьПодписьПечать();
ОтобразитьСостояниеТекущейПечатнойФормы();
УстановитьТекущуюСтраницу();
НастроитьВидимостьЭлементовФормы();
КонецПроцедуры
&НаСервере
Процедура ПереформироватьПечатнуюФорму(ИмяМакета, ИмяРеквизита)
Функция ПереформироватьПечатнуюФорму(ИмяМакета, ИмяРеквизита)
Отказ = Ложь;
КоллекцияПечатныхФорм = СформироватьПечатныеФормы(ИмяМакета, Отказ);
@@ -1934,15 +1972,19 @@
ВызватьИсключение НСтр("ru = 'Печатная форма не была переформирована.'");
КонецЕсли;
ТекстОшибкиФормирования = "";
Для Каждого ПечатнаяФорма Из КоллекцияПечатныхФорм Цикл
Если ПечатнаяФорма.ИмяМакета = ИмяМакета Тогда
ЭтотОбъект[ИмяРеквизита] = ПечатнаяФорма.ТабличныйДокумент;
ТекстОшибкиФормирования = ПечатнаяФорма.ТекстОшибкиФормирования;
КонецЕсли;
КонецЦикла;
УстановитьТекущийТабличныйДокумент(ИмяРеквизита);
КонецПроцедуры
Возврат ТекстОшибкиФормирования;
КонецФункции
&НаКлиенте
Функция НастройкаТекущейПечатнойФормы()
@@ -2380,6 +2422,19 @@
Возврат Ложь;
КонецФункции
&НаСервереБезКонтекста
Процедура ОтключитьПользовательскийМакет(ПутьКМакету)
УправлениеПечатью.ОтключитьПользовательскийМакет(ПутьКМакету);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ИспользуетсяПользовательскийМакет(ПутьКМакету)
Возврат УправлениеПечатью.ИспользуетсяПользовательскийМакет(ПутьКМакету);
КонецФункции
#КонецОбласти
@@ -124,7 +124,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа1</value>
<value>Управление флажками</value>
</title>
<extendedTooltip>
<name>ГруппаУправлениеФлажкамиРасширеннаяПодсказка</name>
@@ -204,7 +204,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа1</value>
<value>Управление строками</value>
</title>
<extendedTooltip>
<name>ГруппаУправлениеСтрокамиРасширеннаяПодсказка</name>
@@ -227,7 +227,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Печатные формы группа1</value>
<value>Группа управления списком документов</value>
</title>
<extendedTooltip>
<name>ГруппаУправленияСпискомДокументовРасширеннаяПодсказка</name>
@@ -1172,7 +1172,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Печатные формы группа1</value>
<value>Картинка</value>
</title>
<extendedTooltip>
<name>КартинкаПредставлениеРасширеннаяПодсказка</name>
@@ -44,6 +44,13 @@
Если ТипЗнч(Параметры.Подпись) = Тип("Структура") Тогда
Если ЗначениеЗаполнено(Параметры.Подпись.ПодписанныйОбъект) Тогда
ПодписанныйОбъект = Параметры.Подпись.ПодписанныйОбъект;
Если Не Пользователи.ЭтоПолноправныйПользователь()
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПроверитьИзменениеРазрешено(ПодписанныйОбъект);
КонецЕсли;
ПорядковыйНомер = Параметры.Подпись.ПорядковыйНомер;
Элементы.ПодписанныйОбъект.Видимость = Истина;
КонецЕсли;
@@ -308,7 +315,15 @@
КонецЦикла;
Если ЕстьАрхивнаяПодпись Тогда
Если Не ЕстьБазоваяПодпись И Не ЕстьПодписьСМеткойВремени Тогда
Элементы.ДобавитьАрхивнуюМеткуВремени.Видимость = Ложь;
Элементы.ДекорацияДобавлениеМетокВремени.Видимость = Истина;
Элементы.ДекорацияДобавлениеМетокВремени.Заголовок = НСтр("ru='В подписи будут добавлены архивные метки времени'");
Элементы.ТипПодписи.Видимость = Ложь;
ДобавитьАрхивнуюМеткуВремени = Истина;
Иначе
Элементы.ДобавитьАрхивнуюМеткуВремени.Видимость = Истина;
КонецЕсли;
ИначеЕсли ЕстьПодписьСМеткойВремени Или ЕстьБазоваяПодпись Тогда
Элементы.ДобавитьАрхивнуюМеткуВремени.Видимость = Ложь;
КонецЕсли;
@@ -819,21 +819,21 @@
<items xsi:type="form:FormGroup">
<name>ВозможныеПричины</name>
<id>86</id>
<items xsi:type="form:Decoration">
<items xsi:type="form:FormField">
<name>ПричиныТекст</name>
<id>88</id>
<title>
<key>ru</key>
<value>Возможные причины </value>
</title>
<id>101</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ПричиныТекст</segments>
</dataPath>
<titleLocation>None</titleLocation>
<extendedTooltip>
<name>ПричиныТекстРасширеннаяПодсказка</name>
<id>90</id>
<id>103</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
@@ -843,17 +843,22 @@
</extendedTooltip>
<contextMenu>
<name>ПричиныТекстКонтекстноеМеню</name>
<id>89</id>
<id>102</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<handlers>
<event>URLProcessing</event>
<name>ПричиныКлиентТекстОбработкаНавигационнойСсылки</name>
</handlers>
<horizontalAlign>Left</horizontalAlign>
<wrap>true</wrap>
<multiLine>true</multiLine>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize>
</extInfo>
</items>
<visible>true</visible>
@@ -1492,6 +1497,24 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ПричиныТекст</name>
<title>
<key>ru</key>
<value>Причины текст</value>
</title>
<id>9</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ПерейтиКНастройкеПрограмм</name>
<title>
@@ -234,8 +234,12 @@
ЭлементИнструкция.Имя, "Заголовок", НСтр("ru = 'Подробнее'"));
Если ЗначениеЗаполнено(ОшибкаПоКлассификатору.Причина) Тогда
Если ТипЗнч(ЭлементПричиныТекст) = Тип("ДекорацияФормы") Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
ЭлементПричиныТекст.Имя, "Заголовок", ОшибкаПоКлассификатору.Причина);
Иначе
ЭтотОбъект[ЭлементПричиныТекст.ПутьКДанным] = ОшибкаПоКлассификатору.Причина;
КонецЕсли;
Иначе
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
ЭлементПричиныТекст.Имя, "Видимость", Ложь);
@@ -62,7 +62,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа1</value>
<value>Группа инструкций</value>
</title>
<extendedTooltip>
<name>ГруппаЛеваяРасширеннаяПодсказка</name>
@@ -205,7 +205,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа1</value>
<value>Действия с макетом</value>
</title>
<horizontalStretch>false</horizontalStretch>
<extendedTooltip>
@@ -239,7 +239,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа8</value>
<value>Перевод</value>
</title>
<extendedTooltip>
<name>ДобавляемыеЯзыкиРасширеннаяПодсказка</name>
@@ -532,7 +532,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа1</value>
<value>Импорт экспорт</value>
</title>
<extendedTooltip>
<name>ИмпортЭкспортРасширеннаяПодсказка</name>
@@ -553,7 +553,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа1</value>
<value>Команды редактирования</value>
</title>
<extendedTooltip>
<name>КомандыРедактированияРасширеннаяПодсказка</name>
@@ -607,7 +607,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа1</value>
<value>Группа справки</value>
</title>
<width>3</width>
<horizontalStretch>false</horizontalStretch>
@@ -634,7 +634,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа1</value>
<value>Инструкция редактора</value>
</title>
<extendedTooltip>
<name>ГруппаИнструкцияРедакторРасширеннаяПодсказка</name>
@@ -1214,7 +1214,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа1</value>
<value>Страница для тонкого клиента</value>
</title>
<extendedTooltip>
<name>СтраницаТонкийКлиентРасширеннаяПодсказка</name>
@@ -1295,7 +1295,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа1</value>
<value>Страница для веб-клиента</value>
</title>
<extendedTooltip>
<name>СтраницаWebКлиентРасширеннаяПодсказка</name>
@@ -1321,7 +1321,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа1</value>
<value>Страницы HTML</value>
</title>
<extendedTooltip>
<name>ГруппаСтраницыHTMLРасширеннаяПодсказка</name>
@@ -1378,7 +1378,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа1</value>
<value>Группа редактора</value>
</title>
<extendedTooltip>
<name>ГруппаПраваяРасширеннаяПодсказка</name>
@@ -1406,7 +1406,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа1</value>
<value>Основная группа</value>
</title>
<extendedTooltip>
<name>ГруппаВертикальнаяРасширеннаяПодсказка</name>
@@ -121,7 +121,7 @@
ПараметрыДобавления = МодульКонструкторФормул.ПараметрыДобавленияСпискаПолей();
ПараметрыДобавления.ИмяСписка = ИмяСпискаПолей();
ПараметрыДобавления.МестоРазмещенияСписка = Элементы.ГруппаДоступныеПоля;
ПараметрыДобавления.КоллекцииПолей = КоллекцииПолей(ИсточникиДанных.ВыгрузитьЗначения());
ПараметрыДобавления.КоллекцииПолей = КоллекцииПолей(ИсточникиДанных.ВыгрузитьЗначения(), ПараметрыРедактирования());
ПараметрыДобавления.ПодсказкаВводаСтрокиПоиска = ПодсказкаВводаСтрокиПоискаСпискаПолей();
ПараметрыДобавления.ПриОпределенииИсточниковДоступныхПолей = "УправлениеПечатью";
ПараметрыДобавления.ОбработчикиСписка.Вставить("Выбор", "Подключаемый_СписокПолейВыбор");
@@ -1747,7 +1747,12 @@
Объекты = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Образец);
ОтображаемыеПоля = ЗаполнитьСписокОтображаемыхПолей(КоллекцияПолей);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
Попытка
ДанныеПечати = МодульУправлениеПечатью.ДанныеПечати(Объекты, ОтображаемыеПоля, ТекущийЯзык);
Исключение
РазблокироватьДанныеДляРедактирования(КлючОбъектаРедактирования, УникальныйИдентификатор);
ВызватьИсключение ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
КонецПопытки;
ПолучитьСообщенияПользователю(Истина);
Иначе
Возврат;
@@ -1846,11 +1851,16 @@
КонецФункции
&НаСервереБезКонтекста
Функция КоллекцииПолей(ИсточникиДанных)
Функция КоллекцииПолей(ИсточникиДанных, ПараметрыРедактирования)
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
МодульУправлениеПечатью = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатью");
Попытка
Возврат МодульУправлениеПечатью.КоллекцииПолейИсточниковДанных(ИсточникиДанных);
Исключение
РазблокироватьДанныеДляРедактирования(ПараметрыРедактирования.КлючОбъектаРедактирования, ПараметрыРедактирования.УникальныйИдентификатор);
ВызватьИсключение ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
КонецПопытки
КонецЕсли;
Возврат Новый Массив;
@@ -2223,9 +2233,9 @@
ПараметрыПеретаскивания.Значение = МодульКонструкторФормулКлиент.ВыражениеДляВставки(Оператор);
Если Оператор.ПутьКДанным = "УправлениеПечатью_КоличествоСтрок" Тогда
ИмяТекущейТаблицы = ПолучитьИмяТекущейТаблицы();
Выполнение = ИмяТекущейТаблицы <> Неопределено;
ПараметрыПеретаскивания.Значение = СтрЗаменить(ПараметрыПеретаскивания.Значение, "()", "(["+ИмяТекущейТаблицы+"])");
ПредставлениеТекущейТаблицы = ПредставлениеТекущейТаблицы();
Выполнение = ПредставлениеТекущейТаблицы <> Неопределено;
ПараметрыПеретаскивания.Значение = СтрЗаменить(ПараметрыПеретаскивания.Значение, "()", "(["+ПредставлениеТекущейТаблицы+"])");
КонецЕсли;
КонецЕсли;
@@ -2301,12 +2311,12 @@
КонецФункции
&НаКлиенте
Функция ПолучитьИмяТекущейТаблицы()
Функция ПредставлениеТекущейТаблицы()
Для Каждого ПодключенныйСписокПолей Из ЭтотОбъект["ПодключенныеСпискиПолей"] Цикл
Если ПодключенныйСписокПолей.ИмяСпискаПолей <> ИмяСпискаОператоров() Тогда
Если Элементы[ПодключенныйСписокПолей.ИмяСпискаПолей].ТекущиеДанные <> Неопределено
И Элементы[ПодключенныйСписокПолей.ИмяСпискаПолей].ТекущиеДанные.Таблица Тогда
Возврат Элементы[ПодключенныйСписокПолей.ИмяСпискаПолей].ТекущиеДанные.ПутьКДанным;
Возврат Элементы[ПодключенныйСписокПолей.ИмяСпискаПолей].ТекущиеДанные.ПредставлениеПутиКДанным;
КонецЕсли;
КонецЕсли;
КонецЦикла;
@@ -2379,7 +2389,7 @@
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
МодульУправлениеПечатью = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатью");
МодульУправлениеПечатью.ОбновитьСписокДоступныхПолей(ЭтотОбъект,
КоллекцииПолей(ИсточникиДанных.ВыгрузитьЗначения()), ИмяСпискаПолей());
КоллекцииПолей(ИсточникиДанных.ВыгрузитьЗначения(), ПараметрыРедактирования()), ИмяСпискаПолей());
НастроитьПолеОбразец();
ОтметитьОбщиеПоля();
@@ -2501,6 +2511,14 @@
КонецЦикла;
КонецПроцедуры
&НаСервере
Функция ПараметрыРедактирования()
Результат = Новый Структура;
Результат.Вставить("КлючОбъектаРедактирования", КлючОбъектаРедактирования);
Результат.Вставить("УникальныйИдентификатор", УникальныйИдентификатор);
Возврат Результат;
КонецФункции
#КонецОбласти
@@ -139,6 +139,14 @@
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>BeforeAddRow</event>
<name>МеткиПередНачаломДобавления</name>
</handlers>
<handlers>
<event>BeforeDeleteRow</event>
<name>МеткиПередУдалением</name>
</handlers>
<handlers>
<event>OnChange</event>
<name>МеткиПриИзменении</name>
@@ -71,6 +71,21 @@
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура МеткиПередУдалением(Элемент, Отказ)
Отказ = Истина;
КонецПроцедуры
&НаКлиенте
Процедура МеткиПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, ЭтоГруппа, Параметр)
Отказ = Истина;
ОткрытьФормуСозданияМетки();
КонецПроцедуры
&НаКлиенте
Процедура ЗавершитьРедактирование(Команда)
@@ -93,23 +108,7 @@
&НаКлиенте
Процедура Создать(Команда)
ТекущиеДанные = Элементы.Метки.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Если ДоступныеНаборыСвойств.Количество() = 0 Тогда
Возврат;
КонецЕсли;
НаборСвойств = ДоступныеНаборыСвойств[0].Значение;
Иначе
НаборСвойств = ТекущиеДанные.Набор;
КонецЕсли;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("НаборСвойств", НаборСвойств);
ПараметрыФормы.Вставить("ВидСвойств", ПредопределенноеЗначение("Перечисление.ВидыСвойств.Метки"));
ПараметрыФормы.Вставить("ТекущийНаборСвойств", НаборСвойств);
ОткрытьФорму("ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ФормаОбъекта",
ПараметрыФормы, ЭтотОбъект);
ОткрытьФормуСозданияМетки()
КонецПроцедуры
@@ -148,6 +147,29 @@
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура ОткрытьФормуСозданияМетки()
ТекущиеДанные = Элементы.Метки.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Если ДоступныеНаборыСвойств.Количество() = 0 Тогда
Возврат;
КонецЕсли;
НаборСвойств = ДоступныеНаборыСвойств[0].Значение;
Иначе
НаборСвойств = ТекущиеДанные.Набор;
КонецЕсли;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("НаборСвойств", НаборСвойств);
ПараметрыФормы.Вставить("ВидСвойств", ПредопределенноеЗначение("Перечисление.ВидыСвойств.Метки"));
ПараметрыФормы.Вставить("ТекущийНаборСвойств", НаборСвойств);
ОткрытьФорму("ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ФормаОбъекта",
ПараметрыФормы, ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьМетки()
@@ -261,7 +261,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа7</value>
<value>Повторять на каждой странице</value>
</title>
<extendedTooltip>
<name>ПовторятьНаКаждойСтраницеРасширеннаяПодсказка</name>
@@ -293,7 +293,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа8</value>
<value>Добавляемые языки</value>
</title>
<extendedTooltip>
<name>ДобавляемыеЯзыкиРасширеннаяПодсказка</name>
@@ -525,7 +525,7 @@
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>КоманднаяПанель2</name>
<name>ВтораяКоманднаяПанель</name>
<id>392</id>
<items xsi:type="form:FormGroup">
<name>КомандыРедактирования</name>
@@ -1160,7 +1160,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа7</value>
<value>Вертикальное выравнивание</value>
</title>
<extendedTooltip>
<name>ВертикальноеВыравниваниеРасширеннаяПодсказка</name>
@@ -1805,7 +1805,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа7</value>
<value>Вертикальное выравнивание все действия</value>
</title>
<extendedTooltip>
<name>ВертикальноеВыравниваниеВсеДействияРасширеннаяПодсказка</name>
@@ -2345,7 +2345,7 @@
<locationInCommandBar>InCommandBarAndInAdditionalSubmenu</locationInCommandBar>
</items>
<items xsi:type="form:FormGroup">
<name>ТабличныйДокументГруппа1</name>
<name>ТабличныйДокументГруппаОбъединить</name>
<id>424</id>
<items xsi:type="form:Button">
<name>ТабличныйДокументОбъединить</name>
@@ -2384,7 +2384,7 @@
<value>Объединение ячеек</value>
</title>
<extendedTooltip>
<name>ТабличныйДокументГруппа1РасширеннаяПодсказка</name>
<name>ТабличныйДокументГруппаОбъединитьРасширеннаяПодсказка</name>
<id>425</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -2396,7 +2396,7 @@
<extInfo xsi:type="form:ButtonGroupExtInfo"/>
</items>
<items xsi:type="form:FormGroup">
<name>ТабличныйДокументГруппа3</name>
<name>ТабличныйДокументГруппаРаздвинуть</name>
<id>428</id>
<items xsi:type="form:Button">
<name>ТабличныйДокументРаздвинуть</name>
@@ -2462,7 +2462,7 @@
<value>Раздвинуть/разбить ячейку</value>
</title>
<extendedTooltip>
<name>ТабличныйДокументГруппа3РасширеннаяПодсказка</name>
<name>ТабличныйДокументГруппаРаздвинутьРасширеннаяПодсказка</name>
<id>429</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -2474,7 +2474,7 @@
<extInfo xsi:type="form:ButtonGroupExtInfo"/>
</items>
<items xsi:type="form:FormGroup">
<name>ТабличныйДокументГруппа2</name>
<name>ТабличныйДокументГруппаВставкаСтрок</name>
<id>426</id>
<items xsi:type="form:Button">
<name>ТабличныйДокументВставитьСтрокиСверху</name>
@@ -2570,10 +2570,10 @@
</userVisible>
<title>
<key>ru</key>
<value>Вставка строк</value>
<value>Вставка/удаление строк</value>
</title>
<extendedTooltip>
<name>ТабличныйДокументГруппа2РасширеннаяПодсказка</name>
<name>ТабличныйДокументГруппаВставкаСтрокРасширеннаяПодсказка</name>
<id>427</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -2585,7 +2585,7 @@
<extInfo xsi:type="form:ButtonGroupExtInfo"/>
</items>
<items xsi:type="form:FormGroup">
<name>ТабличныйДокументГруппа4</name>
<name>ТабличныйДокументГруппаВставкаКолонок</name>
<id>430</id>
<items xsi:type="form:Button">
<name>ТабличныйДокументВставитьКолонкиСлева</name>
@@ -2681,10 +2681,10 @@
</userVisible>
<title>
<key>ru</key>
<value>Вставка колонок</value>
<value>Вставка/удаление колонок</value>
</title>
<extendedTooltip>
<name>ТабличныйДокументГруппа4РасширеннаяПодсказка</name>
<name>ТабличныйДокументГруппаВставкаКолонокРасширеннаяПодсказка</name>
<id>431</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -2696,7 +2696,7 @@
<extInfo xsi:type="form:ButtonGroupExtInfo"/>
</items>
<items xsi:type="form:FormGroup">
<name>ТабличныйДокументГруппа5</name>
<name>ТабличныйДокументГруппаОчистка</name>
<id>432</id>
<items xsi:type="form:Button">
<name>ТабличныйДокументОчиститьВсе</name>
@@ -2762,7 +2762,7 @@
<value>Очистка ячеек</value>
</title>
<extendedTooltip>
<name>ТабличныйДокументГруппа5РасширеннаяПодсказка</name>
<name>ТабличныйДокументГруппаОчисткаРасширеннаяПодсказка</name>
<id>433</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -2778,7 +2778,7 @@
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ТабличныйДокументГруппа6</name>
<name>ТабличныйДокументГруппаСкрытьОтобразить</name>
<id>434</id>
<items xsi:type="form:Button">
<name>ТабличныйДокументСкрыть</name>
@@ -2844,7 +2844,7 @@
<value>Скрытие/отображение ячеек</value>
</title>
<extendedTooltip>
<name>ТабличныйДокументГруппа6РасширеннаяПодсказка</name>
<name>ТабличныйДокументГруппаСкрытьОтобразитьРасширеннаяПодсказка</name>
<id>435</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -2856,7 +2856,7 @@
<extInfo xsi:type="form:ButtonGroupExtInfo"/>
</items>
<items xsi:type="form:FormGroup">
<name>ТабличныйДокументГруппа7</name>
<name>ТабличныйДокументГруппаВысотаШирина</name>
<id>436</id>
<items xsi:type="form:Button">
<name>ТабличныйДокументВысотаСтрок</name>
@@ -2928,7 +2928,7 @@
<value>Высота строк и ширина колонок</value>
</title>
<extendedTooltip>
<name>ТабличныйДокументГруппа7РасширеннаяПодсказка</name>
<name>ТабличныйДокументГруппаВысотаШиринаРасширеннаяПодсказка</name>
<id>437</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -3710,7 +3710,7 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа7</value>
<value>Импорт экспорт</value>
</title>
<extendedTooltip>
<name>ИмпортЭкспортРасширеннаяПодсказка</name>
@@ -3812,7 +3812,7 @@
<value>Командная панель редактирование</value>
</title>
<extendedTooltip>
<name>КоманднаяПанель2РасширеннаяПодсказка</name>
<name>ВтораяКоманднаяПанельРасширеннаяПодсказка</name>
<id>393</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -4721,7 +4721,7 @@
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>Группа4</name>
<name>ГруппаТекстВыбраннойЯчейки</name>
<id>520</id>
<items xsi:type="form:FormField">
<name>ТекущееЗначение</name>
@@ -4782,7 +4782,7 @@
<value>Текст выбранной ячейки</value>
</title>
<extendedTooltip>
<name>Группа4РасширеннаяПодсказка</name>
<name>ГруппаТекстВыбраннойЯчейкиРасширеннаяПодсказка</name>
<id>521</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -4801,7 +4801,7 @@
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>Группа1</name>
<name>ГруппаУсловиеВывода</name>
<id>518</id>
<items xsi:type="form:FormField">
<name>УсловиеВывода</name>
@@ -4857,7 +4857,7 @@
<value>Условие вывода</value>
</title>
<extendedTooltip>
<name>Группа1РасширеннаяПодсказка</name>
<name>ГруппаУсловиеВыводаРасширеннаяПодсказка</name>
<id>519</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -140,7 +140,7 @@
ПараметрыДобавления = МодульКонструкторФормул.ПараметрыДобавленияСпискаПолей();
ПараметрыДобавления.ИмяСписка = ИмяСпискаПолей();
ПараметрыДобавления.МестоРазмещенияСписка = Элементы.ГруппаДоступныеПоля;
ПараметрыДобавления.КоллекцииПолей = КоллекцииПолей(ИсточникиДанных.ВыгрузитьЗначения());
ПараметрыДобавления.КоллекцииПолей = КоллекцииПолей(ИсточникиДанных.ВыгрузитьЗначения(), ПараметрыРедактирования());
ПараметрыДобавления.ПодсказкаВводаСтрокиПоиска = ПодсказкаВводаСтрокиПоискаСпискаПолей();
ПараметрыДобавления.ПриОпределенииИсточниковДоступныхПолей = "УправлениеПечатью";
ПараметрыДобавления.ОбработчикиСписка.Вставить("Выбор", "Подключаемый_СписокПолейВыбор");
@@ -1302,6 +1302,12 @@
КонецЕсли;
РазместитьРисунокВТабличномДокументе(ВыбранноеПоле, СтандартнаяОбработка, Область.Лево, Область.Верх);
Если СтандартнаяОбработка Тогда
СтандартнаяОбработка = Ложь;
Область = ТабличныйДокумент.Область(Область.Верх, Область.Лево); // Получение области объединенных ячеек.
Область.Текст = ?(ЗначениеЗаполнено(Область.Текст), СокрП(Область.Текст) + " ", "") + ПараметрыПеретаскивания.Значение;
КонецЕсли;
КонецЕсли;
ПолучательПеретаскиваемогоЗначения = Элемент;
@@ -1603,7 +1609,12 @@
Объекты = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Образец);
ОтображаемыеПоля = ЗаполнитьСписокОтображаемыхПолей(КоллекцияПолей);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
Попытка
ДанныеПечати = МодульУправлениеПечатью.ДанныеПечати(Объекты, ОтображаемыеПоля, ТекущийЯзык);
Исключение
РазблокироватьДанныеДляРедактирования(КлючОбъектаРедактирования, УникальныйИдентификатор);
ВызватьИсключение ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
КонецПопытки;
ПолучитьСообщенияПользователю(Истина);
Иначе
Возврат;
@@ -1793,11 +1804,16 @@
КонецПроцедуры
&НаСервереБезКонтекста
Функция КоллекцииПолей(ИсточникиДанных)
Функция КоллекцииПолей(ИсточникиДанных, ПараметрыРедактирования)
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
МодульУправлениеПечатью = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатью");
Попытка
Возврат МодульУправлениеПечатью.КоллекцииПолейИсточниковДанных(ИсточникиДанных);
Исключение
РазблокироватьДанныеДляРедактирования(ПараметрыРедактирования.КлючОбъектаРедактирования, ПараметрыРедактирования.УникальныйИдентификатор);
ВызватьИсключение ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
КонецПопытки
КонецЕсли;
Возврат Новый Массив;
@@ -2028,9 +2044,9 @@
Оператор = МодульКонструкторФормулКлиент.ВыбранноеПолеВСпискеПолей(ЭтотОбъект, ИмяСпискаОператоров());
ПараметрыПеретаскивания.Значение = МодульКонструкторФормулКлиент.ВыражениеДляВставки(Оператор);
Если Оператор.ПутьКДанным = "УправлениеПечатью_КоличествоСтрок" Тогда
ИмяТекущейТаблицы = ПолучитьИмяТекущейТаблицы();
Выполнение = ИмяТекущейТаблицы <> Неопределено;
ПараметрыПеретаскивания.Значение = СтрЗаменить(ПараметрыПеретаскивания.Значение, "()", "(["+ИмяТекущейТаблицы+"])");
ПредставлениеТекущейТаблицы = ПредставлениеТекущейТаблицы();
Выполнение = ПредставлениеТекущейТаблицы <> Неопределено;
ПараметрыПеретаскивания.Значение = СтрЗаменить(ПараметрыПеретаскивания.Значение, "()", "(["+ПредставлениеТекущейТаблицы+"])");
КонецЕсли;
КонецЕсли;
@@ -2104,12 +2120,12 @@
КонецПроцедуры
&НаКлиенте
Функция ПолучитьИмяТекущейТаблицы()
Функция ПредставлениеТекущейТаблицы()
Для Каждого ПодключенныйСписокПолей Из ЭтотОбъект["ПодключенныеСпискиПолей"] Цикл
Если ПодключенныйСписокПолей.ИмяСпискаПолей <> ИмяСпискаОператоров() Тогда
Если Элементы[ПодключенныйСписокПолей.ИмяСпискаПолей].ТекущиеДанные <> Неопределено
И Элементы[ПодключенныйСписокПолей.ИмяСпискаПолей].ТекущиеДанные.Таблица Тогда
Возврат Элементы[ПодключенныйСписокПолей.ИмяСпискаПолей].ТекущиеДанные.ПутьКДанным;
Возврат Элементы[ПодключенныйСписокПолей.ИмяСпискаПолей].ТекущиеДанные.ПредставлениеПутиКДанным;
КонецЕсли;
КонецЕсли;
КонецЦикла;
@@ -2757,7 +2773,7 @@
Элементы.ПосмотретьПечатнуюФорму.Пометка = Не Элементы.ПосмотретьПечатнуюФорму.Пометка;
Элементы.НастройкиТекущейОбласти.Видимость = Не Элементы.ПосмотретьПечатнуюФорму.Пометка;
Элементы.КоманднаяПанель2.Доступность = Не Элементы.ПосмотретьПечатнуюФорму.Пометка;
Элементы.ВтораяКоманднаяПанель.Доступность = Не Элементы.ПосмотретьПечатнуюФорму.Пометка;
Элементы.ПоказыватьКолонтитулы.Доступность = Не Элементы.ПосмотретьПечатнуюФорму.Пометка;
Элементы.ДействияСДокументом.Доступность = Не Элементы.ПосмотретьПечатнуюФорму.Пометка;
Элементы.Язык.Доступность = Не Элементы.ПосмотретьПечатнуюФорму.Пометка;
@@ -2969,7 +2985,7 @@
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
МодульУправлениеПечатью = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатью");
МодульУправлениеПечатью.ОбновитьСписокДоступныхПолей(ЭтотОбъект,
КоллекцииПолей(ИсточникиДанных.ВыгрузитьЗначения()), ИмяСпискаПолей());
КоллекцииПолей(ИсточникиДанных.ВыгрузитьЗначения(), ПараметрыРедактирования()), ИмяСпискаПолей());
НастроитьПолеОбразец();
ОтметитьОбщиеПоля();
@@ -3077,5 +3093,13 @@
КонецЦикла;
КонецПроцедуры
&НаСервере
Функция ПараметрыРедактирования()
Результат = Новый Структура;
Результат.Вставить("КлючОбъектаРедактирования", КлючОбъектаРедактирования);
Результат.Вставить("УникальныйИдентификатор", УникальныйИдентификатор);
Возврат Результат;
КонецФункции
#КонецОбласти
@@ -283,7 +283,7 @@
<name>ЗаполнитьПараметрыСервернойБазы</name>
<id>6</id>
<items xsi:type="form:FormGroup">
<name>ВертикальнаяГруппа1</name>
<name>ОсновныеПараметрыСервернойБазы</name>
<id>75</id>
<items xsi:type="form:FormField">
<name>Сервер</name>
@@ -600,10 +600,10 @@
</userVisible>
<title>
<key>ru</key>
<value>Вертикальная группа 1</value>
<value>Основные параметры серверной базы</value>
</title>
<extendedTooltip>
<name>ВертикальнаяГруппа1РасширеннаяПодсказка</name>
<name>ОсновныеПараметрыСервернойБазыРасширеннаяПодсказка</name>
<id>76</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -622,7 +622,7 @@
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ВертикальнаяГруппа2</name>
<name>ДополнительныеПараметрыСервернойБазы</name>
<id>77</id>
<items xsi:type="form:FormField">
<name>ТипСУБД</name>
@@ -933,10 +933,10 @@
</userVisible>
<title>
<key>ru</key>
<value>Вертикальная группа 2</value>
<value>Дополнительные параметры серверной базы</value>
</title>
<extendedTooltip>
<name>ВертикальнаяГруппа2РасширеннаяПодсказка</name>
<name>ДополнительныеПараметрыСервернойБазыРасширеннаяПодсказка</name>
<id>78</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -48,8 +48,11 @@
ЕстьВозможностьПрисоединения = Ложь;
КонецЕсли;
ЭлементПрисоединения = Элементы.ВариантСохранения.СписокВыбора.НайтиПоЗначению("Присоединить");
Если Не ЕстьВозможностьПрисоединения Тогда
Элементы.ВариантСохранения.СписокВыбора.Удалить(1);
Элементы.ВариантСохранения.СписокВыбора.Удалить(ЭлементПрисоединения);
ЭлементПрисоединения = Неопределено;
ВариантСохранения = "СохранитьВПапку";
Элементы.ВариантСохранения.ТолькоПросмотр = Истина;
КонецЕсли;
@@ -62,8 +65,8 @@
КонецЕсли;
Элементы.ПапкаДляСохраненияФайлов.Видимость = Параметры.РасширениеДляРаботыСФайламиПодключено;
Если Параметры.ОбъектыПечати.Количество() > 1 Тогда
Элементы.ВариантСохранения.СписокВыбора[1].Представление = НСтр("ru='Присоединить к документам'")
Если Параметры.ОбъектыПечати.Количество() > 1 И ЭлементПрисоединения <> Неопределено Тогда
ЭлементПрисоединения.Представление = НСтр("ru='Присоединить к документам'")
+ " (" + Формат(Параметры.ОбъектыПечати.Количество(), "ЧДЦ=0;") + ")";
КонецЕсли;
@@ -304,7 +304,7 @@
<excludedCommands>SortListDesc</excludedCommands>
<excludedCommands>Tree</excludedCommands>
<items xsi:type="form:FormGroup">
<name>СоставГруппировкиГруппа1</name>
<name>СоставГруппировкиОсновное</name>
<id>643</id>
<items xsi:type="form:FormField">
<name>СоставГруппировкиИспользование</name>
@@ -392,10 +392,10 @@
</userVisible>
<title>
<key>ru</key>
<value>Состав группировки группа 1</value>
<value>Основное</value>
</title>
<extendedTooltip>
<name>СоставГруппировкиГруппа1РасширеннаяПодсказка</name>
<name>СоставГруппировкиОсновноеРасширеннаяПодсказка</name>
<id>644</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -412,7 +412,7 @@
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>СоставГруппировкиГруппа2</name>
<name>СоставГруппировкиДополнительно</name>
<id>817</id>
<items xsi:type="form:FormField">
<name>СоставГруппировкиТипГруппировки</name>
@@ -511,10 +511,10 @@
</userVisible>
<title>
<key>ru</key>
<value>Состав группировки группа 2</value>
<value>Дополнительно</value>
</title>
<extendedTooltip>
<name>СоставГруппировкиГруппа2РасширеннаяПодсказка</name>
<name>СоставГруппировкиДополнительноРасширеннаяПодсказка</name>
<id>818</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -3204,7 +3204,7 @@
<excludedCommands>SortListDesc</excludedCommands>
<excludedCommands>Tree</excludedCommands>
<items xsi:type="form:FormGroup">
<name>ВыбранныеПоляГруппа1</name>
<name>ВыбранныеПоляГруппа</name>
<id>257</id>
<items xsi:type="form:FormField">
<name>ВыбранныеПоляИспользование</name>
@@ -3291,10 +3291,10 @@
</userVisible>
<title>
<key>ru</key>
<value>Выбранные поля группа 1</value>
<value>Группа</value>
</title>
<extendedTooltip>
<name>ВыбранныеПоляГруппа1РасширеннаяПодсказка</name>
<name>ВыбранныеПоляГруппаРасширеннаяПодсказка</name>
<id>258</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -4371,7 +4371,7 @@
<excludedCommands>SortListAsc</excludedCommands>
<excludedCommands>SortListDesc</excludedCommands>
<items xsi:type="form:FormGroup">
<name>СортировкаГруппа1</name>
<name>СортировкаГруппа</name>
<id>163</id>
<items xsi:type="form:FormField">
<name>СортировкаИспользование</name>
@@ -4459,10 +4459,10 @@
</userVisible>
<title>
<key>ru</key>
<value>Сортировка группа 1</value>
<value>Группа</value>
</title>
<extendedTooltip>
<name>СортировкаГруппа1РасширеннаяПодсказка</name>
<name>СортировкаГруппаРасширеннаяПодсказка</name>
<id>164</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -6366,7 +6366,7 @@
<excludedCommands>SortListDesc</excludedCommands>
<excludedCommands>Tree</excludedCommands>
<items xsi:type="form:FormGroup">
<name>СтруктураВариантаГруппа2</name>
<name>СтруктураВариантаГруппа</name>
<id>448</id>
<items xsi:type="form:FormField">
<name>СтруктураВариантаИспользование</name>
@@ -6452,10 +6452,10 @@
</userVisible>
<title>
<key>ru</key>
<value>Структура варианта группа 2</value>
<value>Группа</value>
</title>
<extendedTooltip>
<name>СтруктураВариантаГруппа2РасширеннаяПодсказка</name>
<name>СтруктураВариантаГруппаРасширеннаяПодсказка</name>
<id>449</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -1548,6 +1548,8 @@
Возврат;
КонецЕсли;
ФоновоеЗаданиеИдентификатор = Неопределено;
Если Результат = Неопределено Тогда
ПоказатьОшибкиФормирования(НСтр("ru = 'Формирование отчета прервано администратором'"));
@@ -1722,7 +1724,6 @@
УдалитьИзВременногоХранилища(ФоновоеЗаданиеАдресХранилища);
ФоновоеЗаданиеАдресХранилища = Неопределено;
ФоновоеЗаданиеИдентификатор = Неопределено;
Если Результат = Неопределено Тогда
ПоказатьОшибкиФормирования(НСтр("ru = 'Не удалось сформировать отчет (пустой результат)'"));
@@ -2437,9 +2438,12 @@
СвойстваПоиска = СвойстваУниверсальногоПоиска(
РеквизитПоля, ПараметрыПоиска.СтрокаПоиска, ПараметрыПоиска.УправляющиеСимволы);
ПутьКДаннымПредставление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
"%1.%2", ПолеПоиска.Значение, Выборка.ПолеПоУсловию);
ВариантыПоиска = Новый Массив;
ВариантыПоиска.Добавить(СвойстваПоиска);
ДополнительныеЗначения.Добавить(ВариантыПоиска, ПредставлениеРезультатПоиска(ПутьКДанным,
ДополнительныеЗначения.Добавить(ВариантыПоиска, ПредставлениеРезультатПоиска(ПутьКДаннымПредставление,
СвойстваПоиска.ВидСравнения, ПараметрыПоиска.СтрокаПоиска));
ИндексДополнительныхЗначений.Вставить(ПолеПоиска.Ключ, Истина);
@@ -2661,7 +2665,7 @@
ПолеПоУсловию = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
"КОГДА ВЫРАЗИТЬ(%1 КАК СТРОКА(150)) ПОДОБНО %2 СПЕЦСИМВОЛ ""~"" ТОГДА ""%3""", Поле.Имя, """%"
+ ОбщегоНазначения.СформироватьСтрокуДляПоискаВЗапросе(ПараметрыПоиска.СтрокаПоискаНормализованная) + "%""",
Поле.Имя);
ПредставлениеПоля(Поле.Имя, Объект));
ОписаниеПоляПоУсловию.Добавить(ПолеПоУсловию);
КонецЦикла;
@@ -2678,6 +2682,29 @@
КонецФункции
&НаСервереБезКонтекста
Функция ПредставлениеПоля(ИмяПоля, Объект)
РеквизитОбъекта = Объект.Реквизиты.Найти(ИмяПоля);
Если РеквизитОбъекта = Неопределено Тогда
Для каждого СтандартныйРеквизит Из Объект.СтандартныеРеквизиты Цикл
Если СтрСравнить(СтандартныйРеквизит.Имя, ИмяПоля) = 0 Тогда
РеквизитОбъекта = СтандартныйРеквизит;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если РеквизитОбъекта <> Неопределено Тогда
Возврат РеквизитОбъекта.Представление();
КонецЕсли;
Возврат ИмяПоля;
КонецФункции
// Параметры:
// Объект - ОбъектМетаданных
// ПараметрыПоиска - Структура:
@@ -2751,8 +2778,8 @@
ДополнительныеДанные = Новый Массив;
Исключения = Новый Массив;
Исключения.Добавить(НСтр("ru = 'Наименование'"));
Исключения.Добавить(НСтр("ru = 'Номер'"));
Исключения.Добавить("Наименование");
Исключения.Добавить("Номер");
Поля = Объект.ВводПоСтроке; // СписокПолей
@@ -2768,7 +2795,7 @@
Продолжить;
КонецЕсли;
Данные = """" + Поле.Имя + ": "" + " + Поле.Имя;
Данные = """" + ПредставлениеПоля(Поле.Имя, Объект) + ": "" + " + Поле.Имя;
ДополнительныеДанные.Добавить(Данные);
КонецЦикла;
@@ -412,6 +412,7 @@
<dataPath xsi:type="form:DataPath">
<segments>СрокДействияПоследнейМеткиВремени</segments>
</dataPath>
<titleHeight>2</titleHeight>
<extendedTooltip>
<name>СрокДействияПоследнейМеткиВремениРасширеннаяПодсказка</name>
<id>51</id>
@@ -75,11 +75,10 @@
КонецПроцедуры
// Локализация
&НаКлиенте
Процедура Подключаемый_КомандаОтметитьВручную(Элемент)
СтандартнаяОбработка = Ложь;
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.МашиночитаемыеДоверенности") Тогда
МодульМашиночитаемыеДоверенностиФНССлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль(
"МашиночитаемыеДоверенностиФНССлужебныйКлиент");
@@ -88,6 +87,17 @@
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.МашиночитаемыеДоверенности") Тогда
МодульМашиночитаемыеДоверенностиФНССлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль(
"МашиночитаемыеДоверенностиФНССлужебныйКлиент");
МодульМашиночитаемыеДоверенностиФНССлужебныйКлиент.ПриОбработкеНавигационнойСсылкиОшибкиПроверкиПодписи(ЭтотОбъект, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
// Конец Локализация
#КонецОбласти
@@ -934,7 +934,7 @@
Возврат Результат;
КонецЕсли;
ЗаполнитьАктуальныеАдресныеСведенияСервис1С(Результат, СведенияОбАдресномОбъекте.Идентификатор,
ЗаполнитьАктуальныеАдресныеСведенияСервис1С(Результат, СведенияОбАдресномОбъекте,
ЭтоМуниципальныйАдрес);
Если АдресПустой(Результат.Данные) Тогда
@@ -6749,16 +6749,29 @@
// Заполнение актуальных данных адресного объекта или ориентира по данным сервиса 1С.
// Пример: GET /selectByCode?code=111111&codeType=ID.
//
Процедура ЗаполнитьАктуальныеАдресныеСведенияСервис1С(Результат, Идентификатор, ЭтоМуниципальныйАдрес = Истина)
Процедура ЗаполнитьАктуальныеАдресныеСведенияСервис1С(Результат, СведенияОбАдресномОбъекте, ЭтоМуниципальныйАдрес = Истина)
Идентификатор = СведенияОбАдресномОбъекте.Идентификатор;
РезультатВебСервис = АдресныеСведенияСервис1СПоКоду(Результат, Идентификатор, "ID");
Если РезультатВебСервис.Отказ Тогда
Если РезультатВебСервис.Отказ Или РезультатВебСервис.Данные.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Если РезультатВебСервис.Данные.Количество() > 0 Тогда
Если РезультатВебСервис.Данные.Количество() = 1 Тогда
Результат.Данные = АдресДляСохраненияВБазе(РезультатВебСервис.Данные[0], ЭтоМуниципальныйАдрес);
Иначе
// Для городов содержащих несколько вн.р-н внутри города и нужно выбрать ранее введенный.
ВыбранныйАдрес = РезультатВебСервис.Данные[0];
Для каждого АдресИзВебСервиса Из РезультатВебСервис.Данные Цикл
Если СтрСравнить(АдресИзВебСервиса.settlement, СведенияОбАдресномОбъекте.Адрес.settlement) = 0
И СтрСравнить(АдресИзВебСервиса.settlementType, СведенияОбАдресномОбъекте.Адрес.settlementType) =0 Тогда
ВыбранныйАдрес = АдресИзВебСервиса;
Прервать;
КонецЕсли;
КонецЦикла;
Результат.Данные = АдресДляСохраненияВБазе(ВыбранныйАдрес, ЭтоМуниципальныйАдрес);
КонецЕсли;
КонецПроцедуры
@@ -579,7 +579,7 @@
ПараметрыОбработчика = Новый Структура;
ПараметрыОбработчика.Вставить("Форма", Форма);
ПараметрыОбработчика.Вставить("Команда", Команда);
ПараметрыОбработчика.Вставить("ДействиеКоманды", ДействиеКоманды(Команда));
ПараметрыОбработчика.Вставить("СвойстваЗаголовка", СвойстваЗаголовка);
Обработчик = Новый ОписаниеОповещения("ПослеИзмененияЭлементаОформленияГруппировкиОтчета", ЭтотОбъект, ПараметрыОбработчика);
@@ -2139,7 +2139,6 @@
КонецЕсли;
Форма = ДополнительныеПараметры.Форма;
Команда = ДополнительныеПараметры.Команда;
СвойстваЗаголовка = ДополнительныеПараметры.СвойстваЗаголовка;
Настройки = ИспользуемыеНастройки(Форма);
@@ -2164,7 +2163,7 @@
ОформитьГруппировкуРазделаОтчета(Раздел, Раздел2, Результат.ЭлементКД, СвойстваЗаголовка);
КонецЕсли;
ОповеститьОЗавершенииКонтекстнойНастройки(Форма, ДействиеКоманды(Команда));
ОповеститьОЗавершенииКонтекстнойНастройки(Форма, ДополнительныеПараметры.ДействиеКоманды);
КонецПроцедуры
@@ -2348,7 +2347,7 @@
Действие = ДополнительныеПараметры.Действие;
РолиПолей = Форма.НастройкиОтчета.СвойстваРезультата.РолиПолей;
Если СтрНачинаетсяС(Действие, "ВставитьПоле") Тогда
Если СтрСравнить(Действие, "ВставитьПолеСлева") = 0 Или СтрСравнить(Действие, "ВставитьПолеСправа") = 0 Тогда
ДобавитьФормулу(Настройки, Настройки.ДоступныеПоляВыбора, Поле);
ВставитьПоле(Настройки, Настройки2, Поле, Действие, СвойстваЗаголовка, РолиПолей);
@@ -7526,7 +7526,6 @@
БлокировкаДанных = Новый БлокировкаДанных;
ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.КонтактыВзаимодействий");
ЭлементБлокировкиДанных.УстановитьЗначение("Взаимодействие", ДокументОбъект.Ссылка);
ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный;
БлокировкаДанных.Заблокировать();
НаборЗаписей = РегистрыСведений.КонтактыВзаимодействий.СоздатьНаборЗаписей();
@@ -0,0 +1,46 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2023, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область СлужебныйПрограммныйИнтерфейс
// Параметры:
// Оповещение - ОписаниеОповещения
// Контекст - Структура:
// * ТекстПояснения - Строка
// * Идентификатор - Строка
// * Версия - Строка
// - Неопределено
// * ОбновлятьАвтоматически - Булево
//
Процедура ПоискКомпонентыНаПортале(Оповещение, Контекст) Экспорт
// Локализация
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ТекстПояснения", Контекст.ТекстПояснения);
ПараметрыФормы.Вставить("Идентификатор", Контекст.Идентификатор);
ПараметрыФормы.Вставить("Версия", Контекст.Версия);
ПараметрыФормы.Вставить("ОбновлятьАвтоматически", Контекст.ОбновлятьАвтоматически);
ОткрытьФорму("Справочник.ВнешниеКомпоненты.Форма.ПоискКомпонентыНаПортале1СИТС",
ПараметрыФормы,,,,, Оповещение)
// Конец Локализация
КонецПроцедуры
Процедура ОбновитьКомпонентыСПортала(Оповещение, ОбновляемыеКомпоненты) Экспорт
// Локализация
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ОбновляемыеКомпоненты", ОбновляемыеКомпоненты);
ОткрытьФорму("Справочник.ВнешниеКомпоненты.Форма.ОбновлениеКомпонентСПортала1СИТС",
ПараметрыФормы,,,,, Оповещение);
// Конец Локализация
КонецПроцедуры
#КонецОбласти
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="c96b58a2-db6e-4a0f-82fd-fc115a169b18">
<name>ВнешниеКомпонентыКлиентЛокализация</name>
<synonym>
<key>ru</key>
<value>Внешние компоненты клиент локализация</value>
</synonym>
<clientManagedApplication>true</clientManagedApplication>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>
@@ -471,11 +471,12 @@
Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.6.48";
Обработчик.Версия = "3.1.9.163";
Обработчик.Идентификатор = Новый УникальныйИдентификатор("cb3e8653-f1d2-4439-afdd-b1d27f6dcc2f");
Обработчик.Процедура = "Справочники.ВнешниеКомпоненты.ОбработатьДанныеДляПереходаНаНовуюВерсию";
Обработчик.НачальноеЗаполнение = Истина;
Обработчик.Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Заполнение реквизитов ""%1"", ""%2"", ""%3"", которые ранее ошибочно были не заполнены'"),
НСтр("ru = 'Заполнение реквизитов ""%1"", ""%2"", ""%3"", которые ранее ошибочно были не заполнены, а также регистрация стандартных компонент для их автоматического обновления.'"),
"MacOS_x86_64_Safari", "MacOS_x86_64_Chrome", "MacOS_x86_64_Firefox");
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.ВнешниеКомпоненты.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию";
@@ -76,7 +76,8 @@
ЭтотОбъект,
КонтекстПоиска);
ПоискКомпонентыНаПортале(ОповещениеФормы, Контекст);
Оповещение = Новый ОписаниеОповещения("ПоискКомпонентыНаПорталеПриФормированииРезультата", ЭтотОбъект, ОповещениеФормы);
ВнешниеКомпонентыКлиентЛокализация.ПоискКомпонентыНаПортале(Оповещение, Контекст);
Иначе
Результат.ОписаниеОшибки = НСтр("ru = 'Компонента отсутствует в списке разрешенных внешних компонент.'");
@@ -951,30 +952,6 @@
#Область ПоискКомпонентыНаПортале
// Параметры:
// Оповещение - ОписаниеОповещения
// Контекст - Структура:
// * ТекстПояснения - Строка
// * Идентификатор - Строка
// * Версия - Строка
// - Неопределено
// * ОбновлятьАвтоматически - Булево
//
Процедура ПоискКомпонентыНаПортале(Оповещение, Контекст)
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ТекстПояснения", Контекст.ТекстПояснения);
ПараметрыФормы.Вставить("Идентификатор", Контекст.Идентификатор);
ПараметрыФормы.Вставить("Версия", Контекст.Версия);
ПараметрыФормы.Вставить("ОбновлятьАвтоматически", Контекст.ОбновлятьАвтоматически);
ОповещениеФормы = Новый ОписаниеОповещения("ПоискКомпонентыНаПорталеПриФормированииРезультата", ЭтотОбъект, Оповещение);
ОткрытьФорму("Справочник.ВнешниеКомпоненты.Форма.ПоискКомпонентыНаПортале1СИТС",
ПараметрыФормы,,,,, ОповещениеФормы)
КонецПроцедуры
Процедура ПоискКомпонентыНаПорталеПриФормированииРезультата(Результат, Оповещение) Экспорт
Загружена = (Результат = Истина); // При закрытии формы будет Неопределено.
@@ -992,11 +969,8 @@
//
Процедура ОбновитьКомпонентыСПортала(Оповещение, ОбновляемыеКомпоненты) Экспорт
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ОбновляемыеКомпоненты", ОбновляемыеКомпоненты);
ОповещениеФормы = Новый ОписаниеОповещения("ОбновитьКомпонентыСПорталаПриФормированииРезультата", ЭтотОбъект, Оповещение);
ОткрытьФорму("Справочник.ВнешниеКомпоненты.Форма.ОбновлениеКомпонентСПортала1СИТС",
ПараметрыФормы,,,,, ОповещениеФормы);
ВнешниеКомпонентыКлиентЛокализация.ОбновитьКомпонентыСПортала(ОповещениеФормы, ОбновляемыеКомпоненты);
КонецПроцедуры
@@ -764,10 +764,6 @@
//
Процедура ПеренестиЗащищаемыеОбластиПерсональныхДанных(ПараметрыОбновления) Экспорт
Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
Возврат;
КонецЕсли;
ПараметрыОбновления.ОбработкаЗавершена = Ложь;
Блокировка = Новый БлокировкаДанных();
@@ -1962,6 +1962,11 @@
МодульНапоминанияПользователяСлужебный.ПриДобавленииСерверныхОповещений(Оповещения);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.МашиночитаемыеДоверенности") Тогда
МодульМашиночитаемыеДоверенностиФНССлужебный = ОбщегоНазначения.ОбщийМодуль("МашиночитаемыеДоверенностиФНССлужебный");
МодульМашиночитаемыеДоверенностиФНССлужебный.ПриДобавленииСерверныхОповещений(Оповещения);
КонецЕсли;
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриДобавленииСерверныхОповещений Тогда
МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС");
МодульИнтеграцияПодсистемБТС.ПриДобавленииСерверныхОповещений(Оповещения);
@@ -793,7 +793,8 @@
|Версия календарей
|- полученного классификатора %1,
|- встроенных в конфигурацию %2,
|- загруженного ранее классификатора %3.'"),
|- загруженного ранее классификатора %3.
|Рекомендуется выполнить обновление классификаторов.'"),
СведенияФайла.Версия,
ВерсияКалендарей(),
ВерсияЗагруженныхКалендарей());
@@ -101,14 +101,14 @@
// "ДоверительИНН", "ДоверительКПП", "ДоверительОрганизация", "ДоверительФизическоеЛицо" и т.п.
// По умолчанию будут подобраны доверенности с признаками Верна, Подписана и статусом Действует.
// Если значение отбора Неопределено, отбор по полю не производится.
// ВыбранныеПоля - Массив из Строка - поля, которые нужно возвращать.
// ВыбранныеПоля - Массив из Строка, Строка - массив строк или строка через запятую: поля, которые нужно возвращать.
// НаДату - Дата - по умолчанию - текущая дата сеанса: дата, на которую определяется действительность доверенности.
// Если передана пустая дата, отбор по периоду действия не будет использоваться.
//
// Возвращаемое значение:
// ТаблицаЗначений
//
Функция ДоверенностиСОтбором(Отбор, ВыбранныеПоля, Знач НаДату = Неопределено) Экспорт
Функция ДоверенностиСОтбором(Отбор, Знач ВыбранныеПоля, Знач НаДату = Неопределено) Экспорт
СтруктураОтборов = Новый Структура;
СтруктураОтборов.Вставить("Верна", Истина);
@@ -127,6 +127,8 @@
ВыбранныеПоля.Добавить("НомерДоверенности");
ВыбранныеПоля.Добавить("Наименование");
ВыбранныеПоля.Добавить("ДатаВыдачи");
ИначеЕсли ТипЗнч(ВыбранныеПоля) = Тип("Строка") Тогда
ВыбранныеПоля = СтрРазделить(ВыбранныеПоля, ", ", Ложь);
КонецЕсли;
Если НаДату = Неопределено Тогда
@@ -313,7 +315,7 @@
ВидУчастника = ?(ЭтоИндивидуальныйПредприниматель, "ИндивидуальныйПредприниматель", "ДолжностноеЛицо");
Реквизиты = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.РеквизитыУчастника(ТипЭлемента, ФизическоеЛицо, ВидУчастника);
Если Не ЭтоИндивидуальныйПредприниматель И ЗначениеЗаполнено(Должность) Тогда
Реквизиты.ДолжностьЛицаБезДоверенности = Должность;
Реквизиты.ДолжностьЛицаДоверителя = Должность;
КонецЕсли;
Возврат Реквизиты;
@@ -352,7 +354,7 @@
КонецФункции
// Результат проверки подписи по МЧД.
// Проверяет записанную в базу подпись на соответствие подписанту, документу, действие доверенности на дату подписи.
//
// Параметры:
// ПодписанныйОбъект - ОпределяемыйТип.ПодписанныйОбъект - ссылка на подписанный объект.
@@ -383,6 +385,7 @@
Запрос.Текст =
"ВЫБРАТЬ
| ЭлектронныеПодписиМЧД.МашиночитаемаяДоверенность КАК Ссылка,
| ПРЕДСТАВЛЕНИЕ(ЭлектронныеПодписиМЧД.МашиночитаемаяДоверенность) КАК Представление,
| МашиночитаемыеДоверенности.ФайлДоверенности КАК ФайлДоверенности,
| МашиночитаемыеДоверенности.Статус КАК Статус,
| МашиночитаемыеДоверенности.Верна КАК Верна,
@@ -87,7 +87,15 @@
// # ЕстьВсеПодписи - Булево - есть все подписи доверителей.
// # Статус - ПеречислениеСсылка.СтатусыМЧД
// # ЕстьВРеестреФНС - Булево
// # ТекстОшибки - Строка
// # ТекстОшибки - Строка - ошибки строкой
// # ОписаниеОшибок - Структура - содержит ошибки выполнения проверок:
// ## ОписаниеОшибки - Строка - полное описание ошибки, когда оно возвращается строкой.
// ## ЗаголовокОшибки - Строка - заголовок ошибки, который соответствует операции
// когда операция одна (не заполнен, когда операций несколько).
// ## Ошибки - Массив из Структура:
// ### ЗаголовокОшибки - Строка - заголовок ошибки, который соответствует операции
// когда операций несколько (не заполнен, когда операция одна).
// ### Описание - Строка - краткое представление ошибки.
// # РезультатыПроверкиПодписей - Массив из Структура:
// ## Верна - Булево
// ## КомуВыданСертификат - Строка
@@ -71,6 +71,35 @@
//
Процедура ПриПроверкеДоверенности(Оповещение, Доверенность, ИдентификаторФормы, СтандартнаяОбработка) Экспорт
КонецПроцедуры
// При обработке навигационной ссылки состояния в другом реестре в форме машиночитаемой доверенности,
// сформированной в МашиночитаемыеДоверенностиФНСПереопределяемый.ПриПолученииСтатусаРегистрации
//
// Параметры:
// Доверенность - СправочникОбъект.МашиночитаемыеДоверенности
// НавигационнаяСсылкаФорматированнойСтроки - Строка
// СтандартнаяОбработка - Булево
//
Процедура ПриОбработкеНавигационнойСсылки(Доверенность, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) Экспорт
КонецПроцедуры
// Вызывается при изменении статуса доверенности, например, когда статус обновляется из реестра ФНС, для обработки
// изменившегося статуса доверенности. К примеру, в процедуре можно сообщить о том, что доверенность готова и
// можно продолжить отправку отчетности или документов по ЭДО.
//
// Параметры:
// СтатусыДоверенностей - Соответствие из КлючИЗначение:
// * Ключ - СправочникСсылка.МашиночитаемыеДоверенности - доверенность с изменившимся статусом
// * Значение - Структура:
// ** СтатусДоИзменения - ПеречислениеСсылка.ТехническиеСтатусыМЧД
// ** НовыйСтатус - ПеречислениеСсылка.ТехническиеСтатусыМЧД
//
Процедура ПриИзмененииСтатусаДоверенности(СтатусыДоверенностей) Экспорт
КонецПроцедуры
#КонецОбласти
@@ -124,20 +124,6 @@
КонецПроцедуры
// Вызывается при изменении статуса доверенности, например, когда статус обновляется из реестра ФНС, для обработки
// изменившегося статуса доверенности.
//
// Параметры:
// СтатусыДоверенностей - Соответствие из КлючИЗначение:
// * Ключ - СправочникСсылка.МашиночитаемыеДоверенности - доверенность с изменившимся статусом
// * Значение - Структура:
// ** СтатусДоИзменения - ПеречислениеСсылка.ТехническиеСтатусыМЧД
// ** НовыйСтатус - ПеречислениеСсылка.ТехническиеСтатусыМЧД
//
Процедура ПриИзмененииСтатусаДоверенности(СтатусыДоверенностей) Экспорт
КонецПроцедуры
// Для выполнения прикладной проверки подписи по доверенности. Например, проверка соответствия реквизитов доверителя
@@ -147,8 +133,8 @@
// ДанныеДоверенности - Структура, ВыборкаИзРезультатаЗапроса:
// * Ссылка - СправочникСсылка.МашиночитаемыеДоверенности
// * ПодписанныйОбъект - ОпределяемыйТип.ПодписанныйОбъект - ссылка на подписанный объект.
// * Полномочия - ТаблицаЗначений - содержит реквизиты табличной части Полномочия справочника МашиночитаемыеДоверенности.
// * Ограничения - ТаблицаЗначений - содержит реквизиты табличной части Ограничения справочника МашиночитаемыеДоверенности.
// * Полномочия - ТаблицаЗначений, РезультатЗапроса - содержит реквизиты табличной части Полномочия справочника МашиночитаемыеДоверенности.
// * Ограничения - ТаблицаЗначений, РезультатЗапроса - содержит реквизиты табличной части Ограничения справочника МашиночитаемыеДоверенности.
// Сертификат - см. МашиночитаемыеДоверенностиФНС.ОтборДляДоверенностейПоСертификату.Сертификат
// ПротоколПроверки - Соответствие из КлючИЗначение:
// * Ключ - Строка - ключ проверки, для проверки полномочий и документа в протокол добавлены значения
@@ -157,6 +143,39 @@
//
Процедура ПриПроверкеДоверенностиПодписи(ДанныеДоверенности, Сертификат, ПротоколПроверки) Экспорт
КонецПроцедуры
// Переопределяет описание состояния доверенности в реестре Федеральной таможенной службы или другом.
//
// Параметры:
// Доверенность - СправочникСсылка.МашиночитаемыеДоверенности
// РегистрацияВРеестре - Структура:
// *ПоказыватьРегистрироватьВРеестре - Булево - показывать флажок Регистрировать в реестре
// *ЗарегистрированаВРеестре - Булево
// *СостояниеРегистрации - Строка, ФорматированнаяСтрока - если ЗарегистрированаВРеестре = Истина,
// тогда отображается в шапке, иначе около флажка регистрации.
// *ЗаголовокФлажкаРегистрации - Строка - заголовок флажка
// *ПолномочияПриОткрытии - Неопределено, Массив из Строка - список кодов полномочий, переданных в параметре при открытии
// формы. Можно анализировать и не отображать флажок регистрации, если полномочия относятся к другой подсистеме.
// *ВыбранныеПолномочия - Структура:
// ** Полномочия - ТаблицаЗначений
// ** Ограничения - ТаблицаЗначений
// *КодыПолномочийДляДобавления - Массив из Строка - коды полномочий, которые предлагать добавить при выборе флажка регистрации.
// Если одно из них уже выбрано, предложение о добавлении не выводится.
//
Процедура ПриПолученииСтатусаРегистрации(Доверенность, РегистрацияВРеестре) Экспорт
КонецПроцедуры
// Переопределяет процедуру регистрации в реестре Федеральной таможенной службы или другом.
//
// Параметры:
// Доверенность - СправочникСсылка.МашиночитаемыеДоверенности
//
Процедура ПриРегистрацииДоверенности(Доверенность) Экспорт
КонецПроцедуры
#КонецОбласти
@@ -24,6 +24,7 @@
"ВЫБРАТЬ
| ЭлектронныеПодписиМЧД.ИдентификаторПодписи КАК ИдентификаторПодписи,
| ЭлектронныеПодписиМЧД.МашиночитаемаяДоверенность КАК МашиночитаемаяДоверенность,
| ПРЕДСТАВЛЕНИЕ(ЭлектронныеПодписиМЧД.МашиночитаемаяДоверенность) КАК Представление,
| ЭлектронныеПодписиМЧД.ТребуетсяПроверка КАК ТребуетсяПроверка,
| ЭлектронныеПодписиМЧД.ДатаПроверки КАК ДатаПроверки,
| ЭлектронныеПодписиМЧД.Верна КАК Верна,
@@ -96,7 +97,7 @@
Массив.Добавить(СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru = '%1 <a href=%2>%3</a>'"),
Проверка,
ПолучитьНавигационнуюСсылку(Результат.МашиночитаемаяДоверенность),
Результат.МашиночитаемаяДоверенность));
Результат.Представление));
Массив.Добавить(Символы.ПС);
КонецЦикла;
@@ -144,7 +145,7 @@
Элемент = Форма.Элементы.Добавить("СсылкаНаМЧД" + Индекс, Тип("ДекорацияФормы"), ГруппаПротоколПроверки);
Элемент.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru = '<a href=%1>%2</a>'"),
ПолучитьНавигационнуюСсылку(Результат.МашиночитаемаяДоверенность),
Результат.МашиночитаемаяДоверенность);
Результат.Представление);
Элемент.АвтоМаксимальнаяШирина = Ложь;
ГруппаАвтоматическиеПроверки = Форма.Элементы.Добавить("ГруппаАвтоматическиеПроверки" + Индекс, Тип("ГруппаФормы"), ГруппаПротоколПроверки);
@@ -218,16 +219,24 @@
Элемент.Картинка = ?(Проверка.Верна, БиблиотекаКартинок.ПроверкаСертификатаУспех, БиблиотекаКартинок.ПроверкаСертификатаОшибка);
КонецЕсли;
Если ЗначениеЗаполнено(Проверка.ТекстПроверки) И Не Результат.СтатусВернаУстановленВручную Тогда
Элемент = Форма.Элементы.Добавить("ТекстПроверки" + ПолеВывода + Индекс, Тип("ДекорацияФормы"), ГруппаПроверкаЗаголовок);
Элемент = Форма.Элементы.Добавить("ЗаголовокПроверки" + ПолеВывода + Индекс, Тип("ДекорацияФормы"), ГруппаПроверкаЗаголовок);
Элемент.Вид = ВидДекорацииФормы.Надпись;
Элемент.АвтоМаксимальнаяШирина = Ложь;
Элемент.МаксимальнаяШирина = 50;
Если Проверка.Верна <> Истина И ЗначениеЗаполнено(Проверка.ТекстПроверки) И Не Результат.СтатусВернаУстановленВручную Тогда
Элемент.УстановитьДействие("ОбработкаНавигационнойСсылки", "Подключаемый_ОбработкаНавигационнойСсылки");
Элемент.Заголовок = СтроковыеФункции.ФорматированнаяСтрока("<a href = ""%1"">%2</a>", Проверка.ТекстПроверки, Проверка.ЗаголовокПроверки);
Элемент = Форма.Элементы.Добавить("ТекстПроверки" + ПолеВывода + Индекс, Тип("ДекорацияФормы"), ГруппаПроверка);
Элемент.Вид = ВидДекорацииФормы.Надпись;
Элемент.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(Проверка.ТекстПроверки);
Элемент.АвтоМаксимальнаяШирина = Ложь;
Элемент.МаксимальнаяШирина = 60;
Иначе
Элемент = Форма.Элементы.Добавить("ЗаголовокПроверки" + ПолеВывода + Индекс, Тип("ДекорацияФормы"), ГруппаПроверкаЗаголовок);
Элемент.Вид = ВидДекорацииФормы.Надпись;
Элемент.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(Проверка.ЗаголовокПроверки);
Элемент.АвтоМаксимальнаяШирина = Ложь;
Элемент.Заголовок = Проверка.ЗаголовокПроверки;
КонецЕсли;
КонецЦикла;
@@ -398,15 +407,15 @@
НаборЗаписей = РегистрыСведений.ЭлектронныеПодписиМЧД.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.ПодписанныйОбъект.Установить(ПодписанныйОбъект);
НаборЗаписей.Отбор.ИдентификаторПодписи.Установить(ИдентификаторПодписи);
НаборЗаписей.Отбор.МашиночитаемаяДоверенность.Установить(РезультатПроверкиПодписиПоМЧД.МашиночитаемаяДоверенность);
НаборЗаписей.Отбор.МашиночитаемаяДоверенность.Установить(Результат.МашиночитаемаяДоверенность);
НаборЗаписей.Прочитать();
НаборЗаписей.Очистить();
НоваяЗапись = НаборЗаписей.Добавить();
ЗаполнитьЗначенияСвойств(НоваяЗапись, РезультатПроверкиПодписиПоМЧД);
ЗаполнитьЗначенияСвойств(НоваяЗапись, Результат);
Если ЗначениеЗаполнено(РезультатПроверкиПодписиПоМЧД.ПротоколПроверки) Тогда
НоваяЗапись.ПротоколПроверки = Новый ХранилищеЗначения(РезультатПроверкиПодписиПоМЧД.ПротоколПроверки);
Если ЗначениеЗаполнено(Результат.ПротоколПроверки) Тогда
НоваяЗапись.ПротоколПроверки = Новый ХранилищеЗначения(Результат.ПротоколПроверки);
КонецЕсли;
НоваяЗапись.ПодписанныйОбъект = ПодписанныйОбъект;
@@ -536,11 +545,7 @@
Функция РезультатПроверкиПодписиПоМЧД(Доверенность, ПодписанныйОбъект, Сертификат, НаДату = Неопределено, Знач ГотовыеПроверки = Неопределено) Экспорт
РеквизитыДоверенности = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Доверенность,
"ФайлДоверенности, РегистрироватьВРеестре, НомерДоверенности, Статус, Ссылка, Верна, СтатусВернаУстановленВручную, УстановившийСтатусВерна, Полномочия, Ограничения, СовместныеПолномочия");
РеквизитыДоверенности.Вставить("ПодписанныйОбъект", ПодписанныйОбъект);
Возврат РезультатПроверкиПодписиПоДаннымМЧД(РеквизитыДоверенности, Сертификат, НаДату, ГотовыеПроверки);
Возврат РезультатПроверкиПодписиПоДаннымМЧД(ДанныеМЧД(Доверенность, ПодписанныйОбъект), Сертификат, НаДату, ГотовыеПроверки);
КонецФункции
@@ -549,6 +554,7 @@
// Параметры:
// ДанныеМЧД - Структура, ВыборкаИзРезультатаЗапроса:
// * ПодписанныйОбъект
// * Представление
// * ФайлДоверенности
// * РегистрироватьВРеестре
// * НомерДоверенности
@@ -576,6 +582,7 @@
ДатаПроверки = ТекущаяДатаСеанса();
РезультатПроверкиПодписиПоМЧД = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.РезультатПроверкиПодписиПоМЧД(
ДанныеМЧД.Ссылка);
РезультатПроверкиПодписиПоМЧД.Представление = ДанныеМЧД.Представление;
Если ГотовыеПроверки = Неопределено Или ГотовыеПроверки.ПроверкаДоверенности = Неопределено Тогда
ПроверкаДоверенности = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.РезультатПроверкиДоверенности(
@@ -634,10 +641,51 @@
КонецФункции
// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииСерверныхОповещений
Процедура ПриДобавленииСерверныхОповещений(Оповещения) Экспорт
Оповещение = СерверныеОповещения.НовоеСерверноеОповещение(
"СтандартныеПодсистемы.МашиночитаемыеДоверенности");
Оповещение.ИмяМодуляОтправки = "";
Оповещение.ИмяМодуляПолучения = "МашиночитаемыеДоверенностиФНССлужебныйКлиент";
Оповещения.Вставить(Оповещение.Имя, Оповещение);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ПолномочияПоКодам(КодыПолномочий) Экспорт
МассивПолномочий = Новый Массив;
КлассификаторПолномочий = МашиночитаемыеДоверенностиФНСПовтИсп.КлассификаторПолномочий(); // ДеревоЗначений
Для Каждого КодПолномочия Из КодыПолномочий Цикл
Найдено = КлассификаторПолномочий.Строки.Найти(КодПолномочия,"Код", Истина);
Если Найдено = Неопределено Тогда
Продолжить;
КонецЕсли;
ДобавитьСтрокиПолномочий(Найдено, МассивПолномочий);
КонецЦикла;
Возврат МассивПолномочий;
КонецФункции
Процедура ДобавитьСтрокиПолномочий(Строка, МассивПолномочий)
Если Строка.Строки.Количество() > 0 Тогда
Для Каждого Подстрока Из Строка.Строки Цикл
ДобавитьСтрокиПолномочий(Подстрока, МассивПолномочий)
КонецЦикла;
Возврат;
КонецЕсли;
МассивПолномочий.Добавить(Новый Структура("Код, Наименование, ИдентификаторПолномочия",
Строка.Код, Строка.Наименование,Новый УникальныйИдентификатор));
КонецПроцедуры
Процедура ДобавитьВПротоколПроверкуДоверенности(ПротоколПроверки, ПроверкаДоверенности, ДатаПроверки) Экспорт
РезультатПроверки = МашиночитаемыеДоверенностиФНС.РезультатПроверкиДляПротокола();
@@ -664,14 +712,33 @@
Функция РезультатПроверкиДоверенности(Доверенность, ПроверятьВРеестреФНС = Неопределено, ИдентификаторФормы = Неопределено) Экспорт
РеквизитыДоверенности = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Доверенность,
"ФайлДоверенности, РегистрироватьВРеестре, НомерДоверенности, Статус, Ссылка, Верна, СтатусВернаУстановленВручную, УстановившийСтатусВерна");
Результат = РезультатПроверкиДанныхДоверенности(РеквизитыДоверенности, ПроверятьВРеестреФНС, ИдентификаторФормы);
Результат = РезультатПроверкиДанныхДоверенности(ДанныеМЧД(Доверенность), ПроверятьВРеестреФНС, ИдентификаторФормы);
Возврат МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.РезультатПроверкиДоверенности(Результат);
КонецФункции
// Возвращает промежуточный результат проверки данных доверенности, чтобы недостающие проверки подписей можно было
// выполнить на клиенте.
//
// Параметры:
// ДанныеДоверенности - ВыборкаИзРезультатаЗапроса - данные доверенности
// ПроверятьВРеестреФНС - Неопределено, Булево - проверять в реестре ФНС, если Неопределено - будет выполнена проверка,
// если установлен признак РегистрироватьВРеестре
// ИдентификаторФормы - Неопределено - идентификатор формы, если заполнен и не удалось проверить подпись на сервере,
// в результатах проверки подписи будет заполнен адрес данных файла и подписи для проверки на клиенте.
//
// Возвращаемое значение:
// Структура - результат проверки данных доверенности:
// * СтатусВернаУстановленВручную - Булево
// * УстановившийСтатусВерна - СправочникСсылка.Пользователи
// * ЕстьВРеестреФНС - Булево
// * ОшибкаПроверкиВРеестреФНС - Строка
// * Статус - ПеречислениеСсылка.СтатусыМЧД
// * РезультатПроверкиПодписей - Массив из Структура
// * ВыполненаПроверкаПодписей - см. СтатусВернаИзДанныхДоверенности.
// * СтатусВернаИзДанныхДоверенности - Булево - статус Верна, записанный в базу.
// * ДатаПроверкиИзДанныхДоверенности - Дата - дата проверки доверенности из базы.
//
Функция РезультатПроверкиДанныхДоверенности(ДанныеДоверенности, ПроверятьВРеестреФНС = Неопределено, ИдентификаторФормы = Неопределено) Экспорт
РезультатПроверкиДоверенности = Новый Структура;
@@ -689,20 +756,25 @@
РезультатПроверкиДоверенности.Вставить("ОшибкаПроверкиВРеестреФНС");
РезультатПроверкиДоверенности.Вставить("Статус");
РезультатПроверкиДоверенности.Вставить("РезультатПроверкиПодписей");
РезультатПроверкиДоверенности.Вставить("ВыполненаПроверкаПодписей", Ложь);
РезультатПроверкиДоверенности.Вставить("СтатусВернаИзДанныхДоверенности", ДанныеДоверенности.Верна);
РезультатПроверкиДоверенности.Вставить("ДатаПроверкиИзДанныхДоверенности", ДанныеДоверенности.ДатаПроверки);
Статус = ДанныеДоверенности.Статус;
Если ПравоДоступа("Чтение", Метаданные.Справочники.МашиночитаемыеДоверенности) Тогда
РезультатПроверкиДоверенности.ВыполненаПроверкаПодписей = Истина;
РезультатПроверкиПодписей = РезультатПроверкиПодписейДоверенности(
ДанныеДоверенности.Ссылка, ДанныеДоверенности.ФайлДоверенности, ИдентификаторФормы);
РезультатПроверкиДоверенности.РезультатПроверкиПодписей = РезультатПроверкиПодписей;
КонецЕсли;
Статус = ДанныеДоверенности.Статус;
ЕстьВРеестреФНС = ДанныеДоверенности.РегистрироватьВРеестре;
Если ЗначениеЗаполнено(ДанныеДоверенности.НомерДоверенности)
И (ПроверятьВРеестреФНС = Истина Или ПроверятьВРеестреФНС = Неопределено И ЕстьВРеестреФНС) Тогда
РезультатПроверкиВРеестреФНС = ПолучитьЧастичныеДанныеДоверенностиМЧДРР(
ДанныеДоверенности.НомерДоверенности);
ДанныеДоверенности.НомерДоверенности,,НСтр("ru='Не удалось проверить доверенность'"));
Если ЗначениеЗаполнено(РезультатПроверкиВРеестреФНС.СтатусДоверенности) Тогда
ЕстьВРеестреФНС = Истина;
ТехническийСтатус = ПолучитьЗначениеСтатуса(РезультатПроверкиВРеестреФНС.СтатусДоверенности);
@@ -721,6 +793,60 @@
КонецФункции
Функция ДанныеМЧД(Доверенность, ПодписанныйОбъект = Неопределено) Экспорт
УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| МашиночитаемыеДоверенности.ФайлДоверенности КАК ФайлДоверенности,
| МашиночитаемыеДоверенности.Статус КАК Статус,
| МашиночитаемыеДоверенности.Верна КАК Верна,
| МашиночитаемыеДоверенности.НомерДоверенности КАК НомерДоверенности,
| МашиночитаемыеДоверенности.СтатусВернаУстановленВручную КАК СтатусВернаУстановленВручную,
| МашиночитаемыеДоверенности.УстановившийСтатусВерна КАК УстановившийСтатусВерна,
| МашиночитаемыеДоверенности.ДатаПроверки КАК ДатаПроверки,
| МашиночитаемыеДоверенности.ДатаОтмены КАК ДатаОтмены,
| МашиночитаемыеДоверенности.ТекстПолномочий КАК ТекстПолномочий,
| МашиночитаемыеДоверенности.Полномочия.(
| Ссылка КАК Ссылка,
| НомерСтроки КАК НомерСтроки,
| Код КАК Код,
| ИдентификаторПолномочия КАК ИдентификаторПолномочия,
| Мнемокод КАК Мнемокод,
| Наименование КАК Наименование) КАК Полномочия,
| МашиночитаемыеДоверенности.Ограничения.(
| Ссылка КАК Ссылка,
| НомерСтроки КАК НомерСтроки,
| ИдентификаторПолномочия КАК ИдентификаторПолномочия,
| Код КАК Код,
| Наименование КАК Наименование,
| НаименованиеЗначения КАК НаименованиеЗначения,
| КодЗначения КАК КодЗначения,
| ТекстовоеЗначение КАК ТекстовоеЗначение) КАК Ограничения,
| МашиночитаемыеДоверенности.ПолномочияВТекстовомВиде КАК ПолномочияВТекстовомВиде,
| МашиночитаемыеДоверенности.ПометкаУдаления,
| МашиночитаемыеДоверенности.РегистрироватьВРеестре,
| МашиночитаемыеДоверенности.СовместныеПолномочия,
| ПРЕДСТАВЛЕНИЕ(МашиночитаемыеДоверенности.Ссылка) КАК Представление,
| МашиночитаемыеДоверенности.Ссылка,
| &ПодписанныйОбъект КАК ПодписанныйОбъект
|ИЗ
| Справочник.МашиночитаемыеДоверенности КАК МашиночитаемыеДоверенности
|ГДЕ
| МашиночитаемыеДоверенности.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", Доверенность);
Запрос.УстановитьПараметр("ПодписанныйОбъект", ПодписанныйОбъект);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
Возврат Выборка;
КонецФункции
// Проверить сертификат доверителя.
//
// Параметры:
@@ -729,13 +855,14 @@
// Сертификат - СертификатКриптографии
// - ДвоичныеДанные
// - Строка
// ПроверятьДублиПодписей - Булево
//
//
// Возвращаемое значение:
// Булево - доверенность подписана всеми доверителями.
// Строка - ошибка, сертификат не совпадает с доверителями или подпись уже приложена.
//
Функция ПроверитьСертификатДоверителя(Доверенность, ФайлДоверенности, Сертификат) Экспорт
Функция ПроверитьСертификатДоверителя(Доверенность, ФайлДоверенности, Сертификат, ПроверятьНаличиеИДублиПодписи = Истина) Экспорт
ДанныеДоверенности = ДанныеДоверителей(Доверенность);
ДанныеДоверенности.Колонки.Добавить("СертификатПодходит", ОбщегоНазначения.ОписаниеТипаЧисло(2));
@@ -746,7 +873,7 @@
Совпадает = Истина;
Для Каждого Строка Из ДанныеДоверенности Цикл
Если Строка.Подписана Тогда
Если ПроверятьНаличиеИДублиПодписи И Строка.Подписана Тогда
Возврат НСтр("ru='Доверенность уже подписана, удалите подпись, чтобы добавить снова.'");
КонецЕсли;
@@ -800,6 +927,7 @@
КонецЕсли;
ДанныеДоверенности.Колонки.Добавить("СертификатПодписиПодходит", ОбщегоНазначения.ОписаниеТипаЧисло(2));
Если ПроверятьНаличиеИДублиПодписи Тогда
УстановленныеПодписи = ЭлектроннаяПодпись.УстановленныеПодписи(ФайлДоверенности);
Для Каждого Подпись Из УстановленныеПодписи Цикл
@@ -814,6 +942,7 @@
Найдено[0].СертификатПодписиПодходит = 1;
КонецЕсли;
КонецЦикла;
КонецЕсли;
ДанныеДоверенности.Свернуть("Подписана", "СертификатПодписиПодходит");
@@ -1023,6 +1152,7 @@
Функция ПроверитьСертификатПредставителя(Доверенность, Сертификат, Знач НаДату = Неопределено) Экспорт
УстановитьПривилегированныйРежим(Истина);
ОтборПоСертификату = МашиночитаемыеДоверенностиФНС.ОтборДляДоверенностейПоСертификату(Сертификат, "");
Запрос = Новый Запрос;
@@ -1058,6 +1188,7 @@
Запрос.Текст = Запрос.Текст + Символы.ПС + "И " + СтрСоединить(МассивУсловий, Символы.ПС + "И ");
Результат = Запрос.Выполнить();
УстановитьПривилегированныйРежим(Ложь);
ТекстОшибки = "";
Если Результат.Пустой() Тогда
@@ -1247,9 +1378,35 @@
КонецФункции
Функция ЗаголовокДекорации(Реквизиты, ИмяЭлементаОрганизация = Неопределено, ТолькоОбязательные = Ложь) Экспорт
Функция РеквизитыУчастникаПоСсылке(СторонаМЧД) Экспорт
Результат = СтруктураЗаголовкаДекорации(Реквизиты, ИмяЭлементаОрганизация, ТолькоОбязательные, Ложь);
ТипСсылки = ТипЗнч(СторонаМЧД);
ТипУчастникаСтрока = Неопределено;
Если ОписаниеТиповОрганизации().СодержитТип(ТипСсылки) Тогда
ТипУчастникаСтрока = "Организация";
ИначеЕсли ОписаниеТиповКонтрагента().СодержитТип(ТипСсылки) Тогда
ТипУчастникаСтрока = "Контрагент";
ИначеЕсли ОписаниеТиповФизическогоЛица().СодержитТип(ТипСсылки) Тогда
ТипУчастникаСтрока = "ФизическоеЛицо";
КонецЕсли;
Если ТипУчастникаСтрока = Неопределено Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не определен тип участника: %1 (%2)'"), СторонаМЧД, ТипСсылки);
КонецЕсли;
Реквизиты = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.РеквизитыУчастника(
ТипУчастникаСтрока, СторонаМЧД, Неопределено);
Реквизиты.Вставить("ТипСсылки", ТипСсылки);
ПриЗаполненииРеквизитовОрганизации(Реквизиты);
Возврат Реквизиты;
КонецФункции
Функция ЗаголовокДекорации(Реквизиты, ИмяЭлементаОрганизация = Неопределено, ТолькоОбязательные = Ложь, ПоказыватьПерсональныеДанные = Истина) Экспорт
Результат = СтруктураЗаголовкаДекорации(Реквизиты, ПоказыватьПерсональныеДанные, ИмяЭлементаОрганизация, ТолькоОбязательные, Ложь);
Если Результат.ЗаголовокДекорацииОшибки.Количество() > 0 Тогда
Результат.ЗаголовокДекорации.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не заполнены: %1'"),
@@ -1262,9 +1419,9 @@
КонецФункции
Функция ЗаголовокДекорацииДляТаблицы(Реквизиты, ИмяЭлементаОрганизация = Неопределено, ТолькоОбязательные = Ложь) Экспорт
Функция ЗаголовокДекорацииДляТаблицы(Реквизиты, ИмяЭлементаОрганизация = Неопределено, ТолькоОбязательные = Ложь, ПоказыватьПерсональныеДанные = Истина) Экспорт
Результат = СтруктураЗаголовкаДекорации(Реквизиты, ИмяЭлементаОрганизация, ТолькоОбязательные, Истина);
Результат = СтруктураЗаголовкаДекорации(Реквизиты, ПоказыватьПерсональныеДанные, ИмяЭлементаОрганизация, ТолькоОбязательные, Истина);
ЗаголовокДекорацииСтрока = СтрСоединить(Результат.ЗаголовокДекорации, Символы.ПС);
@@ -1276,7 +1433,7 @@
КонецФункции
Функция СтруктураЗаголовкаДекорации(Реквизиты, ИмяЭлементаОрганизация = Неопределено, ТолькоОбязательные = Ложь, ДляТаблицы = Ложь)
Функция СтруктураЗаголовкаДекорации(Реквизиты, ПоказыватьПерсональныеДанные, ИмяЭлементаОрганизация = Неопределено, ТолькоОбязательные = Ложь, ДляТаблицы = Ложь)
ВидУчастника = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.ОпределитьВидУчастника(Реквизиты);
@@ -1298,6 +1455,10 @@
ЗаголовокДекорацииОшибки = Новый Массив;
НаименованиеДокумента = "";
Если Не ПоказыватьПерсональныеДанные Тогда
ПерсональныеДанные = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.ПерсональныеДанные();
КонецЕсли;
Для Каждого Реквизит Из Реквизиты Цикл
Если Реквизит.Ключ = "ЭтоИндивидуальныйПредприниматель"
@@ -1317,6 +1478,10 @@
Продолжить;
КонецЕсли;
Если Реквизиты.ЭтоФизическоеЛицо И Не ПоказыватьПерсональныеДанные И ПерсональныеДанные.Найти(Реквизит.Ключ) <> Неопределено Тогда
Продолжить;
КонецЕсли;
Найдено = СписокРеквизитов.НайтиПоЗначению(Реквизит.Ключ);
Если Найдено <> Неопределено Тогда
@@ -1351,7 +1516,7 @@
КонецЕсли;
Если Реквизит.Ключ = "НаименованиеПолное"
Или Реквизит.Ключ = "ДолжностьЛицаБезДоверенности"
Или Реквизит.Ключ = "ДолжностьЛицаДоверителя"
Или Реквизит.Ключ = "Фамилия"
Или Реквизит.Ключ = "Имя"
Или Реквизит.Ключ = "Отчество" Тогда
@@ -1906,11 +2071,11 @@
ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(
Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаПредставительНесколько.ПредставительФЛ");
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаПредставительНесколько.ЛицоПредставителя");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ТаблицаПредставительНесколькоПредставительФЛ");
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ТаблицаПредставительНесколькоЛицоПредставителя");
ЭлементУсловногоОформления = Форма.УсловноеОформление.Элементы.Добавить();
ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
@@ -2066,7 +2231,7 @@
КонецФункции
Функция ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, СтруктураОтвета, ДополнительныеФайлы, ЗаголовокОшибки = "", ТекстОшибки = "")
Функция ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, СтруктураОтвета, ДополнительныеФайлы, ЗаголовокОшибки = "", ТекстОшибки = "") Экспорт
Результат = Новый Структура;
Результат.Вставить("ЗаголовокОшибки", ЗаголовокОшибки);
Результат.Вставить("ЗапросHTTP", ЗапросHTTP);
@@ -2078,7 +2243,7 @@
Возврат Результат;
КонецФункции
Функция ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибки)
Функция ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибки) Экспорт
ЗаголовокОшибки = ПараметрыОшибки.ЗаголовокОшибки;
ЗапросHTTP = ПараметрыОшибки.ЗапросHTTP;
ПараметрыТекстаОшибки = ПараметрыОшибки.ПараметрыТекстаОшибки;
@@ -2517,8 +2682,8 @@
СтатусыБезПодробностей = Новый Массив;
СтатусыБезПодробностей.Добавить(Перечисления.ТехническиеСтатусыМЧД.Создание);
СтатусыБезПодробностей.Добавить(Перечисления.ТехническиеСтатусыМЧД.Подписание);
СтатусыБезПодробностей.Добавить(Перечисления.ТехническиеСтатусыМЧД.Подписан);
СтатусыБезПодробностей.Добавить(Перечисления.ТехническиеСтатусыМЧД.Просрочено);
СтатусыБезПодробностей.Добавить(Перечисления.ТехническиеСтатусыМЧД.Подписана);
СтатусыБезПодробностей.Добавить(Перечисления.ТехническиеСтатусыМЧД.Просрочена);
СтатусыБезПодробностей.Добавить(Перечисления.ТехническиеСтатусыМЧД.Отменена);
Запрос.УстановитьПараметр("СтатусыБезПодробностей", СтатусыБезПодробностей);
@@ -2576,6 +2741,10 @@
ИначеЕсли ЗначениеЗаполнено(Выборка.ДатаТранзакции) И Выборка.СтатусТранзакции = Перечисления.СтатусыТранзакцииСРеестромМЧД.Ошибка Тогда
ОписаниеСобытия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='<span style=""color: %1"">: <a href = ""%2"">Не удалось получить статус</a>'"), "ПоясняющийТекст", "ПоказатьОшибку");
ИначеЕсли Выборка.ТехническийСтатус = Перечисления.ТехническиеСтатусыМЧД.Регистрация
И Выборка.СтатусТранзакции = Перечисления.СтатусыТранзакцииСРеестромМЧД.ПустаяСсылка() Тогда
ОписаниеСобытия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='<span style=""color: %1"">: <a href = ""%2"">Ошибка регистрации</a>'"), "ПоясняющийТекст", "ПоказатьОшибку");
КонецЕсли;
ОписаниеСостояния = Новый ФорматированнаяСтрока(ОписаниеСостояния,
@@ -2642,7 +2811,7 @@
Если Не ЭтоВнешнийСтатус Тогда
Если Запись.Подписана Тогда
Если РегистрироватьВРеестре Тогда
ТехническийСтатус = Перечисления.ТехническиеСтатусыМЧД.Подписан;
ТехническийСтатус = Перечисления.ТехническиеСтатусыМЧД.Подписана;
Иначе
ТехническийСтатус = Перечисления.ТехническиеСтатусыМЧД.Активна;
КонецЕсли;
@@ -2674,13 +2843,13 @@
СтатусДоверенности = СокрЛП(ВРег(СтатусСтрокой));
Если СтатусДоверенности = "ACTIVE" Тогда
ТехническийСтатус = Перечисления.ТехническиеСтатусыМЧД.Зарегистрировано;
ТехническийСтатус = Перечисления.ТехническиеСтатусыМЧД.Зарегистрирована;
ИначеЕсли СтатусДоверенности = "REJECTED" Тогда
ТехническийСтатус = Перечисления.ТехническиеСтатусыМЧД.ОшибкаРегистрации;
ИначеЕсли СтатусДоверенности = "PROCESSING" Тогда
ТехническийСтатус = Перечисления.ТехническиеСтатусыМЧД.Регистрация;
ИначеЕсли СтатусДоверенности = "EXPIRED" Тогда
ТехническийСтатус = Перечисления.ТехническиеСтатусыМЧД.Просрочено;
ТехническийСтатус = Перечисления.ТехническиеСтатусыМЧД.Просрочена;
ИначеЕсли СтатусДоверенности = "REVOKED" Тогда
ТехническийСтатус = Перечисления.ТехническиеСтатусыМЧД.Отменена;
ИначеЕсли СтатусДоверенности = "CREATED" Тогда
@@ -2695,8 +2864,9 @@
#Область ИнтерфейсРаботаСРаспределеннымРеестром
Функция АвторизоватьсяНаСервереМЧДРР() Экспорт
Функция АвторизоватьсяНаСервереМЧДРР(ЦельАвторизации = "") Экспорт
УстановитьПривилегированныйРежим(Истина);
ПараметрыРезультатаАвторизации = ПараметрыСеанса.ПараметрыАвторизацииВРаспределенномРеестре;
Если ПараметрыРезультатаАвторизации <> Неопределено И ПараметрыРезультатаАвторизации.ДатаСеанса <> Неопределено
И ПараметрыРезультатаАвторизации.РезультатАвторизации <> Неопределено Тогда
@@ -2724,7 +2894,8 @@
ТикетАутентификацииИлиДанныеПользователя = ТикетАутентификацииИлиДанныеПользователяНаПорталеПоддержки();
Если ТикетАутентификацииИлиДанныеПользователя = Неопределено Тогда
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(, , , , НСтр("ru='Не удается авторизоваться на сайте интернет поддержки'"), НСтр("ru='Не удается авторизоваться на сайте интернет поддержки'"));
ЗаголовокОшибки = ?(ЦельАвторизации = "", НСтр("ru='Не удается авторизоваться на сайте интернет поддержки'"), ЦельАвторизации);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(, , , , ЗаголовокОшибки, НСтр("ru='Не удается получить тикет аутентификации или данные пользователя.'"));
Результат.Ошибка = ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибкиМЧДРР);
Возврат Результат;
КонецЕсли;
@@ -2777,7 +2948,9 @@
ПараметрыФайловДляРасследования.Запрос = ЗапросHTTP;
ПараметрыФайловДляРасследования.Ответ = ОтветHTTP;
ДополнительныеФайлы = ФайлыДляРасследования(ПараметрыФайловДляРасследования);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, , ДополнительныеФайлы, НСтр("ru='Не удается соединиться с сервером реестра'"), ПредставлениеОшибки);
ЗаголовокОшибки = ?(ЦельАвторизации = "", НСтр("ru='Не удается авторизоваться на сервере Распределенного реестра ФНС России'"), ЦельАвторизации);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, , ДополнительныеФайлы, ЗаголовокОшибки, ПредставлениеОшибки);
Результат.Ошибка = ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибкиМЧДРР);
Возврат Результат;
КонецПопытки;
@@ -2799,7 +2972,8 @@
ПараметрыФайловДляРасследования.Запрос = ЗапросHTTP;
ПараметрыФайловДляРасследования.Ответ = ОтветHTTP;
ДополнительныеФайлы = ФайлыДляРасследования(ПараметрыФайловДляРасследования);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, СтруктураОтвета, ДополнительныеФайлы, НСтр("ru='Не удается соединиться с сервером реестра'"), ПредставлениеОшибки);
ЗаголовокОшибки = ?(ЦельАвторизации = "", НСтр("ru='Отказ при получении токена доступа на сервере Распределенного реестра ФНС России'"), ЦельАвторизации);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, СтруктураОтвета, ДополнительныеФайлы, ЗаголовокОшибки, ПредставлениеОшибки);
Результат.Ошибка = ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибкиМЧДРР);
Возврат Результат;
КонецПопытки;
@@ -2810,8 +2984,9 @@
ПараметрыФайловДляРасследования.Запрос = ЗапросHTTP;
ПараметрыФайловДляРасследования.Ответ = ОтветHTTP;
ДополнительныеФайлы = ФайлыДляРасследования(ПараметрыФайловДляРасследования);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, СтруктураОтвета, ДополнительныеФайлы, НСтр("ru='Не удается авторизоваться'"),
НСтр("ru='Распределенный реестр ФНС России не предоставил данные для авторизации.'"));
ЗаголовокОшибки = ?(ЦельАвторизации = "", НСтр("ru='Распределенный реестр ФНС России не предоставил токен для авторизации'"), ЦельАвторизации);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, СтруктураОтвета, ДополнительныеФайлы, ЗаголовокОшибки,
НСтр("ru='Распределенный реестр ФНС России не предоставил токен для авторизации.'"));
Результат.Ошибка = ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибкиМЧДРР);
Возврат Результат;
КонецЕсли;
@@ -2835,8 +3010,10 @@
Результат.Вставить("ТекстОтвета", "");
Результат.Вставить("Ошибка");
ЗаголовокОшибки = НСтр("ru='Не удалось получить номер доверенности'");
Если НЕ ЗначениеЗаполнено(ТокенДоступа) Тогда
РезультатАвторизации = АвторизоватьсяНаСервереМЧДРР();
РезультатАвторизации = АвторизоватьсяНаСервереМЧДРР(ЗаголовокОшибки);
Если РезультатАвторизации.Ошибка <> Неопределено Тогда
Результат.Ошибка = РезультатАвторизации.Ошибка;
КонецЕсли;
@@ -2873,13 +3050,12 @@
ОтветHTTP = СоединениеHTTP.Получить(ЗапросHTTP);
Исключение
ПредставлениеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
Результат.ПовторятьСоединение = НЕ ОбщегоНазначения.РазделениеВключено();
ПараметрыФайловДляРасследования = ПараметрыФайловДляРасследования();
ПараметрыФайловДляРасследования.СоединениеHTTP = СоединениеHTTP;
ПараметрыФайловДляРасследования.Запрос = ЗапросHTTP;
ПараметрыФайловДляРасследования.Ответ = ОтветHTTP;
ДополнительныеФайлы = ФайлыДляРасследования(ПараметрыФайловДляРасследования);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, , ДополнительныеФайлы, НСтр("ru='Не удается получить номер доверенности'"),
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, , ДополнительныеФайлы, ЗаголовокОшибки,
ПредставлениеОшибки);
Результат.Ошибка = ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибкиМЧДРР);
@@ -2911,7 +3087,7 @@
ПараметрыФайловДляРасследования.Запрос = ЗапросHTTP;
ПараметрыФайловДляРасследования.Ответ = ОтветHTTP;
ДополнительныеФайлы = ФайлыДляРасследования(ПараметрыФайловДляРасследования);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, СтруктураОтвета, ДополнительныеФайлы, НСтр("ru='Не удается получить номер доверенности'"),
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, СтруктураОтвета, ДополнительныеФайлы, ЗаголовокОшибки,
НСтр("ru='Распределенный реестр ФНС России не выдал номер доверенности.'"));
Результат.Ошибка = ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибкиМЧДРР);
Возврат Результат;
@@ -2946,17 +3122,12 @@
Результат.Вставить("ТекстОтвета", "");
Результат.Вставить("Ошибка");
ЗаголовокОшибки = НСтр("ru='Не удалось зарегистрировать доверенность'");
Если НЕ ЗначениеЗаполнено(ТокенДоступа) Тогда
РезультатАвторизации = АвторизоватьсяНаСервереМЧДРР();
РезультатАвторизации = АвторизоватьсяНаСервереМЧДРР(ЗаголовокОшибки);
Если РезультатАвторизации.Ошибка <> Неопределено Тогда
Результат.Ошибка = РезультатАвторизации.Ошибка;
КонецЕсли;
Если РезультатАвторизации.ПовторятьСоединение Тогда
Результат.ПовторятьСоединение = Истина;
КонецЕсли;
Если Результат.Ошибка <> Неопределено Или Результат.ПовторятьСоединение Тогда
Возврат Результат;
КонецЕсли;
@@ -3035,7 +3206,7 @@
ПараметрыФайловДляРасследования.Ответ = ОтветHTTP;
ПараметрыФайловДляРасследования.СоединениеHTTP = СоединениеHTTP;
ДополнительныеФайлы = ФайлыДляРасследования(ПараметрыФайловДляРасследования);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, , ДополнительныеФайлы, НСтр("ru='Не удается зарегистрировать доверенность'"), ПредставлениеОшибки);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, , ДополнительныеФайлы, ЗаголовокОшибки, ПредставлениеОшибки);
Результат.Ошибка = ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибкиМЧДРР);
Возврат Результат;
КонецПопытки;
@@ -3057,7 +3228,7 @@
ПараметрыФайловДляРасследования.Ответ = ОтветHTTP;
ПараметрыФайловДляРасследования.СоединениеHTTP = СоединениеHTTP;
ДополнительныеФайлы = ФайлыДляРасследования(ПараметрыФайловДляРасследования);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, СтруктураОтвета, ДополнительныеФайлы, НСтр("ru='Не удается зарегистрировать доверенность'"), ПредставлениеОшибки);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, СтруктураОтвета, ДополнительныеФайлы, ЗаголовокОшибки, ПредставлениеОшибки);
Результат.Ошибка = ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибкиМЧДРР);
Возврат Результат;
@@ -3069,7 +3240,7 @@
ПараметрыФайловДляРасследования.Ответ = ОтветHTTP;
ПараметрыФайловДляРасследования.СоединениеHTTP = СоединениеHTTP;
ДополнительныеФайлы = ФайлыДляРасследования(ПараметрыФайловДляРасследования);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, СтруктураОтвета, ДополнительныеФайлы, НСтр("ru='Не удается зарегистрировать доверенность'"),
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, СтруктураОтвета, ДополнительныеФайлы, ЗаголовокОшибки,
НСтр("ru='Распределенный реестр ФНС России не предоставил идентификационные данные.'"));
Результат.Ошибка = ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибкиМЧДРР);
@@ -3080,7 +3251,7 @@
КонецФункции
Функция ПолучитьСтатусТранзакцииМЧДРР(ИдентификаторТранзакции, ТокенДоступа = "", НомерДоверенности = "") Экспорт
Функция ПолучитьСтатусТранзакцииМЧДРР(ИдентификаторТранзакции, ТокенДоступа = "", НомерДоверенности = "", ЦельПолучения = "") Экспорт
СвойстваСервераМЧДРР = СвойстваСервераМЧДРР();
@@ -3092,8 +3263,10 @@
Результат.Вставить("ТекстОтвета", "");
Результат.Вставить("Ошибка");
ЗаголовокОшибки = ?(ЦельПолучения = "", НСтр("ru='Не удалось обновить статус транзакции'"), ЦельПолучения);
Если НЕ ЗначениеЗаполнено(ТокенДоступа) Тогда
РезультатАвторизации = АвторизоватьсяНаСервереМЧДРР();
РезультатАвторизации = АвторизоватьсяНаСервереМЧДРР(ЗаголовокОшибки);
Если РезультатАвторизации.Ошибка <> Неопределено Тогда
Результат.Ошибка = РезультатАвторизации.Ошибка;
КонецЕсли;
@@ -3129,13 +3302,12 @@
ОтветHTTP = СоединениеHTTP.Получить(ЗапросHTTP);
Исключение
ПредставлениеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
Результат.ПовторятьСоединение = НЕ ОбщегоНазначения.РазделениеВключено();
ПараметрыФайловДляРасследования = ПараметрыФайловДляРасследования();
ПараметрыФайловДляРасследования.СоединениеHTTP = СоединениеHTTP;
ПараметрыФайловДляРасследования.Запрос = ЗапросHTTP;
ПараметрыФайловДляРасследования.Ответ = ОтветHTTP;
ДополнительныеФайлы = ФайлыДляРасследования(ПараметрыФайловДляРасследования);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, , ДополнительныеФайлы, НСтр("ru='Не удалось обновить статус заявления'"), ПредставлениеОшибки);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, , ДополнительныеФайлы, ЗаголовокОшибки, ПредставлениеОшибки);
Результат.Ошибка = ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибкиМЧДРР);
Возврат Результат;
КонецПопытки;
@@ -3158,7 +3330,7 @@
ПараметрыФайловДляРасследования.Запрос = ЗапросHTTP;
ПараметрыФайловДляРасследования.Ответ = ОтветHTTP;
ДополнительныеФайлы = ФайлыДляРасследования(ПараметрыФайловДляРасследования);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, СтруктураОтвета, ДополнительныеФайлы, НСтр("ru='Не удалось обновить статус заявления'"), ПредставлениеОшибки);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, СтруктураОтвета, ДополнительныеФайлы, ЗаголовокОшибки, ПредставлениеОшибки);
Результат.Ошибка = ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибкиМЧДРР);
Возврат Результат;
КонецПопытки;
@@ -3170,8 +3342,8 @@
ПараметрыФайловДляРасследования.Запрос = ЗапросHTTP;
ПараметрыФайловДляРасследования.Ответ = ОтветHTTP;
ДополнительныеФайлы = ФайлыДляРасследования(ПараметрыФайловДляРасследования);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, СтруктураОтвета, ДополнительныеФайлы, НСтр("ru='Не удалось обновить статус заявления'"),
НСтр("ru='Распределенный реестр ФНС России не вернул данные о статусе заявления.'"));
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, СтруктураОтвета, ДополнительныеФайлы, ЗаголовокОшибки,
НСтр("ru='Распределенный реестр ФНС России не вернул данные о статусе транзакции.'"));
Результат.Ошибка = ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибкиМЧДРР);
Возврат Результат;
КонецЕсли;
@@ -3180,7 +3352,7 @@
КонецФункции
Функция ПолучитьЧастичныеДанныеДоверенностиМЧДРР(НомерДоверенности, ТокенДоступа = "") Экспорт
Функция ПолучитьЧастичныеДанныеДоверенностиМЧДРР(НомерДоверенности, ТокенДоступа = "", ЦельПолучения = "") Экспорт
СвойстваСервераМЧДРР = СвойстваСервераМЧДРР();
@@ -3197,8 +3369,10 @@
Результат.Вставить("ТекстОтвета", "");
Результат.Вставить("Ошибка");
ЗаголовокОшибки = ?(ЦельПолучения = "", НСтр("ru='Не удалось получить частичные данные доверенности'"), ЦельПолучения);
Если НЕ ЗначениеЗаполнено(ТокенДоступа) Тогда
РезультатАвторизации = АвторизоватьсяНаСервереМЧДРР();
РезультатАвторизации = АвторизоватьсяНаСервереМЧДРР(ЗаголовокОшибки);
Если РезультатАвторизации.Ошибка <> Неопределено Тогда
Результат.Ошибка = РезультатАвторизации.Ошибка;
КонецЕсли;
@@ -3233,13 +3407,12 @@
ОтветHTTP = СоединениеHTTP.Получить(ЗапросHTTP);
Исключение
ПредставлениеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
Результат.ПовторятьСоединение = НЕ ОбщегоНазначения.РазделениеВключено();
ПараметрыФайловДляРасследования = ПараметрыФайловДляРасследования();
ПараметрыФайловДляРасследования.Запрос = ЗапросHTTP;
ПараметрыФайловДляРасследования.Ответ = ОтветHTTP;
ПараметрыФайловДляРасследования.СоединениеHTTP = СоединениеHTTP;
ДополнительныеФайлы = ФайлыДляРасследования(ПараметрыФайловДляРасследования);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, , ДополнительныеФайлы, НСтр("ru='Не удается получить частичные данные доверенности'"), ПредставлениеОшибки);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, , ДополнительныеФайлы, ЗаголовокОшибки, ПредставлениеОшибки);
ПараметрыОшибкиМЧДРР.ПараметрыТекстаОшибки.Вставить("НомерДоверенности", НомерДоверенности);
Результат.Ошибка = ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибкиМЧДРР);
Возврат Результат;
@@ -3280,7 +3453,7 @@
ПараметрыФайловДляРасследования.Запрос = ЗапросHTTP;
ПараметрыФайловДляРасследования.Ответ = ОтветHTTP;
ДополнительныеФайлы = ФайлыДляРасследования(ПараметрыФайловДляРасследования);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, , ДополнительныеФайлы, НСтр("ru='Не удается получить частичные данные доверенности'"), ПредставлениеОшибки);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, , ДополнительныеФайлы, ЗаголовокОшибки, ПредставлениеОшибки);
ПараметрыОшибкиМЧДРР.ПараметрыТекстаОшибки.Вставить("НомерДоверенности", НомерДоверенности);
Результат.Ошибка = ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибкиМЧДРР);
Возврат Результат;
@@ -3293,7 +3466,7 @@
ПараметрыФайловДляРасследования.Ответ = ОтветHTTP;
ПараметрыФайловДляРасследования.СоединениеHTTP = СоединениеHTTP;
ДополнительныеФайлы = ФайлыДляРасследования(ПараметрыФайловДляРасследования);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, СтруктураОтвета , ДополнительныеФайлы, НСтр("ru='Не удается получить частичные данные доверенности'"),
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, СтруктураОтвета , ДополнительныеФайлы, ЗаголовокОшибки,
НСтр("ru='Распределенный реестр ФНС России не предоставил частичных данных доверенности.'"));
ПараметрыОшибкиМЧДРР.ПараметрыТекстаОшибки.Вставить("НомерДоверенности", НомерДоверенности);
Результат.Ошибка = ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибкиМЧДРР);
@@ -3304,7 +3477,7 @@
КонецФункции
Функция ПолучитьПолныеДанныеДоверенностиМЧДРР(НомерДоверенности, ИННДоверителя, ТокенДоступа = "") Экспорт
Функция ПолучитьПолныеДанныеДоверенностиМЧДРР(НомерДоверенности, ИННДоверителя, ТокенДоступа = "", ЦельПолучения = "") Экспорт
СвойстваСервераМЧДРР = СвойстваСервераМЧДРР();
@@ -3319,8 +3492,10 @@
Результат.Вставить("ТекстОтвета", "");
Результат.Вставить("Ошибка");
ЗаголовокОшибки = ?(ЦельПолучения = "", НСтр("ru='Не удалось получить полные данные доверенности'"), ЦельПолучения);
Если НЕ ЗначениеЗаполнено(ТокенДоступа) Тогда
РезультатАвторизации = АвторизоватьсяНаСервереМЧДРР();
РезультатАвторизации = АвторизоватьсяНаСервереМЧДРР(ЗаголовокОшибки);
Если РезультатАвторизации.Ошибка <> Неопределено Тогда
Результат.Ошибка = РезультатАвторизации.Ошибка;
КонецЕсли;
@@ -3356,13 +3531,12 @@
ОтветHTTP = СоединениеHTTP.Получить(ЗапросHTTP);
Исключение
ПредставлениеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
Результат.ПовторятьСоединение = НЕ ОбщегоНазначения.РазделениеВключено();
ПараметрыФайловДляРасследования = ПараметрыФайловДляРасследования();
ПараметрыФайловДляРасследования.СоединениеHTTP = СоединениеHTTP;
ПараметрыФайловДляРасследования.Запрос = ЗапросHTTP;
ПараметрыФайловДляРасследования.Ответ = ОтветHTTP;
ДополнительныеФайлы = ФайлыДляРасследования(ПараметрыФайловДляРасследования);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, , ДополнительныеФайлы, НСтр("ru='Не удается получить полные данные доверенности'"), ПредставлениеОшибки);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, , ДополнительныеФайлы, ЗаголовокОшибки, ПредставлениеОшибки);
ПараметрыОшибкиМЧДРР.ПараметрыТекстаОшибки.Вставить("НомерДоверенности", НомерДоверенности);
Результат.Ошибка = ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибкиМЧДРР);
Возврат Результат;
@@ -3384,7 +3558,7 @@
ПараметрыФайловДляРасследования.Запрос = ЗапросHTTP;
ПараметрыФайловДляРасследования.Ответ = ОтветHTTP;
ДополнительныеФайлы = ФайлыДляРасследования(ПараметрыФайловДляРасследования);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, , ДополнительныеФайлы, НСтр("ru='Не удается получить архив полных данных'"), ПредставлениеОшибки);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, , ДополнительныеФайлы, ЗаголовокОшибки, ПредставлениеОшибки);
ПараметрыОшибкиМЧДРР.ПараметрыТекстаОшибки.Вставить("НомерДоверенности", НомерДоверенности);
Результат.Ошибка = ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибкиМЧДРР);
Возврат Результат;
@@ -3406,7 +3580,7 @@
ПараметрыФайловДляРасследования.Запрос = ЗапросHTTP;
ПараметрыФайловДляРасследования.Ответ = ОтветHTTP;
ДополнительныеФайлы = ФайлыДляРасследования(ПараметрыФайловДляРасследования);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, СтруктураОтвета, ДополнительныеФайлы, НСтр("ru='Не удается получить полные данные доверенности'"), ПредставлениеОшибки);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, СтруктураОтвета, ДополнительныеФайлы, ЗаголовокОшибки, ПредставлениеОшибки);
ПараметрыОшибкиМЧДРР.ПараметрыТекстаОшибки.Вставить("НомерДоверенности", НомерДоверенности);
Результат.Ошибка = ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибкиМЧДРР);
Возврат Результат;
@@ -3418,7 +3592,7 @@
ПараметрыФайловДляРасследования.Запрос = ЗапросHTTP;
ПараметрыФайловДляРасследования.Ответ = ОтветHTTP;
ДополнительныеФайлы = ФайлыДляРасследования(ПараметрыФайловДляРасследования);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, СтруктураОтвета, ДополнительныеФайлы, НСтр("ru='Не удается получить полные данные доверенности'"),
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, СтруктураОтвета, ДополнительныеФайлы, ЗаголовокОшибки,
НСтр("ru='Распределенный реестр ФНС России не предоставил полных данных доверенности и не сообщил о статусе запроса данных.'"));
ПараметрыОшибкиМЧДРР.ПараметрыТекстаОшибки.Вставить("НомерДоверенности", НомерДоверенности);
Результат.Ошибка = ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибкиМЧДРР);
@@ -3430,7 +3604,10 @@
КонецФункции
Функция ЗагрузитьДоверенностьИзРеестра(НомерДоверенности, ИННДоверителя, ТокенДоступа = "") Экспорт
РезультатПолучения = ПолучитьПолныеДанныеДоверенностиМЧДРР(НомерДоверенности, ИННДоверителя, ТокенДоступа);
ЗаголовокОшибки = НСтр("ru='Не удалось загрузить доверенность'");
РезультатПолучения = ПолучитьПолныеДанныеДоверенностиМЧДРР(НомерДоверенности, ИННДоверителя, ТокенДоступа, ЗаголовокОшибки);
ПолныеДанныеДоверенности = Новый Структура;
ПолныеДанныеДоверенности.Вставить("Ошибка", РезультатПолучения.Ошибка);
Если ЗначениеЗаполнено(РезультатПолучения.Ошибка) Тогда
@@ -3456,7 +3633,7 @@
РезультатЗагрузки = Справочники.МашиночитаемыеДоверенности.ЗагрузитьДоверенностиВИнформационнуюБазу(ФайлыДляЗагрузки);
Если ЗначениеЗаполнено(РезультатЗагрузки.ТекстОшибки) Тогда
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(, , , , НСтр("ru='Не удалось загрузить доверенность из реестра'"), РезультатЗагрузки.ТекстОшибки);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(, , , , ЗаголовокОшибки, РезультатЗагрузки.ТекстОшибки);
ПолныеДанныеДоверенности.Вставить("Ошибка", ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибкиМЧДРР));
Возврат ПолныеДанныеДоверенности;
КонецЕсли;
@@ -3470,6 +3647,8 @@
Функция ОтменитьМЧДРР(ИмяФайлаВыгрузки, ДанныеИлиАдресВыгрузки, ДанныеИлиАдресПодписи, Доверенность, ТокенДоступа = "") Экспорт
ЗаголовокОшибки = НСтр("ru='Не удалось отменить доверенность'");
ДанныеВыгрузки = ?(ТипЗнч(ДанныеИлиАдресВыгрузки) = Тип("Строка")
И ЭтоАдресВременногоХранилища(ДанныеИлиАдресВыгрузки), ПолучитьИзВременногоХранилища(ДанныеИлиАдресВыгрузки),
ДанныеИлиАдресВыгрузки);
@@ -3559,7 +3738,7 @@
ПараметрыФайловДляРасследования.Ответ = ОтветHTTP;
ПараметрыФайловДляРасследования.СоединениеHTTP = СоединениеHTTP;
ДополнительныеФайлы = ФайлыДляРасследования(ПараметрыФайловДляРасследования);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, , ДополнительныеФайлы, НСтр("ru='Не удалось разобрать ответ при отмене доверенности на сервере МЧД'"), ПредставлениеОшибки);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, , ДополнительныеФайлы, ЗаголовокОшибки, ПредставлениеОшибки);
Результат.Ошибка = ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибкиМЧДРР);
Возврат Результат;
КонецПопытки;
@@ -3578,7 +3757,7 @@
ПараметрыФайловДляРасследования.Ответ = ОтветHTTP;
ПараметрыФайловДляРасследования.СоединениеHTTP = СоединениеHTTP;
ДополнительныеФайлы = ФайлыДляРасследования(ПараметрыФайловДляРасследования);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, , ДополнительныеФайлы, НСтр("ru='Не удалось разобрать ответ при отмене доверенности на сервере МЧД'"), ПредставлениеОшибки);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, , ДополнительныеФайлы, ЗаголовокОшибки, ПредставлениеОшибки);
Результат.Ошибка = ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибкиМЧДРР);
Возврат Результат;
@@ -3591,7 +3770,7 @@
ПараметрыФайловДляРасследования.Ответ = ОтветHTTP;
ПараметрыФайловДляРасследования.СоединениеHTTP = СоединениеHTTP;
ДополнительныеФайлы = ФайлыДляРасследования(ПараметрыФайловДляРасследования);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, СтруктураОтвета, ДополнительныеФайлы, НСтр("ru='Сервер МЧД не вернул номер транзакции отмены'"), ПредставлениеОшибки);
ПараметрыОшибкиМЧДРР = ПараметрыОшибкиМЧДРР(ЗапросHTTP, ОтветHTTP, СтруктураОтвета, ДополнительныеФайлы, ЗаголовокОшибки, ПредставлениеОшибки);
Результат.Ошибка = ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибкиМЧДРР);
Возврат Результат;
КонецЕсли;
@@ -3694,9 +3873,41 @@
ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.ЗаписатьКонецЭлемента();
Если Доверенность.ДляНалоговыхОрганов Тогда
Префикс = "ON_OFFDOVER";
ДатаФормирования = Формат(ТекущаяДатаСеанса(), "ДФ=yyyyMMdd;");
ИдентификационныйНомер = Доверенность.НомерДоверенности;
Получатель = XMLСтрока(Доверенность.КодНалоговогоОрганаПредставления);
КонечныйПолучатель = Получатель;
Если Доверенность.НалоговыеОрганыДействия.Количество() = 1 Тогда
КонечныйПолучатель = XMLСтрока(Доверенность.НалоговыеОрганыДействия[0].КодНалоговогоОргана);
КонецЕсли;
ОписанияДоверителей = Доверенность.Доверители.НайтиСтроки(Новый Структура("ИдентификаторРодителя",
Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000")));
Отправитель = "";
Для Каждого ОписаниеДоверителя Из ОписанияДоверителей Цикл
РеквизитыДоверителя = ОписаниеДоверителя.ДоверительРеквизиты.Получить();
Отправитель = XMLСтрока(РеквизитыДоверителя.ИНН);
Если Не РеквизитыДоверителя.ЭтоИндивидуальныйПредприниматель И Не РеквизитыДоверителя.ЭтоФизическоеЛицо Тогда
Отправитель = Отправитель + XMLСтрока(РеквизитыДоверителя.КПП);
КонецЕсли;
Прервать;
КонецЦикла;
ИмяФайла = СтрШаблон("%1_%2_%3_%4_%5_%6.xml", Префикс, Получатель, КонечныйПолучатель, Отправитель, ДатаФормирования, ИдентификационныйНомер);
Иначе
ИмяФайла = "revoke.xml";
КонецЕсли;
Результат = Новый Структура;
Результат.Вставить("Содержимое", ПоместитьВоВременноеХранилище(ПолучитьДвоичныеДанныеИзСтроки(ЗаписьXML.Закрыть(), "windows-1251"), Новый УникальныйИдентификатор));
Результат.Вставить("ИмяФайла", "revoke.xml");
Результат.Вставить("ИмяФайла", ИмяФайла);
Результат.Вставить("НомерДоверенности", НомерДоверенности);
Результат.Вставить("Доверенность", Доверенность);
Возврат Результат;
@@ -3771,6 +3982,13 @@
ЗаписьСтатуса.Записать();
КонецПроцедуры
Процедура ПриИзмененииСтатусаДоверенности(ИзменившиесяСтатусы) Экспорт
Результат = Новый Структура;
Результат.Вставить("ИмяСобытия", "ПриИзмененииСтатусаДоверенности");
Результат.Вставить("Контекст", ИзменившиесяСтатусы);
СерверныеОповещения.ОтправитьСерверноеОповещение("СтандартныеПодсистемы.МашиночитаемыеДоверенности", Результат, Неопределено);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@@ -24,16 +24,16 @@
КонецФункции
Функция ПолучитьСтатусТранзакцииМЧДРР(ИдентификаторТранзакции, ТокенДоступа = "", НомерДоверенности = "") Экспорт
Возврат МашиночитаемыеДоверенностиФНССлужебный.ПолучитьСтатусТранзакцииМЧДРР(ИдентификаторТранзакции, ТокенДоступа, НомерДоверенности);
Функция ПолучитьСтатусТранзакцииМЧДРР(ИдентификаторТранзакции, ТокенДоступа = "", НомерДоверенности = "", ЦельПолучения = "") Экспорт
Возврат МашиночитаемыеДоверенностиФНССлужебный.ПолучитьСтатусТранзакцииМЧДРР(ИдентификаторТранзакции, ТокенДоступа, НомерДоверенности, ЦельПолучения);
КонецФункции
Функция ПолучитьЧастичныеДанныеДоверенностиМЧДРР(НомерДоверенности, ТокенДоступа = "") Экспорт
Возврат МашиночитаемыеДоверенностиФНССлужебный.ПолучитьЧастичныеДанныеДоверенностиМЧДРР(НомерДоверенности, ТокенДоступа);
Функция ПолучитьЧастичныеДанныеДоверенностиМЧДРР(НомерДоверенности, ТокенДоступа = "", ЦельПолучения = "") Экспорт
Возврат МашиночитаемыеДоверенностиФНССлужебный.ПолучитьЧастичныеДанныеДоверенностиМЧДРР(НомерДоверенности, ТокенДоступа, ЦельПолучения);
КонецФункции
Функция ПолучитьПолныеДанныеДоверенностиМЧДРР(НомерДоверенности, ИННДоверителя, ТокенДоступа = "") Экспорт
Возврат МашиночитаемыеДоверенностиФНССлужебный.ПолучитьПолныеДанныеДоверенностиМЧДРР(НомерДоверенности, ИННДоверителя, ТокенДоступа);
Функция ПолучитьПолныеДанныеДоверенностиМЧДРР(НомерДоверенности, ИННДоверителя, ТокенДоступа = "", ЦельПолучения = "") Экспорт
Возврат МашиночитаемыеДоверенностиФНССлужебный.ПолучитьПолныеДанныеДоверенностиМЧДРР(НомерДоверенности, ИННДоверителя, ТокенДоступа, ЦельПолучения);
КонецФункции
Функция ЗагрузитьДоверенностьИзРеестра(НомерДоверенности, ИННДоверителя, ТокенДоступа = "") Экспорт
@@ -82,9 +82,8 @@
Функция РезультатПроверкиДоверенности(Знач Доверенность, Знач ПроверятьВРеестреФНС = Неопределено, Знач ИдентификаторФормы = Неопределено) Экспорт
РеквизитыДоверенности = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Доверенность,
"ФайлДоверенности, РегистрироватьВРеестре, НомерДоверенности, Статус, Ссылка, Верна, СтатусВернаУстановленВручную, УстановившийСтатусВерна");
Возврат МашиночитаемыеДоверенностиФНССлужебный.РезультатПроверкиДанныхДоверенности(РеквизитыДоверенности, ПроверятьВРеестреФНС, ИдентификаторФормы);
Возврат МашиночитаемыеДоверенностиФНССлужебный.РезультатПроверкиДанныхДоверенности(МашиночитаемыеДоверенностиФНССлужебный.ДанныеМЧД(Доверенность),
ПроверятьВРеестреФНС, ИдентификаторФормы);
КонецФункции
@@ -83,6 +83,21 @@
КонецПроцедуры
Процедура ПриОбработкеНавигационнойСсылкиОшибкиПроверкиПодписи(Форма, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) Экспорт
СтандартнаяОбработка = Ложь;
Если ЗначениеЗаполнено(НавигационнаяСсылкаФорматированнойСтроки) Тогда
Ошибка = Новый Структура;
Ошибка.Вставить("ОписаниеОшибки", НавигационнаяСсылкаФорматированнойСтроки);
ЭлектроннаяПодписьСлужебныйКлиент.ПоказатьОшибкуОбращенияКПрограмме(
НСтр("ru='Проверка доверенности подписи'"), "", Ошибка, Новый Структура);
КонецЕсли;
КонецПроцедуры
Функция ИнформацияМЧД(РезультатПроверкиПодписиПоМЧД) Экспорт
РезультатПроверки = ПолучитьИзВременногоХранилища(РезультатПроверкиПодписиПоМЧД);
@@ -97,7 +112,7 @@
Массив.Добавить(СтроковыеФункцииКлиент.ФорматированнаяСтрока(НСтр("ru = '%1 <a href=%2>%3</a>'"),
Проверка,
ПолучитьНавигационнуюСсылку(Результат.МашиночитаемаяДоверенность),
Результат.МашиночитаемаяДоверенность));
Результат.Представление));
Массив.Добавить(Символы.ПС);
КонецЦикла;
@@ -109,6 +124,19 @@
КонецФункции
// См. СтандартныеПодсистемыКлиент.ПриПолученииСерверногоОповещения
Процедура ПриПолученииСерверногоОповещения(ИмяОповещения, Результат) Экспорт
Если ИмяОповещения <> "СтандартныеПодсистемы.МашиночитаемыеДоверенности" Тогда
Возврат;
КонецЕсли;
Если Результат.ИмяСобытия = "ПриИзмененииСтатусаДоверенности" Тогда
МашиночитаемыеДоверенностиФНСКлиентПереопределяемый.ПриИзмененииСтатусаДоверенности(Результат.Контекст);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -122,6 +150,7 @@
Структура.Вставить("Представители", Новый Массив);
Структура.Вставить("РедактированиеТаблицы", РедактированиеТаблицы);
Структура.Вставить("Поле");
Структура.Вставить("ПоказыватьПерсональныеДанные", Истина);
Если Представитель Тогда
Структура.Вставить("ТипУчастникаМЧД", ПредопределенноеЗначение("Перечисление.ТипыУчастниковМЧД.Представитель"));
@@ -325,7 +354,7 @@
РезультатПолучения = МашиночитаемыеДоверенностиФНССлужебныйВызовСервера.ЗагрузитьДоверенностьИзРеестра(НомерДоверенности, ИННДоверителя);
Если ЗначениеЗаполнено(РезультатПолучения.Ошибка) Тогда
КонтекстОшибки = КонтекстДляОбработкиОшибкиРР();
КонтекстОшибки.ЗаголовокПредупреждения = НСтр("ru='Не удалось получить полные данные доверенности'");
КонтекстОшибки.ЗаголовокПредупреждения = РезультатПолучения.Ошибка.ЗаголовокОшибки;
ОбработатьОшибкуВзаимодействияРР(РезультатПолучения.Ошибка, КонтекстОшибки);
Возврат;
КонецЕсли;
@@ -16,6 +16,7 @@
// Возвращаемое значение:
// Структура:
// * МашиночитаемаяДоверенность - СправочникСсылка.МашиночитаемыеДоверенности
// * Представление - Строка - представление доверенности для отображения пользователям, т.к. может не быть прав на чтение.
// * ТребуетсяПроверка - Булево
// * ДатаПроверки - Дата
// * Верна - Булево
@@ -31,6 +32,7 @@
Функция РезультатПроверкиПодписиПоМЧД(Доверенность) Экспорт
Структура = Новый Структура;
Структура.Вставить("Представление");
Структура.Вставить("МашиночитаемаяДоверенность", Доверенность);
Структура.Вставить("ТребуетсяПроверка", Истина);
Структура.Вставить("ДатаПроверки");
@@ -50,9 +52,32 @@
#Область СлужебныеПроцедурыИФункции
Функция ПерсональныеДанные() Экспорт
ПерсональныеДанные = Новый Массив;
ПерсональныеДанные.Добавить("ДатаРождения");
ПерсональныеДанные.Добавить("МестоРождения");
ПерсональныеДанные.Добавить("АдресРегистрации");
ПерсональныеДанные.Добавить("ДокументНомер");
ПерсональныеДанные.Добавить("ДокументКемВыдан");
ПерсональныеДанные.Добавить("ДокументДатаВыдачи");
ПерсональныеДанные.Добавить("ДокументКодПодразделения");
ПерсональныеДанные.Добавить("ДокументСрокДействия");
ПерсональныеДанные.Добавить("СтраховойНомерПФР");
ПерсональныеДанные.Добавить("НомерЗаписиЕдиногоРегистраНаселения");
Возврат ПерсональныеДанные;
КонецФункции
Функция ЭтоПолномочиеФНС(КодПолномочия) Экспорт
Возврат СтрНачинаетсяС(КодПолномочия, "1_FNS")
Или СтрНачинаетсяС(КодПолномочия, "FNS_");
КонецФункции
Функция РасчетныйСтатусДокумента(ТехническийСтатус, Верна) Экспорт
Если ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Зарегистрировано")
Если ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Зарегистрирована")
Или ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.РегистрацияОтмены")
Или ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Активна") Тогда
Если Верна Тогда
@@ -62,7 +87,7 @@
КонецЕсли;
ИначеЕсли ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Создание")
Или ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Подписание")
Или ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Подписан")
Или ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Подписана")
Или ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Регистрация") Тогда
РасчетныйСтатусДокумента = ПредопределенноеЗначение("Перечисление.СтатусыМЧД.Черновик");
Иначе
@@ -77,11 +102,11 @@
ВнешниеСтатусы = Новый Соответствие;
ВнешниеСтатусы.Вставить(ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Регистрация"), Истина);
ВнешниеСтатусы.Вставить(ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Зарегистрировано"), Истина);
ВнешниеСтатусы.Вставить(ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Зарегистрирована"), Истина);
ВнешниеСтатусы.Вставить(ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.РегистрацияОтмены"), Истина);
ВнешниеСтатусы.Вставить(ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Отменена"), Истина);
ВнешниеСтатусы.Вставить(ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.ОшибкаРегистрации"), Истина);
ВнешниеСтатусы.Вставить(ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Просрочено"), Истина);
ВнешниеСтатусы.Вставить(ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Просрочена"), Истина);
ВнешниеСтатусы.Вставить(ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.ДатаНачалаДействияНеНаступила"), Истина);
Возврат ВнешниеСтатусы;
@@ -131,7 +156,7 @@
Реквизиты.Добавить("КодНалогоплательщикаВСтранеРегистрации", НСтр("ru = 'Код налогоплательщика в стране регистрации (инкорпорации) или аналог'"));
Реквизиты.Добавить("ФактическийАдрес", НСтр("ru = 'Фактический адрес местонахождения'"));
Реквизиты.Добавить("ФактическийАдресЗначение", НСтр("ru = 'Фактический адрес местонахождения'"), Истина);
Реквизиты.Добавить("ЮридическийАдресВСтранеРегистрации", НСтр("ru = 'Адрес юридического лица на территории государства, в котором оно зарегистрировано'"));
Реквизиты.Добавить("ЮридическийАдресВСтранеРегистрации", НСтр("ru = 'Адрес юридического лица на территории государства, в котором оно Зарегистрирована'"));
Реквизиты.Добавить("ЮридическийАдресВСтранеРегистрацииЗначение", НСтр("ru = 'Адрес юридического лица на территории государства'"), Истина);
КонецЕсли;
@@ -195,7 +220,7 @@
Реквизиты.Добавить("ЭтоДолжностноеЛицо", НСтр("ru = 'Это должностное лицо'"), Истина);
Если ДляЗаполнения Или ВидФизическогоЛица <> "ИндивидуальныйПредприниматель" Тогда
Реквизиты.Добавить("ДолжностьЛицаБезДоверенности", НСтр("ru = 'Должность'"));
Реквизиты.Добавить("ДолжностьЛицаДоверителя", НСтр("ru = 'Должность'"));
КонецЕсли;
Реквизиты.Добавить("Фамилия", НСтр("ru = 'Фамилия'"));
@@ -232,7 +257,7 @@
КонецЕсли;
Если ВидФизическогоЛица = "ФизическоеЛицо" Тогда
Реквизиты.НайтиПоЗначению("ДолжностьЛицаБезДоверенности").Пометка = Истина;
Реквизиты.НайтиПоЗначению("ДолжностьЛицаДоверителя").Пометка = Истина;
КонецЕсли;
Если ВидФизическогоЛица = "ДолжностноеЛицо" Тогда
@@ -243,7 +268,7 @@
Реквизиты.НайтиПоЗначению("ДокументДатаВыдачи").Пометка = Истина;
Реквизиты.НайтиПоЗначению("ДокументКодПодразделения").Пометка = Истина;
ИначеЕсли ДляЗаполнения Тогда
Реквизиты.НайтиПоЗначению("ДолжностьЛицаБезДоверенности").Пометка = Истина;
Реквизиты.НайтиПоЗначению("ДолжностьЛицаДоверителя").Пометка = Истина;
КонецЕсли;
Возврат Реквизиты;
@@ -355,7 +380,7 @@
Проверка = НСтр("ru = 'Требуется проверка подписи по МЧД'");
Верна = Ложь;
Иначе
Проверка = НСтр("ru = 'Не верна подпись по МДЧ'");
Проверка = НСтр("ru = 'Не верна подпись по МЧД'");
Верна = Ложь;
КонецЕсли;
@@ -396,6 +421,7 @@
// * Статус - ПеречислениеСсылка.СтатусыМЧД
// * ТребуетсяПроверка - Булево
// * РезультатыПроверкиПодписей - Массив из Структура
// * ОписаниеОшибок - см. НовоеОписаниеОшибок
//
Функция РезультатПроверкиДоверенности(Результат) Экспорт
@@ -405,12 +431,19 @@
РезультатПроверкиДоверенности = Новый Структура;
РезультатПроверкиДоверенности.Вставить("Верна");
РезультатПроверкиДоверенности.Вставить("ТекстОшибки", "");
РезультатПроверкиДоверенности.Вставить("ЕстьВсеПодписи", РезультатПроверкиПодписей.ЕстьВсеПодписи);
РезультатПроверкиДоверенности.Вставить("ОписаниеОшибок");
РезультатПроверкиДоверенности.Вставить("ЕстьВсеПодписи", Ложь);
РезультатПроверкиДоверенности.Вставить("ЕстьВРеестреФНС", Результат.ЕстьВРеестреФНС);
РезультатПроверкиДоверенности.Вставить("Статус");
РезультатПроверкиДоверенности.Вставить("ТребуетсяПроверка", Ложь);
РезультатПроверкиДоверенности.Вставить("РезультатыПроверкиПодписей",
РезультатПроверкиПодписей.РезультатыПроверкиПодписей);
РезультатПроверкиДоверенности.Вставить("РезультатыПроверкиПодписей", Новый Массив);
ОписаниеОшибок = НовоеОписаниеОшибок();
Если Результат.ВыполненаПроверкаПодписей Тогда
РезультатПроверкиДоверенности.РезультатыПроверкиПодписей = РезультатПроверкиПодписей.РезультатыПроверкиПодписей;
РезультатПроверкиДоверенности.ЕстьВсеПодписи = РезультатПроверкиПодписей.ЕстьВсеПодписи;
ПодписиВерны = Истина; ПодписиСоответствуют = Истина; ПодписиТребуютПроверки = Ложь;
@@ -425,6 +458,7 @@
Если Не РезультатПроверкиПодписи.Соответствует Тогда
ПодписиСоответствуют = Ложь;
КонецЕсли;
КонецЦикла;
РезультатПроверкиДоверенности.Верна = (СтатусВернаУстановленВручную
@@ -433,6 +467,13 @@
РезультатПроверкиДоверенности.ТребуетсяПроверка = Не СтатусВернаУстановленВручную И ПодписиТребуютПроверки
Или ЗначениеЗаполнено(Результат.ОшибкаПроверкиВРеестреФНС);
Иначе
РезультатПроверкиДоверенности.Верна = Результат.СтатусВернаИзДанныхДоверенности;
РезультатПроверкиДоверенности.ТребуетсяПроверка = Не ЗначениеЗаполнено(Результат.ДатаПроверкиИзДанныхДоверенности)
Или ЗначениеЗаполнено(Результат.ОшибкаПроверкиВРеестреФНС);
КонецЕсли;
Если Результат.Статус = ПредопределенноеЗначение("Перечисление.СтатусыМЧД.Действует")
И Не РезультатПроверкиДоверенности.Верна Тогда
@@ -446,33 +487,115 @@
Ошибки = Новый Массив;
Если СтатусВернаУстановленВручную Тогда
Ошибки.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Статус Верна установлен вручную (%1)'"), Результат.УстановившийСтатусВерна));
Иначе
ОписаниеОшибки = НовыеСвойстваОшибки();
ОписаниеОшибки.Описание = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Статус Верна установлен вручную (%1)'"), Результат.УстановившийСтатусВерна);
ОписаниеОшибок.Ошибки.Добавить(ОписаниеОшибки);
Ошибки.Добавить(ОписаниеОшибки.Описание);
ИначеЕсли Результат.ВыполненаПроверкаПодписей Тогда
Если ПодписиТребуютПроверки Тогда
Ошибки.Добавить(НСтр("ru='Есть подписи доверителей, требующие проверки'"));
ОписаниеОшибки = НовыеСвойстваОшибки();
ОписаниеОшибки.Описание = НСтр("ru='Есть подписи доверителей, требующие проверки'");
ОписаниеОшибок.Ошибки.Добавить(ОписаниеОшибки);
Ошибки.Добавить(ОписаниеОшибки.Описание);
КонецЕсли;
Если Не ПодписиВерны Тогда
Ошибки.Добавить(НСтр("ru='Есть недействительные подписи доверителей'"));
ОписаниеОшибки = НовыеСвойстваОшибки();
ОписаниеОшибки.Описание = НСтр("ru='Есть недействительные подписи доверителей'");
ОписаниеОшибок.Ошибки.Добавить(ОписаниеОшибки);
Ошибки.Добавить(ОписаниеОшибки.Описание);
КонецЕсли;
Если Не ПодписиСоответствуют Тогда
Ошибки.Добавить(НСтр("ru='Есть подписи доверителей, не соответствующие доверенности'"));
ОписаниеОшибки = НовыеСвойстваОшибки();
ОписаниеОшибки.Описание = НСтр("ru='Есть подписи доверителей, не соответствующие доверенности'");
ОписаниеОшибок.Ошибки.Добавить(ОписаниеОшибки);
Ошибки.Добавить(ОписаниеОшибки.Описание);
КонецЕсли;
Если Не РезультатПроверкиПодписей.ЕстьВсеПодписи Тогда
Ошибки.Добавить(РезультатПроверкиПодписей.ТекстОшибки);
ОписаниеОшибки = НовыеСвойстваОшибки();
ОписаниеОшибки.Описание = РезультатПроверкиПодписей.ТекстОшибки;
ОписаниеОшибок.Ошибки.Добавить(ОписаниеОшибки);
Ошибки.Добавить(ОписаниеОшибки.Описание);
КонецЕсли;
ИначеЕсли Не ЗначениеЗаполнено(Результат.ДатаПроверкиИзДанныхДоверенности) Тогда
ОписаниеОшибки = НовыеСвойстваОшибки();
ОписаниеОшибки.Описание = НСтр("ru='Статус доверенности в программе - требуется проверка'");
ОписаниеОшибок.Ошибки.Добавить(ОписаниеОшибки);
Ошибки.Добавить(ОписаниеОшибки.Описание);
Иначе
ОписаниеОшибки = НовыеСвойстваОшибки();
ОписаниеОшибки.Описание = НСтр("ru='Статус доверенности в программе - не верна'");
ОписаниеОшибок.Ошибки.Добавить(ОписаниеОшибки);
Ошибки.Добавить(ОписаниеОшибки.Описание);
КонецЕсли;
Если ЗначениеЗаполнено(Результат.ОшибкаПроверкиВРеестреФНС) Тогда
Ошибки.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Не удалось проверить доверенность в реестре ФНС: %1'"),
Результат.ОшибкаПроверкиВРеестреФНС));
ОписаниеОшибки = НовыеСвойстваОшибки();
ОписаниеОшибки.Описание = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Не удалось проверить доверенность в реестре ФНС: %1'"), Результат.ОшибкаПроверкиВРеестреФНС);
ОписаниеОшибок.Ошибки.Добавить(ОписаниеОшибки);
Ошибки.Добавить(ОписаниеОшибки.Описание);
КонецЕсли;
РезультатПроверкиДоверенности.ТекстОшибки = СтрСоединить(Ошибки, Символы.ПС);
РезультатПроверкиДоверенности.ОписаниеОшибок = ОписаниеОшибок;
РезультатПроверкиДоверенности.ТекстОшибки = СтрСоединить(Ошибки, "; ");
КонецЕсли;
Возврат РезультатПроверкиДоверенности;
КонецФункции
// Возвращаемое значение:
// Структура - содержит ошибки выполнения проверок:
// * ОписаниеОшибки - Строка - полное описание ошибки, когда оно возвращается строкой.
// * ЗаголовокОшибки - Строка - заголовок ошибки, который соответствует операции
// когда операция одна (не заполнен, когда операций несколько).
// * Ошибки - Массив из см. НовыеСвойстваОшибки
//
Функция НовоеОписаниеОшибок() Экспорт
Описание = Новый Структура;
Описание.Вставить("ОписаниеОшибки", "");
Описание.Вставить("ЗаголовокОшибки", "");
Описание.Вставить("Ошибки", Новый Массив);
Возврат Описание;
КонецФункции
// Возвращает свойства ошибки выполнения одной проверки.
//
// Возвращаемое значение:
// Структура:
// * ЗаголовокОшибки - Строка - заголовок ошибки, который соответствует операции
// когда операций несколько (не заполнен, когда операция одна).
// * Описание - Строка - краткое представление ошибки.
//
Функция НовыеСвойстваОшибки() Экспорт
СвойстваОшибки = Новый Структура;
СвойстваОшибки.Вставить("ЗаголовокОшибки", "");
СвойстваОшибки.Вставить("Описание", "");
Возврат СвойстваОшибки;
КонецФункции
#КонецОбласти
@@ -1079,7 +1079,7 @@
Если ПолноеИмяДокумента = Неопределено Тогда
Если ДополнительныеПараметры.ВыбиратьПорциями Тогда
ТекстЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 10000
"ВЫБРАТЬ ПЕРВЫЕ 1000
| ТаблицаРегистраИзменения.Регистратор КАК Регистратор,
| МАКСИМУМ(ЕСТЬNULL(ТаблицаРегистра.Период, ДАТАВРЕМЯ(3000, 1, 1))) КАК Период
|ПОМЕСТИТЬ #ВТДляОбработкиРегистратор
@@ -1141,7 +1141,7 @@
Иначе
ФрагментыЗапроса = Новый Массив;
ФрагментЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 10000
"ВЫБРАТЬ ПЕРВЫЕ 1000
| ТаблицаДокумента.Ссылка КАК Регистратор
|ПОМЕСТИТЬ #ВТДляОбработкиРегистратор
|ИЗ
@@ -1275,7 +1275,7 @@
ЕстьФильтр = Ложь;
Если ПолноеИмяДокумента = Неопределено Тогда
ТекстЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 10000
"ВЫБРАТЬ ПЕРВЫЕ 1000
| &ВыбираемыеПоля
|ИЗ
| #ТаблицаРегистраИзменения КАК ТаблицаРегистраИзменения
@@ -1310,7 +1310,7 @@
УстановитьПоляУпорядочиванияРегистра(ПараметрыПостроения);
Иначе
ТекстЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 10000
"ВЫБРАТЬ ПЕРВЫЕ 1000
| &ВыбираемыеПоля
|ИЗ
| #ТаблицаРегистраИзменения КАК ТаблицаРегистраИзменения
@@ -1439,7 +1439,7 @@
ПараметрыПостроения = ПараметрыПостроенияВыборки(ДополнительныеПараметры);
ТекстЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 10000
"ВЫБРАТЬ ПЕРВЫЕ 1000
| &ВыбираемыеПоля
|ИЗ
| #ТаблицаОбъектаИзменения КАК ТаблицаИзменений
@@ -1555,7 +1555,7 @@
ФрагментыЗапроса = Новый Массив;
ФрагментЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 10000
"ВЫБРАТЬ ПЕРВЫЕ 1000
| ТаблицаОбъекта.Ссылка КАК Ссылка
|ПОМЕСТИТЬ #ВТДляОбработкиСсылка
|ИЗ
@@ -1576,7 +1576,7 @@
| И &УсловиеАктуальныеДанные";
Если Не ДополнительныеПараметры.ВыбиратьПорциями Тогда
ФрагментЗапроса = СтрЗаменить(ФрагментЗапроса, "ВЫБРАТЬ ПЕРВЫЕ 10000", "ВЫБРАТЬ"); // @query-part-1 @query-part-2
ФрагментЗапроса = СтрЗаменить(ФрагментЗапроса, "ВЫБРАТЬ ПЕРВЫЕ 1000", "ВЫБРАТЬ"); // @query-part-1 @query-part-2
КонецЕсли;
ФильтрАктуальныхДанных = ОбновлениеИнформационнойБазыСлужебный.ФильтрАктуальныхДанных(Неопределено, "ТаблицаОбъекта");
@@ -1693,7 +1693,7 @@
Запрос = Новый Запрос;
ТекстЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 10000
"ВЫБРАТЬ ПЕРВЫЕ 1000
| &ВыбираемыеПоля
|ИЗ
| #ТаблицаОбъектаИзменения КАК ТаблицаИзменений
@@ -1819,7 +1819,7 @@
Запрос = Новый Запрос;
ТекстЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 10000
"ВЫБРАТЬ ПЕРВЫЕ 1000
| &ТекстВыборкиИзмерений
|ПОМЕСТИТЬ #ВТДляОбработкиИзмерения
|ИЗ
@@ -1836,7 +1836,7 @@
|УНИЧТОЖИТЬ #ВТЗаблокированоИзмерения";
Если Не ДополнительныеПараметры.ВыбиратьПорциями Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ВЫБРАТЬ ПЕРВЫЕ 10000", "ВЫБРАТЬ"); // @query-part-1 @query-part-2
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ВЫБРАТЬ ПЕРВЫЕ 1000", "ВЫБРАТЬ"); // @query-part-1 @query-part-2
КонецЕсли;
ИзмеренияСОсновнымОтбором = Новый Массив;
@@ -3319,11 +3319,11 @@
// Максимальное количество записей в выборке данных для обновления.
//
// Возвращаемое значение:
// Число - константа 10000.
// Число - константа 1000.
//
Функция МаксимальноеКоличествоЗаписейВВыборке() Экспорт
Возврат 10000;
Возврат 1000;
КонецФункции
@@ -3346,7 +3346,16 @@
НаборДанных = Параметры.ОбновляемыеДанные.НаборДанных;
Если НаборДанных.Количество() > 0 Тогда
Данные = НаборДанных[0].Данные;
Данные = НаборДанных[0].Данные.Скопировать();
Для Индекс = 1 По НаборДанных.Количество() - 1 Цикл
Набор = НаборДанных[Индекс];
Для Каждого ДанныеНабора Из Набор.Данные Цикл
СтрокаДанных = Данные.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаДанных, ДанныеНабора);
КонецЦикла;
КонецЦикла;
Если Данные.Количество() > 0 Тогда
Возврат Данные;
@@ -6023,7 +6032,7 @@
Процедура УстановитьРазмерВыборки(ТекстЗапроса, Параметры)
РазмерВыборки = ?(Параметры.ВыбиратьПорциями, Параметры.МаксимумВыборки, Неопределено);
ИзменитьМаксимумВыборки(ТекстЗапроса, 10000, РазмерВыборки);
ИзменитьМаксимумВыборки(ТекстЗапроса, 1000, РазмерВыборки);
КонецПроцедуры
@@ -45,7 +45,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.9.162";
Описание.Версия = "3.1.9.179";
Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -587,7 +587,6 @@
ОбработчикиВыполнялись = ВыполнитьОтложенныйОбработчикОбновления(ПараметрыОбновления); // @skip-check query-in-loop - выполнение отложенных обработчиков.
ОчередиДляОчистки = ОчередиДляОчистки(Обработанные); // @skip-check query-in-loop - получение актуальных данных об обработанных очередях.
ОбщегоНазначенияКлиентСервер.РазностьМассивов(ОчередиДляОчистки, Обработанные);
ОчиститьОбработанныеОчереди(ОчередиДляОчистки, Обработанные, СведенияОбОбновлении);
Если ОбработчикиВыполнялись Тогда
@@ -3696,7 +3695,6 @@
Поток = ДобавитьПотокОбработчикаОтложенногоОбновления(СведенияОбОбновлении); // @skip-check query-in-loop - многопоточное обновление.
ОчередиДляОчистки = ОчередиДляОчистки(Обработанные); // @skip-check query-in-loop - получение актуальных данных об обработанных очередях.
ОбщегоНазначенияКлиентСервер.РазностьМассивов(ОчередиДляОчистки, Обработанные);
ОчиститьОбработанныеОчереди(ОчередиДляОчистки, Обработанные, СведенияОбОбновлении);
Если ТипЗнч(Поток) = Тип("СтрокаТаблицыЗначений") Тогда
@@ -5636,6 +5634,12 @@
ПараметрыВыборки.ОптимизироватьВыборкуПоСтраницам = Не ЕстьУпорядочиваниеПоВнешнимТаблицам(ПоляУпорядочивания);
Максимум = ОбновлениеИнформационнойБазы.МаксимальноеКоличествоЗаписейВВыборке();
ПараметрыОбхода = ПараметрыОбходаДанныхДляОбновления(ПараметрыПоиска);
ПоискСНачала = ПараметрыПоиска.ПоследняяВыбраннаяЗапись = Неопределено И ПараметрыПоиска.ПерваяЗапись = Неопределено;
Если Не ПоискСНачала Тогда
СледующиеПараметрыОбхода(ПараметрыОбхода, Ложь);
КонецЕсли;
ИтераторОбхода = ТекущиеПараметрыОбхода(ПараметрыОбхода);
РезультатПоиска = НовыйРезультатПоискаПорции();
НаборДанных = НовыйНаборДанныхДляОбновления();
@@ -6289,7 +6293,7 @@
КонецЕсли;
КонецЦикла;
Фрагмент.ПерваяЗапись = КлючЗаписиПервойСтрокиНабораДанных(Фрагмент.НаборДанных);
Фрагмент.ПерваяЗапись = КлючЗаписиПоследнейСтрокиНабораДанных(Фрагмент.НаборДанных);
КонецЦикла;
Возврат Фрагменты;
@@ -10321,6 +10325,8 @@
ИтераторОбхода = ТекущиеПараметрыОбхода(ПараметрыОбхода);
ДополнительныеИсточникиДанных = ПараметрыВыборки.ДополнительныеИсточникиДанных;
ИсходныеПараметрыОбработчика = КонтекстОбработчика.ПараметрыОбработчикаОбновления;
Пока ИтераторОбхода <> Неопределено Цикл
ОбработчикВыполнилсяБезОшибок = Ложь;
СсылочныйОбъект = ИтераторОбхода.СсылочныйОбъект;
@@ -10364,6 +10370,9 @@
Прервать;
КонецЕсли;
// Сброс параметров обработчика перед выполнением следующей порции.
КонтекстОбработчика.ПараметрыОбработчикаОбновления = ИсходныеПараметрыОбработчика;
Если Количество > 0 Тогда
ОбрабатываемыеДанные.ПоследняяВыбраннаяЗапись = КлючЗаписиПоследнейСтрокиНабораДанных(НаборДанных);
Иначе
@@ -11843,6 +11852,7 @@
Запрос.УстановитьПараметр("РежимВыполнения", Перечисления.РежимыВыполненияОбработчиков.Отложенно);
Запрос.УстановитьПараметр("Статус", Перечисления.СтатусыОбработчиковОбновления.Выполнен);
Запрос.УстановитьПараметр("РежимВыполненияОтложенногоОбработчика", Перечисления.РежимыВыполненияОтложенныхОбработчиков.Параллельно);
Запрос.УстановитьПараметр("Обработанные", Обработанные);
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ОбработчикиОбновления.ОчередьОтложеннойОбработки КАК Очередь
@@ -11852,6 +11862,7 @@
| ОбработчикиОбновления.РежимВыполнения = &РежимВыполнения
| И ОбработчикиОбновления.РежимВыполненияОтложенногоОбработчика = &РежимВыполненияОтложенногоОбработчика
| И ОбработчикиОбновления.Статус = &Статус
| И НЕ ОбработчикиОбновления.ОчередьОтложеннойОбработки В (&Обработанные)
| И НЕ ИСТИНА В
| (ВЫБРАТЬ ПЕРВЫЕ 1
| ИСТИНА
@@ -2250,69 +2250,9 @@
ОбщиеПараметры.МинимальнаяВерсияПлатформы = НомерСборкиПоТекущейВерсииПлатформы(ОбщиеПараметры.МинимальнаяВерсияПлатформы);
ОбщиеПараметры.РекомендуемаяВерсияПлатформы = НомерСборкиПоТекущейВерсииПлатформы(ОбщиеПараметры.РекомендуемаяВерсияПлатформы);
// Обновление минимальной и рекомендуемой версии платформы по данным сервиса
Если ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПолучениеОбновленийПрограммы") Тогда
// Проверка версии БИП начиная с которой появился программный интерфейс
МодульИнтернетПоддержкаПользователейКлиентСервер = ОбщийМодуль("ИнтернетПоддержкаПользователейКлиентСервер");
ВерсияБИП = МодульИнтернетПоддержкаПользователейКлиентСервер.ВерсияБиблиотеки();
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияБИП, "2.7.1.35") > 0 Тогда
// Попытка получить данные версий платформы из кеша и переопределить их
Попытка
МодульПолучениеОбновленийПрограммы = ОбщийМодуль("ПолучениеОбновленийПрограммы");
ИнформацияОВерсияхПлатформы = МодульПолучениеОбновленийПрограммы.ИнформацияОВерсияхПлатформы();
// Контроль заполнения версий платформы по данным сервиса
Если Не ПустаяСтрока(ИнформацияОВерсияхПлатформы.МинимальнаяВерсияПлатформы)
Или Не ПустаяСтрока(ИнформацияОВерсияхПлатформы.РекомендуемаяВерсияПлатформы) Тогда
Минимальная = НомерСборкиПоТекущейВерсииПлатформы(ИнформацияОВерсияхПлатформы.МинимальнаяВерсияПлатформы);
Рекомендуемая = НомерСборкиПоТекущейВерсииПлатформы(ИнформацияОВерсияхПлатформы.РекомендуемаяВерсияПлатформы);
Если МинимальнаяИРекомендуемаяВерсияПлатформыЗаполненаНеПравильно(Минимальная, Рекомендуемая) Тогда
МодульПолучениеОбновленийПрограммы.УдалитьИнформациюОВерсияхПлатформы();
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Минимальная и рекомендуемая версии платформы ""1С:Предприятие"", полученные с сервиса обновления программ, не соответствуют следующим требованиям:
| - минимальная версия должна быть заполнена;
| - минимальная версия не должна быть меньше минимальной версии БСП (см. %1);
| - минимальная версия не должна быть меньше рекомендуемой версии.
|Минимальная версия сервиса обновления программ: %2
|Минимальная версия БСП: %3
|Рекомендуемая версия сервиса обновления программ: %4
|
|Минимальная и рекомендуемая версия платформы ""1С:Предприятие"" установлена по данным см. %5.
|Минимальная версия: %6
|Рекомендуемая версия: %7'",
КодОсновногоЯзыка()),
"ОбщегоНазначения.МинимальнаяВерсияПлатформы", Минимальная, НомерСборкиПоТекущейВерсииПлатформы(МинимальнаяВерсияПлатформы()),
Рекомендуемая, "ОбщегоНазначенияПереопределяемый.ПриОпределенииОбщихПараметровБазовойФункциональности",
ОбщиеПараметры.МинимальнаяВерсияПлатформы, ОбщиеПараметры.РекомендуемаяВерсияПлатформы);
ЗаписьЖурналаРегистрации(НСтр("ru = 'Базовая функциональность'", КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Предупреждение,,,
ТекстСообщения);
Иначе
ОбщиеПараметры.МинимальнаяВерсияПлатформы = Минимальная;
ОбщиеПараметры.РекомендуемаяВерсияПлатформы = Рекомендуемая;
КонецЕсли;
КонецЕсли;
Исключение
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось изменить минимальную и рекомендуемую версию платформы ""1С:Предприятие"", полученную с сервиса обновления программ, по причине:
|%1'",
КодОсновногоЯзыка()), ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ЗаписьЖурналаРегистрации(НСтр("ru = 'Базовая функциональность'", КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Предупреждение,,,
ТекстСообщения);
КонецПопытки;
КонецЕсли;
КонецЕсли;
// Локализация
УточнитьМинимальнуюВерсиюПлатформыИзСервиса(ОбщиеПараметры);
// Конец Локализация
СистемнаяИнформация = Новый СистемнаяИнформация;
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, ОбщиеПараметры.МинимальнаяВерсияПлатформы) < 0
@@ -2332,10 +2272,12 @@
|Минимальная версия БСП: %4
|Рекомендуемая версия: %5'",
КодОсновногоЯзыка());
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения,
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения,
"ОбщегоНазначенияПереопределяемый.ПриОпределенииОбщихПараметровБазовойФункциональности",
"ОбщегоНазначения.МинимальнаяВерсияПлатформы",
Минимальная, НомерСборкиПоТекущейВерсииПлатформы(МинимальнаяВерсияПлатформы()), Рекомендуемая);
ЗаписьЖурналаРегистрации(НСтр("ru = 'Базовая функциональность'", КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Предупреждение,,,
ТекстСообщения);
КонецЕсли;
// Обратная совместимость.
@@ -10072,6 +10014,77 @@
КонецФункции
// Локализация
// Параметры:
// ОбщиеПараметры - см. ОбщиеПараметрыБазовойФункциональности
//
Процедура УточнитьМинимальнуюВерсиюПлатформыИзСервиса(ОбщиеПараметры)
Если Не ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПолучениеОбновленийПрограммы") Тогда
Возврат;
КонецЕсли;
// Проверка версии БИП начиная с которой появился программный интерфейс
МодульИнтернетПоддержкаПользователейКлиентСервер = ОбщийМодуль("ИнтернетПоддержкаПользователейКлиентСервер");
ВерсияБИП = МодульИнтернетПоддержкаПользователейКлиентСервер.ВерсияБиблиотеки();
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияБИП, "2.7.1.35") <= 0 Тогда
Возврат;
КонецЕсли;
Попытка
МодульПолучениеОбновленийПрограммы = ОбщийМодуль("ПолучениеОбновленийПрограммы");
ИнформацияОВерсияхПлатформы = МодульПолучениеОбновленийПрограммы.ИнформацияОВерсияхПлатформы();
// Контроль заполнения версий платформы по данным сервиса
Если ПустаяСтрока(ИнформацияОВерсияхПлатформы.МинимальнаяВерсияПлатформы)
И ПустаяСтрока(ИнформацияОВерсияхПлатформы.РекомендуемаяВерсияПлатформы) Тогда
Возврат;
КонецЕсли;
Минимальная = НомерСборкиПоТекущейВерсииПлатформы(ИнформацияОВерсияхПлатформы.МинимальнаяВерсияПлатформы);
Рекомендуемая = НомерСборкиПоТекущейВерсииПлатформы(ИнформацияОВерсияхПлатформы.РекомендуемаяВерсияПлатформы);
Если МинимальнаяИРекомендуемаяВерсияПлатформыЗаполненаНеПравильно(Минимальная, Рекомендуемая) Тогда
МодульПолучениеОбновленийПрограммы.УдалитьИнформациюОВерсияхПлатформы();
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Минимальная и рекомендуемая версии платформы ""1С:Предприятие"", полученные с сервиса обновления программ, не соответствуют следующим требованиям:
| - минимальная версия должна быть заполнена;
| - минимальная версия не должна быть меньше минимальной версии БСП (см. %1);
| - минимальная версия не должна быть меньше рекомендуемой версии.
|Минимальная версия сервиса обновления программ: %2
|Минимальная версия БСП: %3
|Рекомендуемая версия сервиса обновления программ: %4
|
|Минимальная и рекомендуемая версия платформы ""1С:Предприятие"" установлена по данным см. %5.
|Минимальная версия: %6
|Рекомендуемая версия: %7'",
КодОсновногоЯзыка()),
"ОбщегоНазначения.МинимальнаяВерсияПлатформы", Минимальная, НомерСборкиПоТекущейВерсииПлатформы(МинимальнаяВерсияПлатформы()),
Рекомендуемая, "ОбщегоНазначенияПереопределяемый.ПриОпределенииОбщихПараметровБазовойФункциональности",
ОбщиеПараметры.МинимальнаяВерсияПлатформы, ОбщиеПараметры.РекомендуемаяВерсияПлатформы);
ЗаписьЖурналаРегистрации(НСтр("ru = 'Базовая функциональность'", КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Предупреждение,,,
ТекстСообщения);
Возврат;
КонецЕсли;
ОбщиеПараметры.МинимальнаяВерсияПлатформы = Минимальная;
ОбщиеПараметры.РекомендуемаяВерсияПлатформы = Рекомендуемая;
Исключение
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось изменить минимальную и рекомендуемую версию платформы ""1С:Предприятие"", полученную с сервиса обновления программ, по причине:
|%1'",
КодОсновногоЯзыка()), ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ЗаписьЖурналаРегистрации(НСтр("ru = 'Базовая функциональность'", КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Предупреждение,,,
ТекстСообщения);
КонецПопытки;
КонецПроцедуры
// Конец Локализация
#КонецОбласти
#КонецОбласти
@@ -188,7 +188,6 @@
Блокировка = Новый БлокировкаДанных;
Для Каждого КлючеваяОперация Из КлючевыеОперации Цикл
ЭлементБлокировки = Блокировка.Добавить("Справочник.КлючевыеОперации");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.УстановитьЗначение("Имя", КлючеваяОперация.ИмяКлючевойОперации);
КонецЦикла;
Блокировка.Заблокировать();
@@ -266,10 +265,9 @@
Блокировка = Новый БлокировкаДанных;
Для Каждого КлючеваяОперация Из КлючевыеОперации Цикл
ЭлементБлокировки = Блокировка.Добавить("Справочник.КлючевыеОперации");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.УстановитьЗначение("Имя", КлючеваяОперация.ИмяКлючевойОперацииСтарое);
ЭлементБлокировки = Блокировка.Добавить("Справочник.КлючевыеОперации");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.УстановитьЗначение("Имя", КлючеваяОперация.ИмяКлючевойОперацииНовое);
КонецЦикла;
Блокировка.Заблокировать();
@@ -487,7 +485,6 @@
Блокировка = Новый БлокировкаДанных;
Для Каждого КлючеваяОперация Из КлючевыеОперации Цикл
ЭлементБлокировки = Блокировка.Добавить("Справочник.КлючевыеОперации");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.УстановитьЗначение("Имя", КлючеваяОперация.ИмяКлючевойОперации);
КонецЦикла;
Блокировка.Заблокировать();
@@ -254,6 +254,18 @@
КонецФункции
Функция ВажностьИнтернетПочтовогоСообщенияИзСтроки(Важность) Экспорт
Если СтрСравнить(Важность, РаботаСПочтовымиСообщениямиСлужебныйКлиентСервер.ВысокаяВажностьИнтернетПочтовогоСообщения()) = 0 Тогда
Возврат ВажностьИнтернетПочтовогоСообщения.Высокая;
ИначеЕсли СтрСравнить(Важность, РаботаСПочтовымиСообщениямиСлужебныйКлиентСервер.НизкаяВажностьИнтернетПочтовогоСообщения()) = 0 Тогда
Возврат ВажностьИнтернетПочтовогоСообщения.Низкая;
Иначе
Возврат ВажностьИнтернетПочтовогоСообщения.Обычная;
КонецЕсли;
КонецФункции
// Восстановление пароля
Процедура ОбновитьНастройкиСервераВосстановленияПочты(Ссылка) Экспорт
@@ -0,0 +1,23 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2023, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область СлужебныйПрограммныйИнтерфейс
Функция ВысокаяВажностьИнтернетПочтовогоСообщения() Экспорт
Возврат "Высокая";
КонецФункции
Функция НизкаяВажностьИнтернетПочтовогоСообщения() Экспорт
Возврат "Низкая";
КонецФункции
Функция ОбычнаяВажностьИнтернетПочтовогоСообщения() Экспорт
Возврат "Обычная";
КонецФункции
#КонецОбласти
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="2caee148-4962-4947-bca7-9477741b8c1a">
<name>РаботаСПочтовымиСообщениямиСлужебныйКлиентСервер</name>
<synonym>
<key>ru</key>
<value>Работа с почтовыми сообщениями служебный клиент сервер</value>
</synonym>
<clientManagedApplication>true</clientManagedApplication>
<server>true</server>
<externalConnection>true</externalConnection>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>
@@ -5752,6 +5752,7 @@
ИменаКоманд.Добавить("ДобавитьЭПИзФайла");
ИменаКоманд.Добавить("УдалитьЭП");
ИменаКоманд.Добавить("ПродлитьДействиеПодписей");
ИменаКоманд.Добавить("Редактировать");
ИменаКоманд.Добавить("СохранитьИзменения");
@@ -2407,6 +2407,36 @@
КонецФункции
Функция РезультатУдаленияФайлов(ФайлыИлиВерсии, УникальныйИдентификатор) Экспорт
УстановитьПривилегированныйРежим(Истина);
РезультатУдаления = Новый Соответствие;
Для Каждого ФайлИлиВерсия Из ФайлыИлиВерсии Цикл
Результат = Новый Структура("ТекстПредупреждения, Файлы", "", Новый Массив);
АвторизованныйПользователь = Пользователи.АвторизованныйПользователь();
Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ФайлИлиВерсия, "Автор") <> АвторизованныйПользователь Тогда
Результат.ТекстПредупреждения = НСтр("ru = 'Только автор может удалить версию файла.'");
Продолжить;
КонецЕсли;
УдалитьДанныеФайла(ФайлИлиВерсия, УникальныйИдентификатор, Результат, АвторизованныйПользователь);
РезультатУдаления.Вставить(ФайлИлиВерсия, Результат);
КонецЦикла;
Возврат РезультатУдаления;
КонецФункции
Процедура УдалитьДанныеВерсии(ФайлИлиВерсия, УникальныйИдентификатор, Результат)
Запрос = Новый Запрос;
@@ -10622,7 +10622,7 @@
КонецФункции
// Возвращает устройства TWAIN (массив строк).
// Возвращает устройства сканирования (массив строк).
Функция ПолучитьУстройства(ПодключаемыйМодуль) Экспорт
Массив = Новый Массив;
@@ -11101,6 +11101,71 @@
КонецПроцедуры
Процедура УдалитьДанныеФайлов(ОбработчикЗавершения, ФайлыИлиВерсии, УникальныйИдентификатор) Экспорт
Если ФайлыИлиВерсии.Количество() = 0 Тогда
ВыполнитьОбработкуОповещения(ОбработчикЗавершения, Неопределено);
КонецЕсли;
Контекст = Новый Структура;
Контекст.Вставить("ФайлыИлиВерсии", ФайлыИлиВерсии);
Контекст.Вставить("ОбработчикЗавершения", ОбработчикЗавершения);
Контекст.Вставить("УникальныйИдентификатор", УникальныйИдентификатор);
ФайлИлиВерсия = ФайлыИлиВерсии[0];
Если ФайлыИлиВерсии.Количество() = 1 Тогда
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Удалить файл %1 без возможности восстановления?'"),
Строка(ФайлИлиВерсия));
ТекстЗаголовка = НСтр("ru = 'Удаление файла'");
Иначе
ТекстВопроса = НСтр("ru = 'Удалить файлы без возможности восстановления?'");
ТекстЗаголовка = НСтр("ru = 'Удаление файлов'");
КонецЕсли;
ПоказатьВопрос(Новый ОписаниеОповещения("УдалитьДанныеФайловПослеОтветаНаВопрос", ЭтотОбъект, Контекст),
ТекстВопроса, РежимДиалогаВопрос.ДаНет,, КодВозвратаДиалога.Нет, ТекстЗаголовка, КодВозвратаДиалога.Нет);
КонецПроцедуры
Процедура УдалитьДанныеФайловПослеОтветаНаВопрос(Ответ, Контекст) Экспорт
Если Ответ <> КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
РезультатыУдаления = РаботаСФайламиСлужебныйВызовСервера.РезультатУдаленияФайлов(
Контекст.ФайлыИлиВерсии, Контекст.УникальныйИдентификатор);
Предупреждения = Новый Соответствие;
Результат = Новый Структура("Файлы,ИндексУдаляемогоФайла,ОбработчикЗавершения,ТекстПредупреждения", Новый Массив, 0);
Для Каждого РезультатУдаления Из РезультатыУдаления Цикл
Если РезультатУдаления.Значение.Файлы.Количество() > 0 Тогда
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Результат.Файлы, РезультатУдаления.Значение.Файлы);
Иначе
Предупреждения.Вставить(РезультатУдаления.Ключ, РезультатУдаления.Значение.ТекстПредупреждения);
КонецЕсли;
КонецЦикла;
Если Результат.Файлы.Количество() > 0 Тогда
Результат.Вставить("ИндексУдаляемогоФайла", 0);
Результат.Вставить("ОбработчикЗавершения", Контекст.ОбработчикЗавершения);
НачатьУдалениеФайлаИзКеша(Результат);
КонецЕсли;
Если Предупреждения.Количество() > 0 Тогда
ТекстПредупреждения = "";
Для Каждого Предупреждение Из Предупреждения Цикл
ТекстПредупреждения = ?(ТекстПредупреждения = "", "", Символы.ПС)
+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='%1: %2'"), Предупреждение.Ключ, Предупреждение.Значение);
КонецЦикла;
ОповеститьОбУдаленииДанных(Контекст.ОбработчикЗавершения, ТекстПредупреждения);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@@ -365,6 +365,22 @@
КонецФункции
// Описание подключения внешней компоненты сканирования.
//
// Возвращаемое значение:
// Структура:
// * ПолноеИмяМакета - Строка
// * ИмяОбъекта - Строка
//
Функция ОписаниеКомпоненты() Экспорт
Параметры = Новый Структура;
Параметры.Вставить("ИмяОбъекта", "ImageScan");
Параметры.Вставить("ПолноеИмяМакета", "ОбщийМакет.КомпонентаСканированияДокументов");
Возврат Параметры;
КонецФункции
#Область ИзвлечениеТекста
// Извлекает текст в соответствии с кодировкой.
@@ -913,20 +929,4 @@
КонецФункции
// Описание подключения внешней компоненты (AddInNativeExtension).
//
// Возвращаемое значение:
// Структура:
// * ПолноеИмяМакета - Строка
// * ИмяОбъекта - Строка
//
Функция ОписаниеКомпоненты() Экспорт
Параметры = Новый Структура;
Параметры.Вставить("ИмяОбъекта", "AddInNativeExtension");
Параметры.Вставить("ПолноеИмяМакета", "ОбщийМакет.КомпонентаTWAIN");
Возврат Параметры;
КонецФункции
#КонецОбласти
@@ -187,7 +187,7 @@
ПараметрыДоставки.ПараметрыПисьма.ТипТекста = ?(РассылкаОбъект.ПисьмоВФорматеHTML, "HTML", "ПростойТекст");
ПараметрыДоставки.ПараметрыПисьма.АдресОтвета = РассылкаОбъект.АдресОтвета;
ПараметрыДоставки.ПараметрыПисьма.Важность = ?(ЗначениеЗаполнено(РассылкаОбъект.ВажностьПисьма),
ВажностьИнтернетПочтовогоСообщенияИзСтроки(РассылкаОбъект.ВажностьПисьма),
РаботаСПочтовымиСообщениямиСлужебный.ВажностьИнтернетПочтовогоСообщенияИзСтроки(РассылкаОбъект.ВажностьПисьма),
ВажностьИнтернетПочтовогоСообщения.Обычная);
Если Рассылка.ПисьмоВФорматеHTML Тогда
@@ -4866,18 +4866,6 @@
КонецПроцедуры
Функция ВажностьИнтернетПочтовогоСообщенияИзСтроки(Важность)
Если СтрСравнить(Важность, РассылкаОтчетовКлиентСервер.ВысокаяВажностьИнтернетПочтовогоСообщения()) = 0 Тогда
Возврат ВажностьИнтернетПочтовогоСообщения.Высокая;
ИначеЕсли СтрСравнить(Важность, РассылкаОтчетовКлиентСервер.НизкаяВажностьИнтернетПочтовогоСообщения()) = 0 Тогда
Возврат ВажностьИнтернетПочтовогоСообщения.Низкая;
Иначе
Возврат ВажностьИнтернетПочтовогоСообщения.Обычная;
КонецЕсли;
КонецФункции
#Область ФормированиеОтчетовВНесколькоПотоков
Функция ВыполнитьФормированиеОтчетовВНесколькоПотоков(Отчеты, ПараметрыДоставки, НаименованиеРассылки, ПараметрыЖурнала)
@@ -468,22 +468,4 @@
КонецФункции
Функция ВысокаяВажностьИнтернетПочтовогоСообщения() Экспорт
Возврат "Высокая";
КонецФункции
Функция НизкаяВажностьИнтернетПочтовогоСообщения() Экспорт
Возврат "Низкая";
КонецФункции
Функция ОбычнаяВажностьИнтернетПочтовогоСообщения() Экспорт
Возврат "Обычная";
КонецФункции
#КонецОбласти
@@ -530,6 +530,28 @@
Возврат Результат;
КонецФункции
Функция ЕстьАктуальныеЗаблокированныеОбъекты()
ВремяЖизниБлокировки = ВремяЖизниБлокировки();
ВремяСнятияБлокировки = ТекущаяДатаСеанса() - ВремяЖизниБлокировки;
Запрос = Новый Запрос();
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 1
| УдаляемыеОбъекты.ИдентификаторСеанса КАК ИдентификаторСеанса,
| УдаляемыеОбъекты.Период КАК ВремяБлокировки
|ИЗ
| РегистрСведений.УдаляемыеОбъекты КАК УдаляемыеОбъекты
|ГДЕ
| УдаляемыеОбъекты.Период > &ВремяСнятияБлокировки";
Запрос.УстановитьПараметр("ВремяСнятияБлокировки", ВремяСнятияБлокировки);
РезультатЗапроса = Запрос.Выполнить();
Возврат Не РезультатЗапроса.Пустой();
КонецФункции
#Область ОбработчикиКомандФормыУдаленияПомеченных
Функция ПомеченныеНаУдаление(ОтборМетаданных, Настройки, ДеревоПомеченныхНаУдаление) Экспорт
@@ -617,6 +639,8 @@
Функция УдалитьПомеченныеОбъекты(Знач ИсточникУдаляемыхОбъектов, РежимУдаления, НастройкиДополнительныхРеквизитов,
РезультатПредыдущегоШага, ИдентификаторЗадания) Экспорт
КонтрольУдаленияПомеченныхОбъектов();
Если ТипЗнч(ИсточникУдаляемыхОбъектов) = Тип("СписокЗначений") Тогда
ИсточникУдаляемыхОбъектов = ДеревоПомеченныхНаУдаление(ИсточникУдаляемыхОбъектов.ВыгрузитьЗначения(),
НастройкиДополнительныхРеквизитов, Новый Массив);
@@ -1040,6 +1064,10 @@
Возврат;
КонецЕсли;
Если Не ЕстьАктуальныеЗаблокированныеОбъекты() Тогда
Возврат;
КонецЕсли;
Если ИсключенияПоискаСсылокРазрешающихУдаление().Найти(Источник.Метаданные()) <> Неопределено Тогда
Возврат;
КонецЕсли;
@@ -1248,11 +1276,25 @@
Функция ДеревоПомеченныхНаУдалениеБезУдаленных(ПомеченныеНаУдаление, Удаленные)
Результат = ПомеченныеНаУдаление.Скопировать();
УдаленныеЭлементы = Новый Соответствие();
Для Каждого Элемент Из Удаленные Цикл
УдаленныеЭлементы.Вставить(Элемент, Истина);
КонецЦикла;
МодифицированныеРодители = Новый Соответствие;
УдаляемыеОбъекты = Результат.Строки.НайтиСтроки(Новый Структура("Пометка", 1), Истина);
Для Каждого Элемент Из УдаляемыеОбъекты Цикл
Если Элемент.Родитель <> Неопределено И (Удаленные.Найти(Элемент.УдаляемыйСсылка) <> Неопределено
Или Не Элемент.ЭтоОписаниеОбъектаМетаданных И Элемент.Технический) Тогда
Если Элемент.Родитель <> Неопределено И (Элемент.Технический И Не Элемент.ЭтоОписаниеОбъектаМетаданных
Или УдаленныеЭлементы[Элемент.УдаляемыйСсылка] <> Неопределено) Тогда
МодифицированныеРодители.Вставить(Элемент.Родитель);
УдаленныеЭлементы.Удалить(Элемент.УдаляемыйСсылка);
Элемент.Родитель.Строки.Удалить(Элемент);
КонецЕсли;
КонецЦикла;
Для Каждого УдаленныйЭлемент Из УдаленныеЭлементы Цикл
Элемент = Результат.Строки.Найти(УдаленныйЭлемент.Ключ, "УдаляемыйСсылка", Истина);
Если Элемент <> Неопределено Тогда
МодифицированныеРодители.Вставить(Элемент.Родитель);
Элемент.Родитель.Строки.Удалить(Элемент);
КонецЕсли;
@@ -2328,35 +2328,47 @@
//
// Для файловой ИБ обработчик не добавляется (кроме начального заполнения).
// Соответственно, в клиент-серверных базах с РИБ (кроме модели сервиса) обработчик тоже не добавляется,
// так как в РИБ могут быть файловые ИБ.
// так как в РИБ могут быть файловые ИБ (если известно обратное, поведение можно переопределить).
//
// Параметры:
// Версия - Строка - версия для таблицы ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления.
// Указать пустую строку, если параметр ТолькоНачальноеЗаполнение указан Истина.
// Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления
// ТолькоНачальноеЗаполнение - Булево - добавить только обработчик начального заполнения.
// Требуется, если пока не планируется переключать все базы на производительный вариант,
// а планируется переключать только новые созданные базы.
// БезУчетаРИБ - Булево - добавить обработчик обновления без учета наличия РИБ.
// Требуется, если планируется переключать клиент-серверные базы на производительный вариант,
// которые участвуют в РИБ, так как известно, что в РИБ не участвуют файловые базы или среди
// них нет файловых баз со значительным количеством активных пользователей, одновременно
// изменяющих данные для которых настроены ограничения на уровне записей.
//
// Пример:
// Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
// УправлениеДоступом.ДобавитьОбработчикОбновленияДляВключенияУниверсальногоОграничения("3.0.3.7", Обработчики);
// КонецПроцедуры
//
Процедура ДобавитьОбработчикОбновленияДляВключенияУниверсальногоОграничения(Версия, Обработчики) Экспорт
Процедура ДобавитьОбработчикОбновленияДляВключенияУниверсальногоОграничения(Версия, Обработчики,
ТолькоНачальноеЗаполнение = Ложь, БезУчетаРИБ = Ложь) Экспорт
Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных()
И УправлениеДоступомСлужебный.ОграничиватьДоступНаУровнеЗаписейУниверсально(Истина) Тогда
Возврат;
КонецЕсли;
Если ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда
Возврат;
КонецЕсли;
Обработчик = Обработчики.Добавить();
Обработчик.НачальноеЗаполнение = Истина;
Обработчик.Процедура = "РегистрыСведений.ПараметрыОграниченияДоступа.ВключитьОграничениеДоступаНаУровнеЗаписейУниверсально";
Обработчик.РежимВыполнения = "Оперативно";
Если ТолькоНачальноеЗаполнение
Или ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда
Возврат;
КонецЕсли;
ВключенРИБ = Ложь;
Если Не ОбщегоНазначения.РазделениеВключено()
Если Не БезУчетаРИБ
И Не ОбщегоНазначения.РазделениеВключено()
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбменДанными") Тогда
ИменаПлановОбмена = Новый Массив;
@@ -3042,6 +3042,10 @@
КонецЕсли;
ЗначениеИспользуетсяУГруппы = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Родитель, "Используется");
Если ПустаяСтрока(Объект.ИдентификаторДляФормул) Тогда
Объект.ИдентификаторДляФормул = Справочники.ВидыКонтактнойИнформации.УникальныйИдентификаторДляФормул(
НаименованиеДляФормированияИдентификатора(Объект), Объект.Ссылка, Объект.Родитель);
КонецЕсли;
Если ЗначениеИспользуетсяУГруппы = Ложь И Объект.Используется Тогда
@@ -5071,6 +5075,23 @@
КонецПроцедуры
Функция НаименованиеДляФормированияИдентификатора(Объект) Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
СуффиксТекущегоЯзыка = МодульМультиязычностьСервер.СуффиксТекущегоЯзыка();
Возврат ?(ЗначениеЗаполнено(СуффиксТекущегоЯзыка),
Объект["Наименование"+ СуффиксТекущегоЯзыка],
Объект.Наименование);
КонецЕсли;
Возврат Объект.Наименование;
КонецФункции
Процедура ДобавитьРеквизитВОписание(Форма, СтрокаКонтактнойИнформации, ДанныеВидаКонтактнойИнформации, ЭтоНовыйВидКИ,
ЭтоРеквизитТабличнойЧасти = Ложь, ЗаполнятьЗначениеРеквизита = Истина, ИмяЭлементаДляРазмещения = "ГруппаКонтактнаяИнформация")
@@ -5392,6 +5413,24 @@
КонецФункции
Функция БазовыеСведенияКонтактнойИнформации(КонтактнаяИнформация = Неопределено) Экспорт
Результат = УправлениеКонтактнойИнформациейКлиентСервер.БазовыеПоляКонтактнойИнформации();
Если КонтактнаяИнформация = Неопределено Тогда
Возврат Результат;
КонецЕсли;
ПоляКонтактнойИнформации = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияВСтруктуруJSON(КонтактнаяИнформация);
ТипКонтактнойИнформации = ТипКонтактнойИнформации(КонтактнаяИнформация);
Результат.Представление = Строка(ПоляКонтактнойИнформации.Value);
Результат.Комментарий = Строка(ПоляКонтактнойИнформации.Comment);
Результат.ТипКонтактнойИнформации = ТипКонтактнойИнформации;
Возврат Результат;
КонецФункции
Процедура СоздатьЭлементыТабличнойЧасти(Знач Форма, Знач ИмяОбъекта, ИмяЭлементаДляРазмещения,
Знач СтрокаКонтактнойИнформации, Знач ДанныеВидаКонтактнойИнформации)
@@ -330,30 +330,49 @@
//
Процедура СоздатьЭлектронноеПисьмо(Знач ЗначенияПолей, Знач Представление = "", ОжидаемыйВид = Неопределено, ИсточникКонтактнойИнформации = Неопределено, ИмяРеквизита = "") Экспорт
АдресПочты = "";
Если ЗначениеЗаполнено(Представление) Тогда
Если ОбщегоНазначенияКлиентСервер.АдресЭлектроннойПочтыСоответствуетТребованиям(Представление, Истина) Тогда
АдресПочты = Представление;
КонецЕсли;
КонецЕсли;
Если ПустаяСтрока(АдресПочты) Тогда
ОписаниеКонтактнойИнформации = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформации(
ЗначенияПолей, Представление, ОжидаемыйВид);
КонтактнаяИнформация = УправлениеКонтактнойИнформациейСлужебныйВызовСервера.ПривестиКонтактнуюИнформациюXML(ОписаниеКонтактнойИнформации);
ТипИнформации = КонтактнаяИнформация.ТипКонтактнойИнформации;
Если ТипИнформации <> ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты") Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Нельзя создать письмо по контактной информацию с типом ""%1""'"), ТипИнформации);
КонецЕсли;
Если ЗначенияПолей = "" И ПустаяСтрока(Представление) Тогда
Если ЗначениеЗаполнено(ИмяРеквизита) Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(
НСтр("ru = 'Для отправки письма введите адрес электронной почты.'"), , ИмяРеквизита);
Если ЗначениеЗаполнено( КонтактнаяИнформация.Представление) Тогда
АдресПочты = КонтактнаяИнформация.Представление;
Иначе
ПоказатьПредупреждение( , НСтр("ru = 'Для отправки письма введите адрес электронной почты.'"));
АдресПочты = УправлениеКонтактнойИнформациейСлужебныйВызовСервера.СтрокаСоставаКонтактнойИнформации(КонтактнаяИнформация.ДанныеXML);
КонецЕсли;
Возврат;
ТекстОшибки = "";
ТипИнформации = КонтактнаяИнформация.ТипКонтактнойИнформации;
Если ПустаяСтрока(АдресПочты)
Или Не ОбщегоНазначенияКлиентСервер.АдресЭлектроннойПочтыСоответствуетТребованиям(Представление, Истина) Тогда
ТекстОшибки= НСтр("ru = 'Для отправки письма введите адрес электронной почты.'");
ИначеЕсли ТипЗнч(АдресПочты) <> Тип("Строка") Или ТипИнформации = Неопределено Тогда
ТекстОшибки = НСтр("ru = 'Ошибка получения адреса электронной почты, неверный тип контактной информации'");
ИначеЕсли ТипИнформации <> ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты") Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Нельзя создать письмо по контактной информацию с типом ""%1""'"), ТипИнформации);
КонецЕсли;
Если ЗначениеЗаполнено(ТекстОшибки) Тогда
Если ЗначениеЗаполнено(ИмяРеквизита) Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстОшибки,, ИмяРеквизита);
Иначе
ПоказатьПредупреждение(, ТекстОшибки );
КонецЕсли;
Возврат
КонецЕсли;
XMLДанные = КонтактнаяИнформация.ДанныеXML;
АдресПочты = УправлениеКонтактнойИнформациейСлужебныйВызовСервера.СтрокаСоставаКонтактнойИнформации(XMLДанные);
Если ТипЗнч(АдресПочты) <> Тип("Строка") Тогда
ВызватьИсключение НСтр("ru = 'Ошибка получения адреса электронной почты, неверный тип контактной информации'");
КонецЕсли;
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда
@@ -313,6 +313,41 @@
КонецФункции
// Возвращаемое значение:
// Структура:
// * Представление - Строка
// * ТипКонтактнойИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации
// - Неопределено
// * Комментарий - Строка
//
Функция БазовыеПоляКонтактнойИнформации() Экспорт
ПоляКонтактнойИнформации = Новый Структура;
ПоляКонтактнойИнформации.Вставить("Представление", "");
ПоляКонтактнойИнформации.Вставить("ТипКонтактнойИнформации", Неопределено);
ПоляКонтактнойИнформации.Вставить("Комментарий", "");
Возврат ПоляКонтактнойИнформации;
КонецФункции
// Возвращаемое значение:
// Структура - поля контактной информации для преобразования:
// * ТипКонтактнойИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации
// - Неопределено
// * ДанныеXML - Строка
// * Представление - Строка
//
Функция ПоляКонтактнойИнформацииДляПреобразования() Экспорт
Результат = Новый Структура;
Результат.Вставить("ТипКонтактнойИнформации", Неопределено);
Результат.Вставить("ДанныеXML", "");
Результат.Вставить("Представление", "");
Возврат Результат;
КонецФункции
Функция ТипКонтактнойИнформацииВСтроку(Знач ТипКонтактнойИнформации)
@@ -906,6 +906,8 @@
Комментарий = Неопределено;
ТипКонтактнойИнформации = Неопределено;
Результат = УправлениеКонтактнойИнформациейКлиентСервер.ПоляКонтактнойИнформацииДляПреобразования();
Если ТипЗнч(Данные) = Тип("ОбъектXDTO") Тогда
XMLСтрока = КонтактнаяИнформацияXDTOВXML(Данные);
ТипКонтактнойИнформации = ЗначениеИзСтрокиXML(XSLT_ТипКонтактнойИнформацииПоСтрокеXML(XMLСтрока));
@@ -946,13 +948,17 @@
КонецЕсли;
Результат.ТипКонтактнойИнформации = ТипКонтактнойИнформации;
Если ЗначениеЗаполнено(XMLСтрока) Тогда
Если Не ПустаяСтрока(Комментарий) Тогда
УправлениеКонтактнойИнформацией.УстановитьКомментарийКонтактнойИнформации(ЗначенияПолей, Комментарий);
КонецЕсли;
Возврат Новый Структура("ДанныеXML, ТипКонтактнойИнформации", XMLСтрока, ТипКонтактнойИнформации);
Результат.ДанныеXML = XMLСтрока;
Возврат Результат;
КонецЕсли;
// Разбираем по ЗначенияПолей, ВидКонтактнойИнформации, Представление.
@@ -985,8 +991,6 @@
КонецЕсли;
Результат = Новый Структура("ТипКонтактнойИнформации, ДанныеXML", ТипКонтактнойИнформации);
ВсеТипы = Перечисления.ТипыКонтактнойИнформации;
Если ТипКонтактнойИнформации = ВсеТипы.Адрес Тогда
Результат.ДанныеXML = XSLT_СтруктураВАдрес(СтрокаXMLСтруктуры, Данные.Представление, Комментарий);
@@ -1013,6 +1017,7 @@
КонецЕсли;
Возврат Результат;
КонецФункции
Функция КонтактнаяИнформацияXDTOВXML(ОбъектXDTOИнформации) Экспорт
@@ -389,7 +389,6 @@
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить(ОбъектМетаданных.ПолноеИмя());
ЭлементБлокировки.УстановитьЗначение("Ссылка", Ссылка);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
НачатьТранзакцию();
Попытка
@@ -2085,7 +2084,6 @@
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить(ОбъектМетаданных.ПолноеИмя());
ЭлементБлокировки.УстановитьЗначение("Ссылка", Ссылка);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
НачатьТранзакцию();
Попытка
@@ -2277,7 +2275,6 @@
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить(ОбъектМетаданных.ПолноеИмя());
ЭлементБлокировки.УстановитьЗначение("Ссылка", Ссылка);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
НачатьТранзакцию();
Попытка
@@ -2310,7 +2307,6 @@
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить(ОбъектМетаданных.ПолноеИмя());
ЭлементБлокировки.УстановитьЗначение("Ссылка", Ссылка);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
НачатьТранзакцию();
Попытка
@@ -54,12 +54,20 @@
//
Функция ПривестиКонтактнуюИнформациюXML(Знач Данные) Экспорт
Результат = УправлениеКонтактнойИнформациейКлиентСервер.ПоляКонтактнойИнформацииДляПреобразования();
Если УправлениеКонтактнойИнформациейСлужебныйПовтИсп.ДоступенМодульЛокализации() Тогда
МодульУправлениеКонтактнойИнформациейЛокализация = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформациейЛокализация");
Возврат МодульУправлениеКонтактнойИнформациейЛокализация.ПривестиКонтактнуюИнформациюXML(Данные);
КонецЕсли;
Возврат Новый Структура("ТипКонтактнойИнформации, ДанныеXML", Неопределено, "");
Если УправлениеКонтактнойИнформациейКлиентСервер.ЭтоКонтактнаяИнформацияВJSON(Данные.ЗначенияПолей) Тогда
ПоляКонтактнойИнформации = УправлениеКонтактнойИнформацией.БазовыеСведенияКонтактнойИнформации(Данные.ЗначенияПолей);
ЗаполнитьЗначенияСвойств(Результат, ПоляКонтактнойИнформации);
КонецЕсли;
Возврат Результат;
КонецФункции
@@ -748,6 +748,8 @@
КодЯзыка = СтрРазделить(КодЯзыка, "_", Истина)[0];
КонецЕсли;
ЗапомнитьПоследнийИспользованныйМакет(ПутьКМакету);
Возврат НайтиМакет(ПутьКМакету, КодЯзыка);
КонецФункции
@@ -915,52 +917,8 @@
//
Процедура ОтключитьПользовательскийМакет(ПутьКМакету) Экспорт
ЧастиСтроки = СтрРазделить(ПутьКМакету, ".", Истина);
Если ЧастиСтроки.Количество() <> 2 И ЧастиСтроки.Количество() <> 3 Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Макет ""%1"" не существует.'"), ПутьКМакету);
КонецЕсли;
ИмяМакета = ЧастиСтроки[ЧастиСтроки.ВГраница()];
ЧастиСтроки.Удалить(ЧастиСтроки.ВГраница());
ИмяВладельца = СтрСоединить(ЧастиСтроки, ".");
НаборЗаписей = РегистрыСведений.ПользовательскиеМакетыПечати.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Объект.Установить(ИмяВладельца);
НаборЗаписей.Отбор.ИмяМакета.Установить(ИмяМакета);
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ПользовательскиеМакетыПечати");
ЭлементБлокировки.УстановитьЗначение("Объект", ИмяВладельца);
ЭлементБлокировки.УстановитьЗначение("ИмяМакета", ИмяМакета);
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
НаборЗаписей.Прочитать();
Для Каждого Запись Из НаборЗаписей Цикл
Запись.Использование = Ложь;
КонецЦикла;
Если НаборЗаписей.Количество() > 0 Тогда
Если ОбновлениеИнформационнойБазы.ЭтоВызовИзОбработчикаОбновления() Тогда
ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(НаборЗаписей);
Иначе
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
НаборЗаписей.Записать();
УстановитьПривилегированныйРежим(Ложь);
УстановитьОтключениеБезопасногоРежима(Ложь);
КонецЕсли;
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
Макеты = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ПутьКМакету);
РегистрыСведений.ПользовательскиеМакетыПечати.УстановитьИспользованиеИзмененныхМакетов(Макеты, Ложь);
КонецПроцедуры
@@ -3406,9 +3364,31 @@
Печать(ОбъектыСоответствующиеПечатнойФорме, ПараметрыПечати, ВременнаяКоллекцияДляОднойПечатнойФормы,
ОбъектыПечати, ПараметрыВывода);
Иначе
ОчиститьПоследнийИспользованныйМакет();
МенеджерПечати = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ИспользуемыйМенеджерПечати);
Попытка
МенеджерПечати.Печать(ОбъектыСоответствующиеПечатнойФорме, ПараметрыПечати, ВременнаяКоллекцияДляОднойПечатнойФормы,
ОбъектыПечати, ПараметрыВывода);
Исключение
Если ВременнаяКоллекцияДляОднойПечатнойФормы.Количество() <> 1 Тогда
ВызватьИсключение;
КонецЕсли;
ЗаписьЖурналаРегистрации(НСтр("ru = 'Печать'", ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка, , ,
ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
Если Не ПравоДоступа("Изменение", Метаданные.РегистрыСведений.ПользовательскиеМакетыПечати) Тогда
ВызватьИсключение НСтр("ru = 'Не удалось сформировать печатную форму.
|Обратитесь к администратору.'");
КонецЕсли;
ВременнаяКоллекцияДляОднойПечатнойФормы[0].ТабличныйДокумент = Новый ТабличныйДокумент;
ВременнаяКоллекцияДляОднойПечатнойФормы[0].ТекстОшибкиФормирования = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
Если Не ЗначениеЗаполнено(ВременнаяКоллекцияДляОднойПечатнойФормы[0].ПолныйПутьКМакету) Тогда
ВременнаяКоллекцияДляОднойПечатнойФормы[0].ПолныйПутьКМакету = ПоследнийИспользованныйМакет();
КонецЕсли;
КонецПопытки;
КонецЕсли;
Иначе
ВременнаяКоллекцияДляОднойПечатнойФормы[0].ТабличныйДокумент = Новый ТабличныйДокумент;
@@ -5760,18 +5740,27 @@
ПредыдущаяТаблица = "";
Для НомерСтроки = Область.Верх По Область.Низ Цикл
ОбластьСтроки = Макет.Область(НомерСтроки, , НомерСтроки);
Верх = НомерСтроки;
Низ = НомерСтроки;
Для НомерКолонки = 1 По Макет.ШиринаТаблицы Цикл
ОбластьЯчейки = Макет.Область(НомерСтроки, НомерКолонки);
Низ = Макс(Низ, ОбластьЯчейки.Низ);
КонецЦикла;
НомерСтроки = Низ;
ОбластьСтроки = Макет.Область(Верх, , Низ);
ТекущаяТаблица = ИмяТаблицыВОбластиМакета(Макет, ОбластьСтроки, Таблицы);
Если ПредыдущаяТаблица <> ТекущаяТаблица И НомерСтроки > НачалоОбласти Тогда
ИдентификаторОбласти = "R" + XMLСтрока(НачалоОбласти) + ":R" + XMLСтрока(НомерСтроки - 1);
Если ПредыдущаяТаблица <> ТекущаяТаблица И Верх > НачалоОбласти Тогда
ИдентификаторОбласти = "R" + XMLСтрока(НачалоОбласти) + ":R" + XMLСтрока(Верх - 1);
ВсеОбласти.Добавить(ИдентификаторОбласти);
Если ЗначениеЗаполнено(ПредыдущаяТаблица) Тогда
ОбластиТаблиц.Вставить(ИдентификаторОбласти, ПредыдущаяТаблица);
КонецЕсли;
НачалоОбласти = НомерСтроки;
НачалоОбласти = Верх;
КонецЕсли;
ПредыдущаяТаблица = ТекущаяТаблица;
@@ -5794,14 +5783,22 @@
Функция ИмяТаблицыВОбластиМакета(Макет, Область, Таблицы)
ОбработанныеЯчейки = Новый Соответствие;
ИмяТаблицы = "";
Для НомерСтроки = Область.Верх По Область.Низ Цикл
Для НомерСтолбца = 1 По Макет.ШиринаТаблицы Цикл
Область = Макет.Область(НомерСтроки, НомерСтолбца, НомерСтроки, НомерСтолбца);
ОбластьЯчейки = Макет.Область(НомерСтроки, НомерСтолбца, НомерСтроки, НомерСтолбца);
ИдентификаторОбласти = ИдентификаторОбласти(ОбластьЯчейки);
Если ОбработанныеЯчейки[ИдентификаторОбласти] <> Неопределено Тогда
Продолжить;
КонецЕсли;
ОбработанныеЯчейки[ИдентификаторОбласти] = Истина;
Для Каждого Таблица Из Таблицы Цикл
СтрокаПоиска = "[" + Таблица + ".";
Если СтрНайти(Область.Текст, СтрокаПоиска) Тогда
Если СтрНайти(ОбластьЯчейки.Текст, СтрокаПоиска) Тогда
ИмяТаблицы = Таблица;
Прервать;
КонецЕсли;
@@ -7217,4 +7214,31 @@
КонецПроцедуры
Процедура ЗапомнитьПоследнийИспользованныйМакет(ПутьКМакету)
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("Печать", "ПоследнийИспользованныйМакет", ПутьКМакету);
КонецПроцедуры
Функция ПоследнийИспользованныйМакет()
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
Возврат ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("Печать", "ПоследнийИспользованныйМакет", Неопределено);
КонецФункции
Процедура ОчиститьПоследнийИспользованныйМакет()
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
ОбщегоНазначения.ХранилищеОбщихНастроекУдалить("Печать", "ПоследнийИспользованныйМакет", Неопределено);
КонецПроцедуры
#КонецОбласти
Loaded 100 of 212 files, more files were not shown because too many files have changed in this diff. Show more