3_1_10_141

This commit is contained in:
Компания 1С committed 2024-04-20 23:28:00 +03:00
1 parent b5af88a807
commit 7fa6f0ae7f
213 files changed
+30887 -5217

No files matched your search

@@ -106,7 +106,7 @@
&НаКлиенте
Процедура ЗагрузитьКурсыВалют(Команда)
ПараметрыФормы = Новый Структура("ОткрытиеИзСписка");
ПараметрыФормы = Новый Структура("ОткрытиеИзСписка", Истина);
РаботаСКурсамиВалютКлиент.ПоказатьЗагрузкуКурсовВалют(ПараметрыФормы);
@@ -209,7 +209,9 @@
&НаСервере
Функция ТекстЗапросаЗаполненияРазделов()
// АПК:70-выкл Полное соединение с НастройкиРазделенных существенно не замедляет запрос,
// так как в соединяемых таблицах малое количество записей.
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВариантыОтчетов.Ссылка,
| ВариантыОтчетов.ПредопределенныйВариант,
@@ -300,7 +302,7 @@
| КОНЕЦ КАК Важность
|ИЗ
| НастройкиОбщих КАК НастройкиОбщих
| ПОЛНОЕ СОЕДИНЕНИЕ НастройкиРазделенных КАК НастройкиРазделенных // АПК:70 - существенно не замедляет запрос, так как в соединяемых таблицах малое количество записей.
| ПОЛНОЕ СОЕДИНЕНИЕ НастройкиРазделенных КАК НастройкиРазделенных
| ПО НастройкиОбщих.Ссылка = НастройкиРазделенных.Ссылка
| И НастройкиОбщих.Подсистема = НастройкиРазделенных.Подсистема
|ГДЕ
@@ -316,7 +318,7 @@
| ТОГДА &ПредставлениеСмТакже
| ИНАЧЕ """"
| КОНЕЦ";
// АПК:70-вкл
КонецФункции
&НаСервере
@@ -27,7 +27,7 @@
КонецЕсли;
// Выполним установку индекса пиктограммы при записи объекта.
ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.ПолучитьИндексПиктограммыФайла(Расширение);
ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.ИндексПиктограммыФайла(Расширение);
Если СтатусИзвлеченияТекста.Пустая() Тогда
СтатусИзвлеченияТекста = Перечисления.СтатусыИзвлеченияТекстаФайлов.НеИзвлечен;
@@ -732,7 +732,6 @@
Отбор = Новый Структура;
Отбор.Вставить("КодЯзыка", Язык.КодЯзыка);
Отбор.Вставить("Наименование", Представление);
НайденныеСтроки = ВидКонтактнойИнформации.Представления.НайтиСтроки(Отбор);
Если НайденныеСтроки.Количество() > 0 Тогда
НоваяСтрока = НайденныеСтроки[0];
@@ -271,112 +271,6 @@
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>Ошибка</name>
<id>42</id>
<items xsi:type="form:Decoration">
<name>Ошибка32</name>
<id>47</id>
<title>
<key>ru</key>
<value>Ошибка32</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>Ошибка32РасширеннаяПодсказка</name>
<id>49</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>Ошибка32КонтекстноеМеню</name>
<id>48</id>
<autoFill>true</autoFill>
</contextMenu>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.Ошибка32</picture>
</picture>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>КраткоеПредставлениеОшибки</name>
<id>44</id>
<title>
<key>ru</key>
<value>Краткое представление ошибки</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>КраткоеПредставлениеОшибки</segments>
</dataPath>
<titleLocation>None</titleLocation>
<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>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<height>2</height>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Ошибка</value>
</title>
<extendedTooltip>
<name>ОшибкаРасширеннаяПодсказка</name>
<id>43</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo">
<group>AlwaysHorizontal</group>
<showTitle>auto</showTitle>
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>Выполнено</name>
<id>50</id>
@@ -642,24 +536,6 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>КраткоеПредставлениеОшибки</name>
<title>
<key>ru</key>
<value>Краткое представление ошибки</value>
</title>
<id>4</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>РезультатВыполнения</name>
<title>
@@ -94,11 +94,6 @@
ДлительнаяОперация = НачатьОбновлениеКомпонентСПортала();
Если ДлительнаяОперация = Неопределено Тогда
КраткоеПредставлениеОшибки = НСтр("ru = 'Не удалось создать фоновое задание обновления компоненты.'");
Элементы.Страницы.ТекущаяСтраница = Элементы.Ошибка;
КонецЕсли;
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ПараметрыОжидания.ФормаВладелец = ЭтотОбъект;
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
@@ -137,10 +132,6 @@
&НаСервере
Функция НачатьОбновлениеКомпонентСПортала()
Если Не ВнешниеКомпонентыСлужебный.ДоступнаЗагрузкаСПортала() Тогда
Возврат Неопределено;
КонецЕсли;
ПараметрыПроцедуры = ВнешниеКомпонентыСлужебный.ПараметрыОбновленияКомпонентСПортала();
ПараметрыПроцедуры.ОбновляемыеКомпоненты = ОбновляемыеКомпоненты.ВыгрузитьЗначения();
@@ -159,6 +150,9 @@
&НаКлиенте
Процедура ПослеОбновленияКомпонентСПортала(Результат, ДополнительныеПараметры) Экспорт
Элементы.Загрузить.Доступность = Истина;
Элементы.Страницы.ТекущаяСтраница = Элементы.Начальная;
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
@@ -277,112 +277,6 @@
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>Ошибка</name>
<id>42</id>
<items xsi:type="form:Decoration">
<name>Ошибка32</name>
<id>47</id>
<title>
<key>ru</key>
<value>Ошибка32</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>Ошибка32РасширеннаяПодсказка</name>
<id>49</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>Ошибка32КонтекстноеМеню</name>
<id>48</id>
<autoFill>true</autoFill>
</contextMenu>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.Ошибка32</picture>
</picture>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>КраткоеПредставлениеОшибки</name>
<id>44</id>
<title>
<key>ru</key>
<value>Краткое представление ошибки</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>КраткоеПредставлениеОшибки</segments>
</dataPath>
<titleLocation>None</titleLocation>
<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>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<height>2</height>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Ошибка</value>
</title>
<extendedTooltip>
<name>ОшибкаРасширеннаяПодсказка</name>
<id>43</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo">
<group>AlwaysHorizontal</group>
<showTitle>auto</showTitle>
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -516,24 +410,6 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>КраткоеПредставлениеОшибки</name>
<title>
<key>ru</key>
<value>Краткое представление ошибки</value>
</title>
<id>4</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ПодключитьИнтернетПоддержку</name>
<title>
@@ -68,11 +68,6 @@
ДлительнаяОперация = НачатьПолучениеКомпонентыСПортала(Параметры.Идентификатор, Параметры.Версия, Параметры.ОбновлятьАвтоматически);
Если ДлительнаяОперация = Неопределено Тогда
КраткоеПредставлениеОшибки = НСтр("ru = 'Не удалось создать фоновое задание обновления компоненты.'");
Элементы.Страницы.ТекущаяСтраница = Элементы.Ошибка;
КонецЕсли;
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ПараметрыОжидания.ФормаВладелец = ЭтотОбъект;
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
@@ -111,10 +106,6 @@
&НаСервере
Функция НачатьПолучениеКомпонентыСПортала(Знач Идентификатор, Знач Версия, Знач ОбновлятьАвтоматически)
Если Не ВнешниеКомпонентыСлужебный.ДоступнаЗагрузкаСПортала() Тогда
Возврат Неопределено;
КонецЕсли;
ПараметрыПроцедуры = ВнешниеКомпонентыСлужебный.ПараметрыКомпонентаСПортала();
ПараметрыПроцедуры.Идентификатор = Идентификатор;
ПараметрыПроцедуры.Версия = Версия;
@@ -135,6 +126,9 @@
&НаКлиенте
Процедура ПослеПолученияКомпонентыСПортала(Результат, ДополнительныеПараметры) Экспорт
Элементы.Загрузить.Доступность = Истина;
Элементы.Страницы.ТекущаяСтраница = Элементы.Начальная;
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
@@ -134,6 +134,37 @@
<importance>Normal</importance>
</extInfo>
</items>
<items xsi:type="form:Button">
<name>ОбновитьКлассификаторыПолномочий</name>
<id>248</id>
<title>
<key>ru</key>
<value>Обновить классификаторы полномочий</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ОбновитьКлассификаторыПолномочийРасширеннаяПодсказка</name>
<id>249</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ОбновитьКлассификаторыПолномочий</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаКомпактная</name>
<id>233</id>
@@ -3234,6 +3265,24 @@
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<formCommands>
<name>ОбновитьКлассификаторыПолномочий</name>
<title>
<key>ru</key>
<value>Обновить классификаторы полномочий</value>
</title>
<id>11</id>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ОбновитьКлассификаторыПолномочий</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<parameters>
<name>ТолькоПросмотр</name>
<valueType>
@@ -15,6 +15,7 @@
Элементы.ГруппаВидПолномочий.ТолькоПросмотр = Параметры.ТолькоПросмотр;
Элементы.ВыбратьИзКлассификатора.Видимость = Не Параметры.ТолькоПросмотр;
Элементы.ОбновитьКлассификаторыПолномочий.Видимость = Не ОбщегоНазначения.РазделениеВключено();
РежимКлассификатора = Параметры.РежимКлассификатора;
@@ -310,6 +311,16 @@
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьКлассификаторыПолномочий(Команда)
ОбновитьКлассификаторыПолномочийНаСервере();
ОбновитьПовторноИспользуемыеЗначения();
ОбновитьСписокПолномочий();
ПоказатьПредупреждение(, НСтр("ru = 'Обновление классификаторов полномочий выполнено.'"));
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -828,4 +839,26 @@
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ОбновитьКлассификаторыПолномочийНаСервере()
РегистрыСведений.КлассификаторыМЧД.ОбновитьКлассификаторы();
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьСписокПолномочий()
КодыПолномочий = Новый Массив;
Для Каждого Полномочие Из ВыбранныеПолномочияТаблица Цикл
Если ЗначениеЗаполнено(Полномочие.Код) И Не Полномочие.НетВКлассификаторе Тогда
КодыПолномочий.Добавить(Полномочие.Код);
КонецЕсли;
КонецЦикла;
СформироватьДеревоПолномочий(ПоместитьВоВременноеХранилище(КодыПолномочий));
КонецПроцедуры
#КонецОбласти
@@ -813,6 +813,10 @@
<items xsi:type="form:FormField">
<name>ДатаВыдачи</name>
<id>22</id>
<title>
<key>ru</key>
<value>С</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -842,8 +846,13 @@
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<width>7</width>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>false</horizontalStretch>
<format>
<key>ru</key>
<value>ДФ=dd.MM.yyyy</value>
</format>
</extInfo>
</items>
<items xsi:type="form:FormField">
@@ -851,7 +860,7 @@
<id>25</id>
<title>
<key>ru</key>
<value>Дата окончания</value>
<value>По</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
@@ -882,8 +891,13 @@
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<width>7</width>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>false</horizontalStretch>
<format>
<key>ru</key>
<value>ДФ=dd.MM.yyyy</value>
</format>
</extInfo>
</items>
<items xsi:type="form:FormField">
@@ -244,7 +244,7 @@
Кнопки.Добавить("Отменить", НСтр("ru = 'Отменить загрузку'"));
Кнопки.Добавить("ПоказатьОшибку", НСтр("ru = 'Подробности...'"));
ТекстОшибки = НСтр("ru = 'Невозможно проверить доверенность в распределенном реестре.'");
ТекстОшибки = НСтр("ru = 'Нет возможности проверить доверенность в распределенном реестре, доверенность будет загружена без признака ""Зарегистрирована в реестре ФНС""'");
Оповещение = Новый ОписаниеОповещения("ПослеОтветаНаВопросОЗагрузкеДоверенности", ЭтотОбъект, РезультатАвторизации.Ошибка);
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Оповещение, ТекстОшибки, Кнопки, ПараметрыВопроса);
@@ -623,6 +623,10 @@
КонецЕсли;
Для Каждого ЭлементОтбора Из Отборы Цикл
Если Не ВсеОтборыПоСертификатам.Свойство(ЭлементОтбора.Ключ)Тогда
Продолжить;
КонецЕсли;
ВсеОтборыПоСертификатам[ЭлементОтбора.Ключ] = ?(ЭлементОтбора.Значение = Неопределено, "", ЭлементОтбора.Значение);
КонецЦикла;
КонецЕсли;
@@ -854,8 +854,8 @@
КонецЕсли;
РезультатПроверкиПодписиВФорме = ЭлектроннаяПодписьКлиентСервер.РезультатПроверкиПодписиВФорме();
ЗаполнитьЗначенияСвойств(РезультатПроверкиПодписиВФорме, РезультатПроверки);
ЗаполнитьЗначенияСвойств(РезультатПроверкиПодписиВФорме.РезультатПроверки, РезультатПроверки);
ЗаполнитьЗначенияСвойств(РезультатПроверкиПодписиВФорме, РезультатПроверкиПодписи,,"РезультатПроверки");
ЗаполнитьЗначенияСвойств(РезультатПроверкиПодписиВФорме.РезультатПроверки, РезультатПроверкиПодписи);
РезультатПроверкиПодписиВФорме.РезультатПроверки.ДополнительныеАтрибутыПровереныВручную = Ложь;
РезультатПроверкиПодписиВФорме.РезультатПроверки.АвторРучнойПроверкиДополнительныхАтрибутов = Неопределено;
РезультатПроверкиПодписиВФорме.РезультатПроверки.ОбоснованиеРучнойПроверкиДополнительныхАтрибутов = "";
@@ -1550,7 +1550,6 @@
Возврат МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.ВнешниеСтатусы()[Форма.ТехническийСтатус] = Истина
Или Форма.ЗарегистрированаВДругомРеестре;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьВидимостьИДоступность(Форма, Условие = Неопределено)
@@ -1570,6 +1569,8 @@
КонецЕсли;
РеквизитыНедоступныДляРедактирования = Форма.РеквизитыНедоступныДляРедактирования;
Если Условие = Неопределено Или Условие = "Доверитель" Тогда
Если Форма.ДоверительНесколько Или Форма.ЛицоДоверителяНесколько Или Форма.ПредставительУправляющейКомпанииНесколько Тогда
@@ -1589,17 +1590,10 @@
Форма.Элементы.ГруппаОдинДоверитель.Видимость = Не Форма.ДоверительНесколько;
Если Не Форма.ДоверительТипСтрока = "ФизическоеЛицо" И Не Форма.ДоверительНесколько Тогда
Если Не Форма.ДоверительНесколько Тогда
Форма.Элементы.ГруппаЛицоДоверителя.Видимость = Истина;
Форма.Элементы.ГруппаЛицоДоверителяПредставитель.Видимость = Форма.ЛицоДоверителяТипСтрока <> "ФизическоеЛицо";
Форма.Элементы.ГруппаОдноЛицоДоверителя.Видимость = Не Форма.ЛицоДоверителяНесколько;
ЛицоДоверителяОформление(Форма);
Если Форма.ЛицоДоверителяТипСтрока <> "ФизическоеЛицо"
И Не Форма.ЛицоДоверителяНесколько Тогда
Форма.Элементы.ГруппаЛицоДоверителяПредставитель.Видимость = Не Форма.ПредставительУправляющейКомпанииНесколько;
КонецЕсли;
Иначе
Форма.Элементы.ГруппаЛицоДоверителя.Видимость = Ложь;
КонецЕсли;
@@ -1975,22 +1969,7 @@
ЭтотОбъект[ИмяЭлементаОрганизация + "Наименование"] = НаименованиеСокращенное;
ОбновитьСтрокуДоверителейПредставителей(ИмяЭлементаОрганизация);
Если ИмяЭлементаОрганизация = "Представитель" И ПредставительТипСтрока <> "ФизическоеЛицо" Тогда
Если Не (ПредставительРеквизиты.ЭтоИндивидуальныйПредприниматель
Или ПредставительРеквизиты.ЭтоФилиал) Тогда
Строки = Объект.Представители.НайтиСтроки(Новый Структура("ИдентификаторРодителя", ЭтотОбъект[ИмяЭлементаОрганизация + "Идентификатор"]));
Для Каждого Строка Из Строки Цикл
Объект.Представители.Удалить(Строка);
КонецЦикла;
ОчиститьЭлементыФормы("ЛицоПредставителя", Истина);
Иначе
ЗаполнитьТипОрганизации("ЛицоПредставителя", "ФизическоеЛицо");
КонецЕсли;
КонецЕсли;
ПроверитьРеквизитыРуководителяНаСовместимость(ИмяЭлементаОрганизация);
УстановитьОтображениеРеквизитовЗависимыхОтОрганизации(ИмяЭлементаОрганизация);
КонецПроцедуры
@@ -2251,19 +2230,8 @@
КонецЕсли;
ИмяЭлементаРуководитель = Неопределено;
Если ИмяЭлементаОрганизация = "ЛицоДоверителя" И ЛицоДоверителяТипСтрока <> "ФизическоеЛицо" Тогда
ИмяЭлементаРуководитель = "ПредставительУправляющейКомпании";
ИначеЕсли ИмяЭлементаОрганизация = "Доверитель" И ДоверительТипСтрока <> "ФизическоеЛицо" Тогда
ИмяЭлементаРуководитель = "ЛицоДоверителя";
ИначеЕсли ИмяЭлементаОрганизация = "Представитель" И ПредставительТипСтрока <> "ФизическоеЛицо" Тогда
Если ПредставительРеквизиты.ЭтоИндивидуальныйПредприниматель
Или ПредставительРеквизиты.ЭтоФилиал Тогда
ИмяЭлементаРуководитель = "ЛицоПредставителя";
Иначе
УдалитьСтрокуДоверителейПредставителей(Объект.Представители, ЭтотОбъект["ЛицоПредставителя" + "Идентификатор"], Ложь);
ОчиститьЭлементыФормы("ЛицоПредставителя", Истина);
КонецЕсли;
КонецЕсли;
ПроверитьРеквизитыРуководителяНаСовместимость(ИмяЭлементаОрганизация, ИмяЭлементаРуководитель);
Если ИмяЭлементаРуководитель = Неопределено Тогда
Возврат;
@@ -2286,6 +2254,38 @@
КонецПроцедуры
&НаСервере
Процедура ПроверитьРеквизитыРуководителяНаСовместимость(ИмяЭлементаОрганизация, ИмяЭлементаРуководитель = Неопределено)
Если ИмяЭлементаОрганизация = "ЛицоДоверителя" И ЛицоДоверителяТипСтрока <> "ФизическоеЛицо" Тогда
ИмяЭлементаРуководитель = "ПредставительУправляющейКомпании";
ИначеЕсли ИмяЭлементаОрганизация = "Доверитель" И ДоверительТипСтрока <> "ФизическоеЛицо" Тогда
ИмяЭлементаРуководитель = "ЛицоДоверителя";
Если (ДоверительРеквизиты.ЭтоФизическоеЛицо
Или ДоверительРеквизиты.ЭтоИностраннаяОрганизация
Или ДоверительРеквизиты.ЭтоФилиал
Или ДоверительРеквизиты.ЭтоИндивидуальныйПредприниматель)
И ЛицоДоверителяТипСтрока <> "ФизическоеЛицо" Тогда
УдалитьСтрокуДоверителейПредставителей(Объект.Доверители, ЭтотОбъект["ЛицоДоверителя" + "Идентификатор"], Ложь);
ОчиститьЭлементыФормы("ЛицоДоверителя", Истина);
ОчиститьЭлементыФормы("ПредставительУправляющейКомпании", Истина);
ЗаполнитьТипОрганизации(ИмяЭлементаРуководитель, "ФизическоеЛицо");
КонецЕсли;
ИначеЕсли ИмяЭлементаОрганизация = "Представитель" И ПредставительТипСтрока <> "ФизическоеЛицо" Тогда
Если ПредставительРеквизиты.ЭтоИндивидуальныйПредприниматель
Или ПредставительРеквизиты.ЭтоФилиал Тогда
ИмяЭлементаРуководитель = "ЛицоПредставителя";
ЗаполнитьТипОрганизации("ЛицоПредставителя", "ФизическоеЛицо");
Иначе
УдалитьСтрокуДоверителейПредставителей(Объект.Представители, ЭтотОбъект["ЛицоПредставителя" + "Идентификатор"], Ложь);
ОчиститьЭлементыФормы("ЛицоПредставителя", Истина);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СформироватьЗаголовокДекорации(ИмяЭлементаОрганизация)
@@ -2490,7 +2490,7 @@
КонецЕсли;
Если ИмяЭлементаОрганизация = "Доверитель" Тогда
ЛицоДоверителяОформление(ЭтотОбъект);
УстановитьВидимостьИДоступность(ЭтотОбъект, "Доверитель");
КонецЕсли;
СформироватьЗаголовокДекорации(ИмяЭлементаОрганизация);
@@ -2500,8 +2500,16 @@
&НаКлиентеНаСервереБезКонтекста
Процедура ЛицоДоверителяОформление(Форма)
Если Форма.ДоверительРеквизиты <> Неопределено
И Форма.ДоверительРеквизиты.ЭтоИндивидуальныйПредприниматель Тогда
Если Форма.ДоверительТипСтрока = "ФизическоеЛицо" Тогда
Форма.Элементы.ГруппаЛицоДоверителя.Видимость = Ложь;
Возврат;
КонецЕсли;
Если Форма.ДоверительРеквизиты <> Неопределено И
(Форма.ДоверительРеквизиты.ЭтоФизическоеЛицо Или
Форма.ДоверительРеквизиты.ЭтоИндивидуальныйПредприниматель
Или Форма.ДоверительРеквизиты.ЭтоИностраннаяОрганизация
Или Форма.ДоверительРеквизиты.ЭтоФилиал) Тогда
Форма.Элементы.ДекорацияЛицоДоверителяЗаголовок.Видимость = Ложь;
Форма.Элементы.ЛицоДоверителяВыборТипа.Видимость = Ложь;
Форма.Элементы.ЛицоДоверителяТипДекорация.Видимость = Истина;
@@ -2509,10 +2517,17 @@
Форма.Элементы.ДекорацияЛицоДоверителяЗаголовок.Видимость = Истина;
Форма.Элементы.ЛицоДоверителяВыборТипа.Видимость = Не Форма.РеквизитыНедоступныДляРедактирования;
Форма.Элементы.ЛицоДоверителяТипДекорация.Видимость = Форма.РеквизитыНедоступныДляРедактирования;
КонецЕсли;
КонецЕсли;
Форма.Элементы.ГруппаЛицоДоверителяПредставитель.Видимость = Форма.ЛицоДоверителяТипСтрока <> "ФизическоеЛицо";
Если Форма.ЛицоДоверителяТипСтрока <> "ФизическоеЛицо"
И Не Форма.ЛицоДоверителяНесколько Тогда
Форма.Элементы.ГруппаЛицоДоверителяПредставитель.Видимость = Не Форма.ПредставительУправляющейКомпанииНесколько;
КонецЕсли;
Если Форма.ЛицоДоверителяРеквизиты = Неопределено Тогда
Форма.Элементы.ЛицоДоверителяТипДекорация.Заголовок = НСтр("ru='Физическое лицо:'");
Форма.Элементы.ЛицоДоверителяТипДекорация.Заголовок = НСтр("ru='Физическое лицо:'");
Иначе
Форма.Элементы.ЛицоДоверителяТипДекорация.Заголовок = ?(Форма.ЛицоДоверителяРеквизиты.ЭтоФизическоеЛицо,
НСтр("ru='Физическое лицо:'"), НСтр("ru='Организация:'"));
@@ -1696,8 +1696,8 @@
Объект.СовместныеПолномочия = ПризнакСовместногоОсуществленияПолномочий = "2";
Если ТипПолномочия = "0" Тогда
Полномочие = Объект.Полномочия.Добавить();
Полномочие.Наименование = ТекстовоеСодержаниеПолномочия;
Объект.ПолномочияВТекстовомВиде = Истина;
Объект.ТекстПолномочий = ТекстовоеСодержаниеПолномочия;
ИначеЕсли ТипПолномочия = "1" Тогда
Для Каждого СведенияОМашиночитаемомПолномочии Из СведенияОМашиночитаемыхПолномочиях Цикл
КодПолномочия = СведенияОМашиночитаемомПолномочии.КодПолн;
@@ -583,12 +583,21 @@
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<handlers>
<event>AutoComplete</event>
<name>НаименованиеАвтоПодбор</name>
</handlers>
<handlers>
<event>ChoiceProcessing</event>
<name>НаименованиеОбработкаВыбора</name>
</handlers>
<width>22</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<editTextUpdate>OnValueChange</editTextUpdate>
<borderColor xsi:type="core:ColorRef">
<color>Style.BorderColor</color>
</borderColor>
@@ -11,6 +11,9 @@
&НаКлиенте
Перем ПараметрыЗаписиПриПроверкеПервогоАдминистратора;
&НаКлиенте
Перем ПропуститьНаименованиеПриИзменении, ПропуститьНаименованиеАвтоПодбор;
#КонецОбласти
#Область ОбработчикиСобытийФормы
@@ -700,12 +703,58 @@
&НаКлиенте
Процедура НаименованиеПриИзменении(Элемент)
Если ПропуститьНаименованиеПриИзменении = Истина Тогда
Возврат;
КонецЕсли;
ОбновитьИмяДляВхода(ЭтотОбъект, Истина);
УстановитьНеобходимостьСинхронизацииССервисом(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеАвтоПодбор(Элемент, Текст, ДанныеВыбора,
ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
Если Не ЗначениеЗаполнено(Текст)
Или Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПодборФИО")
Или ПропуститьНаименованиеАвтоПодбор = Истина Тогда
ПропуститьНаименованиеАвтоПодбор = Ложь;
Возврат;
КонецЕсли;
МодульПодборФИОКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодборФИОКлиент");
ДанныеФИО = Новый Структура("Представление", Текст);
ДанныеКлассификатора = МодульПодборФИОКлиент.Подобрать("ФИО", ДанныеФИО);
Если ДанныеКлассификатора.Количество() > 0 Тогда
СтандартнаяОбработка = Ложь;
ДанныеВыбора = Новый СписокЗначений;
ДанныеВыбора.ЗагрузитьЗначения(ДанныеКлассификатора);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПропуститьНаименованиеПриИзменении = Истина;
ДанныеНаименования = СтрРазделить(ВыбранноеЗначение, " ", Ложь);
Элементы.Наименование.ОбновитьТекстРедактирования();
Если ДанныеНаименования.Количество() < 3 Тогда
Элементы.Наименование.ВыделенныйТекст = ВыбранноеЗначение + " ";
Иначе
Элементы.Наименование.ВыделенныйТекст = ВыбранноеЗначение;
ПропуститьНаименованиеАвтоПодбор = Истина;
КонецЕсли;
ПропуститьНаименованиеПриИзменении = Ложь;
КонецПроцедуры
&НаКлиенте
Процедура НедействителенПриИзменении(Элемент)
@@ -2723,4 +2772,5 @@
КонецПроцедуры
#КонецОбласти
@@ -39,7 +39,7 @@
Если ВидФормы = "ФормаСписка" Тогда
СтандартнаяОбработка = Ложь;
Параметры.Вставить("ПоказатьСтраницуПрограммы");
Параметры.Вставить("ПоказатьСтраницу", "Программы");
ВыбраннаяФорма = Метаданные.ОбщиеФормы.НастройкиЭлектроннойПодписиИШифрования;
ИначеЕсли Параметры.Свойство("Ключ")
@@ -208,11 +208,13 @@
Если ПоследниеИзменения <> Неопределено Тогда
Для Каждого ЧастьИзменений Из ПоследниеИзменения Цикл
Если ТипЗнч(ЧастьИзменений) = Тип("ФиксированнаяСтруктура")
И ЧастьИзменений.Свойство("Удаленные")
И ТипЗнч(ЧастьИзменений.Удаленные) = Тип("ФиксированныйМассив") Тогда
Для Каждого Удаленный Из ЧастьИзменений.Удаленные Цикл
Если ТипЗнч(ЧастьИзменений) <> Тип("ФиксированнаяСтруктура") Тогда
Продолжить;
КонецЕсли;
ТекущаяЧастьИзменений = Новый Структура("Удаленные");
ЗаполнитьЗначенияСвойств(ТекущаяЧастьИзменений, ЧастьИзменений);
Если ТипЗнч(ТекущаяЧастьИзменений.Удаленные) = Тип("ФиксированныйМассив") Тогда
Для Каждого Удаленный Из ТекущаяЧастьИзменений.Удаленные Цикл
Удаленные.Добавить(Удаленный);
КонецЦикла;
КонецЕсли;
@@ -1167,7 +1169,7 @@
Новый КвалификаторыСтроки(Метаданные.Справочники.ПрофилиГруппДоступа.ДлинаНаименования)));
Для Каждого ОписаниеПрофиля Из ОписанияПрофилей Цикл
Наименование = ?(ОписаниеПрофиля.Свойство("Наименование"), ОписаниеПрофиля.Наименование, "");
Наименование = ОписаниеПрофиля.Наименование;
Если Не ЗначениеЗаполнено(Наименование)
Или Не СтроковыеФункцииКлиентСервер.ЭтоУникальныйИдентификатор(ОписаниеПрофиля.Идентификатор) Тогда
Продолжить;
@@ -1992,7 +1994,7 @@
Для Каждого ОписаниеПрофиля Из ОписанияПрофилей Цикл
ОписаниеПрофиля.Удалить("Описание");
ЭтоГруппа = Не ОписаниеПрофиля.Свойство("Роли");
ЭтоГруппа = ОписаниеПрофиля.ЭтоПапка;
Если Не ЗначениеЗаполнено(ОписаниеПрофиля.Идентификатор) Тогда
ШаблонОшибки = ?(ЭтоГруппа,
@@ -2072,8 +2074,7 @@
Если ИменаПапокПрофилей.Получить(ВРег(ОписаниеПрофиля.Родитель)) <> Неопределено Тогда
Продолжить;
КонецЕсли;
ЭтоГруппа = Не ОписаниеПрофиля.Свойство("Роли");
ШаблонОшибки = ?(ЭтоГруппа,
ШаблонОшибки = ?(ОписаниеПрофиля.ЭтоПапка,
НСтр("ru = 'В описании папки профилей ""%1"" в свойстве %2
|указано несуществующее имя папки профилей ""%3"".'"),
НСтр("ru = 'В описании профиля ""%1"" в свойстве %2
@@ -2086,8 +2087,7 @@
ПапкиПоРодителям = Новый Соответствие;
Для Каждого ОписаниеПрофиля Из ОписанияПрофилей Цикл
ЭтоГруппа = Не ОписаниеПрофиля.Свойство("Роли");
Если Не ЭтоГруппа Тогда
Если Не ОписаниеПрофиля.ЭтоПапка Тогда
Продолжить;
КонецЕсли;
ПапкиРодителя = ПапкиПоРодителям.Получить(ОписаниеПрофиля.Родитель);
@@ -2530,13 +2530,16 @@
//
Функция ПояснениеПоставляемыхПрофилей() Экспорт
ОписанияПрофилей = ЗаполненныеПоставляемыеПрофили().ОписанияПрофилей;
ОписанияПрофилей = ЗаполненныеПоставляемыеПрофили().ОписанияПрофилей; // Массив из см. УправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа
ПредставлениеВидовДоступа = Новый Соответствие;
Для Каждого ОписаниеПрофиля Из ОписанияПрофилей Цикл
Описание = ?(ОписаниеПрофиля.Свойство("Описание"), ОписаниеПрофиля.Описание, "");
ПредставлениеВидовДоступа.Вставить(ОписаниеПрофиля.Идентификатор, Описание);
Если ОписаниеПрофиля.ЭтоПапка Тогда
ПредставлениеВидовДоступа.Вставить(ОписаниеПрофиля.Идентификатор, "");
Иначе
ПредставлениеВидовДоступа.Вставить(ОписаниеПрофиля.Идентификатор, ОписаниеПрофиля.Описание);
КонецЕсли;
КонецЦикла;
Возврат Новый ФиксированноеСоответствие(ПредставлениеВидовДоступа);
@@ -149,9 +149,7 @@
Если ЭтоНовый И Не СозданКопированием Тогда
УстановитьВидРассылки();
ВариантРасписания = Неопределено;
Параметры.Свойство("ВариантРасписания", ВариантРасписания);
ЗаполнитьРасписаниеПоВарианту(ВариантРасписания);
ЗаполнитьРасписаниеПоВарианту(Неопределено);
Иначе
ПрочитатьРасписаниеРегламентногоЗадания();
КонецЕсли;
@@ -4628,8 +4626,7 @@
Процедура ДобавитьНастройкиОтчетов(ПрисоединяемыеОтчеты)
Для Каждого СтрокаОтчетыПараметры Из ПрисоединяемыеОтчеты Цикл
Если СтрокаОтчетыПараметры.Свойство("ВариантСсылка")
И ТипЗнч(СтрокаОтчетыПараметры.ВариантСсылка) = Тип("СправочникСсылка.ВариантыОтчетов")
Если ТипЗнч(СтрокаОтчетыПараметры.ВариантСсылка) = Тип("СправочникСсылка.ВариантыОтчетов")
И СтрокаОтчетыПараметры.ВариантСсылка <> Справочники.ВариантыОтчетов.ПустаяСсылка() Тогда
ВариантСсылка = СтрокаОтчетыПараметры.ВариантСсылка;
Иначе
@@ -66,7 +66,7 @@
Если ВидФормы = "ФормаСписка" Тогда
СтандартнаяОбработка = Ложь;
Параметры.Вставить("ПоказатьСтраницуСертификаты");
Параметры.Вставить("ПоказатьСтраницу", "Сертификаты");
ВыбраннаяФорма = Метаданные.ОбщиеФормы.НастройкиЭлектроннойПодписиИШифрования;
КонецЕсли;
@@ -887,6 +887,12 @@
<valueType/>
<keyParameter>true</keyParameter>
</parameters>
<parameters>
<name>РежимВыбора</name>
<valueType>
<types>Boolean</types>
</valueType>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
@@ -24,7 +24,7 @@
КонецЕсли;
ТолькоДанныеКлассификатора = Параметры.ТолькоДанныеКлассификатора;
Параметры.Свойство("РежимВыбора", РежимВыбора);
РежимВыбора = Параметры.РежимВыбора;
// Разрешаем элементы
Элементы.Список.РежимВыбора = РежимВыбора;
@@ -963,6 +963,9 @@
Если Результат.Статус = "Ошибка" Тогда
ПроверкаЗавершиласьСОшибками = Истина;
ПерейтиНаСледующуюСтраницу();
СтандартныеПодсистемыКлиент.ВывестиИнформациюОбОшибке(Результат.ИнформацияОбОшибке);
Возврат;
КонецЕсли;
@@ -5188,6 +5188,33 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ВладелецФайла</name>
<id>21</id>
<valueType>
<types>DefinedType.ВладелецПрисоединенныхФайлов</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ИмяСправочникаХранилищаФайлов</name>
<id>22</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ИмпортФайлов</name>
<title>
@@ -40,8 +40,9 @@
ПараметрыОтправки = ?(Параметры.ПараметрыОтправки <> Неопределено, Параметры.ПараметрыОтправки,
РаботаСФайламиСлужебный.ПодготовитьСтруктуруПараметровОтправки());
Элементы.Папки.ТекущаяСтрока = ПапкаПриОткрытии;
ИмяСправочникаХранилищаФайлов = "Файлы";
ВладелецФайла = ПапкаПриОткрытии;
ТекущийПользователь = Пользователи.АвторизованныйПользователь();
Если ТипЗнч(ТекущийПользователь) = Тип("СправочникСсылка.ВнешниеПользователи") Тогда
@@ -100,7 +101,10 @@
МодульПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
ИнтеграцияПодсистемБСП.ПриСозданииФормыСпискаФайлов(ЭтотОбъект);
РаботаСФайламиПереопределяемый.ПриСозданииФормыСпискаФайлов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
@@ -1245,9 +1249,9 @@
КонецПроцедуры
&НаСервереБезКонтекста
Функция СведенияОСинхронизации(ВладелецФайла)
Функция СведенияОСинхронизации(ВладелецФайлов)
Возврат РаботаСФайламиСлужебный.СведенияОСинхронизации(ВладелецФайла);
Возврат РаботаСФайламиСлужебный.СведенияОСинхронизации(ВладелецФайлов);
КонецФункции
@@ -1534,6 +1538,7 @@
&НаСервереБезКонтекста
Процедура ПриОтправкеФайловПочтой(ПараметрыОтправки, Знач ФайлыДляОтправки, ВладелецФайлов, УникальныйИдентификатор)
ИнтеграцияПодсистемБСП.ПриОтправкеФайловПочтой(ПараметрыОтправки, ФайлыДляОтправки, ВладелецФайлов, УникальныйИдентификатор);
РаботаСФайламиПереопределяемый.ПриОтправкеФайловПочтой(ПараметрыОтправки, ФайлыДляОтправки, ВладелецФайлов, УникальныйИдентификатор);
КонецПроцедуры
@@ -1578,13 +1583,13 @@
КонецПроцедуры
&НаСервере
Функция ПараметрыНастройкиСинхронизации(ВладелецФайла)
Функция ПараметрыНастройкиСинхронизации(ВладелецФайлов)
ТипВладельцаФайла = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Тип("СправочникСсылка.Файлы"));
Отбор = Новый Структура(
"ВладелецФайла, ТипВладельцаФайла, УчетнаяЗапись",
ВладелецФайла,
ВладелецФайлов,
ТипВладельцаФайла,
Справочники.УчетныеЗаписиСинхронизацииФайлов.ПустаяСсылка());
@@ -1600,7 +1605,7 @@
| НастройкиСинхронизацииФайлов.ВладелецФайла = &ВладелецФайла
| И НастройкиСинхронизацииФайлов.ТипВладельцаФайла = &ТипВладельцаФайла";
Запрос.УстановитьПараметр("ВладелецФайла", ВладелецФайла);
Запрос.УстановитьПараметр("ВладелецФайла", ВладелецФайлов);
Запрос.УстановитьПараметр("ТипВладельцаФайла", ТипВладельцаФайла);
РезультатЗапроса = Запрос.Выполнить();
@@ -1334,6 +1334,33 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ИмяСправочникаХранилищаФайлов</name>
<id>5</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ВладелецФайла</name>
<id>6</id>
<valueType>
<types>DefinedType.ВладелецПрисоединенныхФайлов</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ДобавитьФайл</name>
<title>
@@ -12,37 +12,37 @@
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если ЗначениеЗаполнено(Параметры.ВладелецФайла) Тогда
Список.Параметры.УстановитьЗначениеПараметра(
"Владелец", Параметры.ВладелецФайла);
Если ТипЗнч(Параметры.ВладелецФайла) = Тип("СправочникСсылка.ПапкиФайлов") Тогда
Элементы.Папки.ТекущаяСтрока = Параметры.ВладелецФайла;
Элементы.Папки.ВыделенныеСтроки.Очистить();
Элементы.Папки.ВыделенныеСтроки.Добавить(Элементы.Папки.ТекущаяСтрока);
Иначе
Элементы.Папки.Видимость = Ложь;
КонецЕсли;
ИмяСправочникаХранилищаФайлов = Параметры.ВладелецФайла.Метаданные().Имя;
ВладелецФайла = Параметры.ВладелецФайла;
Список.Параметры.УстановитьЗначениеПараметра("Владелец", Параметры.ВладелецФайла);
Элементы.Папки.Видимость = (ТипЗнч(Параметры.ВладелецФайла) = Тип("СправочникСсылка.ПапкиФайлов"));
Иначе
ИмяСправочникаХранилищаФайлов = "Файлы";
ВладелецФайла = Справочники.ПапкиФайлов.ПустаяСсылка();
КонецЕсли;
Если ТипЗнч(ВладелецФайла) = Тип("СправочникСсылка.ПапкиФайлов") Тогда
Если Параметры.ВыборШаблона Тогда
ВладелецФайла = Справочники.ПапкиФайлов.Шаблоны;
ОпределитьВозможностьДобавлениеШаблоновФайлов();
РежимВыбораШаблона = Параметры.ВыборШаблона;
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Папки, "Ссылка", Справочники.ПапкиФайлов.Шаблоны,
ВидСравненияКомпоновкиДанных.ВИерархии, , Истина);
Элементы.Папки.ТекущаяСтрока = Справочники.ПапкиФайлов.Шаблоны;
Элементы.Папки.ВыделенныеСтроки.Очистить();
Элементы.Папки.ВыделенныеСтроки.Добавить(Элементы.Папки.ТекущаяСтрока);
КонецЕсли;
ИначеЕсли ЗначениеЗаполнено(Параметры.ТекущаяСтрока) И ВладелецФайла.Пустая() Тогда
НовоеЗначение = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Параметры.ТекущаяСтрока, "ВладелецФайла", Истина);
Если НовоеЗначение <> Неопределено Тогда
ВладелецФайла = НовоеЗначение;
КонецЕсли;
КонецЕсли;
Элементы.Папки.ТекущаяСтрока = ВладелецФайла;
Элементы.Папки.ВыделенныеСтроки.Очистить();
Элементы.Папки.ВыделенныеСтроки.Добавить(Элементы.Папки.ТекущаяСтрока);
Список.Параметры.УстановитьЗначениеПараметра("Владелец", Элементы.Папки.ТекущаяСтрока);
КонецЕсли;
Если ЗначениеЗаполнено(Параметры.ТекущаяСтрока) Тогда
Элементы.Папки.ТекущаяСтрока = Параметры.ТекущаяСтрока;
Элементы.Список.ТекущаяСтрока = Параметры.ТекущаяСтрока;
КонецЕсли;
ПриИзмененияИспользованияПодписанияИлиШифрованияНаСервере();
@@ -51,6 +51,9 @@
Элементы.Папки.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Авто;
КонецЕсли;
ИнтеграцияПодсистемБСП.ПриСозданииФормыСпискаФайлов(ЭтотОбъект);
РаботаСФайламиПереопределяемый.ПриСозданииФормыСпискаФайлов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
@@ -191,14 +194,12 @@
&НаСервере
Процедура ОпределитьВозможностьДобавлениеШаблоновФайлов()
Перем ЕстьПравоДобавлениеФайлов, МодульУправлениеДоступом;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
ЕстьПравоДобавлениеФайлов = МодульУправлениеДоступом.ЕстьПраво("ДобавлениеФайлов", Справочники.ПапкиФайлов.Шаблоны);
Иначе
ЕстьПравоДобавлениеФайлов = ПравоДоступа("Добавление", Метаданные.Справочники.Файлы) И ПравоДоступа("Чтение", Метаданные.Справочники.ПапкиФайлов);
ЕстьПравоДобавлениеФайлов = ПравоДоступа("Добавление", Метаданные.Справочники.Файлы)
И ПравоДоступа("Чтение", Метаданные.Справочники.ПапкиФайлов);
КонецЕсли;
Если Не ЕстьПравоДобавлениеФайлов Тогда
@@ -152,7 +152,7 @@
Если ФайлПеренесенный.ЭтоКаталог() Тогда
НовыйЭлемент.ИндексКартинки = 2; // папка
Иначе
НовыйЭлемент.ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.ПолучитьИндексПиктограммыФайла(ФайлПеренесенный.Расширение);
НовыйЭлемент.ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.ИндексПиктограммыФайла(ФайлПеренесенный.Расширение);
КонецЕсли;
Если ФайлПеренесенный.ЭтоКаталог() Тогда
@@ -1014,6 +1014,33 @@
<getInvisibleFieldPresentations>true</getInvisibleFieldPresentations>
</extInfo>
</attributes>
<attributes>
<name>ВладелецФайла</name>
<id>3</id>
<valueType>
<types>DefinedType.ВладелецПрисоединенныхФайлов</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ИмяСправочникаХранилищаФайлов</name>
<id>4</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<parameters>
<name>ВладелецФайла</name>
<valueType/>
@@ -12,27 +12,24 @@
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если ЗначениеЗаполнено(Параметры.ВладелецФайла) Тогда
Список.Параметры.УстановитьЗначениеПараметра(
"Владелец", Параметры.ВладелецФайла);
Если ТипЗнч(Параметры.ВладелецФайла) = Тип("СправочникСсылка.ПапкиФайлов") Тогда
Элементы.Папки.ТекущаяСтрока = Параметры.ВладелецФайла;
Элементы.Папки.ВыделенныеСтроки.Очистить();
Элементы.Папки.ВыделенныеСтроки.Добавить(Элементы.Папки.ТекущаяСтрока);
Иначе
Элементы.Папки.Видимость = Ложь;
КонецЕсли;
ИмяСправочникаХранилищаФайлов = Параметры.ВладелецФайла.Метаданные().Имя;
ВладелецФайла = Параметры.ВладелецФайла;
Список.Параметры.УстановитьЗначениеПараметра("Владелец", Параметры.ВладелецФайла);
Элементы.Папки.Видимость = (ТипЗнч(Параметры.ВладелецФайла) = Тип("СправочникСсылка.ПапкиФайлов"));
Иначе
ИмяСправочникаХранилищаФайлов = "Файлы";
ВладелецФайла = Справочники.ПапкиФайлов.ПустаяСсылка();
КонецЕсли;
Если ТипЗнч(ВладелецФайла) = Тип("СправочникСсылка.ПапкиФайлов") Тогда
Если Параметры.ВыборШаблона Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Папки, "Ссылка", Справочники.ПапкиФайлов.Шаблоны,
ВидСравненияКомпоновкиДанных.ВИерархии, , Истина);
Элементы.Папки.ТекущаяСтрока = Справочники.ПапкиФайлов.Шаблоны;
Элементы.Папки.ВыделенныеСтроки.Очистить();
Элементы.Папки.ВыделенныеСтроки.Добавить(Элементы.Папки.ТекущаяСтрока);
ВладелецФайла = Справочники.ПапкиФайлов.Шаблоны;
КонецЕсли;
Элементы.Папки.ТекущаяСтрока = ВладелецФайла;
Элементы.Папки.ВыделенныеСтроки.Очистить();
Элементы.Папки.ВыделенныеСтроки.Добавить(Элементы.Папки.ТекущаяСтрока);
Список.Параметры.УстановитьЗначениеПараметра("Владелец", Элементы.Папки.ТекущаяСтрока);
КонецЕсли;
@@ -41,6 +38,9 @@
Элементы.Папки.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Авто;
КонецЕсли;
ИнтеграцияПодсистемБСП.ПриСозданииФормыСпискаФайлов(ЭтотОбъект);
РаботаСФайламиПереопределяемый.ПриСозданииФормыСпискаФайлов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
@@ -66,6 +66,9 @@
КонецЕсли;
ИнтеграцияПодсистемБСП.ПриСозданииФормыЭлементаФайлов(ЭтотОбъект);
РаботаСФайламиПереопределяемый.ПриСозданииФормыЭлементаФайлов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
@@ -956,9 +959,9 @@
&НаКлиенте
Процедура Отправить(Команда)
Если ЗначениеЗаполнено(Объект.Ссылка)
Или Записать() Тогда
Если ЗначениеЗаполнено(Объект.Ссылка) Или Записать() Тогда
Файлы = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Объект.Ссылка);
ПриОтправкеФайловПочтой(ПараметрыОтправки, Файлы, Объект.ВладелецФайла, УникальныйИдентификатор);
РаботаСФайламиСлужебныйКлиент.ОтправитьФайлыПоПочте(Файлы, УникальныйИдентификатор, ПараметрыОтправки, Истина);
КонецЕсли;
@@ -1705,4 +1708,10 @@
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
&НаСервереБезКонтекста
Процедура ПриОтправкеФайловПочтой(ПараметрыОтправки, Знач ФайлыДляОтправки, ВладелецФайлов, УникальныйИдентификатор)
ИнтеграцияПодсистемБСП.ПриОтправкеФайловПочтой(ПараметрыОтправки, ФайлыДляОтправки, ВладелецФайлов, УникальныйИдентификатор);
РаботаСФайламиПереопределяемый.ПриОтправкеФайловПочтой(ПараметрыОтправки, ФайлыДляОтправки, ВладелецФайлов, УникальныйИдентификатор);
КонецПроцедуры
#КонецОбласти
@@ -1397,7 +1397,7 @@
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиСлужебныйКлиентСервер = ОбщегоНазначения.ОбщийМодуль("РаботаСФайламиСлужебныйКлиентСервер");
Возврат МодульРаботаСФайламиСлужебныйКлиентСервер.ПолучитьИндексПиктограммыФайла(Расширение);
Возврат МодульРаботаСФайламиСлужебныйКлиентСервер.ИндексПиктограммыФайла(Расширение);
КонецЕсли;
Возврат 0;
@@ -1409,7 +1409,7 @@
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиСлужебныйКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиСлужебныйКлиентСервер");
Возврат МодульРаботаСФайламиСлужебныйКлиентСервер.ПолучитьИндексПиктограммыФайла(Расширение);
Возврат МодульРаботаСФайламиСлужебныйКлиентСервер.ИндексПиктограммыФайла(Расширение);
КонецЕсли;
Возврат 0;
@@ -610,6 +610,10 @@
<metadata>InformationRegister.СообщенияОбменаДаннымиОбластейДанных</metadata>
<use>DontUse</use>
</content>
<content>
<metadata>ScheduledJob.ОбновлениеКлассификаторовМЧД</metadata>
<use>DontUse</use>
</content>
<content>
<metadata>ScheduledJob.СборИОтправкаСтатистики</metadata>
<use>DontUse</use>
@@ -4474,6 +4474,13 @@
</valueType>
<keyParameter>true</keyParameter>
</parameters>
<parameters>
<name>ПоказатьСтраницу</name>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
@@ -43,13 +43,13 @@
ЭтоПолноправныйПользователь = Пользователи.ЭтоПолноправныйПользователь();
Если Параметры.Свойство("ПоказатьСтраницуСертификаты") Тогда
Если Параметры.ПоказатьСтраницу = "Сертификаты" Тогда
Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаСертификаты;
ИначеЕсли Параметры.Свойство("ПоказатьСтраницуНастройки") Тогда
ИначеЕсли Параметры.ПоказатьСтраницу = "Настройки" Тогда
Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаНастройки;
ИначеЕсли Параметры.Свойство("ПоказатьСтраницуПрограммы") Тогда
ИначеЕсли Параметры.ПоказатьСтраницу = "Программы" Тогда
Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаПрограммы;
КонецЕсли;
@@ -1,19 +1,21 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body class="">
<p>Список предназначен для добавления к приложению расширений конфигурации. Они позволяют добавлять новые возможности в приложение без ее прямого изменения.</p>
<p>Список предназначен для добавления к приложению расширений конфигурации. Они позволяют добавлять новые возможности в приложение без ее прямого изменения.</p>
<p>Подробнее о расширениях и работе с ними см. <a href="http://v8.1c.ru/o7/201410ext/index.htm">сайт</a>.</p>
<p>Открывается по команде <strong>Расширения</strong> в разделе <strong>Администрирование - Печатные формы, отчеты и обработки</strong>.</p>
<p>В списке выводится: </p>
<ul><li>с помощью флажка в первой колонке можно включить или выключить установленные расширения.
<ul><li>При выключении приложение выводит предупреждение. Необходимо учитывать, что отключение расширения может сделать недоступными данные, которые хранились в приложении и относились к расширению, поэтому после отключения расширения будет невозможно изменить эту часть данных. Для подтверждения нажмите <strong>Отключить</strong>.</li></ul></li>
<ul><li>с помощью кнопки <img src="StdPicture.CheckAll"></img> панели навигации можно включить или выключить все установленные расширения. Также можно переключить активность расширений с помощью флажка.
<ul><li>При выключении приложение выводит предупреждение. Необходимо учитывать, что отключение расширения может сделать недоступными данные, которые хранились в приложении и относились к расширению, поэтому после отключения расширения будет невозможно изменить эту часть данных. Для подтверждения нажмите <strong>Отключить</strong>.</li></ul></li>
<li><strong>Наименование</strong> - проставляется по умолчанию при подключении расширения, заполняется разработчиком;
</li>
<li><strong>Версия</strong> - проставляется приложением по умолчанию при подключении расширения, заполняется разработчиком;
<li><strong>Версия</strong> - проставляется приложением по умолчанию при подключении расширения, заполняется разработчиком;
</li>
<li><strong>Назначение</strong> - проставляется приложением по умолчанию при подключении расширения, заполняется разработчиком;
<li><strong>Назначение</strong> - проставляется приложением по умолчанию при подключении расширения, заполняется разработчиком;
</li>
<li><strong>Передавать в подчиненные узлы РИБ</strong> - если флажок включен, то расширения передаются в подчиненные узлы РИБ, по умолчанию выключен;
<li><strong>Передавать в подчиненные узлы РИБ</strong>- если флажок включен, то расширения передаются в подчиненные узлы РИБ, по умолчанию выключен. Переключить передачу также можно с помощью кнопки <img src="StdPicture.ExchangePlan"></img> панели навигации;
</li>
<li><strong>Безопасный режим</strong> - у добавленного расширения флажок включается автоматически, администратор может выключить флажок или указать имя профиля безопасности.</li></ul><p>В списке с помощью значков отображается состояние расширений. Расширение может быть:</p>
<li><strong>Безопасный режим</strong>- у добавленного расширения флажок включается автоматически, администратор может выключить флажок или указать имя профиля безопасности с помощью кнопки <img src="CommonPicture.ЗначокЩита"></img> панели навигации;</li>
<li><strong>Ответственный</strong>- установить ответственного для выделенных расширений можно с помощью кнопки <img src="StdPicture.User"></img>панели навигации;</li>
<li><b>Комментарий</b>- можно указать любую дополнительную информацию для выбранного расширения. В расширении, в котором установлен комментарий будет отображаться значок <img src="CommonPicture.Комментарий"></img>.</li></ul><p>В списке с помощью значков отображается состояние расширений. Расширение может быть:</p>
<ul><li>
<div>подключено (тогда в списке зеленый кружок). Подробнее о подключении расширений см. <a href="http://its.1c.ru/db/v837doc#bookmark:dev:TI000001534">http://its.1c.ru/db/v837doc#bookmark:dev:TI000001534</a>;</div>
</li>
@@ -21,34 +23,35 @@
<div>не подключено (тогда в списке красный кружок);</div>
</li>
<li>
<div>установлено (тогда в списке серый кружок) - после перезапуска будет либо подключено, либо не подключено.</div></li></ul><h3>Добавление расширения</h3>
<div>установлено (тогда в списке серый кружок) - после перезапуска будет либо подключено, либо не подключено.</div></li></ul><h3>Добавление расширения</h3>
<ul><li>Нажмите <strong>Добавить из файла</strong>;
</li>
<li>Перед установкой расширений приложение выводит предупреждение. Если расширение получено из надежного источника, нажмите кнопку <strong>Продолжить</strong>.
<li>Перед установкой расширений приложение выводит предупреждение. Если расширение получено из надежного источника, нажмите кнопку <strong>Продолжить</strong>.
</li>
<li>Укажите путь к файлу с расширением на компьютере.
</li>
<li>Добавление расширения занимает некоторое время.
<li>Добавление расширения занимает некоторое время.
</li>
<li>После добавления расширения, для того чтобы продолжить работу с учетом сделанных изменений, нажмите ссылку <strong>перезапустить</strong>. В приложении в Интернете этой ссылки нет, т.к. для неразделенных пользователей, например, для администраторов сервиса, при входе в область данных расширения области данных не подключаются, а остается подключенным состав расширений, который был до входа в область данных, т.е. при запуске сеанса.
<li>После добавления расширения, для того чтобы продолжить работу с учетом сделанных изменений, нажмите ссылку <strong>перезапустить</strong>. В приложении в Интернете этой ссылки нет, т.к. для неразделенных пользователей, например, для администраторов сервиса, при входе в область данных расширения области данных не подключаются, а остается подключенным состав расширений, который был до входа в область данных, т.е. при запуске сеанса.
</li>
<li>После перезапуска расширение будет подключено к приложению, и его функции можно будет использовать. </li></ul><h3>Удаление расширения</h3>
<ul><li>Если расширение больше не нужно в приложении, выделите его, нажмите <strong>Удалить</strong>.</li>
<li>Если расширение хранит данные в информационной базе, то при удалении они будут безвозвратно утеряны, в этом случае перед удалением приложение выводит предупреждение. Рекомендуется перед удалением расширения произвести резервное копирование информационной базы.</li>
<li>После перезапуска расширение будет подключено к приложению, и его функции можно будет использовать. </li></ul><h3>Удаление расширения</h3>
<ul><li>Если расширение больше не нужно в приложении, выделите его, нажмите <strong>Удалить</strong>.</li>
<li>Если расширение хранит данные в информационной базе, то при удалении они будут безвозвратно утеряны, в этом случае перед удалением приложение выводит предупреждение. Рекомендуется перед удалением расширения произвести резервное копирование информационной базы.</li>
<li>Удаление расширения не отключает его. Все сеансы, запущенные после добавления расширения и до его удаления, продолжат работу с удаленным расширением.</li>
<li>В новых сеансах удаленное расширение более не подключится.</li></ul><h3>Перезапуск приложения</h3>
<ul><li>Для того чтобы изменения, внесенные в список расширений, вступили в силу (т.е. были учтены при работе приложения), нажмите ссылку <strong>перезапустить</strong>.
<ul><li>Для того чтобы изменения, внесенные в список расширений, вступили в силу (т.е. были учтены при работе приложения), нажмите ссылку <strong>перезапустить</strong>.
</li>
<ul><li>Если при запуске расширение не удалось подключить к приложению, тогда выводится сообщение об ошибке.</li></ul><li>В приложении в Интернете ссылка отсутствует.</li></ul><h3>Сохранение расширения в файл</h3>
<ul><li>Если при запуске расширение не удалось подключить к приложению, тогда выводится сообщение об ошибке.</li></ul><li>В приложении в Интернете ссылка отсутствует.</li></ul><h3>Сохранение расширения в файл</h3>
<ul><li>
<div>Выделите расширение, в контекстном меню по правой кнопке мыши нажмите <strong>Сохранить как</strong>, укажите путь к файлу на компьютере.</div></li></ul><h3>Обновление расширения</h3>
<ul><li>
<div>Выделите расширение, нажмите <strong>Обновить из файла</strong>, укажите путь к файлу на компьютере.</div>
</li>
<li>
<div>Следует использовать эту кнопку для установки новой версии расширения.</div></li>
<div>Следует использовать эту кнопку для установки новой версии расширения.</div></li>
<li>Если обновить расширение на новую версию, в которой изменено его имя, то все прежние настройки этого расширения будут сохранены, например, созданные варианты отчетов.</li>
<ul><li>При попытке обновления на расширение с другим именем приложение выводит сообщение, подтвердить свое действие необходимо с помощью кнопки <b>Заменить</b>.</li></ul><li>При случайном удалении и повторном добавлении этого же расширения в приложение через короткий промежуток времени можно продолжить работу без потери настроек расширения.</li></ul><div>Также нужно использовать эту возможность для возврата к предыдущей версии, если новая версия содержит ошибку (однако не рекомендуется устанавливать расширение меньшей версии, т.к. это может привести к потере сделанных настроек).</div>
<ul><li>При попытке обновления на расширение с другим именем приложение выводит сообщение, подтвердить свое действие необходимо с помощью кнопки <b>Заменить</b>.</li></ul><li>При случайном удалении и повторном добавлении этого же расширения в приложение через короткий промежуток времени можно продолжить работу без потери настроек расширения.</li></ul><div>Также нужно использовать эту возможность для возврата к предыдущей версии, если новая версия содержит ошибку (однако не рекомендуется устанавливать расширение меньшей версии, т.к. это может привести к потере сделанных настроек).</div>
<p></p>
<h3><b style="font-size: 13.4399995803833px;">Установленные исправления (патчи)</b></h3>
<ul style="font-size: 13.4399995803833px;"><li><span style="font-size: 11.199999809265137px;">С помощью команды меню <b>Еще - Установленные исправления (патчи)</b> можно открыть <a href="CommonForm.УстановленныеИсправления/Help">список</a>, в котором можно просмотреть уже установленные исправления и с помощью кнопки панели навигации <b>Установить исправление</b>.</span></li></ul><p></p></body></html>
<h3><b>Установленные исправления (патчи)</b></h3>
<ul><li><span>С помощью команды меню <b>Еще - Установленные исправления (патчи)</b> можно открыть <a href="CommonForm.УстановленныеИсправления/Help">список</a>, в котором можно просмотреть уже установленные исправления и с помощью кнопки панели навигации <b>Установить исправление</b>.</span></li></ul><h3>Проверить возможность применения всех расширений</h3>
<ul><li><span>С помощью команды меню <b>Еще - Проверить возможность применения всех расширений</b> можно проверить добавленные расширения, возможно они добавлены давно и уже не актуальны. </span></li></ul><p></p></body></html>
@@ -1535,6 +1535,19 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ОшибкаПроверкиПодписи</name>
<id>10</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ПерейтиКНастройкеПрограмм</name>
<title>
@@ -13,6 +13,10 @@
ДополнительныеДанные = Параметры.ДополнительныеДанные;
Если ЗначениеЗаполнено(ДополнительныеДанные) Тогда
ОшибкаПроверкиПодписи = ЗначениеЗаполнено(ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеДанные, "ДанныеПодписи", Ложь));
КонецЕсли;
Если ЗначениеЗаполнено(Параметры.ИнформацияДляПоддержки) Тогда
Элементы.ИнформацияДляПоддержки.Заголовок = Параметры.ИнформацияДляПоддержки;
Иначе
@@ -208,7 +212,7 @@
ОшибкаПоКлассификатору.Причина = ФорматированнаяСтрока(Причина);
ОшибкаПоКлассификатору.Решение = ФорматированнаяСтрока(ЕстьПричинаИРешение.Решение);
Иначе
ОшибкаПоКлассификатору = ЭлектроннаяПодписьСлужебный.ОшибкаПоКлассификатору(ТекстОшибки, МестоОшибки = "Сервер");
ОшибкаПоКлассификатору = ЭлектроннаяПодписьСлужебный.ОшибкаПоКлассификатору(ТекстОшибки, МестоОшибки = "Сервер", ОшибкаПроверкиПодписи);
КонецЕсли;
ЭтоИзвестнаяОшибка = ОшибкаПоКлассификатору <> Неопределено;
@@ -359,6 +363,11 @@
ДополнительныеДанныеДляКлассификатораОшибок.ДанныеСертификата = ДанныеСертификата;
КонецЕсли;
ДанныеПодписи = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеДанные, "ДанныеПодписи", Неопределено);
Если ЗначениеЗаполнено(ДанныеПодписи) Тогда
ДополнительныеДанныеДляКлассификатораОшибок.ДанныеПодписи = ДанныеПодписи;
КонецЕсли;
Возврат ДополнительныеДанныеДляКлассификатораОшибок;
КонецФункции
@@ -1948,7 +1948,7 @@
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ОбработчикКонструктораФормулСервер(Знач Параметр, Знач ДополнительныеПараметры)
Процедура Подключаемый_ОбработчикКонструктораФормулСервер(Параметр, ДополнительныеПараметры) // АПК:1412 - параметры возвращаются на клиент.
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонструкторФормул") Тогда
МодульКонструкторФормул = ОбщегоНазначения.ОбщийМодуль("КонструкторФормул");
МодульКонструкторФормул.ОбработчикКонструктораФормул(ЭтотОбъект, Параметр, ДополнительныеПараметры);
@@ -3917,6 +3917,17 @@
<types>Boolean</types>
</valueType>
</parameters>
<parameters>
<name>ВариантНаименование</name>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
</parameters>
<parameters>
<name>НастройкиОтчета</name>
<valueType/>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
@@ -29,14 +29,15 @@
Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Изменение варианта отчета ""%1""'"), Параметры.ПредставлениеВарианта);
КонецЕсли;
Если Параметры.Свойство("НастройкиОтчета", НастройкиОтчета) Тогда
Если Параметры.НастройкиОтчета <> Неопределено Тогда
НастройкиОтчета = Параметры.НастройкиОтчета;
Если НастройкиОтчета.СхемаМодифицирована Тогда
Отчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(НастройкиОтчета.АдресСхемы));
КонецЕсли;
КонецЕсли;
Если Не ЗначениеЗаполнено(Параметры.ПредставлениеВарианта) Тогда
Параметры.Свойство("ВариантНаименование", Параметры.ПредставлениеВарианта);
Параметры.ПредставлениеВарианта = Параметры.ВариантНаименование;
КонецЕсли;
НастройкиКД = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "Вариант");
@@ -4038,6 +4038,10 @@
ОписаниеНастройки = СортировкаЭлементаСтруктуры.ДоступныеПоляПорядка.НайтиПоле(ЭлементНастройкиИсточник.Поле);
Если ОписаниеНастройки = Неопределено Тогда
Продолжить;
КонецЕсли;
СтрокаПриемник = Раздел.ПолучитьЭлементы().Добавить();
ЗаполнитьЗначенияСвойств(СтрокаПриемник, ЭлементНастройкиПриемник);
ЗаполнитьЗначенияСвойств(СтрокаПриемник, ОписаниеНастройки);
@@ -3796,7 +3796,6 @@
ФорматыСохранения = ФорматыСохраненияОтчета(ПолноеИмяФайлаОтчета, Контекст.ИндексФорматовСохраненияОтчета);
СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета
РезультатОтчета = РезультатОтчетаДляСохранения(ОтчетТабличныйДокумент, СвойстваРезультата.Заголовки);
РезультатОтчета.НачатьЗапись(Обработчик, ПолноеИмяФайлаОтчета, ФорматыСохранения);
КонецПроцедуры
@@ -214,11 +214,20 @@
ПараметрыФормы.Вставить("ЗаголовокПредупреждения", НСтр("ru = 'Ошибка проверки подписи'"));
ПараметрыФормы.Вставить("ТекстОшибкиКлиент", ТекстОшибки);
ДополнительныеПараметры = Новый Структура;
Если ЗначениеЗаполнено(АдресСертификата) Тогда
ДополнительныеПараметры = Новый Структура("ДанныеСертификата",
ДополнительныеПараметры.Вставить("ДанныеСертификата",
АдресСертификата);
КонецЕсли;
Если ЗначениеЗаполнено(АдресПодписи) Тогда
ДополнительныеПараметры.Вставить("ДанныеПодписи",
АдресПодписи);
КонецЕсли;
ПараметрыФормы.Вставить("ДополнительныеДанные", ДополнительныеПараметры);
ОткрытьФорму("ОбщаяФорма.РасширенноеПредставлениеОшибки",
ПараметрыФормы, ЭтотОбъект,,,,, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
@@ -5670,8 +5670,11 @@
ИначеЕсли Режим = "РазделенныеДанныеКонфигурации" Тогда
Параметры = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра);
Иначе
РезультатОбщий = ПредставленияЗаполнены("ОбщиеДанныеКонфигурации");
РезультатРазделенный = ПредставленияЗаполнены("РазделенныеДанныеКонфигурации");
Если ОбщегоНазначения.РазделениеВключено() Тогда
Возврат РезультатРазделенный;
КонецЕсли;
РезультатОбщий = ПредставленияЗаполнены("ОбщиеДанныеКонфигурации");
Если РезультатОбщий = "НеЗаполнены" Или РезультатРазделенный = "НеЗаполнены" Тогда
Возврат "НеЗаполнены";
ИначеЕсли РезультатОбщий = "Заполняются" Или РезультатРазделенный = "Заполняются" Тогда
@@ -1238,7 +1238,7 @@
КонецПроцедуры
// Параметры:
// Объекты - Массив из ОбъектМетаданных - для РаботаСФайламиПереопределяемый.ПриОпределенииНастроек.
// Объекты - Массив из ОбъектМетаданных
//
Процедура ПриОпределенииОбъектовИсключенияСинхронизацииФайлов(Объекты) Экспорт
@@ -1248,12 +1248,7 @@
КонецПроцедуры
// Позволяет изменить стандартную форму файла
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения - форма файла:
// * Объект - ОпределяемыйТип.ПрисоединенныйФайл
//
// См. РаботаСФайламиПереопределяемый.ПриСозданииФормыЭлементаФайлов
Процедура ПриСозданииФормыЭлементаФайлов(Форма) Экспорт
Типы = Новый Массив;
@@ -128,7 +128,7 @@
События.Вставить("ПриЗавершенииОбработкиПользователяИБ", Ложь);
События.Вставить("ПриОпределенииНастроекРегистрацииСобытийДоступаКДанным", Ложь);
//ПрофилиБезопасности
// ПрофилиБезопасности
События.Вставить("ПриПроверкеВозможностиНастройкиПрофилейБезопасности", Ложь);
События.Вставить("ПриЗапросеРазрешенийНаИспользованиеВнешнихРесурсов", Ложь);
События.Вставить("ПриЗапросеСозданияПрофиляБезопасности", Ложь);
@@ -142,7 +142,10 @@
События.Вставить("ПослеПолученияСтатусовПисем", Ложь);
// РаботаСФайлами
События.Вставить("ПриСозданииФормыСпискаФайлов", Ложь);
События.Вставить("ПриСозданииФормыЭлементаФайлов", Ложь);
События.Вставить("ПриОпределенииОбъектовИсключенияСинхронизацииФайлов", Ложь);
События.Вставить("ПриОтправкеФайловПочтой", Ложь);
// РегламентныеЗадания
События.Вставить("ПриОпределенииНастроекРегламентныхЗаданий", Ложь);
@@ -3199,6 +3202,11 @@
МодульКонтрольВеденияУчетаСлужебный.ПриДобавленииОбработчиковОбновления(Обработчики);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.МашиночитаемыеДоверенности") Тогда
МодульМашиночитаемыеДоверенностиФНССлужебный = ОбщегоНазначения.ОбщийМодуль("МашиночитаемыеДоверенностиФНССлужебный");
МодульМашиночитаемыеДоверенностиФНССлужебный.ПриДобавленииОбработчиковОбновления(Обработчики);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
МодульМультиязычностьСервер.ПриДобавленииОбработчиковОбновления(Обработчики);
@@ -4761,7 +4769,9 @@
#Область РаботаСФайлами
// См. РаботаСФайламиСлужебный.ПриОпределенииОбъектовИсключенияСинхронизацииФайлов.
// Параметры:
// Объекты - Массив из ОбъектМетаданных
//
Процедура ПриОпределенииОбъектовИсключенияСинхронизацииФайлов(Объекты) Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Взаимодействия") Тогда
@@ -4781,16 +4791,54 @@
КонецПроцедуры
// Позволяет изменить стандартную форму файла
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения - форма файла.
//
// См. РаботаСФайламиПереопределяемый.ПриСозданииФормыСпискаФайлов
Процедура ПриСозданииФормыСпискаФайлов(Форма) Экспорт
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриСозданииФормыСпискаФайлов Тогда
МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС");
МодульИнтеграцияПодсистемБТС.ПриСозданииФормыСпискаФайлов(Форма);
КонецЕсли;
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриСозданииФормыСпискаФайлов Тогда
МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП");
МодульИнтеграцияПодсистемБИП.ПриСозданииФормыСпискаФайлов(Форма);
КонецЕсли;
КонецПроцедуры
// См. РаботаСФайламиПереопределяемый.ПриСозданииФормыЭлементаФайлов
Процедура ПриСозданииФормыЭлементаФайлов(Форма) Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Взаимодействия") Тогда
МодульВзаимодействия = ОбщегоНазначения.ОбщийМодуль("Взаимодействия");
МодульВзаимодействия.ПриСозданииФормыЭлементаФайлов(Форма);
КонецЕсли;
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриСозданииФормыЭлементаФайлов Тогда
МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС");
МодульИнтеграцияПодсистемБТС.ПриСозданииФормыЭлементаФайлов(Форма);
КонецЕсли;
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриСозданииФормыЭлементаФайлов Тогда
МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП");
МодульИнтеграцияПодсистемБИП.ПриСозданииФормыЭлементаФайлов(Форма);
КонецЕсли;
КонецПроцедуры
// См. РаботаСФайламиПереопределяемый.ПриОтправкеФайловПочтой.
Процедура ПриОтправкеФайловПочтой(ПараметрыОтправки, ФайлыДляОтправки, ВладелецФайлов, УникальныйИдентификатор) Экспорт
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОтправкеФайловПочтой Тогда
МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС");
МодульИнтеграцияПодсистемБТС.ПриОтправкеФайловПочтой(ПараметрыОтправки, ФайлыДляОтправки, ВладелецФайлов,
УникальныйИдентификатор);
КонецЕсли;
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОтправкеФайловПочтой Тогда
МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП");
МодульИнтеграцияПодсистемБИП.ПриОтправкеФайловПочтой(ПараметрыОтправки, ФайлыДляОтправки, ВладелецФайлов,
УникальныйИдентификатор);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -277,4 +277,10 @@
КонецФункции
// Для корректного перевода имени колонки журнала регистрации
//
Функция ИмяКолонкиСоединение() Экспорт
Возврат "Соединение";
КонецФункции
#КонецОбласти
@@ -79,11 +79,15 @@
Если ЗначениеЗаполнено(СвойстваСубъекта.ОГРНИП) Тогда
Отбор.Вставить(Префикс + "ОГРН", СвойстваСубъекта.ОГРНИП);
Отбор.Вставить(Префикс + "ИННФЛ", СвойстваСубъекта.ИНН);
ИначеЕсли ЗначениеЗаполнено(СвойстваСубъекта.Организация) Тогда
ИначеЕсли ЗначениеЗаполнено(СвойстваСубъекта.ИННЮЛ) Тогда
Отбор.Вставить(Префикс + "ОГРН", ?(ЗначениеЗаполнено(СвойстваСубъекта.ОГРН), СвойстваСубъекта.ОГРН, ""));
Отбор.Вставить(Префикс + "ИННФЛ", СвойстваСубъекта.ИНН);
Отбор.Вставить(Префикс + "ИНН", СвойстваСубъекта.ИННЮЛ);
Отбор.Вставить(Префикс + "СНИЛС", СвойстваСубъекта.СНИЛС);
ИначеЕсли ЗначениеЗаполнено(СвойстваСубъекта.Организация) Тогда
Отбор.Вставить(Префикс + "НаименованиеОрганизации", СвойстваСубъекта.Организация);
Отбор.Вставить(Префикс + "ИННФЛ", СвойстваСубъекта.ИНН);
Отбор.Вставить(Префикс + "СНИЛС", СвойстваСубъекта.СНИЛС);
Иначе
Отбор.Вставить(Префикс + "ИННФЛ", СвойстваСубъекта.ИНН);
Отбор.Вставить(Префикс + "СНИЛС", СвойстваСубъекта.СНИЛС);
@@ -156,6 +160,7 @@
| МашиночитаемыеДоверенностиПредставители.КПП КАК ПредставительКПП,
| МашиночитаемыеДоверенностиПредставители.Организация КАК ПредставительОрганизация,
| МашиночитаемыеДоверенностиПредставители.ФизическоеЛицо КАК ПредставительФизическоеЛицо,
| МашиночитаемыеДоверенностиПредставители.НаименованиеОрганизации КАК ПредставительНаименованиеОрганизации,
| МашиночитаемыеДоверенностиДоверители.ИНН КАК ДоверительИНН,
| МашиночитаемыеДоверенностиДоверители.ИННФЛ КАК ДоверительИННФЛ,
| МашиночитаемыеДоверенностиДоверители.ОГРН КАК ДоверительОГРН,
@@ -163,6 +168,7 @@
| МашиночитаемыеДоверенностиДоверители.КПП КАК ДоверительКПП,
| МашиночитаемыеДоверенностиДоверители.Организация КАК ДоверительОрганизация,
| МашиночитаемыеДоверенностиДоверители.ФизическоеЛицо КАК ДоверительФизическоеЛицо,
| МашиночитаемыеДоверенностиДоверители.НаименованиеОрганизации КАК ДоверительНаименованиеОрганизации,
| МашиночитаемыеДоверенности.НомерДоверенности КАК НомерДоверенности,
| МашиночитаемыеДоверенности.Верна КАК Верна,
| МашиночитаемыеДоверенности.Статус КАК Статус,
@@ -343,6 +343,11 @@
Зависимость.РегламентноеЗадание = Метаданные.РегламентныеЗадания.ОбновлениеСтатусовМЧД;
Зависимость.РаботаетСВнешнимиРесурсами = Истина;
Зависимость = Настройки.Добавить();
Зависимость.РегламентноеЗадание = Метаданные.РегламентныеЗадания.ОбновлениеКлассификаторовМЧД;
Зависимость.ДоступноВМоделиСервиса = Истина;
Зависимость.ДоступноВАвтономномРабочемМесте = Ложь;
КонецПроцедуры
Функция ИмяСобытияЖурналаРегистрации() Экспорт
@@ -687,6 +692,13 @@
КонецПроцедуры
// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления.
Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
РегистрыСведений.КлассификаторыМЧД.ПриДобавленииОбработчиковОбновления(Обработчики);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -1539,7 +1551,7 @@
Функция ЗаголовокДекорации(Назначение, Реквизиты, ИмяЭлементаОрганизация, ТолькоОсновные, ТолькоОбязательные = Ложь, ПоказыватьПерсональныеДанные = Истина) Экспорт
Результат = СтруктураЗаголовкаДекорации(Назначение, Реквизиты, ТолькоОсновные, ПоказыватьПерсональныеДанные, ИмяЭлементаОрганизация, ТолькоОбязательные, ПоказыватьПерсональныеДанные);
Результат = СтруктураЗаголовкаДекорации(Назначение, Реквизиты, ТолькоОсновные, ПоказыватьПерсональныеДанные, ИмяЭлементаОрганизация, ТолькоОбязательные, Ложь);
Если Результат.ЗаголовокДекорацииОшибки.Количество() > 0 Тогда
Результат.ЗаголовокДекорации.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не заполнены: %1'"),
@@ -1554,7 +1566,7 @@
Функция ЗаголовокДекорацииДляТаблицы(Назначение, Реквизиты, ИмяЭлементаОрганизация, ТолькоОсновные, ТолькоОбязательные = Ложь, ПоказыватьПерсональныеДанные = Истина) Экспорт
Результат = СтруктураЗаголовкаДекорации(Назначение, Реквизиты, ТолькоОсновные, ПоказыватьПерсональныеДанные, ИмяЭлементаОрганизация, ТолькоОбязательные, ПоказыватьПерсональныеДанные);
Результат = СтруктураЗаголовкаДекорации(Назначение, Реквизиты, ТолькоОсновные, ПоказыватьПерсональныеДанные, ИмяЭлементаОрганизация, ТолькоОбязательные, Истина);
ЗаголовокДекорацииСтрока = СтрСоединить(Результат.ЗаголовокДекорации, Символы.ПС);
@@ -1678,7 +1690,7 @@
КонецЕсли;
КонецЦикла;
Если Не ТолькоОсновные И ЗаголовокДекорацииНаименование.Количество() > 0 Тогда
Если (Не ТолькоОсновные Или ДляТаблицы) И ЗаголовокДекорацииНаименование.Количество() > 0 Тогда
ЗаголовокДекорации.Добавить(СтрСоединить(ЗаголовокДекорацииНаименование, " "));
КонецЕсли;
Если ЗаголовокДекорацииОсновныеРеквизиты.Количество() > 0 Тогда
@@ -1871,6 +1883,12 @@
ТекстСообщения = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
КонецПопытки;
ИначеЕсли ИмяРеквизита = "НомерЗаписиОбАккредитации" И ЗначениеЗаполнено(ЗначениеРеквизита) Тогда
Если СтрДлина(СокрЛП(ЗначениеРеквизита)) <> 11 Тогда
ТекстСообщения = НСтр("ru = 'Длина номера записи об аккредитации должна быть 11 символов'");
КонецЕсли;
КонецЕсли;
Если Не ЗначениеЗаполнено(ТекстСообщения) Тогда
@@ -2110,6 +2128,13 @@
КонецФункции
Процедура ОбновитьКлассификаторыМЧД() Экспорт
ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.ОбновлениеКлассификаторовМЧД);
РегистрыСведений.КлассификаторыМЧД.ОбновитьКлассификаторы();
КонецПроцедуры
#Область ДанныеДляМоихДел
Функция КоличествоДоверенностейСИстекающимСрокомДействия()
@@ -45,7 +45,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.10.123";
Описание.Версия = "3.1.10.141";
Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -416,4 +416,88 @@
ОткрытьФорму("Обработка.РезультатыОбновленияПрограммы.Форма.СообщениеДляНеполноправногоПользователя");
КонецПроцедуры
Процедура ОбработатьРезультатРучнойПроверкиДоступныхПатчей(Результат, ОписаниеОповещения) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат.Ошибка Тогда
ПоказатьПредупреждение(, Результат.КраткоеОписаниеОшибки);
Возврат;
КонецЕсли;
ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю();
ПараметрыВопроса.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь;
ПараметрыВопроса.Заголовок = НСтр("ru = 'Проверка наличия исправлений'");
ПараметрыВопроса.Картинка = БиблиотекаКартинок.Информация;
Если Результат.КоличествоИсправлений = 0 Тогда
Сообщение = НСтр("ru = 'Доступных исправлений (патчей) не найдено.'");
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Неопределено, Сообщение, РежимДиалогаВопрос.ОК, ПараметрыВопроса);
Возврат;
КонецЕсли;
Сообщение = НСтр("ru = 'Найдено исправлений: %1. Выполнить установку?'");
Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Сообщение, Результат.КоличествоИсправлений);
ПараметрыВопроса.Картинка = БиблиотекаКартинок.ДиалогВопрос;
ПараметрыВопроса.КнопкаПоУмолчанию = КодВозвратаДиалога.Да;
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(ОписаниеОповещения, Сообщение, РежимДиалогаВопрос.ДаНет, ПараметрыВопроса);
КонецПроцедуры
// Параметры:
// Результат - см. ДлительныеОперацииКлиент.НовыйРезультатДлительнойОперации
// ДополнительныеПараметры - Неопределено
//
Процедура ОбработатьРезультатРучнойУстановкиПатчей(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю();
ПараметрыВопроса.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь;
ПараметрыВопроса.Заголовок = НСтр("ru = 'Установка исправлений'");
Если Результат.Статус = "Ошибка" Тогда
СтандартныеПодсистемыКлиент.ВывестиИнформациюОбОшибке(
Результат.ИнформацияОбОшибке);
Возврат;
КонецЕсли;
РезультатУстановки = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
Если РезультатУстановки.Ошибка Тогда
ТекстОшибки = РезультатУстановки.КраткоеОписаниеОшибки
+ Символы.ПС + Символы.ПС + НСтр("ru = 'Технические подробности о проблеме см. в журнале регистрации.'");
Кнопки = Новый СписокЗначений;
Кнопки.Добавить("ЖурналРегистрации", НСтр("ru = 'Журнал регистрации'"));
Кнопки.Добавить("Закрыть", НСтр("ru = 'Закрыть'"));
ПараметрыВопроса.Картинка = БиблиотекаКартинок.ДиалогВосклицание;
ПараметрыВопроса.КнопкаПоУмолчанию = "Закрыть";
ОписаниеОповещения = Новый ОписаниеОповещения("ОбработатьОшибкуУстановкиПатчей", ЭтотОбъект);
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(ОписаниеОповещения, ТекстОшибки, Кнопки, ПараметрыВопроса);
Возврат;
КонецЕсли;
ПараметрыОткрытия = Новый Структура;
ПараметрыОткрытия.Вставить("Исправления", ДополнительныеПараметры.Исправления);
ПараметрыОткрытия.Вставить("ПриОбновлении", Истина);
МодульОбновлениеКонфигурацииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбновлениеКонфигурацииКлиент");
МодульОбновлениеКонфигурацииКлиент.ПоказатьУстановленныеИсправления(ПараметрыОткрытия, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
Процедура ОбработатьОшибкуУстановкиПатчей(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат.Значение = "ЖурналРегистрации" Тогда
ЖурналРегистрацииКлиент.ОткрытьЖурналРегистрации();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -2224,7 +2224,11 @@
ПоляИсключенияОбъекта.Вставить(ОтредактированныйРеквизит, Истина);
КонецЦикла;
ДанныеЗаполнения = ОпределитьДанныеЗаполнения(ПредопределенныеДанные, СтрокаТаблицы, ПоляИсключенияОбъекта, ЗаполняемыеРеквизиты);
Если СсылкаНаОбъект <> Неопределено Тогда
ДанныеЗаполнения = ОпределитьДанныеЗаполнения(ПредопределенныеДанные, СтрокаТаблицы, ПоляИсключенияОбъекта, ЗаполняемыеРеквизиты);
Иначе
ДанныеЗаполнения = ОпределитьДанныеЗаполнения(ПредопределенныеДанные, СтрокаТаблицы, ПоляИсключенияОбъекта);
КонецЕсли;
ЗаполнитьЗначенияСвойств(ЗаполняемыйЭлемент, ДанныеЗаполнения);
@@ -2501,9 +2505,50 @@
#Область СлужебныеПроцедурыИФункции
Функция ОпределитьДанныеЗаполнения(Знач ПредопределенныеДанные, Знач СтрокаТаблицы, Знач ПоляИсключения, Знач ЗаполняемыеРеквизиты)
Функция ДоступнаРучнаяПроверкаНаличияИсправления() Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей")
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации")
И Не ОбщегоНазначения.РазделениеВключено()
И Не ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() Тогда
МодульИнтернетПоддержкаПользователей = ОбщегоНазначения.ОбщийМодуль("ИнтернетПоддержкаПользователей");
МодульИнтернетПоддержкаПользователейКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ИнтернетПоддержкаПользователейКлиентСервер");
ВерсияБИП = МодульИнтернетПоддержкаПользователейКлиентСервер.ВерсияБиблиотеки();
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияБИП, "2.6.3.0") < 0
Или Не Пользователи.ЭтоПолноправныйПользователь() Тогда
Возврат Ложь;
Иначе
ДанныеАутентификации = МодульИнтернетПоддержкаПользователей.ДанныеАутентификацииПользователяИнтернетПоддержки();
Если ДанныеАутентификации = Неопределено Тогда
Возврат Ложь;
Иначе
Возврат Истина;
КонецЕсли;
КонецЕсли;
Иначе
Возврат Ложь
КонецЕсли;
КонецФункции
ТолькоЗаполняемыеРеквизиты = ЗаполняемыеРеквизиты.Количество() > 0;
Функция ДоступныеДляУстановкиИсправления() Экспорт
Результат = Неопределено;
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПолучениеОбновленийПрограммы") Тогда
МодульПолучениеОбновленийПрограммы = ОбщегоНазначения.ОбщийМодуль("ПолучениеОбновленийПрограммы");
Результат = МодульПолучениеОбновленийПрограммы.ИнформацияОДоступныхИсправлениях();
Если Результат <> Неопределено Тогда
Исправления = Результат.Исправления.ВыгрузитьКолонку("Наименование");
Результат.Вставить("КоличествоИсправлений", Результат.Исправления.Количество());
Результат.Вставить("Исправления", Исправления);
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
Функция ОпределитьДанныеЗаполнения(Знач ПредопределенныеДанные, Знач СтрокаТаблицы, Знач ПоляИсключения, Знач ЗаполняемыеРеквизиты = Неопределено)
ТолькоЗаполняемыеРеквизиты = ?(ТипЗнч(ЗаполняемыеРеквизиты) = Тип("Соответствие"), ЗаполняемыеРеквизиты.Количество() > 0, Ложь);
ДанныеЗаполнения = Новый Структура;
Для Каждого Колонка Из ПредопределенныеДанные.Колонки Цикл
@@ -1713,7 +1713,8 @@
// Процедуры и функции для вызова необязательных подсистем.
// Возвращает Истина, если функциональная подсистема существует в конфигурации.
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
// Предназначена для вызова необязательной подсистемы (условного вызова) совместно с ОбщегоНазначения.ОбщийМодуль.
//
// У функциональной подсистемы снят флажок "Включать в командный интерфейс".
// См. также ОбщегоНазначенияПереопределяемый.ПриОпределенииОтключенныхПодсистем
// и ОбщегоНазначенияКлиент.ПодсистемаСуществует для вызова из клиентского кода.
@@ -1726,11 +1727,11 @@
// Пример:
// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Тогда
// МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов");
// МодульВариантыОтчетов.<Имя метода>();
// МодульВариантыОтчетов.<Имя процедуры>();
// КонецЕсли;
//
// Возвращаемое значение:
// Булево - Истина, если подсистема существует.
// Булево
//
Функция ПодсистемаСуществует(ПолноеИмяПодсистемы) Экспорт
@@ -1740,9 +1741,12 @@
КонецФункции
// Возвращает ссылку на общий модуль или модуль менеджера по имени.
// Применяется для условного вызова процедуры или функции совместно с ОбщегоНазначения.ПодсистемаСуществует.
// См. также ОбщегоНазначенияКлиент.ОбщийМодуль для вызова клиентского кода.
//
// Параметры:
// Имя - Строка - имя общего модуля.
// Имя - Строка - имя общего модуля или модуля менеджера, например "ОбновлениеКонфигурации",
// "Обработка.ПолнотекстовыйПоиск".
//
// Возвращаемое значение:
// ОбщийМодуль
@@ -1751,12 +1755,12 @@
// Пример:
// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда
// МодульОбновлениеКонфигурации = ОбщегоНазначения.ОбщийМодуль("ОбновлениеКонфигурации");
// МодульОбновлениеКонфигурации.<Имя метода>();
// МодульОбновлениеКонфигурации.<Имя процедуры>();
// КонецЕсли;
//
// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолнотекстовыйПоиск") Тогда
// МодульПолнотекстовыйПоискСервер = ОбщегоНазначения.ОбщийМодуль("ПолнотекстовыйПоискСервер");
// МодульПолнотекстовыйПоискСервер.<Имя метода>();
// МодульОбработкаПолнотекстовыйПоиск = ОбщегоНазначения.ОбщийМодуль("Обработка.ПолнотекстовыйПоиск");
// МодульОбработкаПолнотекстовыйПоиск.<Имя процедуры>();
// КонецЕсли;
//
Функция ОбщийМодуль(Имя) Экспорт
@@ -6874,10 +6878,9 @@
КонецФункции
// Сокращает имя файла с расширением.
// Сокращение имени, производится, когда имя файла с расширением превышает размер 255 байт.
// Сокращение ими файла достигая за счет сокращения имени файла без расширения и
// добавления значения хеш функции сокращенной строки.
// Сокращает имя файла с расширением, если оно превышает размер в 255 байт.
// При этом сокращается часть имени файла без расширения, в конец которой добавляется уникальное значение,
// вычисленное по алгоритму MD5.
//
// Параметры:
// ИмяФайла - Строка - имя файла с расширением
@@ -6900,30 +6903,28 @@
Уменьшить = Истина;
Пока Истина Цикл
Если Уменьшить Тогда
ИспользуемоеКоличествоСимволов = МеньшееКоличествоСимволов + Цел((ИспользуемоеКоличествоСимволов-МеньшееКоличествоСимволов)/2);
ИспользуемоеКоличествоСимволов = МеньшееКоличествоСимволов + Цел((ИспользуемоеКоличествоСимволов - МеньшееКоличествоСимволов)/2);
Иначе
ИспользуемоеКоличествоСимволов = ИспользуемоеКоличествоСимволов + Цел((БольшееКоличествоСимволов - ИспользуемоеКоличествоСимволов)/2);
КонецЕсли;
РазмерСтрокиВБайтах = РазмерСтрокиВБайтах(ИмяБезРасширения)+32;
РазмерСтрокиВБайтах = РазмерСтрокиВБайтах(ИмяБезРасширения) + 32;
Если РазмерСтрокиВБайтах = ОграничениеВБайтах Или БольшееКоличествоСимволов - МеньшееКоличествоСимволов = 1 Тогда
Прервать;
КонецЕсли;
Если РазмерСтрокиВБайтах > ОграничениеВБайтах Тогда
Уменьшить = Истина;
БольшееКоличествоСимволов = ИспользуемоеКоличествоСимволов;
Уменьшить = (РазмерСтрокиВБайтах > ОграничениеВБайтах);
Если Уменьшить Тогда
БольшееКоличествоСимволов = ИспользуемоеКоличествоСимволов;
Иначе
Уменьшить = Ложь;
МеньшееКоличествоСимволов = ИспользуемоеКоличествоСимволов;
КонецЕсли;
КонецЦикла;
СокращеннаяСтрока = СократитьСтрокуКонтрольнойСуммой(ИмяБезРасширения, ИспользуемоеКоличествоСимволов+32);
ИмяФайла = СокращеннаяСтрока+Файл.Расширение;
СокращеннаяСтрока = СократитьСтрокуКонтрольнойСуммой(ИмяБезРасширения, ИспользуемоеКоличествоСимволов + 32);
ИмяФайла = СокращеннаяСтрока + Файл.Расширение;
КонецПроцедуры
@@ -137,7 +137,9 @@
// Процедуры и функции для вызова необязательных подсистем.
// Возвращает Истина, если функциональная подсистема существует в конфигурации.
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
// Предназначена для вызова необязательной подсистемы (условного вызова) совместно
// с функцией ОбщегоНазначенияКлиент.ПодсистемаСуществует.
//
// У функциональной подсистемы снят флажок "Включать в командный интерфейс".
// См. также ОбщегоНазначенияПереопределяемый.ПриОпределенииОтключенныхПодсистем,
// и ОбщегоНазначения.ПодсистемаСуществует для вызова из серверного кода.
@@ -150,7 +152,7 @@
// Пример:
// Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Тогда
// МодульВариантыОтчетовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ВариантыОтчетовКлиент");
// МодульВариантыОтчетовКлиент.<Имя метода>();
// МодульВариантыОтчетовКлиент.<Имя процедуры>();
// КонецЕсли;
//
// Возвращаемое значение:
@@ -168,24 +170,20 @@
КонецФункции
// Возвращает ссылку на общий модуль или модуль менеджера по имени.
//
// См. ОбщегоНазначения.ОбщийМодуль
// Возвращает ссылку на общий модуль по имени.
// Применяется для условного вызова процедуры или функции совместно с ОбщегоНазначенияКлиент.ПодсистемаСуществует.
// См. также ОбщегоНазначения.ОбщийМодуль для вызова серверного кода.
//
// Параметры:
// Имя - Строка - имя общего модуля.
// Имя - Строка - имя общего модуля, например "ОбновлениеКонфигурацииКлиент", "ОтчетыВызовСервера".
//
// Возвращаемое значение:
// ОбщийМодуль
// СправочникМенеджер,
// ДокументМенеджер,
// ОбработкаМенеджер,
// РегистрСведенийМенеджер.
//
// Пример:
// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда
// МодульОбновлениеКонфигурацииКлиент = ОбщегоНазначения.ОбщийМодуль("ОбновлениеКонфигурацииКлиент");
// МодульОбновлениеКонфигурацииКлиент.<Имя метода>();
// Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда
// МодульОбновлениеКонфигурацииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбновлениеКонфигурацииКлиент");
// МодульОбновлениеКонфигурацииКлиент.<Имя процедуры>();
// КонецЕсли;
//
Функция ОбщийМодуль(Имя) Экспорт
@@ -194,9 +192,8 @@
#Если Не ВебКлиент Тогда
// В веб-клиенте не проверяется
// В веб-клиенте не проверяется,
// т.к. при обращении к модулям с вызовом сервера типа такого модуля в веб-клиенте не существует.
Если ТипЗнч(Модуль) <> Тип("ОбщийМодуль") Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Общий модуль ""%1"" не существует.'"),
@@ -1232,8 +1232,7 @@
#Если ВебКлиент Тогда
СистемнаяИнформация = Новый СистемнаяИнформация;
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.24.0") >= 0
И Не ОбщегоНазначенияКлиент.РазделениеВключено() Тогда
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.24.0") >= 0 Тогда
Ждать ПаузаАсинх(2);
КонецЕсли;
#КонецЕсли
@@ -1704,14 +1703,6 @@
//
// Возвращаемое значение:
// Строка - хеш, вычисленный из строки
////
// Возвращает хеш по алгоритму MD5 для произвольной строки.
//
// Параметры:
// Строка - строка - произвольная строка любой длины
//
// Возвращаемое значение:
// Строка - хеш, вычисленный из строки
//
Функция ВычислитьХешСтрокиПоАлгоритмуMD5(Знач Строка)
@@ -180,9 +180,8 @@
HTTPОтвет = Неопределено;
Попытка
Соединение = Новый HTTPСоединение("lcab.sms-uslugi.ru",,,,
ПолучениеФайловИзИнтернета.ПолучитьПрокси("http"),
60);
Соединение = Новый HTTPСоединение("lcab.sms-uslugi.ru", , , , ПолучениеФайловИзИнтернета.ПолучитьПрокси("http"),
60, ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение());
HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
Исключение
ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
@@ -40,7 +40,8 @@
ТипЗначения = ОписаниеЭлементаНастройки.ТипЗначения;
КонецЕсли;
Если ТипЗначения = Новый ОписаниеТипов("Дата") И Не ОтчетыКлиентСервер.ЭтоВидСравненияСписка(ЭлементНастройки.ВидСравнения) Тогда
Если ТипЗнч(ЭлементНастройки) = Тип("ЭлементОтбораКомпоновкиДанных") И ТипЗначения = Новый ОписаниеТипов("Дата")
И Не ОтчетыКлиентСервер.ЭтоВидСравненияСписка(ЭлементНастройки.ВидСравнения) Тогда
ТипЗначения = Новый ОписаниеТипов("СтандартнаяДатаНачала");
КонецЕсли;
@@ -355,23 +355,30 @@
РезультатДиагностики = ПолучениеФайловИзИнтернета.ДиагностикаСоединения(URL, ЗаписыватьОшибку,
ПроверятьДоставкуПакетовПриОшибке);
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось установить HTTP-соединение с сервером %1:%2
|по причине:
|%3
|
|Результат диагностики:
|%4'"),
Сервер, Формат(Порт, "ЧГ="),
ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()),
РезультатДиагностики.ОписаниеОшибки);
ШаблонОшибки = НСтр("ru = 'Не удалось установить HTTP-соединение с сервером %1:%2
|по причине:
|%3
|
|Результат диагностики:
|%4'");
ДописатьПредставлениеПеренаправлений(Перенаправления, ТекстОшибки);
ПредставленияПеренаправлений = ПредставленияПеренаправлений(Перенаправления);
Если Не ПустаяСтрока(ПредставленияПеренаправлений) Тогда
ШаблонОшибки = ШаблонОшибки + Символы.ПС + Символы.ПС + ПредставленияПеренаправлений;
КонецЕсли;
Если ЗаписыватьОшибку Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки,
Сервер, Формат(Порт, "ЧГ="),
ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()),
РезультатДиагностики.ОписаниеОшибки);
ЗаписатьОшибкуВЖурналРегистрации(ТекстОшибки);
КонецЕсли;
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки,
Сервер, Формат(Порт, "ЧГ="),
ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()),
РезультатДиагностики.ОписаниеОшибки);
Возврат РезультатПолученияФайла(Ложь, ТекстОшибки);
КонецПопытки;
@@ -385,40 +392,38 @@
Или ОтветHTTP.КодСостояния = 308 Тогда // 308 Permanent Redirect
Если Перенаправления.Количество() > 7 Тогда
ВызватьИсключение
НСтр("ru = 'Превышено количество перенаправлений.'");
Иначе
НовыйURL = СтандартныеПодсистемыСервер.HTTPЗаголовкиВНижнийРегистр(ОтветHTTP.Заголовки)["location"];
Если НовыйURL = Неопределено Тогда
ВызватьИсключение
НСтр("ru = 'Некорректное перенаправление, отсутствует HTTP-заголовок ответа ""Location"".'");
КонецЕсли;
НовыйURL = СокрЛП(НовыйURL);
Если ПустаяСтрока(НовыйURL) Тогда
ВызватьИсключение
НСтр("ru = 'Некорректное перенаправление, пустой HTTP-заголовок ответа ""Location"".'");
КонецЕсли;
Если Перенаправления.Найти(НовыйURL) <> Неопределено Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Циклическое перенаправление.
|Попытка перейти на %1 уже выполнялась ранее.'"),
НовыйURL);
КонецЕсли;
Перенаправления.Добавить(URL);
Если Не СтрНачинаетсяС(НовыйURL, "http") Тогда
// <схема>://<хост>:<порт>/<путь>
НовыйURL = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
"%1://%2:%3/%4", Протокол, Сервер, Формат(Порт, "ЧГ="), НовыйURL);
КонецЕсли;
Возврат ПолучитьФайлИзИнтернет(НовыйURL, НастройкаСохранения, НастройкаСоединения,
НастройкиПрокси, ЗаписыватьОшибку, Перенаправления);
ВызватьИсключение(НСтр("ru = 'Превышено количество перенаправлений.'"), КатегорияОшибки.ОшибкаСети);
КонецЕсли;
НовыйURL = СтандартныеПодсистемыСервер.HTTPЗаголовкиВНижнийРегистр(ОтветHTTP.Заголовки)["location"];
Если НовыйURL = Неопределено Тогда
ВызватьИсключение(НСтр("ru = 'Некорректное перенаправление, отсутствует HTTP-заголовок ответа ""Location"".'"),
КатегорияОшибки.ОшибкаСети);
КонецЕсли;
НовыйURL = СокрЛП(НовыйURL);
Если ПустаяСтрока(НовыйURL) Тогда
ВызватьИсключение(НСтр("ru = 'Некорректное перенаправление, пустой HTTP-заголовок ответа ""Location"".'"),
КатегорияОшибки.ОшибкаСети);
КонецЕсли;
Если Перенаправления.Найти(НовыйURL) <> Неопределено Тогда
ВызватьИсключение(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Циклическое перенаправление.
|Попытка перейти на %1 уже выполнялась ранее.'"),
НовыйURL),
КатегорияОшибки.ОшибкаСети);
КонецЕсли;
Перенаправления.Добавить(URL);
Если Не СтрНачинаетсяС(НовыйURL, "http") Тогда
// <схема>://<хост>:<порт>/<путь>
НовыйURL = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
"%1://%2:%3/%4", Протокол, Сервер, Формат(Порт, "ЧГ="), НовыйURL);
КонецЕсли;
Возврат ПолучитьФайлИзИнтернет(НовыйURL, НастройкаСохранения, НастройкаСоединения,
НастройкиПрокси, ЗаписыватьОшибку, Перенаправления);
КонецЕсли;
@@ -432,47 +437,43 @@
КонецЕсли;
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Сервер убежден, что с вашего последнего запроса его ответ не изменился:
НСтр("ru = 'Интернет-сервер убежден, что с вашего последнего запроса его ответ не изменился:
|%1'"),
РасшифровкаКодаСостоянияHTTP(ОтветHTTP.КодСостояния));
ДописатьТелоОтветаСервера(ПутьДляСохранения, ТекстОшибки);
ВызватьИсключение ТекстОшибки;
ВызватьИсключение(ТекстОшибки, КатегорияОшибки.ОшибкаСети);
ИначеЕсли ОтветHTTP.КодСостояния < 200
Или ОтветHTTP.КодСостояния >= 300 И ОтветHTTP.КодСостояния < 400 Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Неподдерживаемый ответ сервера:
НСтр("ru = 'Неподдерживаемый ответ интернет-сервера:
|%1'"),
РасшифровкаКодаСостоянияHTTP(ОтветHTTP.КодСостояния));
ДописатьТелоОтветаСервера(ПутьДляСохранения, ТекстОшибки);
ВызватьИсключение ТекстОшибки;
ВызватьИсключение(ТекстОшибки, КатегорияОшибки.ОшибкаСети);
ИначеЕсли ОтветHTTP.КодСостояния >= 400 И ОтветHTTP.КодСостояния < 500 Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Ошибка при выполнении запроса:
НСтр("ru = 'Интернет-сервер не смог выполнить запрос:
|%1'"),
РасшифровкаКодаСостоянияHTTP(ОтветHTTP.КодСостояния));
ДописатьТелоОтветаСервера(ПутьДляСохранения, ТекстОшибки);
ВызватьИсключение ТекстОшибки;
ВызватьИсключение(ТекстОшибки, КатегорияОшибки.ОшибкаСети);
Иначе
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Ошибка сервера при обработке запроса к ресурсу:
НСтр("ru = 'Интернет-сервер перегружен, временно отключен или находится на техобслуживании:
|%1'"),
РасшифровкаКодаСостоянияHTTP(ОтветHTTP.КодСостояния));
ДописатьТелоОтветаСервера(ПутьДляСохранения, ТекстОшибки);
ВызватьИсключение ТекстОшибки;
ВызватьИсключение(ТекстОшибки, КатегорияОшибки.ОшибкаСети);
КонецЕсли;
@@ -480,16 +481,19 @@
Исключение
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось получить файл %1 с сервера %2:%3
|по причине:
|%4'"),
URL, Сервер, Формат(Порт, "ЧГ="),
ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
ДописатьПредставлениеПеренаправлений(Перенаправления, ТекстОшибки);
ШаблонОшибки = НСтр("ru = 'Не удалось получить файл %1 с сервера %2:%3
|по причине:
|%4'");
ПредставленияПеренаправлений = ПредставленияПеренаправлений(Перенаправления);
Если Не ПустаяСтрока(ПредставленияПеренаправлений) Тогда
ШаблонОшибки = ШаблонОшибки + Символы.ПС + Символы.ПС + ПредставленияПеренаправлений;
КонецЕсли;
Если ЗаписыватьОшибку Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки,
URL, Сервер, Формат(Порт, "ЧГ="),
ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1
|
@@ -508,6 +512,10 @@
ЗаписатьОшибкуВЖурналРегистрации(СообщениеОбОшибке);
КонецЕсли;
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки,
URL, Сервер, Формат(Порт, "ЧГ="),
ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат РезультатПолученияФайла(Ложь, ТекстОшибки, ОтветHTTP);
КонецПопытки;
@@ -522,7 +530,9 @@
ИначеЕсли НастройкаСохранения["МестоХранения"] = "Сервер" Тогда
Возврат РезультатПолученияФайла(Истина, ПутьДляСохранения, ОтветHTTP);
Иначе
ВызватьИсключение НСтр("ru = 'Не указано место для сохранения файла.'");
ВызватьИсключение(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не указано место для сохранения файла при вызове %1.'"), "ПолучитьФайлИзИнтернет"),
КатегорияОшибки.ОшибкаКонфигурации);
КонецЕсли;
КонецФункции
@@ -676,20 +686,19 @@
КонецФункции
Процедура ДописатьПредставлениеПеренаправлений(Перенаправления, ТекстОшибки)
Функция ПредставленияПеренаправлений(Перенаправления)
Если Перенаправления.Количество() > 0 Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1
|
|Выполненные перенаправления (%2):
|%3'"),
ТекстОшибки,
Перенаправления.Количество(),
СтрСоединить(Перенаправления, Символы.ПС));
Если Перенаправления.Количество() = 0 Тогда
Возврат "";
КонецЕсли;
КонецПроцедуры
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Выполненные перенаправления (%1):
|%2'"),
Перенаправления.Количество(),
СтрСоединить(Перенаправления, Символы.ПС));
КонецФункции
Процедура ДописатьТелоОтветаСервера(ПутьКФайлу, ТекстОшибки)
@@ -699,7 +708,7 @@
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1
|
|Сообщение, полученное от сервера:
|Сообщение от интернет-сервера:
|%2'"),
ТекстОшибки,
ТелоОтветаСервера);
@@ -910,9 +919,7 @@
//
Процедура ЗаписатьОшибкуВЖурналРегистрации(Знач СообщениеОбОшибке)
ЗаписьЖурналаРегистрации(
СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Ошибка, , ,
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка,,,
СообщениеОбОшибке);
КонецПроцедуры
@@ -4131,11 +4131,17 @@
//
Процедура ПользовательОбъектПередЗаписью(Объект, ПараметрыОбработки) Экспорт
ЭтоВнешнийПользователь = ТипЗнч(Объект.Ссылка) = Тип("СправочникСсылка.ВнешниеПользователи");
Свойства = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.Ссылка,
"ПометкаУдаления, Недействителен, ИдентификаторПользователяИБ");
"ПометкаУдаления, Недействителен, ИдентификаторПользователяИБ"
+ ?(ЭтоВнешнийПользователь, "", ", Подразделение, ФизическоеЛицо"));
ЗаписатьИзмененияВЖурнал = Свойства.ПометкаУдаления <> Объект.ПометкаУдаления
Или Свойства.Недействителен <> Объект.Недействителен
Или Свойства.ИдентификаторПользователяИБ <> Объект.ИдентификаторПользователяИБ;
Или Свойства.ИдентификаторПользователяИБ <> Объект.ИдентификаторПользователяИБ
Или Не ЭтоВнешнийПользователь
И ( Свойства.Подразделение <> Объект.Подразделение
Или Свойства.ФизическоеЛицо <> Объект.ФизическоеЛицо);
Если Не Объект.ОбменДанными.Загрузка
Или Объект.ДополнительныеСвойства.Свойство("ЗаписьПриОбменеДанными")
@@ -218,10 +218,10 @@
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Получатели", ПараметрыОтправки.Получатель);
Если ПараметрыОтправки.Получатель = Неопределено Или (ПараметрыОтправки.Получатель <> Неопределено
И (ПараметрыОтправки.Получатель.Количество() <= 1 Или Не ПараметрыОтправки.ИнтерактивныйВыборПолучателей)) Тогда
ПослеВыбораПолучателей(ПараметрыФормы, ПараметрыОтправки);
ИначеЕсли ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Печать")
И ПараметрыОтправки.ИнтерактивныйВыборПолучателей И ЗначениеЗаполнено(ПараметрыОтправки.Получатель)
И ПараметрыОтправки.Получатель.Количество() > 1 Тогда
ПараметрыФормы.Вставить("ПропуститьВыборФорматаВложений", Истина);
ОписаниеОповещения = Новый ОписаниеОповещения("ПослеВыбораПолучателей", ЭтотОбъект, ПараметрыОтправки);
@@ -229,10 +229,11 @@
МодульУправлениеПечатьюСлужебныйКлиент.ОткрытьФормуПодготовкиНовогоПисьма(ЭтотОбъект,
ПараметрыФормы, ОписаниеОповещения);
Иначе
ПослеВыбораПолучателей(ПараметрыФормы, ПараметрыОтправки);
Возврат;
КонецЕсли;
ПослеВыбораПолучателей(ПараметрыФормы, ПараметрыОтправки);
КонецПроцедуры
@@ -1640,11 +1640,11 @@
ПрисоединенныйФайлСсылка, Метаданные.ОпределяемыеТипы.ПрисоединенныйФайл.Тип);
Если ЗначениеЗаполнено(СтруктураРеквизитов.Редактирует) Тогда
ВызватьИсключение РаботаСФайламиСлужебныйКлиентСервер.СтрокаСообщенияОНедопустимостиПодписанияЗанятогоФайла(ПрисоединенныйФайлСсылка);
ВызватьИсключение РаботаСФайламиСлужебныйКлиентСервер.СообщениеОНедопустимостиПодписанияЗанятогоФайла(ПрисоединенныйФайлСсылка);
КонецЕсли;
Если СтруктураРеквизитов.Зашифрован Тогда
ВызватьИсключение РаботаСФайламиСлужебныйКлиентСервер.СтрокаСообщенияОНедопустимостиПодписанияЗашифрованногоФайла(ПрисоединенныйФайлСсылка);
ВызватьИсключение РаботаСФайламиСлужебныйКлиентСервер.СообщениеОНедопустимостиПодписанияЗашифрованногоФайла(ПрисоединенныйФайлСсылка);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
@@ -2470,7 +2470,7 @@
Если Источник.ЭтоГруппа Тогда
Источник.ИндексКартинки = 2;
Иначе
Источник.ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.ПолучитьИндексПиктограммыФайла(Источник.Расширение);
Источник.ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.ИндексПиктограммыФайла(Источник.Расширение);
КонецЕсли;
Если Источник.ЭтоНовый() И Не ЗначениеЗаполнено(Источник.Автор) Тогда
@@ -130,7 +130,9 @@
// Позволяет изменить стандартную форму списка файлов.
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения - форма списка файлов.
// Форма - ФормаКлиентскогоПриложения - форма списка файлов:
// * ИмяСправочникаХранилищаФайлов - Строка
// * ВладелецФайла - ОпределяемыйТип.ВладелецФайлов
//
Процедура ПриСозданииФормыСпискаФайлов(Форма) Экспорт
@@ -139,7 +141,8 @@
// Позволяет изменить стандартную форму файла.
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения - форма файла.
// Форма - ФормаКлиентскогоПриложения - форма файла:
// * Объект - ОпределяемыйТип.ПрисоединенныйФайл
//
Процедура ПриСозданииФормыЭлементаФайлов(Форма) Экспорт
@@ -695,12 +695,16 @@
КонецПроцедуры
// Возвращает соответствие имен справочников и значения Булево
// для указанного владельца.
// Возвращает соответствие имен справочников и значения Булево для указанного владельца.
//
// Параметры:
// ВладелецФайлов - ЛюбаяСсылка - объект, к которому добавляется файл.
//
// Возвращаемое значение:
// Соответствие из КлючИЗначение:
// * Ключ - Строка
// * Значение - Булево
//
Функция ИменаСправочниковХраненияФайлов(ВладелецФайлов, НеВызыватьИсключение = Ложь) Экспорт
Если ТипЗнч(ВладелецФайлов) = Тип("Тип") Тогда
@@ -2199,7 +2203,6 @@
Функция КонвертироватьНастройкиСканирования(Знач Настройки) Экспорт
Настройки.Разрешение = -1;
Если Настройки.Разрешение = Перечисления.РазрешенияСканированногоИзображения.dpi200 Тогда
Настройки.Разрешение = 200;
ИначеЕсли Настройки.Разрешение = Перечисления.РазрешенияСканированногоИзображения.dpi300 Тогда
@@ -2208,27 +2211,30 @@
Настройки.Разрешение = 600;
ИначеЕсли Настройки.Разрешение = Перечисления.РазрешенияСканированногоИзображения.dpi1200 Тогда
Настройки.Разрешение = 1200;
Иначе
Настройки.Разрешение = -1;
КонецЕсли;
Настройки.Цветность = -1;
Если Настройки.Цветность = Перечисления.ЦветностиИзображения.Монохромное Тогда
Настройки.Цветность = 0;
ИначеЕсли Настройки.Цветность = Перечисления.ЦветностиИзображения.ГрадацииСерого Тогда
Настройки.Цветность = 1;
ИначеЕсли Настройки.Цветность = Перечисления.ЦветностиИзображения.Цветное Тогда
Настройки.Цветность = 2;
Иначе
Настройки.Цветность = -1;
КонецЕсли;
Настройки.Поворот = 0;
Если Настройки.Поворот = Перечисления.СпособыПоворотаИзображения.ВправоНа90 Тогда
Настройки.Поворот = 90;
ИначеЕсли Настройки.Поворот = Перечисления.СпособыПоворотаИзображения.ВправоНа180 Тогда
Настройки.Поворот = 180;
ИначеЕсли Настройки.Поворот = Перечисления.СпособыПоворотаИзображения.ВлевоНа90 Тогда
Настройки.Поворот = 270;
Иначе
Настройки.Поворот = 0;
КонецЕсли;
Настройки.РазмерБумаги = 0;
Если Настройки.РазмерБумаги = Перечисления.РазмерыБумаги.НеЗадано Тогда
Настройки.РазмерБумаги = 0;
ИначеЕсли Настройки.РазмерБумаги = Перечисления.РазмерыБумаги.A3 Тогда
@@ -2255,9 +2261,10 @@
Настройки.РазмерБумаги = 4;
ИначеЕсли Настройки.РазмерБумаги = Перечисления.РазмерыБумаги.USExecutive Тогда
Настройки.РазмерБумаги = 10;
Иначе
Настройки.РазмерБумаги = 0;
КонецЕсли;
Настройки.СжатиеTIFF = 6; // БезСжатия
Если Настройки.СжатиеTIFF = Перечисления.ВариантыСжатияTIFF.LZW Тогда
Настройки.СжатиеTIFF = 2;
ИначеЕсли Настройки.СжатиеTIFF = Перечисления.ВариантыСжатияTIFF.RLE Тогда
@@ -2266,6 +2273,8 @@
Настройки.СжатиеTIFF = 3;
ИначеЕсли Настройки.СжатиеTIFF = Перечисления.ВариантыСжатияTIFF.CCITT4 Тогда
Настройки.СжатиеTIFF = 4;
Иначе
Настройки.СжатиеTIFF = 6; // БезСжатия
КонецЕсли;
Возврат Настройки;
@@ -4931,7 +4940,7 @@
Версия.ДатаМодификацииФайла = СведенияОФайле.ВремяИзменения;
Версия.Комментарий = СведенияОФайле.НоваяВерсияКомментарий;
Версия.ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.ПолучитьИндексПиктограммыФайла(СведенияОФайле.РасширениеБезТочки);
Версия.ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.ИндексПиктограммыФайла(СведенияОФайле.РасширениеБезТочки);
Если СведенияОФайле.НоваяВерсияАвтор = Неопределено Тогда
Версия.Автор = Пользователи.АвторизованныйПользователь();
@@ -5458,8 +5467,8 @@
НСтр("ru = 'Размер файла ""%1"" (%2 Мб)
|превышает максимально допустимый размер файла (%3 Мб).'"),
Имя,
РаботаСФайламиСлужебныйКлиентСервер.ПолучитьСтрокуСРазмеромФайла(РазмерВМб),
РаботаСФайламиСлужебныйКлиентСервер.ПолучитьСтрокуСРазмеромФайла(РазмерВМбМакс));
РаботаСФайламиСлужебныйКлиентСервер.ПредставлениеРазмераФайла(РазмерВМб),
РаботаСФайламиСлужебныйКлиентСервер.ПредставлениеРазмераФайла(РазмерВМбМакс));
КонецЕсли;
КонецПроцедуры
@@ -99,6 +99,7 @@
МодульВыгрузкаЗагрузкаДанных = ОбщегоНазначения.ОбщийМодуль("ВыгрузкаЗагрузкаДанных");
Типы.Добавить(Метаданные.РегистрыСведений.ОчередьИзвлеченияТекста);
Типы.Добавить(Метаданные.РегистрыСведений.УдалитьДвоичныеДанныеФайлов);
Типы.Добавить(Метаданные.Константы.ПутьКТомуБезУчетаРегиональныхНастроек);
ИсключаемыеТипы = СправочникиФайловИОбъектыХранения().ОбъектыХранения;
@@ -799,7 +799,7 @@
Файл.Изменил = Файл.Автор;
Файл.ДатаСоздания = ТекущаяДатаСеанса();
Файл.Описание = СведенияОФайле.Комментарий;
Файл.ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.ПолучитьИндексПиктограммыФайла(Неопределено);
Файл.ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.ИндексПиктограммыФайла(Неопределено);
Файл.ХранитьВерсии = СведенияОФайле.ХранитьВерсии;
Файл.Расширение = СведенияОФайле.РасширениеБезТочки;
Файл.Размер = СведенияОФайле.Размер;
@@ -2267,13 +2267,13 @@
Редактирует = СтруктураРеквизитов.Редактирует;
Если ЗначениеЗаполнено(Редактирует) Тогда
ВызватьИсключение РаботаСФайламиСлужебныйКлиентСервер.СтрокаСообщенияОНедопустимостиПодписанияЗанятогоФайла(
ВызватьИсключение РаботаСФайламиСлужебныйКлиентСервер.СообщениеОНедопустимостиПодписанияЗанятогоФайла(
ФайлСсылка);
КонецЕсли;
Зашифрован = СтруктураРеквизитов.Зашифрован;
Если Зашифрован Тогда
СтрокаИсключения = РаботаСФайламиСлужебныйКлиентСервер.СтрокаСообщенияОНедопустимостиПодписанияЗашифрованногоФайла(
СтрокаИсключения = РаботаСФайламиСлужебныйКлиентСервер.СообщениеОНедопустимостиПодписанияЗашифрованногоФайла(
ФайлСсылка);
ВызватьИсключение СтрокаИсключения;
КонецЕсли;
@@ -1779,7 +1779,7 @@
СохраняемоеИмяФайла = ?(ПустаяСтрока(ИмяСоздаваемогоФайла), Файл.Имя, ИмяСоздаваемогоФайла);
РазмерВМб = РаботаСФайламиСлужебныйКлиентСервер.ПолучитьСтрокуСРазмеромФайла(Файл.Размер() / (1024 * 1024));
РазмерВМб = РаботаСФайламиСлужебныйКлиентСервер.ПредставлениеРазмераФайла(Файл.Размер() / (1024 * 1024));
Если ВыбранныеФайлы.Количество() > 1 Тогда
Если ТекущаяПозиция = Неопределено Тогда
@@ -1857,8 +1857,8 @@
НСтр("ru = 'Размер файла ""%1"" (%2 Мб)
|превышает максимально допустимый размер файла (%3 Мб).'"),
ВыбранноеИмяФайла,
РаботаСФайламиСлужебныйКлиентСервер.ПолучитьСтрокуСРазмеромФайла(РазмерВМб),
РаботаСФайламиСлужебныйКлиентСервер.ПолучитьСтрокуСРазмеромФайла(РазмерВМбМакс));
РаботаСФайламиСлужебныйКлиентСервер.ПредставлениеРазмераФайла(РазмерВМб),
РаботаСФайламиСлужебныйКлиентСервер.ПредставлениеРазмераФайла(РазмерВМбМакс));
ВызватьИсключение ОписаниеОшибки;
@@ -2096,8 +2096,8 @@
НСтр("ru = 'Размер файла ""%1"" (%2 Мб)
|превышает максимально допустимый размер файла (%3 Мб).'"),
Файл.Имя,
РаботаСФайламиСлужебныйКлиентСервер.ПолучитьСтрокуСРазмеромФайла(РазмерВМб),
РаботаСФайламиСлужебныйКлиентСервер.ПолучитьСтрокуСРазмеромФайла(РазмерВМбМакс));
РаботаСФайламиСлужебныйКлиентСервер.ПредставлениеРазмераФайла(РазмерВМб),
РаботаСФайламиСлужебныйКлиентСервер.ПредставлениеРазмераФайла(РазмерВМбМакс));
Если ВызыватьИсключение Тогда
ВызватьИсключение ОписаниеОшибки;
@@ -8832,12 +8832,12 @@
Предупреждения = Новый Массив;
Для Каждого Файл Из ДанныеФайла Цикл
Если ЗначениеЗаполнено(Файл.Редактирует) Тогда
Предупреждения.Добавить(РаботаСФайламиСлужебныйКлиентСервер.СтрокаСообщенияОНедопустимостиПодписанияЗанятогоФайла(Файл.Ссылка));
Предупреждения.Добавить(РаботаСФайламиСлужебныйКлиентСервер.СообщениеОНедопустимостиПодписанияЗанятогоФайла(Файл.Ссылка));
Продолжить;
КонецЕсли;
Если Файл.Зашифрован Тогда
Предупреждения.Добавить(РаботаСФайламиСлужебныйКлиентСервер.СтрокаСообщенияОНедопустимостиПодписанияЗашифрованногоФайла(Файл.Ссылка));
Предупреждения.Добавить(РаботаСФайламиСлужебныйКлиентСервер.СообщениеОНедопустимостиПодписанияЗашифрованногоФайла(Файл.Ссылка));
Продолжить;
КонецЕсли;
КонецЦикла;
@@ -8850,13 +8850,13 @@
Иначе
Если ЗначениеЗаполнено(ДанныеФайла.Редактирует) Тогда
ТекстПредупреждения = РаботаСФайламиСлужебныйКлиентСервер.СтрокаСообщенияОНедопустимостиПодписанияЗанятогоФайла();
ТекстПредупреждения = РаботаСФайламиСлужебныйКлиентСервер.СообщениеОНедопустимостиПодписанияЗанятогоФайла();
ВернутьРезультатПослеПоказаПредупреждения(ОбработчикРезультата, ТекстПредупреждения, ПараметрыВыполнения);
Возврат Ложь;
КонецЕсли;
Если ДанныеФайла.Зашифрован Тогда
ТекстПредупреждения = РаботаСФайламиСлужебныйКлиентСервер.СтрокаСообщенияОНедопустимостиПодписанияЗашифрованногоФайла();
ТекстПредупреждения = РаботаСФайламиСлужебныйКлиентСервер.СообщениеОНедопустимостиПодписанияЗашифрованногоФайла();
ВернутьРезультатПослеПоказаПредупреждения(ОбработчикЗавершения, ТекстПредупреждения, ПараметрыВыполнения);
Возврат Ложь;
КонецЕсли;
@@ -9099,7 +9099,7 @@
НадписьПодробнее = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Обрабатывается файл ""%1"" (%2 Мб)...'"),
ВыбранныйФайл.Имя,
РаботаСФайламиСлужебныйКлиентСервер.ПолучитьСтрокуСРазмеромФайла(РазмерВМб));
РаботаСФайламиСлужебныйКлиентСервер.ПредставлениеРазмераФайла(РазмерВМб));
ТекстСостояния = НСтр("ru = 'Загрузка файлов с компьютера...'");
@@ -131,9 +131,9 @@
////////////////////////////////////////////////////////////////////////////////
// Для пользовательского интерфейса.
// Возвращает Строку сообщения о недопустимости подписания занятого файла.
// Возвращает сообщение о недопустимости подписания занятого файла.
//
Функция СтрокаСообщенияОНедопустимостиПодписанияЗанятогоФайла(ФайлСсылка = Неопределено) Экспорт
Функция СообщениеОНедопустимостиПодписанияЗанятогоФайла(ФайлСсылка = Неопределено) Экспорт
Если ФайлСсылка = Неопределено Тогда
Возврат НСтр("ru = 'Нельзя подписать занятый файл.'");
@@ -145,9 +145,9 @@
КонецФункции
// Возвращает Строку сообщения о недопустимости подписания зашифрованного файла.
// Возвращает сообщение о недопустимости подписания зашифрованного файла.
//
Функция СтрокаСообщенияОНедопустимостиПодписанияЗашифрованногоФайла(ФайлСсылка = Неопределено) Экспорт
Функция СообщениеОНедопустимостиПодписанияЗашифрованногоФайла(ФайлСсылка = Неопределено) Экспорт
Если ФайлСсылка = Неопределено Тогда
Возврат НСтр("ru = 'Нельзя подписать зашифрованный файл.'");
@@ -159,8 +159,8 @@
КонецФункции
// Получить строку с представлением размера файла - например для отображения в Состояние при передаче файла.
Функция ПолучитьСтрокуСРазмеромФайла(Знач РазмерВМб) Экспорт
// Получить строку с представлением размера файла - например для отображения состояния при передаче файла.
Функция ПредставлениеРазмераФайла(Знач РазмерВМб) Экспорт
Если РазмерВМб < 0.1 Тогда
РазмерВМб = 0.1;
@@ -171,8 +171,8 @@
КонецФункции
// Получается индекс пиктограммы файла - индекс в картинке КоллекцияПиктограммФайлов.
Функция ПолучитьИндексПиктограммыФайла(Знач РасширениеФайла) Экспорт
// Получить индекс пиктограммы файла - индекс в картинке КоллекцияПиктограммФайлов.
Функция ИндексПиктограммыФайла(Знач РасширениеФайла) Экспорт
Если ТипЗнч(РасширениеФайла) <> Тип("Строка")
ИЛИ ПустаяСтрока(РасширениеФайла) Тогда
@@ -206,7 +206,7 @@
// получается тип сообщения.
//
// Возвращаемое значение:
// ТипXDTO
// ТипОбъектаXDTO
//
Функция СообщениеОтключитьСинхронизациюЧерезМС(Знач ИспользуемыйПакет = Неопределено) Экспорт
@@ -396,6 +396,14 @@
НовыйФормат.Картинка = БиблиотекаКартинок.ФорматPDF;
НовыйФормат.Представление = ПредставлениеТипаФайлаТабличногоДокументаPDF();
// Документ PDF (.pdf) (устаревший формат для ФНС)
НовыйФормат = ТаблицаФорматов.Добавить();
НовыйФормат.ТипФайлаТабличногоДокумента = ТипФайлаТабличногоДокумента.PDF;
НовыйФормат.Ссылка = Перечисления.ФорматыСохраненияОтчетов.PDF;
НовыйФормат.Расширение = "PDF";
НовыйФормат.Картинка = БиблиотекаКартинок.ФорматPDF;
НовыйФормат.Представление = НСтр("ru = 'Документ PDF (устаревший формат)'");
// Табличный документ (.mxl)
НовыйФормат = ТаблицаФорматов.Добавить();
НовыйФормат.ТипФайлаТабличногоДокумента = ТипФайлаТабличногоДокумента.MXL;
@@ -3750,6 +3758,7 @@
Версии = Новый Массив;
Версии.Добавить("8.3.21.1676");
Версии.Добавить("8.3.21.1901");
Версии.Добавить("8.3.24.1440");
Возврат Версии;
@@ -114,13 +114,11 @@
КонецЕсли;
Диапазоны = Новый Массив;
Диапазоны.Добавить(Новый Структура("Мин,Макс", 48, 57)); // цифры
Диапазоны.Добавить(Новый Структура("Мин,Макс", 65, 90)); // латиница большие
Диапазоны.Добавить(Новый Структура("Мин,Макс", 97, 122)); // латиница маленькие
Диапазоны.Добавить(Новый Структура("Мин,Макс", 1040, 1103)); // кириллица
Диапазоны.Добавить(Новый Структура("Мин,Макс", 1025, 1025)); // символ "Ё"
Диапазоны.Добавить(Новый Структура("Мин,Макс", 1105, 1105)); // символ "ё"
Диапазоны.Добавить(Новый Структура("Мин,Макс", 95, 95)); // символ "_"
СтроковыеФункцииКлиентСерверЛокализация.ПриОпределенииСимволовСлов(Диапазоны);
Диапазоны.Добавить(Новый Структура("Мин,Макс", 48, 57)); // цифры
Диапазоны.Добавить(Новый Структура("Мин,Макс", 65, 90)); // латиница большие
Диапазоны.Добавить(Новый Структура("Мин,Макс", 97, 122)); // латиница маленькие
Диапазоны.Добавить(Новый Структура("Мин,Макс", 95, 95)); // символ "_"
Для Каждого Диапазон Из Диапазоны Цикл
Если КодСимвола >= Диапазон.Мин И КодСимвола <= Диапазон.Макс Тогда
@@ -513,14 +511,17 @@
//
// Параметры:
// Символ - Строка - символ, из которого будет формироваться строка.
// ДлинаСтроки - Число - требуемая длина результирующей строки.
// ДлинаСтроки - Число - требуемая длина результирующей строки.
//
// Возвращаемое значение:
// Строка - строка, состоящая из повторяющихся символов.
// Строка
//
Функция СформироватьСтрокуСимволов(Знач Символ, Знач ДлинаСтроки) Экспорт
Возврат СтрСоединить(Новый Массив(ДлинаСтроки+1), Символ);
Если ДлинаСтроки <= 0 Тогда
Возврат "";
КонецЕсли;
Возврат СтрСоединить(Новый Массив(ДлинаСтроки + 1), Символ);
КонецФункции
@@ -1250,6 +1251,8 @@
Возврат ЧислоЦифрамиПредметИсчисленияПрописью(Значение, ФормаДля1 + "," + ФормаДля2 + "," + ФормаДля5, Ложь);
КонецФункции
// Локализация
// Устарела. Следует использовать см. СтроковыеФункцииКлиентСерверРФ.ТолькоКириллицаВСтроке
// Проверяет, содержит ли строка только символы кириллического алфавита.
//
@@ -1293,6 +1296,8 @@
КонецФункции
// Конец Локализация
// Устарела. Следует использовать см. СтроковыеФункции.СтрокаЛатиницей
// или см. СтроковыеФункцииКлиент.СтрокаЛатиницей.
//
@@ -20,6 +20,25 @@
// Конец Локализация
КонецПроцедуры
// Определяет коды символов, которые не считаются разделителем.
// Если явно не указан разделитель слов.
//
// Параметры:
// Диапазоны - Массив из Структура:
// * Мин - Число - код символа, с которого начинается диапазон.
// * Макс - Число - код символа, на котором заканчивается диапазон.
//
Процедура ПриОпределенииСимволовСлов(Диапазоны) Экспорт
// Локализация
Диапазоны.Добавить(Новый Структура("Мин,Макс", 1040, 1103)); // кириллица
// АПК:163-выкл
Диапазоны.Добавить(Новый Структура("Мин,Макс", 1025, 1025)); // символ "Ё"
Диапазоны.Добавить(Новый Структура("Мин,Макс", 1105, 1105)); // символ "ё"
// АПК:163-вкл
// Конец Локализация
КонецПроцедуры
#КонецОбласти
@@ -1635,6 +1635,8 @@
// ** Представление - Строка - имя предопределенного элемента, например
// "Справочник.ГруппыПользователей.ВсеПользователи".
//
// * ЭтоПапка - Булево - всегда Ложь. Нельзя изменять.
//
// Пример:
//
// // Профиль "Пользователь".
@@ -1693,6 +1695,7 @@
НовоеОписание.Вставить("Назначение", Новый Массив);
НовоеОписание.Вставить("ВидыДоступа", Новый СписокЗначений);
НовоеОписание.Вставить("ЗначенияДоступа", Новый СписокЗначений);
НовоеОписание.Вставить("ЭтоПапка", Ложь);
Возврат НовоеОписание;
@@ -1710,6 +1713,7 @@
// получить уникальный идентификатор ссылки. Не следует указывать идентификаторы,
// полученные произвольным способом, т.к. это может нарушить уникальность ссылок.
// * Наименование - Строка - наименование поставляемой папки профилей.
// * ЭтоПапка - Булево - всегда Истина. Нельзя изменять.
//
// Пример:
// // Папка профилей "Дополнительные профили".
@@ -1727,6 +1731,7 @@
НовоеОписание.Вставить("Родитель", "");
НовоеОписание.Вставить("Идентификатор", "");
НовоеОписание.Вставить("Наименование", "");
НовоеОписание.Вставить("ЭтоПапка", Истина);
Возврат НовоеОписание;
@@ -2611,17 +2611,19 @@
//
Процедура ВыполнитьОтложеннуюИнициализацию(Форма, Объект, ИмяЭлементаДляРазмещения = "ГруппаКонтактнаяИнформация") Экспорт
КонтактнаяИнформацияЗаглушка = Форма.Элементы.Найти("КонтактнаяИнформацияЗаглушка"); // временный элемент
КонтактнаяИнформацияЗаглушка = Форма.Элементы.Найти("КонтактнаяИнформацияЗаглушка"); // временный элемент
Если КонтактнаяИнформацияЗаглушка <> Неопределено Тогда
Форма.Элементы.Удалить(КонтактнаяИнформацияЗаглушка);
КонецЕсли;
ПараметрыКонтактнойИнформации = ПараметрыКонтактнойИнформацииФормы(Форма.ПараметрыКонтактнойИнформации, ИмяЭлементаДляРазмещения);
КонтактнаяИнформацияОписаниеДополнительныхРеквизитов = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма).Выгрузить(, "Вид, Представление, Значение, Комментарий");
КонтактнаяИнформацияОписаниеДополнительныхРеквизитов = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма).Выгрузить(,
"Вид, Представление, Значение, Комментарий, ИмяРеквизита");
УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма).Очистить();
ПоложениеЗаголовкаКИ = ?(ЗначениеЗаполнено(ПараметрыКонтактнойИнформации.ПоложениеЗаголовка), ПредопределенноеЗначение(ПараметрыКонтактнойИнформации.ПоложениеЗаголовка), ПоложениеЗаголовкаЭлементаФормы.Лево);
ПоложениеЗаголовкаКИ = ?(ЗначениеЗаполнено(ПараметрыКонтактнойИнформации.ПоложениеЗаголовка),
ПредопределенноеЗначение(ПараметрыКонтактнойИнформации.ПоложениеЗаголовка), ПоложениеЗаголовкаЭлементаФормы.Лево);
ДополнительныеПараметрыКонтактнойИнформации = ПараметрыКонтактнойИнформации();
ДополнительныеПараметрыКонтактнойИнформации.ИмяЭлементаДляРазмещения = ИмяЭлементаДляРазмещения;
@@ -2636,16 +2638,29 @@
Отбор = Новый Структура("Вид", ВидКонтактнойИнформации.Ключ);
МассивСтрок = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(Форма).НайтиСтроки(Отбор);
Если МассивСтрок.Количество() > 0 Тогда
СохраненноеЗначение = КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.НайтиСтроки(Отбор)[0];
Для Каждого ТекущееЗначение Из МассивСтрок Цикл
Если ПустаяСтрока(ТекущееЗначение.ИмяРеквизита) Тогда
Продолжить;
КонецЕсли;
Отбор = Новый Структура("ИмяРеквизита",ТекущееЗначение.ИмяРеквизита);
СохраненныеЗначения = КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.НайтиСтроки(Отбор);
Если СохраненныеЗначения.Количество() = 0 Тогда
Продолжить;
КонецЕсли;
СохраненноеЗначение = СохраненныеЗначения[0];
Если СохраненноеЗначение <> Неопределено И ПустаяСтрока(СохраненноеЗначение.Значение)
И ПустаяСтрока(СохраненноеЗначение.Комментарий) Тогда
Продолжить;
КонецЕсли;
ТекущееЗначение = МассивСтрок[0];
ЗаполнитьЗначенияСвойств(ТекущееЗначение, СохраненноеЗначение);
Форма[ТекущееЗначение.ИмяРеквизита] = СохраненноеЗначение.Представление;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Если Форма.Элементы.Найти("ПустаяДекорацияКонтактнаяИнформация") <> Неопределено Тогда
@@ -2653,6 +2668,7 @@
КонецЕсли;
ПараметрыКонтактнойИнформации.ВыполненаОтложеннаяИнициализация = Истина;
КонецПроцедуры
@@ -365,7 +365,7 @@
КонецФункции
// Возвращает структуру, содержащую описание команд, которые будут выведены для вида контактной информации
// Возвращает описание команд для указанного вида контактной информации.
//
// Параметры:
// ПараметрыКонтактнойИнформации - Структура:
@@ -55,8 +55,7 @@
// ДополнительныеПараметры - Структура:
// * ВладелецКонтактнойИнформации - ОпределяемыйТип.ВладелецКонтактнойИнформации.
// * Форма - ФормаКлиентскогоПриложения - форма объекта-владельца, предназначенная для вывода контактной информации.
//
// Пример:
//
// Процедура ОткрытьФормуДокументаВстреча(КонтактнаяИнформация, ДополнительныеПараметры) Экспорт
// ЗначенияЗаполнения = Новый Структура;
// ЗначенияЗаполнения.Вставить("МестоПроведенияВстречи", КонтактнаяИнформация.Представление);
@@ -1030,26 +1030,18 @@
НастройкиОбъекта.Вставить("ПриОпределенииПолучателей", Ложь);
НастройкиОбъекта.Вставить("ПриДобавленииКомандПечати", Ложь);
НастройкиПечати = НастройкиПечати();
НастройкиПечати = УправлениеПечатьюПовтИсп.НастройкиПечати();
Если НастройкиПечати.ОбъектыПечати.Найти(МенеджерОбъекта) <> Неопределено Тогда
Если НастройкиПечати.ОбъектыПечати.Получить(МенеджерОбъекта) <> Неопределено Тогда
МенеджерОбъекта.ПриОпределенииНастроекПечати(НастройкиОбъекта);
Возврат НастройкиОбъекта;
КонецЕсли;
// Поддержка обратной совместимости
ОбъектыСКомандамиПечати = Новый Массив;
ОбъектыСКомандамиПечати = УправлениеПечатьюПовтИсп.ОбъектыСКомандамиПечати();
СписокОбъектов = Новый Массив;
ИнтеграцияПодсистемБСП.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов); // АПК:222 Вызов устаревшей процедуры для обратной совместимости.
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ОбъектыСКомандамиПечати, СписокОбъектов, Истина);
СписокОбъектов = Новый Массив;
УправлениеПечатьюПереопределяемый.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов); // АПК:222 Вызов устаревшей процедуры для обратной совместимости.
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ОбъектыСКомандамиПечати, СписокОбъектов, Истина);
Если ОбъектыСКомандамиПечати.Найти(МенеджерОбъекта) <> Неопределено Тогда
Если ОбъектыСКомандамиПечати.Получить(МенеджерОбъекта) <> Неопределено Тогда
НастройкиОбъекта.ПриДобавленииКомандПечати = Истина;
КонецЕсли;
@@ -1057,6 +1049,7 @@
КонецФункции
#Область РаботаСМакетамиОфисныхДокументов
////////////////////////////////////////////////////////////////////////////////
@@ -1802,25 +1795,18 @@
// Массив - список из элементов типа ОбъектМетаданных.
//
Функция ИсточникиКомандПечати() Экспорт
ОбъектыСКомандамиПечати = Новый Массив;
Настройки = НастройкиПечати();
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ОбъектыСКомандамиПечати, Настройки.ОбъектыПечати, Истина);
СписокОбъектов = Новый Массив;
ИнтеграцияПодсистемБСП.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов); // АПК:222 Вызов устаревшей процедуры для обратной совместимости.
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ОбъектыСКомандамиПечати, СписокОбъектов, Истина);
СписокОбъектов = Новый Массив;
УправлениеПечатьюПереопределяемый.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов); // АПК:222 Вызов устаревшей процедуры для обратной совместимости.
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ОбъектыСКомандамиПечати, СписокОбъектов, Истина);
ИнтеграцияПодсистемБСП.ПриОпределенииОбъектовСКомандамиПечати(Настройки.ОбъектыПечати); // АПК:222 Вызов устаревшей процедуры для обратной совместимости.
УправлениеПечатьюПереопределяемый.ПриОпределенииОбъектовСКомандамиПечати(Настройки.ОбъектыПечати); // АПК:222 Вызов устаревшей процедуры для обратной совместимости.
Результат = Новый Массив;
Для Каждого ОбъектМенеджер Из ОбъектыСКомандамиПечати Цикл
Для Каждого ОбъектМенеджер Из Настройки.ОбъектыПечати Цикл
Результат.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(ОбъектМенеджер)));
КонецЦикла;
Возврат Результат;
КонецФункции
@@ -3910,7 +3896,7 @@
КонецФункции
Функция КопируемыеСвойстваТабличногоДокумента() Экспорт
Возврат "АвтоМасштаб,Вывод,ВысотаСтраницы,ДвусторонняяПечать,Защита,ИмяПринтера,КодЯзыка,
Возврат "КлючПараметровПечати,АвтоМасштаб,Вывод,ВысотаСтраницы,ДвусторонняяПечать,Защита,ИмяПринтера,КодЯзыка,
|КоличествоЭкземпляров,МасштабПечати,НомерПервойСтраницы,ОриентацияСтраницы,ПолеСверху,ПолеСлева,
|ПолеСнизу,ПолеСправа,РазборПоКопиям,РазмерКолонтитулаСверху,РазмерКолонтитулаСнизу,РазмерСтраницы,
|ТочностьПечати,ФоноваяКартинка,ЧерноБелаяПечать,ШиринаСтраницы,ЭкземпляровНаСтранице";
@@ -0,0 +1,41 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область СлужебныеПроцедурыИФункции
Функция НастройкиПечати() Экспорт
Настройки = УправлениеПечатью.НастройкиПечати();
ОбъектыПечати = Новый Соответствие;
Для Каждого ОбъектПечати Из Настройки.ОбъектыПечати Цикл
ОбъектыПечати.Вставить(ОбъектПечати, Истина);
КонецЦикла;
Настройки.ОбъектыПечати = Новый ФиксированноеСоответствие(ОбъектыПечати);
Возврат Настройки;
КонецФункции
Функция ОбъектыСКомандамиПечати() Экспорт
ОбъектыСКомандамиПечати = Новый Массив;
ИнтеграцияПодсистемБСП.ПриОпределенииОбъектовСКомандамиПечати(ОбъектыСКомандамиПечати); // АПК:222 Вызов устаревшей процедуры для обратной совместимости.
УправлениеПечатьюПереопределяемый.ПриОпределенииОбъектовСКомандамиПечати(ОбъектыСКомандамиПечати); // АПК:222 Вызов устаревшей процедуры для обратной совместимости.
Результат = Новый Соответствие;
Для Каждого ОбъектПечати Из ОбъектыСКомандамиПечати Цикл
Результат.Вставить(ОбъектПечати, Истина);
КонецЦикла;
Возврат Новый ФиксированноеСоответствие(Результат);
КонецФункции
#КонецОбласти
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="a6a84818-e14c-4554-ac0a-e522a9615997">
<name>УправлениеПечатьюПовтИсп</name>
<synonym>
<key>ru</key>
<value>Управление печатью повт исп</value>
</synonym>
<server>true</server>
<externalConnection>true</externalConnection>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
<returnValuesReuse>DuringSession</returnValuesReuse>
</mdclass:CommonModule>
@@ -537,9 +537,13 @@
ОтсутствующиеПараметры.Добавить("Наименование");
КонецЕсли;
Если Не Параметры.Свойство("Тип")
Или Не ЗначениеЗаполнено(Параметры.Тип) Тогда
ОтсутствующиеПараметры.Добавить("Тип");
Если Не Параметры.Свойство("ТипЗначения")
Или Не ЗначениеЗаполнено(Параметры.ТипЗначения) Тогда
Если Параметры.Свойство("Тип") И ЗначениеЗаполнено(Параметры.Тип) Тогда
Параметры.ТипЗначения = Параметры.Тип;
Иначе
ОтсутствующиеПараметры.Добавить("ТипЗначения");
КонецЕсли;
КонецЕсли;
Если ОтсутствующиеПараметры.Количество() > 0 Тогда
@@ -716,7 +720,7 @@
// Возвращаемое значение:
// Структура:
// * Наименование - Строка - обязательно для заполнения.
// * Тип - ОписаниеТипов - обязательно для заполнения.
// * ТипЗначения - ОписаниеТипов - обязательно для заполнения.
// * Имя - Строка
// * Комментарий - Строка
// * ЗаголовокФормыЗначения - Строка
@@ -729,7 +733,7 @@
Параметры = Новый Структура;
Параметры.Вставить("Наименование", "");
Параметры.Вставить("Тип");
Параметры.Вставить("ТипЗначения");
Параметры.Вставить("Имя", "");
Параметры.Вставить("Комментарий", "");
Параметры.Вставить("ЗаголовокФормыЗначения", "");
@@ -737,6 +741,7 @@
Параметры.Вставить("ИдентификаторДляФормул", "");
Параметры.Вставить("МногострочноеПолеВвода", Ложь);
Параметры.Вставить("Подсказка", "");
Параметры.Вставить("Тип"); // Для обратной совместимости.
Возврат Параметры;
@@ -1595,20 +1595,19 @@
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
МодульЭлектроннаяПодписьСлужебный = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебный");
СоответствиеВложенийИПодписей =
МодульЭлектроннаяПодписьСлужебный.ИменаФайловПодписейИменФайловДанных(ИменаВложений);
ВложенияИПодписи = МодульЭлектроннаяПодписьСлужебный.ИменаФайловПодписейИменФайловДанных(ИменаВложений);
Иначе
СоответствиеВложенийИПодписей = Новый Соответствие;
ВложенияИПодписи = Новый Соответствие;
Для Каждого ИмяФайлаВложения Из ИменаВложений Цикл
СоответствиеВложенийИПодписей.Вставить(ИмяФайлаВложения, Новый Массив);
ВложенияИПодписи.Вставить(ИмяФайлаВложения, Новый Массив);
КонецЦикла;
КонецЕсли;
КоличествоПустыхИменВоВложениях = 0;
Для каждого ЭлементСоответствия Из СоответствиеВложенийИПодписей Цикл
Для каждого ЭлементСоответствия Из ВложенияИПодписи Цикл
НайденноеВложение = Неопределено;
МассивПодписей = Новый Массив;
ПодписиФайла = Новый Массив;
Для каждого Вложение Из Сообщение.Вложения Цикл
Если Вложение.ИмяФайла = ЭлементСоответствия.Ключ Тогда
@@ -1620,13 +1619,13 @@
Если НайденноеВложение <> Неопределено И ЭлементСоответствия.Значение.Количество() > 0 Тогда
Для каждого Вложение Из Сообщение.Вложения Цикл
Если ЭлементСоответствия.Значение.Найти(Вложение.ИмяФайла) <> Неопределено Тогда
МассивПодписей.Добавить(Вложение);
ПодписиФайла.Добавить(Вложение);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если НайденноеВложение <> Неопределено Тогда
ЗаписатьВложениеЭлектронногоПисьма(Письмо, НайденноеВложение, МассивПодписей, КоличествоПустыхИменВоВложениях);
ЗаписатьВложениеЭлектронногоПисьма(Письмо, НайденноеВложение, ПодписиФайла, КоличествоПустыхИменВоВложениях);
КонецЕсли;
КонецЦикла;
@@ -2442,7 +2441,7 @@
КонецФункции
Процедура ЗаписатьВложениеЭлектронногоПисьма(Объект, Вложение,МассивПодписей,КоличествоПустыхИменВоВложениях)
Процедура ЗаписатьВложениеЭлектронногоПисьма(Объект, Вложение, ПодписиВложения, КоличествоПустыхИменВоВложениях)
ПисьмоСсылка = Объект.Ссылка;
Размер = 0;
@@ -2478,7 +2477,7 @@
КонецЕсли;
ЕстьПодписи = (МассивПодписей.Количество() > 0)
ЕстьПодписи = (ПодписиВложения.Количество() > 0)
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись");
ЭтоОтображаемыйФайл = НЕ ПустаяСтрока(Вложение.Идентификатор);
@@ -2522,7 +2521,7 @@
МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись");
МодульЭлектроннаяПодписьКлиентСервер= ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьКлиентСервер");
Для Каждого ПодписьВложения Из МассивПодписей Цикл
Для Каждого ПодписьВложения Из ПодписиВложения Цикл
Попытка
ДанныеПодписиВложения = МодульЭлектроннаяПодпись.ПодписьВКодировкеDER(ПодписьВложения.Данные);
@@ -2666,11 +2665,8 @@
// СправочникСсылка.ЭлектронноеПисьмоВходящееПрисоединенныеФайлы
// СправочникСсылка.ЭлектронноеПисьмоИсходящееПрисоединенныеФайлы
//
Функция ЗаписатьВложениеЭлектронногоПисьмаИзВременногоХранилища(
Письмо,
АдресВоВременномХранилище,
ПараметрыВложения,
КоличествоПустыхИменВоВложениях = 0) Экспорт
Функция ЗаписатьВложениеЭлектронногоПисьмаИзВременногоХранилища(Письмо, АдресВоВременномХранилище,
ПараметрыВложения, КоличествоПустыхИменВоВложениях = 0) Экспорт
ИмяФайлаДляРазбора = ПараметрыВложения.ИмяФайла;
ИмяБезРасширения = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(ИмяФайлаДляРазбора);
@@ -2678,14 +2674,12 @@
Если ПустаяСтрока(ИмяБезРасширения) Тогда
ИмяБезРасширения =
НСтр("ru = 'Вложение без имени'") + ?(КоличествоПустыхИменВоВложениях = 0, ""," " + Строка(КоличествоПустыхИменВоВложениях + 1));
ИмяБезРасширения = НСтр("ru = 'Вложение без имени'")
+ ?(КоличествоПустыхИменВоВложениях = 0, ""," " + Строка(КоличествоПустыхИменВоВложениях + 1));
КоличествоПустыхИменВоВложениях = КоличествоПустыхИменВоВложениях + 1;
Иначе
ИмяБезРасширения =
?(РасширениеБезТочки = "",
ИмяБезРасширения,
ИмяБезРасширения = ?(РасширениеБезТочки = "", ИмяБезРасширения,
Лев(ИмяБезРасширения, СтрДлина(ИмяБезРасширения) - СтрДлина(РасширениеБезТочки) - 1));
КонецЕсли;
@@ -595,7 +595,7 @@
//
// ФайловаяСистемаКлиент.ЗапуститьПрограмму("ping 127.0.0.1 -n 5", ПараметрыЗапускаПрограммы);
//
// Пример:
// // Пример обработки оповещения
// &НаКлиенте
// Процедура ПриПолученииРезультатаЗапускаПрограммы(Результат, ДополнительныеПараметры) Экспорт
// КодВозврата = Результат.КодВозврата;
@@ -1953,19 +1953,6 @@
ДатаДляПроверкиСертификатаПодписи = НаДату;
КонецЕсли;
СистемнаяИнформация = Новый СистемнаяИнформация;
Если СвойстваПодписи.ТипПодписи <> Перечисления.ТипыПодписиКриптографии.ОбычнаяCMS
И СвойстваПодписи.ТипПодписи <> Перечисления.ТипыПодписиКриптографии.БазоваяCAdESBES
И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.24.0") >= 0 Тогда
// Были проверены дополнительные атрибуты подписи, проверка сертификата не требуется.
РезультатДополнительнойПроверкиСертификатаПодписи = ЭлектроннаяПодписьСлужебный.РезультатДополнительнойПроверкиСертификатаПодписи(
Сертификат, ДатаДляПроверкиСертификатаПодписи, СвойстваСертификата);
ЗаполнитьРезультатПроверкиПодписи(РезультатДополнительнойПроверкиСертификатаПодписи, РезультатСтруктура);
Возврат РезультатДополнительнойПроверкиСертификатаПодписи = Истина;
КонецЕсли;
КонецЕсли;
Если ВызыватьИсключение Тогда
@@ -1051,15 +1051,7 @@
Процедура ОткрытьНастройкиЭлектроннойПодписиИШифрования(Страница = "Сертификаты") Экспорт
ПараметрыФормы = Новый Структура;
Если Страница = "Сертификаты" Тогда
ПараметрыФормы.Вставить("ПоказатьСтраницуСертификаты");
ИначеЕсли Страница = "Настройки" Тогда
ПараметрыФормы.Вставить("ПоказатьСтраницуНастройки");
ИначеЕсли Страница = "Программы" Тогда
ПараметрыФормы.Вставить("ПоказатьСтраницуПрограммы");
КонецЕсли;
ПараметрыФормы.Вставить("ПоказатьСтраницу", Страница);
Форма = ОткрытьФорму("ОбщаяФорма.НастройкиЭлектроннойПодписиИШифрования", ПараметрыФормы);
@@ -1820,18 +1812,19 @@
// См. ПолучитьОтпечаткиСертификатов.
//
// Параметры:
// Клиентские - Булево - получать отпечатки сертификатов на компьютере.
// Серверные - Булево - получать отпечатки сертификатов на сервере.
// Сервис - Булево - получать отпечатки сертификатов в сервисе.
//
// Клиентские - Булево, Неопределено - показать ошибку создания менеджера криптографии на компьютере.
// Если Неопределено, получение сертификатов пользователя ОС на компьютере не будет осуществляться.
// Серверные - Булево, Неопределено - показать ошибку создания менеджера криптографии на сервере.
// Если Неопределено, получение сертификатов пользователя ОС на сервере не будет осуществляться.
// Сервис - Булево, Неопределено - если Булево - получает отпечатки сертификатов пользователя ОС в сервисе,
// если включена настройка. Если Неопределено, получение сертификатов на сервере DSS не будет осуществляться.
//
// Возвращаемое значение:
// Структура - параметры получения отпечатков сертификатов:
// * Клиентские - Булево, Неопределено - показать ошибку создания менеджера криптографии на компьютере,
// если Неопределено, получение сертификатов пользователя ОС на компьютере не будет осуществляться.
// * Серверные - Булево, Неопределено - получает отпечатки сертификатов пользователя ОС на сервере, если включена настройка,
// если Неопределено, получение сертификатов пользователя ОС на сервере не будет осуществляться.
// * Сервис - Булево, Неопределено - получает отпечатки сертификатов пользователя ОС в сервисе, если включена настройка,
// если Неопределено, получение сертификатов на сервере DSS не будет осуществляться.
// Структура:
// * Клиентские - Булево, Неопределено
// * Серверные - Булево, Неопределено
// * Сервис - Булево, Неопределено
// * ВозвращатьИсточникПолучения - Булево - всегда Истина, используется для совместимости.
//
Функция ПараметрыПолученияОтпечатковСертификатов(Клиентские = Истина, Серверные = Истина, Сервис = Истина) Экспорт
@@ -197,26 +197,6 @@
КонецФункции
Функция РезультатДополнительнойПроверкиСертификатаПодписи(Сертификат, ДатаПодписания, СвойстваПодписи) Экспорт
РезультатПроверкиУдостоверяющегоЦентраСертификата = РезультатПроверкиУдостоверяющегоЦентраСертификата(
Сертификат, ДатаПодписания, Истина, СвойстваПодписи);
Если Не РезультатПроверкиУдостоверяющегоЦентраСертификата.Действует Тогда
ПользовательскиеНастройкиСертификата = ЭлектроннаяПодписьСлужебныйВызовСервера.ПользовательскиеНастройкиСертификата(
Сертификат.Отпечаток);
Если ПользовательскиеНастройкиСертификата.ПодписаниеРазрешено <> Истина Тогда
Возврат РезультатПроверкиУдостоверяющегоЦентраСертификата.Предупреждение.ТекстОшибки;
КонецЕсли;
КонецЕсли;
Возврат Истина;
КонецФункции
Функция ДополнительныеПараметрыПроверкиСертификата() Экспорт
ДополнительныеПараметры = Новый Структура;
@@ -6612,10 +6592,10 @@
#Область КлассификаторОшибокКриптографии
Функция ОшибкаПоКлассификатору(ТекстДляПоискаВКлассификаторе, ОшибкаНаСервере = Ложь) Экспорт
Функция ОшибкаПоКлассификатору(ТекстДляПоискаВКлассификаторе, ОшибкаНаСервере = Ложь, ОшибкаПроверкиПодписи = Ложь) Экспорт
ОшибкаПоКлассификатору = ЭлектроннаяПодписьСлужебныйПовтИсп.ОшибкаПоКлассификатору(
ТекстДляПоискаВКлассификаторе, ОшибкаНаСервере);
ТекстДляПоискаВКлассификаторе, ОшибкаНаСервере, ОшибкаПроверкиПодписи);
Если ОшибкаПоКлассификатору = Неопределено Тогда
Возврат Неопределено;
@@ -6742,6 +6722,7 @@
Результат.Колонки.Добавить("ТребуетПроверки", Новый ОписаниеТипов("Булево"));
Результат.Колонки.Добавить("СертификатОтозван", Новый ОписаниеТипов("Булево"));
Результат.Колонки.Добавить("НеверныйХэшПодписи", Новый ОписаниеТипов("Булево"));
Результат.Колонки.Добавить("ОшибкаПриПроверкеПодписи", Новый ОписаниеТипов("Булево"));
Возврат Результат;
@@ -6789,6 +6770,7 @@
НоваяОшибка.Решение = ИзвестнаяОшибка.Solution;
НоваяОшибка.ТолькоСервер = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ИзвестнаяОшибка, "Server", Ложь);
НоваяОшибка.ТолькоКлиент = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ИзвестнаяОшибка, "Client", Ложь);
НоваяОшибка.ОшибкаПриПроверкеПодписи = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ИзвестнаяОшибка, "Sign", Ложь);
Категория = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ИзвестнаяОшибка, "Category", Неопределено);
Если ЗначениеЗаполнено(Категория) Тогда
НоваяОшибка.НеверныйХэшПодписи = ОшибкаНеверныйХэшПодписи(Категория);
@@ -7145,7 +7127,7 @@
Иначе
ПериодДействияСпискаОтзыва = ПериодДействияСпискаОтзыва(РезультатЗагрузки.ДанныеФайла);
ПериодДействияСпискаОтзыва = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваСпискаОтзыва(РезультатЗагрузки.ДанныеФайла);
Если ПериодДействияСпискаОтзыва = Неопределено Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
@@ -7325,40 +7307,6 @@
КонецФункции
// Для процедуры СкачатьФайлСпискаОтзываНаСервере и проверки ПередЗаписью в регистре СпискиОтзываСертификатов.
Функция ПериодДействияСпискаОтзыва(Данные) Экспорт
ДвоичныеДанные = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДвоичныеДанныеИзДанных(
Данные, "ЭлектроннаяПодписьСлужебный.ПериодДействияСпискаОтзыва");
АнализДанных = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыйАнализДанных(ДвоичныеДанные);
Результат = Новый Структура("ДатаНачала, ДатаОкончания");
// SEQUENCE (CertificateList).
ЭлектроннаяПодписьСлужебныйКлиентСервер.ПропуститьНачалоБлока(АнализДанных, 0, 16);
// SEQUENCE (TBSCertList).
ЭлектроннаяПодписьСлужебныйКлиентСервер.ПропуститьНачалоБлока(АнализДанных, 0, 16);
// INTEGER (version Version).
ЭлектроннаяПодписьСлужебныйКлиентСервер.ПропуститьБлок(АнализДанных, 0, 2);
// SEQUENCE (signature AlgorithmIdentifier).
ЭлектроннаяПодписьСлужебныйКлиентСервер.ПропуститьБлок(АнализДанных, 0, 16);
// SEQUENCE (issuer Name).
ЭлектроннаяПодписьСлужебныйКлиентСервер.ПропуститьБлок(АнализДанных, 0, 16);
Если АнализДанных.ЕстьОшибка Тогда
Возврат Неопределено;
КонецЕсли;
// UTC TIME (thisUpdate).
Результат.ДатаНачала = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПрочитатьДатуИзБуфера(АнализДанных.Буфер, АнализДанных.Смещение);
// UTC TIME (nextUpdate).
Результат.ДатаОкончания = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПрочитатьДатуИзБуфера(АнализДанных.Буфер, АнализДанных.Смещение + 15);
Возврат Результат;
КонецФункции
// Для процедуры СкачатьФайлСпискаОтзываНаСервере
Процедура ЗаполнитьРезультатЗагрузкиСпискаОтзываИзДанныхКэша(РезультатЗагрузки, ДанныеИзКэша)
@@ -826,13 +826,6 @@
КонецПроцедуры
// Возвращаемое значение:
// Структура:
// * АдресСертификата - Строка
// * ОткрытьДанные - см. ОткрытьСертификат.ОткрытьДанные
// * ДанныеСертификата - см. ОткрытьСертификат.ДанныеСертификата
// Контекст открытия сертификата.
//
// Возвращаемое значение:
@@ -1331,10 +1324,15 @@
КонецЕсли;
КонецЕсли;
Если Контекст.ПараметрыПолучения.Серверные Тогда
Если Контекст.ПараметрыПолучения.Серверные <> Неопределено Тогда
ОписаниеОшибки = "";
ОтпечаткиНаСервере = ЭлектроннаяПодписьСлужебныйВызовСервера.ОтпечаткиСертификатов(Контекст.ТолькоЛичные, ОписаниеОшибки, Контекст.ПараметрыПолучения.Сервис);
Если Контекст.ПараметрыПолучения.Серверные = Истина Тогда
ОписаниеОшибки = Null
Иначе
ОписаниеОшибки = "";
КонецЕсли;
ОтпечаткиНаСервере = ЭлектроннаяПодписьСлужебныйВызовСервера.ОтпечаткиСертификатов(Контекст.ТолькоЛичные, ОписаниеОшибки, Контекст.ПараметрыПолучения.Сервис <> Неопределено);
Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда
РезультатПолученияОтпечатков.ОшибкаПолученияСертификатовНаСервере = ОписаниеОшибки;
КонецЕсли;
@@ -1346,7 +1344,7 @@
Отпечатки.Вставить(Элемент.Ключ, Элемент.Значение);
КонецЦикла;
ИначеЕсли Контекст.ПараметрыПолучения.Сервис Тогда
ИначеЕсли Контекст.ПараметрыПолучения.Сервис <> Неопределено Тогда
ОтпечаткиВСервисе = ЭлектроннаяПодписьСлужебныйВызовСервера.ОтпечаткиСертификатовСервиса();
Для Каждого Элемент Из ОтпечаткиВСервисе Цикл
@@ -1751,20 +1749,6 @@
Возврат;
КонецЕсли;
СистемнаяИнформация = Новый СистемнаяИнформация;
Если СвойстваПодписи.ТипПодписи <> ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.ОбычнаяCMS")
И СвойстваПодписи.ТипПодписи <> ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES")
И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.24.0") >= 0 Тогда
// Были проверены дополнительные атрибуты подписи, нужна только дополнительная проверка сертификата.
Контекст.Вставить("Сертификат", Сертификат);
ДатаПодписания = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаДляПроверкиСертификатаПодписи(СвойстваПодписи);
Если Не ЗначениеЗаполнено(ДатаПодписания) Тогда
ДатаПодписания = Контекст.НаДату;
КонецЕсли;
ПроверитьСертификатПодписиДополнительно(Контекст, ДатаПодписания, СвойстваСертификата);
Возврат;
КонецЕсли;
Иначе // после проверки в облачных сервисах.
СвойстваПодписи = Ждать СвойстваПодписиИзДвоичныхДанных(Контекст.ДанныеПодписи, Истина);
@@ -1804,31 +1788,6 @@
КонецПроцедуры
Асинх Процедура ПроверитьСертификатПодписиДополнительно(Контекст, ДатаПодписания, СвойстваСертификата)
РезультатПроверкиУдостоверяющегоЦентраСертификата = Ждать РезультатПроверкиУдостоверяющегоЦентраСертификата(
Контекст.Сертификат, ДатаПодписания, Истина, СвойстваСертификата);
Если Не РезультатПроверкиУдостоверяющегоЦентраСертификата.Действует Тогда
ПользовательскиеНастройкиСертификата = ЭлектроннаяПодписьСлужебныйВызовСервера.ПользовательскиеНастройкиСертификата(
Контекст.Сертификат.Отпечаток);
Если ПользовательскиеНастройкиСертификата.ПодписаниеРазрешено <> Истина Тогда
ВыполнитьОбработкуОповещения(Контекст.Оповещение, РезультатПроверкиПодписи(
РезультатПроверкиУдостоверяющегоЦентраСертификата.Предупреждение.ТекстОшибки,
Контекст.РезультатПроверки));
Возврат;
КонецЕсли;
КонецЕсли;
ВыполнитьОбработкуОповещения(Контекст.Оповещение, РезультатПроверкиПодписи(Истина,
Контекст.РезультатПроверки));
КонецПроцедуры
Процедура ПроверитьПодписьПослеПроверкиСертификатаПодписи(РезультатПроверки, Контекст) Экспорт
Если ТипЗнч(РезультатПроверки) = Тип("Структура") Тогда
@@ -9597,6 +9556,9 @@
Контекст.Вставить("ОбъектКомпоненты", ОбъектКомпоненты);
Контекст.Вставить("АдресРесурса", Параметры.АдресРесурса);
СвойстваСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДополнительныеСвойстваСертификата(Контекст.Сертификат);
Контекст.Вставить("ИдентификаторКлючаУдостоверяющегоЦентра", СвойстваСертификата.ИдентификаторКлючаУдостоверяющегоЦентра);
ДлительнаяОперация = ЭлектроннаяПодписьСлужебныйВызовСервера.НачатьСкачиваниеФайлаНаСервере(Параметры);
Если Не ДлительнаяОперация.Свойство("АдресРезультата") Тогда
@@ -9654,6 +9616,19 @@
ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(Результат, Контекст);
СвойстваСпискаОтзыва = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваСпискаОтзыва(Результат.ДанныеФайла);
Если ЗначениеЗаполнено(Результат.ИдентификаторКлючаУдостоверяющегоЦентра)
И ЗначениеЗаполнено(СвойстваСпискаОтзыва.ИдентификаторКлючаУдостоверяющегоЦентра)
И Результат.ИдентификаторКлючаУдостоверяющегоЦентра <> СвойстваСпискаОтзыва.ИдентификаторКлючаУдостоверяющегоЦентра Тогда
Ошибка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не совпадают идентификаторы ключа удостоверяющего центра полученного списка отзыва (%1) и сертификата (%2).
|Обратитесь в удостоверяющий центр, выдавший сертификат.'"),
СвойстваСпискаОтзыва.ИдентификаторКлючаУдостоверяющегоЦентра, Результат.ИдентификаторКлючаУдостоверяющегоЦентра);
ОбработатьОшибкуУстановкиСпискаОтзыва(Ошибка, Результат, Истина);
Возврат;
КонецЕсли;
ФайловаяСистемаКлиент.СоздатьВременныйКаталог(
Новый ОписаниеОповещения("УстановитьСписокОтзываПослеСозданияВременногоКаталога", ЭтотОбъект, Результат));
@@ -9674,7 +9649,7 @@
НСтр("ru = 'Не удалось создать временный каталог для загрузки списка отзыва.'"), Контекст);
Возврат;
КонецЕсли;
ИмяФайлаСпискаОтзыва = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ИмяВременногоКаталога)
+ Контекст.ИмяФайла;
Ждать Контекст.ДанныеФайла.ЗаписатьАсинх(ИмяФайлаСпискаОтзыва);
@@ -9713,7 +9688,7 @@
КонецПроцедуры
Процедура ОбработатьОшибкуУстановкиСпискаОтзыва(Ошибка, Контекст)
Процедура ОбработатьОшибкуУстановкиСпискаОтзыва(Ошибка, Контекст, ОшибкаИздателя = Ложь)
Если ТипЗнч(Ошибка) = Тип(ИнформацияОбОшибке()) Тогда
Если Контекст.ОповещениеОЗавершении = Неопределено Тогда
@@ -9726,9 +9701,18 @@
АдресРесурса = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Контекст, "АдресРесурса", Неопределено);
Если ЗначениеЗаполнено(АдресРесурса) Тогда
Ошибка = Ошибка + Символы.ПС + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Загрузите вручную и установите список отзыва с:
|%1'"), СтрСоединить(АдресРесурса, Символы.ПС));
Если ОшибкаИздателя Тогда
Ошибка = Ошибка + Символы.ПС + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Адрес списка отзыва, указанный в сертификате: %1'"), СтрСоединить(АдресРесурса, Символы.ПС));
Иначе
Ошибка = Ошибка + Символы.ПС + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Загрузите вручную и установите список отзыва с:
|%1'"), СтрСоединить(АдресРесурса, Символы.ПС));
КонецЕсли;
КонецЕсли;
Если Контекст.ОповещениеОЗавершении <> Неопределено Тогда
@@ -9740,7 +9724,7 @@
Иначе
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ЗаголовокПредупреждения", НСтр("ru = 'Не удалось установить список отзыва.'"));
ПараметрыФормы.Вставить("ЗаголовокПредупреждения", НСтр("ru = 'Не удалось установить список отзыва'"));
ПараметрыФормы.Вставить("ТекстОшибкиКлиент", Ошибка);
ОткрытьФорму("ОбщаяФорма.РасширенноеПредставлениеОшибки",
@@ -10831,15 +10815,18 @@
// Возвращаемое значение:
// Структура - дополнительные данные для классификатора ошибок:
// * Сертификат - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
// * ДанныеСертификата - Строка
// * ДанныеСертификата - Строка - адрес данных сертификата во временном хранилище.
// * ДанныеПодписи - Строка - адрес данных подписи во временном хранилище.
// * ДополнительныеДанныеПроверокНаКлиенте - Структура
// * ДополнительныеДанныеПроверокНаСервере - Структура
// * ПараметрыПодключенияКомпоненты - см. ОбщегоНазначенияКлиент.ПараметрыПодключенияКомпоненты
//
Функция ДополнительныеДанныеДляКлассификатораОшибок() Экспорт
ДополнительныеДанные = Новый Структура;
ДополнительныеДанные.Вставить("Сертификат");
ДополнительныеДанные.Вставить("ДанныеСертификата");
ДополнительныеДанные.Вставить("ДанныеПодписи");
ДополнительныеДанные.Вставить("ПараметрыПодключенияКомпоненты");
ДополнительныеДанные.Вставить("ДополнительныеДанныеПроверокНаКлиенте");
ДополнительныеДанные.Вставить("ДополнительныеДанныеПроверокНаСервере");
@@ -124,28 +124,45 @@
Функция РезультатПоискаКриптопровайдеров(КриптопровайдерыРезультат, ИмяСервера = "") Экспорт
Если ИмяСервера = "" Тогда
ИмяСервера = НСтр("ru = 'На компьютере'");
Иначе
ИмяСервера = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'На сервере %1'"), ИмяСервера);
КонецЕсли;
Если КриптопровайдерыРезультат = Неопределено Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1 не удалось автоматически определить установленные приложения электронной подписи и шифрования.'"), ИмяСервера);
ИначеЕсли КриптопровайдерыРезультат.ПроверкаВыполнена Тогда
Если КриптопровайдерыРезультат.Криптопровайдеры.Количество() > 0 Тогда
Возврат КриптопровайдерыРезультат.Криптопровайдеры;
Если КриптопровайдерыРезультат = Неопределено Тогда
ТекстОшибки = НСтр(
"ru = 'На компьютере не удалось автоматически определить установленные приложения электронной подписи и шифрования.'");
ИначеЕсли КриптопровайдерыРезультат.ПроверкаВыполнена Тогда
Если КриптопровайдерыРезультат.Криптопровайдеры.Количество() > 0 Тогда
Возврат КриптопровайдерыРезультат.Криптопровайдеры;
Иначе
ТекстОшибки = НСтр("ru = 'На компьютере не установлены приложения электронной подписи и шифрования.'");
КонецЕсли;
Иначе
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1 не установлены приложения электронной подписи и шифрования.'"), ИмяСервера);
НСтр("ru = 'На компьютере не удалось автоматически определить установленные приложения электронной подписи и шифрования:
|%1'"), КриптопровайдерыРезультат.Ошибка);
КонецЕсли;
Иначе
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1 не удалось автоматически определить установленные приложения электронной подписи и шифрования:
|%2'"), ИмяСервера, КриптопровайдерыРезультат.Ошибка);
Если КриптопровайдерыРезультат = Неопределено Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр(
"ru = 'На сервере %1 не удалось автоматически определить установленные приложения электронной подписи и шифрования.'"),
ИмяСервера);
ИначеЕсли КриптопровайдерыРезультат.ПроверкаВыполнена Тогда
Если КриптопровайдерыРезультат.Криптопровайдеры.Количество() > 0 Тогда
Возврат КриптопровайдерыРезультат.Криптопровайдеры;
Иначе
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'На сервере %1 не установлены приложения электронной подписи и шифрования.'"), ИмяСервера);
КонецЕсли;
Иначе
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'На сервере %1 не удалось автоматически определить установленные приложения электронной подписи и шифрования:
|%2'"), ИмяСервера, КриптопровайдерыРезультат.Ошибка);
КонецЕсли;
КонецЕсли;
Возврат ТекстОшибки;
КонецФункции
@@ -2319,7 +2336,7 @@
КонецФункции
Функция ПрочитатьДатуИзБуфера(Буфер, Смещение) Экспорт
Функция ПрочитатьДатуИзБуфера(Буфер, Смещение)
ТипДаты = ПолучитьHexСтрокуИзБуфераДвоичныхДанных(Буфер.Прочитать(Смещение, 2));
Если ТипДаты = "170D" Тогда // UTCTime
@@ -4021,6 +4038,86 @@
КонецФункции
// Для процедуры СкачатьФайлСпискаОтзываНаСервере и проверки ПередЗаписью в регистре СпискиОтзываСертификатов.
Функция СвойстваСпискаОтзыва(Данные) Экспорт
ДвоичныеДанные = ДвоичныеДанныеИзДанных(
Данные, "ЭлектроннаяПодписьСлужебный.СвойстваСпискаОтзыва");
АнализДанных = НовыйАнализДанных(ДвоичныеДанные);
Результат = Новый Структура("ДатаНачала, ДатаОкончания, ИдентификаторКлючаУдостоверяющегоЦентра");
// SEQUENCE (CertificateList).
ПропуститьНачалоБлока(АнализДанных, 0, 16);
// SEQUENCE (TBSCertList).
ПропуститьНачалоБлока(АнализДанных, 0, 16);
// INTEGER (version Version).
ПропуститьБлок(АнализДанных, 0, 2);
// SEQUENCE (signature AlgorithmIdentifier).
ПропуститьБлок(АнализДанных, 0, 16);
// SEQUENCE (issuer Name).
ПропуститьБлок(АнализДанных, 0, 16);
Если АнализДанных.ЕстьОшибка Тогда
Возврат Неопределено;
КонецЕсли;
// UTC TIME (thisUpdate).
Результат.ДатаНачала = ПрочитатьДатуИзБуфера(АнализДанных.Буфер, АнализДанных.Смещение);
// UTC TIME (nextUpdate).
Результат.ДатаОкончания = ПрочитатьДатуИзБуфера(АнализДанных.Буфер, АнализДанных.Смещение + 15);
// SEQUENCE (thisUpdate Time).
ПропуститьБлок(АнализДанных, 0, 23);
// SEQUENCE (nextUpdate Time).
ПропуститьБлок(АнализДанных, 0, 23, Ложь);
// SEQUENCE (revokedCertificates).
ПропуститьБлок(АнализДанных, 0, 16);
// [0]crlExtensions contentType OPTIONAL).
ПропуститьНачалоБлока(АнализДанных, 2, 0);
Если АнализДанных.ЕстьОшибка Тогда
Возврат Результат;
КонецЕсли;
// SEQUENCE OF
ПропуститьНачалоБлока(АнализДанных, 0, 16);
СмещениеСледующего = АнализДанных.Родители[0].СмещениеСледующего;
Пока АнализДанных.Смещение < СмещениеСледующего Цикл
// SEQUENCE (extension).
ПропуститьНачалоБлока(АнализДанных, 0, 16);
Если АнализДанных.ЕстьОшибка Тогда
Возврат Результат;
КонецЕсли;
// OBJECT IDENTIFIER
ПропуститьНачалоБлока(АнализДанных, 0, 6);
РазмерДанных = АнализДанных.Родители[0].РазмерДанных;
Если РазмерДанных = 0 Тогда
Возврат Результат;
КонецЕсли;
Если РазмерДанных = 3 Тогда
Буфер = АнализДанных.Буфер.Прочитать(АнализДанных.Смещение, РазмерДанных); // БуферДвоичныхДанных
СтрокаБуфера = ПолучитьHexСтрокуИзБуфераДвоичныхДанных(Буфер);
ПропуститьРодительскийБлок(АнализДанных); // OBJECT IDENTIFIER
Если СтрокаБуфера = "551D23" Тогда // 2.5.29.35 authorityKeyIdentifier
ЗаполнитьИдентификаторКлючаУдостоверяющегоЦентра(ПрочитанныйБлок(АнализДанных, 0, 4, Истина), Результат);
Возврат Результат;
КонецЕсли;
Иначе
ПропуститьРодительскийБлок(АнализДанных); // OBJECT IDENTIFIER
КонецЕсли;
ПропуститьРодительскийБлок(АнализДанных); // SEQUENCE
КонецЦикла;
Возврат Результат;
КонецФункции
Функция ДвоичныеДанныеИзДанных(Данные, ИмяФункции) Экспорт
ОжидаемыеТипы = Новый Массив;
@@ -474,7 +474,7 @@
//
Функция ВерсияКлассификатора() Экспорт
Возврат "3.0.1.21";
Возврат "3.0.1.22";
КонецФункции
@@ -252,7 +252,7 @@
КонецФункции
Функция ОшибкаПоКлассификатору(ТекстДляПоискаВКлассификаторе, ОшибкаНаСервере) Экспорт
Функция ОшибкаПоКлассификатору(ТекстДляПоискаВКлассификаторе, ОшибкаНаСервере, ОшибкаПроверкиПодписи) Экспорт
КлассификаторОшибок = ЭлектроннаяПодписьСлужебныйПовтИсп.КлассификаторОшибокКриптографии();
@@ -262,32 +262,50 @@
ТекстДляПоиска = НРег(ТекстДляПоискаВКлассификаторе);
Если ОшибкаНаСервере Тогда
Если ОшибкаПроверкиПодписи Тогда
Если ОшибкаНаСервере Тогда
Отбор = Новый Структура("ТолькоКлиент, ОшибкаПриПроверкеПодписи", Ложь, Истина);
Иначе
Отбор = Новый Структура("ТолькоСервер, ОшибкаПриПроверкеПодписи", Ложь, Истина);
КонецЕсли;
СтрокаОшибки = НайтиСтрокуОшибки(КлассификаторОшибок, Отбор, ТекстДляПоиска, ОшибкаНаСервере);
Если СтрокаОшибки <> Неопределено Тогда
Возврат СтрокаОшибки;
КонецЕсли;
КонецЕсли;
Если ОшибкаНаСервере Тогда
Отбор = Новый Структура("ТолькоКлиент", Ложь);
Иначе
Отбор = Новый Структура("ТолькоСервер", Ложь);
КонецЕсли;
Возврат НайтиСтрокуОшибки(КлассификаторОшибок, Отбор, ТекстДляПоиска, ОшибкаНаСервере);
КонецФункции
Функция НайтиСтрокуОшибки(КлассификаторОшибок, Отбор, ТекстДляПоиска, ОшибкаНаСервере)
Строки = КлассификаторОшибок.НайтиСтроки(Отбор);
Для Каждого СтрокаКлассификатора Из Строки Цикл
Если СтрНайти(ТекстДляПоиска, СтрокаКлассификатора.ТекстОшибкиНижнийРегистр) <> 0 Тогда
ПредставлениеОшибки = ЭлектроннаяПодписьСлужебный.ПредставлениеОшибки();
ЗаполнитьЗначенияСвойств(ПредставлениеОшибки, СтрокаКлассификатора);
ПредставлениеОшибки.ДействияДляУстранения = ПрочитанныеДействияДляУстраненияОшибок(
ПредставлениеОшибки.СпособУстранения);
Если Не ОшибкаНаСервере Тогда
ДополнитьРешениеАвтоматическимиДействиями(ПредставлениеОшибки.Решение, ПредставлениеОшибки.ДействияДляУстранения);
ДополнитьРешениеАвтоматическимиДействиями(ПредставлениеОшибки.Решение,
ПредставлениеОшибки.ДействияДляУстранения);
КонецЕсли;
ПредставлениеОшибки.Причина = СтроковыеФункции.ФорматированнаяСтрока(ПредставлениеОшибки.Причина);
ПредставлениеОшибки.Решение = СтроковыеФункции.ФорматированнаяСтрока(ПредставлениеОшибки.Решение);
Возврат Новый ФиксированнаяСтруктура(ПредставлениеОшибки);
КонецЕсли;
КонецЦикла;
Возврат Неопределено;
+11 -9
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="c56cf78b-5802-4144-b98a-7c06fc84a1bd">
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="735e6b60-8bca-482e-ac3c-34e4636ba7d1">
<name>БиблиотекаСтандартныхПодсистем</name>
<synonym>
<key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="6f5028aa-6399-4765-8957-959c1a48d857"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="897eb668-aedd-4c39-aace-7e7863ab90c9"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="0f833d1b-ac95-461b-a583-2e5b9c491642"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="ec3293d2-ae27-4e2b-8ed3-60791d56204a"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="05eeabcd-f200-42af-a619-293e2e019915"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="4f0d9ae8-6bbf-4747-bc4b-d90042f124ea"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="f18c9483-2f0d-479e-b431-9f56ae9233b8"/>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="a8d71e19-775e-40ea-9246-493a1b678151"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="ceb21d74-2ec7-4210-812e-c2922c78ad41"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="f9b1855d-d017-4462-bbe3-61021192eb35"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="a6382b1d-c526-46e6-a578-10d72e6cd283"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="27aaa6da-c421-4556-a8ba-27db11d5426a"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="f2036c2f-f1cd-4f44-ac9d-cb103b2ef261"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="53a62a8f-90a8-4b99-a108-cbca051ed24f"/>
<defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor>
<version>3.1.10.123</version>
<version>3.1.10.141</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities>
@@ -1332,6 +1332,7 @@
<commonModules>CommonModule.УправлениеПечатьюМультиязычностьКлиент</commonModules>
<commonModules>CommonModule.УправлениеПечатьюМультиязычностьПереопределяемый</commonModules>
<commonModules>CommonModule.УправлениеПечатьюПереопределяемый</commonModules>
<commonModules>CommonModule.УправлениеПечатьюПовтИсп</commonModules>
<commonModules>CommonModule.УправлениеПечатьюРФ</commonModules>
<commonModules>CommonModule.УправлениеПечатьюСлужебный</commonModules>
<commonModules>CommonModule.УправлениеПечатьюСлужебныйКлиент</commonModules>
@@ -1547,6 +1548,7 @@
<scheduledJobs>ScheduledJob.ОбновлениеАгрегатов</scheduledJobs>
<scheduledJobs>ScheduledJob.ОбновлениеДоступаНаУровнеЗаписей</scheduledJobs>
<scheduledJobs>ScheduledJob.ОбновлениеИндексаППД</scheduledJobs>
<scheduledJobs>ScheduledJob.ОбновлениеКлассификаторовМЧД</scheduledJobs>
<scheduledJobs>ScheduledJob.ОбновлениеПредопределенныхВариантовОтчетов</scheduledJobs>
<scheduledJobs>ScheduledJob.ОбновлениеСостоянияЗаявленияНаВыпускСертификата</scheduledJobs>
<scheduledJobs>ScheduledJob.ОбновлениеСтатусовДоставкиSMS</scheduledJobs>
@@ -1 +1 @@
{6,1,1,0b70ed1d-e327-4769-8aa0-e6e0484575c6,1,d11583f1-7247-4abb-9974-d6f148c2888e,"3.1.10.123","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",7642,1,0,c56cf78b-5802-4144-b98a-7c06fc84a1bd,c56cf78b-5802-4144-b98a-7c06fc84a1bd,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,fa04bf1e-69c0-4998-a939-039fcaba83c8,fa04bf1e-69c0-4998-a939-039fcaba83c8,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,3eca2d7c-5946-4d13-ba84-e3ab5ef38b5b,3eca2d7c-5946-4d13-ba84-e3ab5ef38b5b,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,a3001de6-272f-444e-a8db-ec8cc3a670a2,a3001de6-272f-444e-a8db-ec8cc3a670a2,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7bLine truncated
{6,1,1,817d9ea3-acce-4247-83b2-96d4a26696f8,1,2ab70a5e-3469-4e77-a6ca-fabc5df4186f,"3.1.10.141","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",7644,1,0,735e6b60-8bca-482e-ac3c-34e4636ba7d1,735e6b60-8bca-482e-ac3c-34e4636ba7d1,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,fa04bf1e-69c0-4998-a939-039fcaba83c8,fa04bf1e-69c0-4998-a939-039fcaba83c8,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,3eca2d7c-5946-4d13-ba84-e3ab5ef38b5b,3eca2d7c-5946-4d13-ba84-e3ab5ef38b5b,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,a3001de6-272f-444e-a8db-ec8cc3a670a2,a3001de6-272f-444e-a8db-ec8cc3a670a2,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7bLine truncated
@@ -2243,6 +2243,13 @@
<stringQualifiers/>
</valueType>
</parameters>
<parameters>
<name>ИзФормыИстории</name>
<valueType>
<types>Boolean</types>
</valueType>
<keyParameter>true</keyParameter>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
@@ -820,8 +820,9 @@
Иначе
Элементы.ИсторияИзменений.Видимость = Ложь;
КонецЕсли;
Элементы.ИсторияИзмененийГиперссылка.Видимость = НЕ Параметры.Свойство("ИзФормыИстории");
Если Параметры.ВводНовогоАдреса Тогда
ВводНовогоАдреса = Параметры.ВводНовогоАдреса;
Элементы.ИсторияИзмененийГиперссылка.Видимость = НЕ Параметры.ИзФормыИстории;
Если ВводНовогоАдреса Тогда
ДействуетС = Параметры.ДействуетС;
Иначе
ДействуетС = ?(ЗначениеЗаполнено(Параметры.ДействуетС), Параметры.ДействуетС, ТекущаяДатаСеанса());
@@ -863,6 +863,12 @@
<types>Boolean</types>
</valueType>
</parameters>
<parameters>
<name>ПоказыватьСлужебныеРеквизиты</name>
<valueType>
<types>Boolean</types>
</valueType>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
@@ -26,7 +26,7 @@
Элементы.ОтключитьСвязиПараметровВыбора.Видимость = МожноПоказыватьСлужебныеРеквизиты;
Если МожноПоказыватьСлужебныеРеквизиты Тогда
Параметры.Свойство("ПоказыватьСлужебныеРеквизиты", ПоказыватьСлужебныеРеквизиты);
ПоказыватьСлужебныеРеквизиты = Параметры.ПоказыватьСлужебныеРеквизиты;
КонецЕсли;
Элементы.ГруппаОбрабатыватьРекурсивно.Видимость = Параметры.КонтекстныйВызов И Параметры.УчитыватьИерархию;
@@ -1813,6 +1813,12 @@
<stringQualifiers/>
</valueType>
</parameters>
<parameters>
<name>ИспользуетсяДеревоОперандов</name>
<valueType>
<types>Boolean</types>
</valueType>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
@@ -14,7 +14,7 @@
Формула = Параметры.Формула;
ИсходнаяФормула = Параметры.Формула;
Параметры.Свойство("ИспользуетсяДеревоОперандов", ИспользуетсяДеревоОперандов);
ИспользуетсяДеревоОперандов = Параметры.ИспользуетсяДеревоОперандов;
Элементы.ГруппаОперандыСтраницы.ТекущаяСтраница = Элементы.СтраницаЧисловыхОперандов;
Операнды.Загрузить(ПолучитьИзВременногоХранилища(Параметры.Операнды));
@@ -2088,24 +2088,176 @@
<autoMaxCardHeight>true</autoMaxCardHeight>
<rowFilter xsi:type="core:UndefinedValue"/>
</items>
<items xsi:type="form:FormField">
<name>Причина</name>
<id>142</id>
<title>
<key>ru</key>
<value>Причина</value>
</title>
<items xsi:type="form:FormGroup">
<name>ГруппаПричина</name>
<id>376</id>
<items xsi:type="form:FormGroup">
<name>ГруппаСформироватьОтчетОбОшибке</name>
<id>369</id>
<items xsi:type="form:Decoration">
<name>НадписьПричина</name>
<id>371</id>
<title>
<key>ru</key>
<value>Причина:</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>НадписьПричинаРасширеннаяПодсказка</name>
<id>373</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>НадписьПричинаКонтекстноеМеню</name>
<id>372</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>СформироватьОтчетОбОшибке</name>
<id>362</id>
<title>
<key>ru</key>
<value>Сформировать отчет об ошибке</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>СформироватьОтчетОбОшибкеРасширеннаяПодсказка</name>
<id>364</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СформироватьОтчетОбОшибкеКонтекстноеМеню</name>
<id>363</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<groupHorizontalAlign>Right</groupHorizontalAlign>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<handlers>
<event>Click</event>
<name>СформироватьОтчетОбОшибкеНажатие</name>
</handlers>
<hyperlink>true</hyperlink>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Сформировать отчет об ошибке</value>
</title>
<horizontalStretch>true</horizontalStretch>
<extendedTooltip>
<name>ГруппаСформироватьОтчетОбОшибкеРасширеннаяПодсказка</name>
<id>370</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>AlwaysHorizontal</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Причина</name>
<id>142</id>
<title>
<key>ru</key>
<value>Причина</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Причина</segments>
</dataPath>
<titleLocation>None</titleLocation>
<extendedTooltip>
<name>ПричинаРасширеннаяПодсказка</name>
<id>144</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПричинаКонтекстноеМеню</name>
<id>143</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<readOnly>true</readOnly>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<multiLine>true</multiLine>
<choiceListHeight>1</choiceListHeight>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Причина</segments>
</dataPath>
<title>
<key>ru</key>
<value>Причина</value>
</title>
<verticalStretch>true</verticalStretch>
<extendedTooltip>
<name>ПричинаРасширеннаяПодсказка</name>
<id>144</id>
<name>ГруппаПричинаРасширеннаяПодсказка</name>
<id>377</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
@@ -2113,28 +2265,14 @@
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПричинаКонтекстноеМеню</name>
<id>143</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<readOnly>true</readOnly>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<height>2</height>
<autoMaxHeight>true</autoMaxHeight>
<verticalStretch>false</verticalStretch>
<wrap>true</wrap>
<multiLine>true</multiLine>
<choiceListHeight>1</choiceListHeight>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<visible>true</visible>
@@ -2662,6 +2800,10 @@
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<handlers>
<event>OnClose</event>
<name>ПриЗакрытии</name>
</handlers>
<windowOpeningMode>LockOwner</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoUrl>true</autoUrl>
@@ -3172,6 +3314,17 @@
<common>true</common>
</edit>
</columns>
<columns>
<name>ОтчетОбОшибке</name>
<id>46</id>
<valueType/>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
</attributes>
<attributes>
<name>ПредставлениеИзменяемыхОбъектов</name>
@@ -3445,6 +3598,19 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ВерсияБСПСоответствуетТребованиям</name>
<id>49</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>Назад</name>
<title>
@@ -3554,6 +3720,12 @@
<name>КомпоновщикНастроек</name>
<valueType/>
</parameters>
<parameters>
<name>ДополнительнаяОбработкаСсылка</name>
<valueType>
<types>AnyRef</types>
</valueType>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
@@ -11,6 +11,9 @@
&НаКлиенте
Перем ТекущийВыбранныйРеквизит;
&НаКлиенте
Перем СведенияОбОшибках;
#КонецОбласти
#Область ОбработчикиСобытийФормы
@@ -20,8 +23,9 @@
УстановитьУсловноеОформление();
ПроверитьВерсиюИРежимСовместимостиПлатформы();
Параметры.Свойство("ДополнительнаяОбработкаСсылка", ДополнительнаяОбработкаСсылка);
ВерсияБСПСоответствуетТребованиям = ВерсияБСПСоответствуетТребованиям();
ДополнительнаяОбработкаСсылка = Параметры.ДополнительнаяОбработкаСсылка;
КонтекстныйВызов = ТипЗнч(Параметры.МассивОбъектов) = Тип("Массив");
Элементы.ФормаНазад.Видимость = Ложь;
@@ -31,7 +35,7 @@
ВыполнитьДействияПриКонтекстномОткрытии();
Иначе
Если Не ЭтоПолноправныйПользователь() Тогда
ВызватьИсключение НСтр("ru = 'Для открытия обработки требуется право администрирования.'")
ВызватьИсключение(НСтр("ru = 'Недостаточно прав доступа.'"), КатегорияОшибки.НарушениеПравДоступа);
КонецЕсли;
Заголовок = НСтр("ru = 'Групповое изменение реквизитов'");
ЗаполнитьСписокТиповОбъектов();
@@ -51,13 +55,15 @@
СтруктураОбъекта = Новый Структура("ИспользуемоеИмяФайла", Неопределено);
ЗаполнитьЗначенияСвойств(СтруктураОбъекта, ОбработкаОбъект);
// Если поле ИспользуемоеИмяФайла есть - это внешняя обработка.
// Если поле ИспользуемоеИмяФайла есть, то это внешняя обработка.
Если Не ЗначениеЗаполнено(ДополнительнаяОбработкаСсылка)
И ЗначениеЗаполнено(СтруктураОбъекта.ИспользуемоеИмяФайла)
И Не СтрНачинаетсяС(СтруктураОбъекта.ИспользуемоеИмяФайла, "e1cib/")
И Не СтрНачинаетсяС(СтруктураОбъекта.ИспользуемоеИмяФайла, "e1cib\") Тогда
ПутьКФайлуВнешнейОбработкиНаКлиенте = СтруктураОбъекта.ИспользуемоеИмяФайла;
КонецЕсли;
Элементы.СформироватьОтчетОбОшибке.Видимость = Ложь;
КонецПроцедуры
@@ -65,12 +71,19 @@
Процедура ПриОткрытии(Отказ)
#Если ВебКлиент Тогда
Если ЗначениеЗаполнено(ПутьКФайлуВнешнейОбработкиНаКлиенте) Тогда
ТекстОшибки = НСтр("ru = 'Для этого действия требуется запустить клиентское приложение'");
ТекстОшибки = НСтр("ru = 'Для выполнения действия требуется запустить клиентское приложение.'");
ВызватьИсключение ТекстОшибки;
КонецЕсли;
#КонецЕсли
КонецПроцедуры
&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
ОтправитьОтчетОбОшибке();
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
@@ -175,6 +188,27 @@
Элементы.РеквизитыСтрокаПоиска.Видимость = (ТекущаяСтраница = Элементы.Реквизиты);
КонецПроцедуры
&НаКлиенте
Процедура СформироватьОтчетОбОшибкеНажатие(Элемент)
Если Не ВерсияБСПСоответствуетТребованиям Тогда
Возврат;
КонецЕсли;
МодульСтандартныеПодсистемыКлиент = ОбщийМодуль("СтандартныеПодсистемыКлиент");
ТекущиеДанные = Элементы.ОбъектыКоторыеНеУдалосьИзменить.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ОтчетОбОшибке = СведенияОбОшибке(ТекущиеДанные.Объект).ОтчетОбОшибке;
Если ОтчетОбОшибке <> Неопределено Тогда
МодульСтандартныеПодсистемыКлиент.ПоказатьОтчетОбОшибке(ОтчетОбОшибке);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыКомпоновщикНастроекНастройкиОтбор
@@ -197,17 +231,52 @@
&НаКлиенте
Процедура ОбъектыКоторыеНеУдалосьИзменитьПередНачаломИзменения(Элемент, Отказ)
Отказ = Истина;
Если ТипЗнч(Элемент.ТекущиеДанные.Объект) <> Тип("Строка") Тогда
Если ТипЗнч(Элемент.ТекущиеДанные.Объект) <> Тип("Строка")
И Элемент.ТекущийЭлемент = Элементы.ОбъектыКоторыеНеУдалосьИзменитьОбъект Тогда
Отказ = Истина;
ПоказатьЗначение(, Элемент.ТекущиеДанные.Объект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбъектыКоторыеНеУдалосьИзменитьПриАктивизацииСтроки(Элемент)
Если Элемент.ТекущиеДанные <> Неопределено Тогда
Если Элемент.ТекущиеДанные = Неопределено Тогда
Причина = "";
Иначе
Причина = Элемент.ТекущиеДанные.Причина;
КонецЕсли;
НастроитьВидимостьИЗаголовокСсылкиОтправкиОтчетаОбОшибке();
КонецПроцедуры
&НаКлиенте
Процедура НастроитьВидимостьИЗаголовокСсылкиОтправкиОтчетаОбОшибке()
Если Не ВерсияБСПСоответствуетТребованиям Тогда
Возврат;
КонецЕсли;
МодульСтандартныеПодсистемыКлиент = ОбщийМодуль("СтандартныеПодсистемыКлиент");
Элементы.СформироватьОтчетОбОшибке.Видимость = Ложь;
Если Элементы.Страницы.ТекущаяСтраница <> Элементы.ИзменениеОбъектов
Или Не Элементы.ГруппаОбъектыКоторыеНеУдалосьИзменить.Видимость Тогда
Возврат;
КонецЕсли;
ТекущиеДанные = Элементы.ОбъектыКоторыеНеУдалосьИзменить.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ИнформацияОбОшибке = СведенияОбОшибке(ТекущиеДанные.Объект).ИнформацияОбОшибке;
Если ИнформацияОбОшибке <> Неопределено Тогда
МодульСтандартныеПодсистемыКлиент.НастроитьВидимостьИЗаголовокСсылкиОтправкиОтчетаОбОшибке(
Элементы.СформироватьОтчетОбОшибке, ИнформацияОбОшибке);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -254,7 +323,8 @@
Результат = Ложь;
Для Индекс = 0 По РеквизитыОбъекта.Количество() - 1 Цикл
ОписаниеРеквизита = РеквизитыОбъекта[Индекс];
Если ОписаниеРеквизита.Изменять И ТипЗнч(ОписаниеРеквизита.Значение) = Тип("Строка") И СтрНачинаетсяС(ОписаниеРеквизита.Значение, "=") Тогда
Если ОписаниеРеквизита.Изменять И ТипЗнч(ОписаниеРеквизита.Значение) = Тип("Строка")
И СтрНачинаетсяС(ОписаниеРеквизита.Значение, "=") Тогда
ТекстОшибки = "";
Если ЕстьОшибкаВВыражении(ОписаниеРеквизита.Значение, ТекстОшибки) Тогда
Результат = Истина;
@@ -275,6 +345,7 @@
&НаКлиенте
Процедура Изменить(Команда)
ОтправитьОтчетОбОшибке();
Если Объект.ТипОперации = "ВыполнитьАлгоритм" Тогда
ПраваВыполненияКода = ДоступныеПраваВыполнениеКода();
@@ -318,7 +389,7 @@
Если НазначениеКнопки = "Изменить" Тогда
Если Не ЕстьВыбранныеОбъекты() Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Не указаны элементы для изменения'"));
ПоказатьПредупреждение(, НСтр("ru = 'Не указаны элементы для изменения.'"));
Возврат;
КонецЕсли;
@@ -346,6 +417,7 @@
&НаКлиенте
Процедура Назад(Команда)
ОтправитьОтчетОбОшибке();
НазадСервер();
КонецПроцедуры
@@ -582,7 +654,7 @@
КонецЕсли;
Если Не ЕстьНастроенныеИзменения() И Объект.ТипОперации = "ВвестиЗначения" Тогда
ТекстВопроса = НСтр("ru = 'Изменения не настроены. Выполнить перезапись элементов без изменений?'");
ТекстВопроса = НСтр("ru = 'Изменения не заданы. Выполнить перезапись элементов без внесения изменений?'");
ОписаниеОповещения = Новый ОписаниеОповещения("ВыполнитьИзменениеПроверкиВыполнены", ЭтотОбъект);
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ОКОтмена, , , НСтр("ru = 'Изменение элементов'"));
Иначе
@@ -667,6 +739,7 @@
УстановитьКнопкиНаВремяИзменения(Истина);
ПерейтиНаСтраницуИзмененияОбъектов();
ОбъектыКоторыеНеУдалосьИзменить.Очистить();
СведенияОбОшибках = Неопределено;
ПодключитьОбработчикОжидания("ИзменитьОбъекты", 0.1, Истина);
@@ -1019,7 +1092,8 @@
ТекущееСостояниеИзменения = Новый Структура;
КоличествоОбъектовДляОбработки = КоличествоВыбранныхОбъектов(Истина, Истина);
ПоказатьОповещениеПользователя(НСтр("ru = 'Изменение выделенных элементов'"), ,НСтр("ru = 'Пожалуйста подождите, обработка может занять некоторое время...'"));
ПоказатьОповещениеПользователя(НСтр("ru = 'Изменение выделенных элементов'"),,
НСтр("ru = 'Пожалуйста подождите, обработка может занять некоторое время...'"));
ПоказыватьПроцентОбработанных = Ложь;
ТекущееСостояниеИзменения.Вставить("ЕстьЭлементыДляОбработки", Истина);
@@ -1093,9 +1167,7 @@
Если Результат.Статус <> "Выполнено" Тогда
НазадСервер();
МодульСтандартныеПодсистемыКлиент = ОбщийМодуль("СтандартныеПодсистемыКлиент");
МодульСтандартныеПодсистемыКлиент.ВывестиИнформациюОбОшибке(
Результат.ИнформацияОбОшибке);
ВывестиИнформациюОбОшибке(Результат.ИнформацияОбОшибке);
Возврат;
КонецЕсли;
@@ -1112,9 +1184,7 @@
РезультатВыполненияПорции = РезультатИзменения.Значение;
Если РезультатВыполненияПорции.Статус = СтатусОшибка Тогда
МодульСтандартныеПодсистемыКлиент = ОбщийМодуль("СтандартныеПодсистемыКлиент");
МодульСтандартныеПодсистемыКлиент.ВывестиИнформациюОбОшибке(
РезультатВыполненияПорции.ИнформацияОбОшибке);
ВывестиИнформациюОбОшибке(РезультатВыполненияПорции.ИнформацияОбОшибке);
Иначе
РезультатИзмененияПорции = ПолучитьИзВременногоХранилища(РезультатВыполненияПорции.АдресРезультата);
Если ТипЗнч(РезультатИзмененияПорции) <> Тип("Структура") Тогда
@@ -1138,7 +1208,6 @@
КонецЕсли;
Пока ПродолжитьОбработку Цикл
// Переносим информацию по обработанным объектам в таблицу.
ЗаполнитьСостояниеОбработанных(РезультатИзменения, КоличествоОшибок, КоличествоИзмененных);
ТекущееСостояниеИзменения.КоличествоОшибок = КоличествоОшибок + ТекущееСостояниеИзменения.КоличествоОшибок;
@@ -1161,8 +1230,10 @@
Кнопки.Добавить(КодВозвратаДиалога.Пропустить, НСтр("ru = 'Продолжить'"));
Кнопки.Добавить(КодВозвратаДиалога.Нет, НСтр("ru = 'Больше не спрашивать'"));
ОписаниеОповещения = Новый ОписаниеОповещения("ОбработатьРезультатИзмененияОтветПолучен", ЭтотОбъект, РезультатИзменения);
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки, , КодВозвратаДиалога.Прервать, НСтр("ru = 'Ошибки при изменении элементов'"));
ОписаниеОповещения = Новый ОписаниеОповещения("ОбработатьРезультатИзмененияОтветПолучен",
ЭтотОбъект, РезультатИзменения);
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки, , КодВозвратаДиалога.Прервать,
НСтр("ru = 'Ошибки при изменении элементов'"));
Возврат;
КонецЦикла;
@@ -1432,9 +1503,19 @@
Если Не ПустаяСтрока(СостояниеОбработанногоОбъекта.Значение.КодОшибки) Тогда
КоличествоОшибок = КоличествоОшибок + 1;
ИнформацияОбОшибке = СостояниеОбработанногоОбъекта.Значение.СообщениеОбОшибке;
ОтчетОбОшибке = Новый ОтчетОбОшибке(ИнформацияОбОшибке);
СведенияОбОшибке = СведенияОбОшибке();
СведенияОбОшибке.ОтчетОбОшибке = ОтчетОбОшибке;
СведенияОбОшибке.ИнформацияОбОшибке = ИнформацияОбОшибке;
СведенияОбОшибках().Вставить(СостояниеОбработанногоОбъекта.Ключ, СведенияОбОшибке);
ЗаписьОбОшибке = ОбъектыКоторыеНеУдалосьИзменить.Добавить();
ЗаписьОбОшибке.Объект = СостояниеОбработанногоОбъекта.Ключ;
ЗаписьОбОшибке.Причина = СостояниеОбработанногоОбъекта.Значение.СообщениеОбОшибке;
ЗаписьОбОшибке.Причина = ОбработкаОшибок.СообщениеОбОшибкеДляПользователя(ИнформацияОбОшибке);
Иначе
КоличествоИзмененных = КоличествоИзмененных + 1;
КонецЕсли;
@@ -1530,7 +1611,6 @@
ВыбранныеОбъекты = ВыбранныеОбъекты();
Ссылки = ВыбранныеОбъекты.Строки.ВыгрузитьКолонку("Ссылка");
Возврат ПоместитьВоВременноеХранилище(Ссылки, УникальныйИдентификатор);
КонецФункции
@@ -1539,13 +1619,8 @@
Функция ОбъектМетаданныхИерархический(СсылкаПервого)
ВидОбъектаПоСсылке = ВидОбъектаПоСсылке(СсылкаПервого);
Если ((ВидОбъектаПоСсылке = "Справочник" ИЛИ ВидОбъектаПоСсылке = "ПланВидовХарактеристик") И СсылкаПервого.Метаданные().Иерархический)
ИЛИ (ВидОбъектаПоСсылке = "ПланСчетов") Тогда
Возврат Истина;
КонецЕсли;
Возврат Ложь;
Возврат ((ВидОбъектаПоСсылке = "Справочник" Или ВидОбъектаПоСсылке = "ПланВидовХарактеристик") И СсылкаПервого.Метаданные().Иерархический)
Или (ВидОбъектаПоСсылке = "ПланСчетов");
КонецФункции
@@ -1553,7 +1628,6 @@
Функция ИерархияГруппИЭлементов(СсылкаПервого)
ВидОбъектаПоСсылке = ВидОбъектаПоСсылке(СсылкаПервого);
Возврат (ВидОбъектаПоСсылке = "Справочник" И СсылкаПервого.Метаданные().Иерархический
И СсылкаПервого.Метаданные().ВидИерархии = Метаданные.СвойстваОбъектов.ВидИерархии.ИерархияГруппИЭлементов)
Или (ВидОбъектаПоСсылке = "ПланВидовХарактеристик" И СсылкаПервого.Метаданные().Иерархический);
@@ -1599,16 +1673,15 @@
КонецФункции
// Параметры:
// НастройкиОтбора - Неопределено
// - Структура:
// * ОграничитьВыборку - Булево
// * ВключитьТабличныеЧастиВВыборку - Булево
// * ОбновитьСписок - Булево
// НастройкиОтбора - Структура:
// * ОграничитьВыборку - Булево
// * ВключитьТабличныеЧастиВВыборку - Булево
// * ОбновитьСписок - Булево
// ТекстСообщенияОбОшибке - Строка
//
// Возвращаемое значение:
// ДеревоЗначений:
// * Ссылка - ЛюбаяСсылка
// * Ссылка - ЛюбаяСсылка
//
&НаСервере
Функция ВыбранныеОбъекты(НастройкиОтбора = Неопределено, ТекстСообщенияОбОшибке = "")
@@ -1802,7 +1875,8 @@
ОбъектОбработка = РеквизитФормыВЗначение("Объект");
ТекстЗапроса = ОбъектОбработка.ТекстЗапроса(ВидыИзменяемыхОбъектов);
СхемаКомпоновкиДанных = СхемаКомпоновкиДанных(ТекстЗапроса);
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(ПоместитьВоВременноеХранилище(СхемаКомпоновкиДанных, УникальныйИдентификатор)));
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(
ПоместитьВоВременноеХранилище(СхемаКомпоновкиДанных, УникальныйИдентификатор)));
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
Если ВыбранныеОбъектыВКонтексте.Количество() > 0 Тогда
@@ -1870,18 +1944,21 @@
ОчиститьСведенияОбОбъекте();
ЗаблокированныеРеквизиты = ЗаблокированныеРеквизиты();
НередактируемыеРеквизиты = НередактируемыеРеквизиты();
ФильтруемыеРеквизиты = ФильтруемыеРеквизиты();
СведенияОРеквизитах = Новый Структура;
СведенияОРеквизитах.Вставить("НередактируемыеРеквизиты", НередактируемыеРеквизиты());
СведенияОРеквизитах.Вставить("ФильтруемыеРеквизиты", ФильтруемыеРеквизиты());
СведенияОРеквизитах.Вставить("ЗаблокированныеРеквизиты", ЗаблокированныеРеквизиты());
СведенияОРеквизитах.Вставить("ИсключаемыеТипыРеквизитов", ИсключаемыеТипыРеквизитов());
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
ОбщиеРеквизитыОбъектов = ОбработкаОбъект.ОбщиеРеквизитыОбъектов(ВидыИзменяемыхОбъектов);
ЗаполнитьРеквизитыОбъекта(ЗаблокированныеРеквизиты, НередактируемыеРеквизиты, ФильтруемыеРеквизиты, ОбщиеРеквизитыОбъектов.Реквизиты);
ЗаполнитьТабличныеЧастиОбъектов(ЗаблокированныеРеквизиты, НередактируемыеРеквизиты, ФильтруемыеРеквизиты, ОбщиеРеквизитыОбъектов.ТабличныеЧасти);
ЗаполнитьРеквизитыОбъекта(СведенияОРеквизитах, ОбщиеРеквизитыОбъектов.Реквизиты);
ЗаполнитьТабличныеЧастиОбъектов(СведенияОРеквизитах, ОбщиеРеквизитыОбъектов.ТабличныеЧасти);
СформироватьПояснениеПоАвтонумерации();
УстановитьУсловноеОформление();
КонецПроцедуры
&НаСервере
@@ -1937,7 +2014,7 @@
Результат = Новый Массив;
Для Каждого ВидОбъектов Из СтрРазделить(ВидыИзменяемыхОбъектов, ",", Ложь) Цикл
Если ВерсияБСПСоответствуетТребованиям() Тогда
Если ВерсияБСПСоответствуетТребованиям Тогда
Для Каждого Реквизит Из БлокируемыеРеквизитыОбъекта(ВидОбъектов) Цикл
Если Результат.Найти(Реквизит) = Неопределено Тогда
Результат.Добавить(Реквизит);
@@ -1985,55 +2062,56 @@
Для Каждого ВидИзменяемыхОбъектов Из СтрРазделить(ВидыИзменяемыхОбъектов, ",", Ложь) Цикл
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ВидИзменяемыхОбъектов);
НастройкиРедактированияРеквизитов = ОбработкаОбъект.НастройкиРедактированияРеквизитов(ОбъектМетаданных);
Редактируемые = НастройкиРедактированияРеквизитов.Редактируемые;
НеРедактируемые = НастройкиРедактированияРеквизитов.НеРедактируемые;
РедактируемыеРеквизиты = НастройкиРедактированияРеквизитов.Редактируемые;
НередактируемыеРеквизиты = НастройкиРедактированияРеквизитов.НеРедактируемые;
Если ЗначениеЗаполнено(НеРедактируемые) Тогда
Если НеРедактируемые.Найти("*") = Неопределено Тогда
Для Каждого ИмяРеквизита Из НеРедактируемые Цикл
Если ЗначениеЗаполнено(НередактируемыеРеквизиты) Тогда
Если НередактируемыеРеквизиты.Найти("*") = Неопределено Тогда
Для Каждого ИмяРеквизита Из НередактируемыеРеквизиты Цикл
ИменаРеквизитов.Вставить(ИмяРеквизита);
КонецЦикла;
Продолжить;
Иначе
Редактируемые = Новый Массив;
РедактируемыеРеквизиты = Новый Массив;
КонецЕсли;
Иначе
Если Редактируемые = Неопределено Или ТипЗнч(Редактируемые) = Тип("Массив") И Редактируемые.Найти("*") <> Неопределено Тогда
Если РедактируемыеРеквизиты = Неопределено
Или ТипЗнч(РедактируемыеРеквизиты) = Тип("Массив") И РедактируемыеРеквизиты.Найти("*") <> Неопределено Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
НеРедактируемые = Новый Массив;
НередактируемыеРеквизиты = Новый Массив;
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ВидИзменяемыхОбъектов);
ОписаниеСтандартныхРеквизитов = ОбъектМетаданных.СтандартныеРеквизиты;// массив из ОписаниеСтандартногоРеквизита
ОписаниеСтандартныхРеквизитов = ОбъектМетаданных.СтандартныеРеквизиты; // Массив из ОписаниеСтандартногоРеквизита
Для Каждого ОписаниеРеквизита Из ОписаниеСтандартныхРеквизитов Цикл
НеРедактируемые.Добавить(ОписаниеРеквизита.Имя);
НередактируемыеРеквизиты.Добавить(ОписаниеРеквизита.Имя);
КонецЦикла;
ОписаниеРеквизитов = ОбъектМетаданных.Реквизиты;// массив из ОбъектМетаданныхРеквизит
ОписаниеРеквизитов = ОбъектМетаданных.Реквизиты; // Массив из ОбъектМетаданныхРеквизит
Для Каждого ОписаниеРеквизита Из ОписаниеРеквизитов Цикл
НеРедактируемые.Добавить(ОписаниеРеквизита.Имя);
НередактируемыеРеквизиты.Добавить(ОписаниеРеквизита.Имя);
КонецЦикла;
Для Каждого ТабличнаяЧасть Из ОбъектМетаданных.ТабличныеЧасти Цикл
Если Редактируемые.Найти(ТабличнаяЧасть.Имя + ".*") <> Неопределено Тогда
Если РедактируемыеРеквизиты.Найти(ТабличнаяЧасть.Имя + ".*") <> Неопределено Тогда
Прервать;
КонецЕсли;
ОписаниеРеквизитовТабличнойЧасти = ТабличнаяЧасть.Реквизиты;// массив из ОбъектМетаданныхРеквизит
ОписаниеРеквизитовТабличнойЧасти = ТабличнаяЧасть.Реквизиты; // Массив из ОбъектМетаданныхРеквизит
Для Каждого Реквизит Из ОписаниеРеквизитовТабличнойЧасти Цикл
НеРедактируемые.Добавить(ТабличнаяЧасть.Имя + "." + Реквизит.Имя);
НередактируемыеРеквизиты.Добавить(ТабличнаяЧасть.Имя + "." + Реквизит.Имя);
КонецЦикла;
КонецЦикла;
Для Каждого ИмяРедактируемого Из Редактируемые Цикл
Индекс = НеРедактируемые.Найти(ИмяРедактируемого);
Для Каждого ИмяРеквизита Из РедактируемыеРеквизиты Цикл
Индекс = НередактируемыеРеквизиты.Найти(ИмяРеквизита);
Если Индекс = Неопределено Тогда
Продолжить;
КонецЕсли;
НеРедактируемые.Удалить(Индекс);
НередактируемыеРеквизиты.Удалить(Индекс);
КонецЦикла;
Для Каждого ИмяРеквизита Из НеРедактируемые Цикл
Для Каждого ИмяРеквизита Из НередактируемыеРеквизиты Цикл
ИменаРеквизитов.Вставить(ИмяРеквизита);
КонецЦикла;
КонецЦикла;
@@ -2062,24 +2140,24 @@
ЗакрытыеФункциональнымиОпциями = Новый Соответствие;
ОписаниеРеквизитов = ОбъектМетаданных.Реквизиты;// массив из ОбъектМетаданныхРеквизит
ОписаниеРеквизитов = ОбъектМетаданных.Реквизиты; // Массив из ОбъектМетаданныхРеквизит
Для Каждого Реквизит Из ОписаниеРеквизитов Цикл
Если ДоступностьОбъектов[Реквизит] = Ложь Тогда
ЗакрытыеФункциональнымиОпциями.Вставить(Реквизит.Имя, Истина);
КонецЕсли;
КонецЦикла;
ОписаниеТабличныхЧастей = ОбъектМетаданных.ТабличныеЧасти;// массив из ОбъектМетаданныхТабличнаяЧасть
ОписаниеТабличныхЧастей = ОбъектМетаданных.ТабличныеЧасти; // Массив из ОбъектМетаданныхТабличнаяЧасть
Для Каждого ТабличнаяЧасть Из ОписаниеТабличныхЧастей Цикл
Если ДоступностьОбъектов[ТабличнаяЧасть] = Ложь Тогда
ЗакрытыеФункциональнымиОпциями.Вставить(ТабличнаяЧасть.Имя + ".*", Истина);
Иначе
Для Каждого Реквизит Из ТабличнаяЧасть.Реквизиты Цикл
Если ДоступностьОбъектов[Реквизит] = Ложь Тогда
ЗакрытыеФункциональнымиОпциями.Вставить(ТабличнаяЧасть.Имя + "." + Реквизит.Имя, Истина);
КонецЕсли;
КонецЦикла;
Продолжить;
КонецЕсли;
Для Каждого Реквизит Из ТабличнаяЧасть.Реквизиты Цикл
Если ДоступностьОбъектов[Реквизит] = Ложь Тогда
ЗакрытыеФункциональнымиОпциями.Вставить(ТабличнаяЧасть.Имя + "." + Реквизит.Имя, Истина);
КонецЕсли;
КонецЦикла;
КонецЦикла;
Для Каждого РеквизитЗакрытыйФункциональнымиОпциями Из ЗакрытыеФункциональнымиОпциями Цикл
@@ -2098,20 +2176,43 @@
КонецФункции
&НаСервере
Процедура ЗаполнитьТабличныеЧастиОбъектов(ЗаблокированныеРеквизиты, НередактируемыеРеквизиты, ФильтруемыеРеквизиты, ДоступныеТабличныеЧасти)
Функция ИсключаемыеТипыРеквизитов()
Результат = Неопределено;
СписокВидовИзменяемыхОбъектов = СтрРазделить(ВидыИзменяемыхОбъектов, ",", Ложь);
Если СписокВидовИзменяемыхОбъектов.Количество() = 0 Тогда
Возврат Результат;
КонецЕсли;
Если ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиСлужебный = ОбщийМодуль("РаботаСФайламиСлужебный");
ИмяОбъекта = СписокВидовИзменяемыхОбъектов[0];
Результат = Новый Соответствие;
Для каждого ИмяСправочника Из МодульРаботаСФайламиСлужебный.ИменаСправочниковХраненияФайлов(
МенеджерОбъектаПоПолномуИмени(ИмяОбъекта).ПустаяСсылка(), Истина) Цикл
Результат[Тип("СправочникСсылка." + ИмяСправочника.Ключ)] = Истина;
КонецЦикла;
КонецЕсли;
Возврат Результат;
КонецФункции
&НаСервере
Процедура ЗаполнитьТабличныеЧастиОбъектов(СведенияОРеквизитах, ДоступныеТабличныеЧасти)
СписокВидовИзменяемыхОбъектов = СтрРазделить(ВидыИзменяемыхОбъектов, ",", Ложь);
Если СписокВидовИзменяемыхОбъектов.Количество() = 0 Тогда
Возврат;
КонецЕсли;
ИмяОбъекта = СписокВидовИзменяемыхОбъектов[0];
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ИмяОбъекта);
// Создание реквизитов для табличных частей.
НовыеРеквизитыФормы = Новый Массив;
КолонкиТаблиц = ОписанияКолонокТаблицыРеквизитов();
ТаблицыОбъекта = Новый Структура;
ТабличныеЧастиОбъекта.Очистить();
Для Каждого ОписаниеТабличнойЧасти Из ОбъектМетаданных.ТабличныеЧасти Цикл
Если Не ДоступныеТабличныеЧасти.Свойство(ОписаниеТабличнойЧасти.Имя) Тогда
Продолжить;
@@ -2120,17 +2221,16 @@
Если Не ПравоДоступа("Редактирование", ОписаниеТабличнойЧасти) Тогда
Продолжить;
КонецЕсли;
// фильтры табличных частей
Если НередактируемыеРеквизиты.Найти(ОписаниеТабличнойЧасти.Имя + ".*") <> Неопределено Тогда
Если СведенияОРеквизитах.НередактируемыеРеквизиты.Найти(ОписаниеТабличнойЧасти.Имя + ".*") <> Неопределено Тогда
Продолжить;
КонецЕсли;
Если ФильтруемыеРеквизиты.Найти(ОписаниеТабличнойЧасти.Имя + ".*") <> Неопределено Тогда
Если СведенияОРеквизитах.ФильтруемыеРеквизиты.Найти(ОписаниеТабличнойЧасти.Имя + ".*") <> Неопределено Тогда
Продолжить;
КонецЕсли;
ДоступныеДляИзмененияРеквизиты = ДоступныеДляИзмененияРеквизиты(ОписаниеТабличнойЧасти, НередактируемыеРеквизиты,
ФильтруемыеРеквизиты, ДоступныеТабличныеЧасти[ОписаниеТабличнойЧасти.Имя]);
ДоступныеДляИзмененияРеквизиты = ДоступныеДляИзмененияРеквизиты(ОписаниеТабличнойЧасти, СведенияОРеквизитах,
ДоступныеТабличныеЧасти[ОписаниеТабличнойЧасти.Имя]);
Если ДоступныеДляИзмененияРеквизиты.Количество() = 0 Тогда
Продолжить;
КонецЕсли;
@@ -2157,7 +2257,6 @@
ОписаниеТабличнойЧасти = ТаблицаОбъекта.Значение;
Страница.Заголовок = ОписаниеТабличнойЧасти.Представление();
// Создание элементов для табличных частей.
ТаблицаФормы = Элементы.Добавить(ИмяРеквизита, Тип("ТаблицаФормы"), Страница);
ТаблицаФормы.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
ТаблицаФормы.ПутьКДанным = ИмяРеквизита;
@@ -2192,19 +2291,20 @@
КонецЕсли;
КонецЦикла;
ДоступныеДляИзмененияРеквизиты = ДоступныеДляИзмененияРеквизиты(ОписаниеТабличнойЧасти, НередактируемыеРеквизиты,
ФильтруемыеРеквизиты, ДоступныеТабличныеЧасти[ОписаниеТабличнойЧасти.Имя]);
ДоступныеДляИзмененияРеквизиты = ДоступныеДляИзмененияРеквизиты(ОписаниеТабличнойЧасти, СведенияОРеквизитах,
ДоступныеТабличныеЧасти[ОписаниеТабличнойЧасти.Имя]);
Для Каждого ОписаниеРеквизита Из ДоступныеДляИзмененияРеквизиты Цикл
ДанныеФормыТаблица = ЭтотОбъект[ТаблицаОбъекта.Ключ];// см. ОписанияКолонокТаблицыРеквизитов
ДанныеФормыТаблица = ЭтотОбъект[ТаблицаОбъекта.Ключ]; // см. ОписанияКолонокТаблицыРеквизитов
Реквизит = ДанныеФормыТаблица.Добавить();
Реквизит.Имя = ОписаниеРеквизита.Имя;
Реквизит.Представление = ?(ПустаяСтрока(ОписаниеРеквизита.Представление()), ОписаниеРеквизита.Имя, ОписаниеРеквизита.Представление());
Реквизит.Представление = ?(ПустаяСтрока(ОписаниеРеквизита.Представление()), ОписаниеРеквизита.Имя,
ОписаниеРеквизита.Представление());
Реквизит.ДопустимыеТипы = ОписаниеРеквизита.Тип;
Реквизит.СвязиПараметровВыбора = СвязиПараметровВыбораСтрокой(ОписаниеРеквизита.СвязиПараметровВыбора);
Реквизит.ПараметрыВыбора = ПараметрыВыбораСтрокой(ОписаниеРеквизита.ПараметрыВыбора);
Реквизит.ВидОперации = 1;
Реквизит.ПредставлениеСвязейПараметровВыбора = ПредставлениеСвязейПараметровВыбора(ОписаниеРеквизита.СвязиПараметровВыбора, ОбъектМетаданных);
Реквизит.ПредставлениеСвязейПараметровВыбора = ПредставлениеСвязейПараметровВыбора(
ОписаниеРеквизита.СвязиПараметровВыбора, ОбъектМетаданных);
КонецЦикла;
КонецЦикла;
@@ -2212,15 +2312,15 @@
// Параметры:
// ОписаниеТабличнойЧасти - Структура:
// * Реквизиты - Массив из ОбъектМетаданныхРеквизит
// НередактируемыеРеквизиты - Массив из Строка
// ФильтруемыеРеквизиты - Массив
// * Реквизиты - Массив из ОбъектМетаданныхРеквизит
// СведенияОРеквизитах - Структура
// ДоступныеРеквизиты - Массив
//
// Возвращаемое значение:
// Массив из ОбъектМетаданныхРеквизит
//
&НаСервере
Функция ДоступныеДляИзмененияРеквизиты(ОписаниеТабличнойЧасти, НередактируемыеРеквизиты, ФильтруемыеРеквизиты, ДоступныеРеквизиты)
Функция ДоступныеДляИзмененияРеквизиты(ОписаниеТабличнойЧасти, СведенияОРеквизитах, ДоступныеРеквизиты)
Результат = Новый Массив;
@@ -2232,13 +2332,16 @@
Если Не ПравоДоступа("Редактирование", ОписаниеРеквизита) Тогда
Продолжить;
КонецЕсли;
// Фильтры реквизитов табличных частей.
Если НередактируемыеРеквизиты.Найти(ОписаниеТабличнойЧасти.Имя + "." + ОписаниеРеквизита.Имя) <> Неопределено Тогда
Если СведенияОРеквизитах.НередактируемыеРеквизиты.Найти(ОписаниеТабличнойЧасти.Имя + "." + ОписаниеРеквизита.Имя) <> Неопределено Тогда
Продолжить;
КонецЕсли;
Если ФильтруемыеРеквизиты.Найти(ОписаниеТабличнойЧасти.Имя + "." + ОписаниеРеквизита.Имя) <> Неопределено Тогда
Если СведенияОРеквизитах.ФильтруемыеРеквизиты.Найти(ОписаниеТабличнойЧасти.Имя + "." + ОписаниеРеквизита.Имя) <> Неопределено Тогда
Продолжить;
КонецЕсли;
Если ЭтоИсключаемыйТипРеквизита(ОписаниеРеквизита, СведенияОРеквизитах.ИсключаемыеТипыРеквизитов) Тогда
Продолжить;
КонецЕсли;
Результат.Добавить(ОписаниеРеквизита);
КонецЦикла;
@@ -2247,7 +2350,6 @@
КонецФункции
// Возвращаемое значение:
// ТаблицаЗначений:
// * Имя - Строка
@@ -2255,8 +2357,8 @@
// * Представление - Строка
// * ВидПоля - Строка
// * Действия - Структура:
// ** ПриИзменении - Булево
// ** Подключаемый_ПриИзмененииФлажка - Булево
// ** ПриИзменении - Булево
// ** Подключаемый_ПриИзмененииФлажка - Булево
// * ТолькоПросмотр - Булево
// * Картинка - Картинка
//
@@ -2463,7 +2565,7 @@
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьРеквизитыОбъекта(БлокируемыеРеквизиты, НеРедактируемые, ФильтруемыеРеквизиты, ДоступныеРеквизиты)
Процедура ЗаполнитьРеквизитыОбъекта(СведенияОРеквизитах, ДоступныеРеквизиты)
РеквизитыОбъекта.Очистить();
@@ -2472,20 +2574,11 @@
Возврат;
КонецЕсли;
НаборыРеквизитов = Новый Структура;
НаборыРеквизитов.Вставить("НеРедактируемые", НеРедактируемые);
НаборыРеквизитов.Вставить("Фильтруемые", ФильтруемыеРеквизиты);
НаборыРеквизитов.Вставить("Блокируемые", БлокируемыеРеквизиты);
НаборыРеквизитов.Вставить("Доступные", ДоступныеРеквизиты);
ИмяОбъекта = СписокВидовИзменяемыхОбъектов[0];
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ИмяОбъекта);
НаборыРеквизитов.Вставить("ОписанияРеквизитов", ОбъектМетаданных.СтандартныеРеквизиты);
ДобавитьРеквизитыВНабор(НаборыРеквизитов, ОбъектМетаданных);
НаборыРеквизитов.Вставить("ОписанияРеквизитов", ОбъектМетаданных.Реквизиты);
ДобавитьРеквизитыВНабор(НаборыРеквизитов, ОбъектМетаданных);
ДобавитьРеквизитыВНабор(СведенияОРеквизитах, ОбъектМетаданных, ДоступныеРеквизиты, ОбъектМетаданных.СтандартныеРеквизиты);
ДобавитьРеквизитыВНабор(СведенияОРеквизитах, ОбъектМетаданных, ДоступныеРеквизиты, ОбъектМетаданных.Реквизиты);
РеквизитыОбъекта.Сортировать("Представление Возр");
Если ПодсистемаСуществует("СтандартныеПодсистемы.Свойства") Тогда
@@ -2504,7 +2597,7 @@
КонецЕсли;
КонецЕсли;
ДобавитьВнешниеРеквизитыВНабор(НаборыРеквизитов, СписокВидовИзменяемыхОбъектов);
ДобавитьВнешниеРеквизитыВНабор(СведенияОРеквизитах, СписокВидовИзменяемыхОбъектов);
КонецПроцедуры
@@ -2596,16 +2689,10 @@
КонецФункции
&НаСервере
Процедура ДобавитьРеквизитыВНабор(НаборыРеквизитов, ОбъектМетаданных)
Процедура ДобавитьРеквизитыВНабор(СведенияОРеквизитах, ОбъектМетаданных, ДоступныеРеквизиты, ОписанияРеквизитов)
Реквизиты = НаборыРеквизитов.ОписанияРеквизитов;
НеРедактируемые = НаборыРеквизитов.НеРедактируемые;
ФильтруемыеРеквизиты = НаборыРеквизитов.Фильтруемые;
БлокируемыеРеквизиты = НаборыРеквизитов.Блокируемые;
СписокДоступныхРеквизитов = НаборыРеквизитов.Доступные;
Для Каждого ОписаниеРеквизита Из Реквизиты Цикл
Если СписокДоступныхРеквизитов.Найти(ОписаниеРеквизита.Имя) = Неопределено Тогда
Для Каждого ОписаниеРеквизита Из ОписанияРеквизитов Цикл
Если ДоступныеРеквизиты.Найти(ОписаниеРеквизита.Имя) = Неопределено Тогда
Продолжить;
КонецЕсли;
@@ -2619,13 +2706,15 @@
КонецЕсли;
КонецЕсли;
Если НеРедактируемые.Найти(ОписаниеРеквизита.Имя) <> Неопределено Тогда
Если СведенияОРеквизитах.НередактируемыеРеквизиты.Найти(ОписаниеРеквизита.Имя) <> Неопределено Тогда
Продолжить;
КонецЕсли;
Если ФильтруемыеРеквизиты.Найти(ОписаниеРеквизита.Имя) <> Неопределено Тогда
Если СведенияОРеквизитах.ФильтруемыеРеквизиты.Найти(ОписаниеРеквизита.Имя) <> Неопределено Тогда
Продолжить;
КонецЕсли;
Если ЭтоИсключаемыйТипРеквизита(ОписаниеРеквизита, СведенияОРеквизитах.ИсключаемыеТипыРеквизитов) Тогда
Продолжить;
КонецЕсли;
ВыборГруппИЭлементов = "";
Если ТипЗнч(ОписаниеРеквизита) = Тип("ОписаниеСтандартногоРеквизита") Тогда
@@ -2683,7 +2772,7 @@
РеквизитОбъекта.ВыборГруппИЭлементов = ВыборГруппИЭлементов;
РеквизитОбъекта.ВидОперации = 1;
Если БлокируемыеРеквизиты.Найти(ОписаниеРеквизита.Имя) <> Неопределено Тогда
Если СведенияОРеквизитах.ЗаблокированныеРеквизиты.Найти(ОписаниеРеквизита.Имя) <> Неопределено Тогда
РеквизитОбъекта.ЗаблокированныйРеквизит = Истина;
КонецЕсли;
@@ -2698,7 +2787,7 @@
МодульПользователиСлужебный = ОбщийМодуль("ПользователиСлужебный");
Если МодульПользователиСлужебный = Неопределено
Или Не ВерсияБСППоддерживаетВнешниеРеквизитыПользователей() Тогда
Или Не ВерсияБСПСоответствуетТребованиям Тогда
Возврат;
КонецЕсли;
@@ -2721,6 +2810,24 @@
КонецПроцедуры
&НаСервере
Функция ЭтоИсключаемыйТипРеквизита(ОписаниеРеквизита, ИсключаемыеТипыРеквизитов)
Если ИсключаемыеТипыРеквизитов = Неопределено Тогда
Возврат Ложь;
КонецЕсли;
Результат = Ложь;
Для каждого ТипРеквизита Из ОписаниеРеквизита.Тип.Типы() Цикл
Если ИсключаемыеТипыРеквизитов[ТипРеквизита] = Истина Тогда
Результат = Истина;
Продолжить;
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
&НаСервере
Функция ФильтрРеквизитов()
@@ -2866,8 +2973,6 @@
Возврат Результат;
КонецФункции
// Получает массив реквизитов, редактирование которых не предусмотрено на уровне конфигурации.
//
// Параметры:
// ОбъектМетаданных - ОбъектМетаданных
//
@@ -4276,7 +4381,7 @@
&НаСервере
Функция ПодсистемаСуществует(ПолноеИмяПодсистемы)
Если Не ВерсияБСПСоответствуетТребованиям() Тогда
Если Не ВерсияБСПСоответствуетТребованиям Тогда
Возврат Ложь;
КонецЕсли;
@@ -4599,12 +4704,6 @@
Возврат ОбработкаОбъект.ВерсияБСПСоответствуетТребованиям();
КонецФункции
&НаСервере
Функция ВерсияБСППоддерживаетВнешниеРеквизитыПользователей()
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
Возврат ОбработкаОбъект.ВерсияБСППоддерживаетВнешниеРеквизитыПользователей();
КонецФункции
&НаСервере
Процедура ПроверитьВерсиюИРежимСовместимостиПлатформы()
@@ -4626,7 +4725,7 @@
&НаСервере
Функция КартинкаВидыОпераций()
Если ВерсияБСПСоответствуетТребованиям() Тогда
Если ВерсияБСПСоответствуетТребованиям Тогда
Возврат БиблиотекаКартинок["ВидыОпераций"];
Иначе
Возврат Новый Картинка;
@@ -4727,7 +4826,7 @@
&НаСервере
Функция ЭтоПолноправныйПользователь()
Если ВерсияБСПСоответствуетТребованиям() Тогда
Если ВерсияБСПСоответствуетТребованиям Тогда
МодульПользователи = ОбщийМодуль("Пользователи");
Возврат МодульПользователи.ЭтоПолноправныйПользователь();
КонецЕсли;
@@ -4744,4 +4843,64 @@
ОписаниеОповещения);
КонецПроцедуры
&НаКлиенте
Функция СведенияОбОшибках()
Если СведенияОбОшибках = Неопределено Тогда
СведенияОбОшибках = Новый Соответствие;
КонецЕсли;
Возврат СведенияОбОшибках;
КонецФункции
&НаКлиенте
Функция СведенияОбОшибке(Знач Ключ = Неопределено)
СведенияОбОшибке = Неопределено;
Если Ключ <> Неопределено Тогда
СведенияОбОшибке = СведенияОбОшибках()[Ключ];
КонецЕсли;
Если СведенияОбОшибке = Неопределено Тогда
СведенияОбОшибке = Новый Структура;
СведенияОбОшибке.Вставить("ОтчетОбОшибке");
СведенияОбОшибке.Вставить("ИнформацияОбОшибке");
КонецЕсли;
Возврат СведенияОбОшибке;
КонецФункции
&НаКлиенте
Процедура ОтправитьОтчетОбОшибке()
Если Не ВерсияБСПСоответствуетТребованиям Тогда
Возврат;
КонецЕсли;
МодульСтандартныеПодсистемыКлиент = ОбщийМодуль("СтандартныеПодсистемыКлиент");
Для Каждого Элемент Из СведенияОбОшибках() Цикл
СведенияОбОшибке = Элемент.Значение;
МодульСтандартныеПодсистемыКлиент.ОтправитьОтчетОбОшибке(СведенияОбОшибке.ОтчетОбОшибке, СведенияОбОшибке.ИнформацияОбОшибке);
КонецЦикла;
СведенияОбОшибках = Неопределено;
КонецПроцедуры
&НаКлиенте
Процедура ВывестиИнформациюОбОшибке(ИнформацияОбОшибке)
Если ВерсияБСПСоответствуетТребованиям Тогда
МодульСтандартныеПодсистемыКлиент = ОбщийМодуль("СтандартныеПодсистемыКлиент");
МодульСтандартныеПодсистемыКлиент.ВывестиИнформациюОбОшибке(ИнформацияОбОшибке);
Иначе
ВызватьИсключение ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -755,24 +755,7 @@
КонецЕсли;
ВерсияБСП = МодульСтандартныеПодсистемыСервер.ВерсияБиблиотеки();
Возврат СравнитьВерсии(ВерсияБСП, "3.1.8.240") >= 0;
КонецФункции
Функция ВерсияБСППоддерживаетВнешниеРеквизитыПользователей() Экспорт
Попытка
МодульСтандартныеПодсистемыСервер = ОбщийМодуль("СтандартныеПодсистемыСервер");
Исключение
// Модуль не существует
МодульСтандартныеПодсистемыСервер = Неопределено;
КонецПопытки;
Если МодульСтандартныеПодсистемыСервер = Неопределено Тогда
Возврат Ложь;
КонецЕсли;
ВерсияБСП = МодульСтандартныеПодсистемыСервер.ВерсияБиблиотеки();
Возврат СравнитьВерсии(ВерсияБСП, "3.1.10.32") >= 0;
Возврат СравнитьВерсии(ВерсияБСП, "3.1.10.127") >= 0;
КонецФункции
@@ -1451,7 +1434,7 @@
МодульПользователиСлужебный = ОбщийМодуль("ПользователиСлужебный");
Если МодульПользователиСлужебный = Неопределено
Или Не ВерсияБСППоддерживаетВнешниеРеквизитыПользователей() Тогда
Или Не ВерсияБСПСоответствуетТребованиям() Тогда
МодульПользователиСлужебный = Неопределено;
КонецЕсли;
@@ -1548,8 +1531,7 @@
РазблокироватьДанныеДляРедактирования(Ссылка);
КонецЕсли;
КраткоеПредставлениеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
ЗаполнитьРезультатИзменения(РезультатИзменения, Ссылка, КраткоеПредставлениеОшибки);
ЗаполнитьРезультатИзменения(РезультатИзменения, Ссылка, ИнформацияОбОшибке());
Если НастройкиИзменения.ОстанавливатьИзменениеПриОшибке Или НастройкиИзменения.ИзменятьВТранзакции Тогда
ЗаписатьОшибку = Ложь;
ВызватьИсключение;
Loaded 100 of 213 files, more files were not shown because too many files have changed in this diff. Show more