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 Тогда
НоваяСтрока = НайденныеСтроки[0]; НоваяСтрока = НайденныеСтроки[0];
@@ -271,112 +271,6 @@
<scrollOnCompress>false</scrollOnCompress> <scrollOnCompress>false</scrollOnCompress>
</extInfo> </extInfo>
</items> </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"> <items xsi:type="form:FormGroup">
<name>Выполнено</name> <name>Выполнено</name>
<id>50</id> <id>50</id>
@@ -642,24 +536,6 @@
<common>true</common> <common>true</common>
</edit> </edit>
</attributes> </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> <attributes>
<name>РезультатВыполнения</name> <name>РезультатВыполнения</name>
<title> <title>
@@ -94,11 +94,6 @@
ДлительнаяОперация = НачатьОбновлениеКомпонентСПортала(); ДлительнаяОперация = НачатьОбновлениеКомпонентСПортала();
Если ДлительнаяОперация = Неопределено Тогда
КраткоеПредставлениеОшибки = НСтр("ru = 'Не удалось создать фоновое задание обновления компоненты.'");
Элементы.Страницы.ТекущаяСтраница = Элементы.Ошибка;
КонецЕсли;
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект); ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ПараметрыОжидания.ФормаВладелец = ЭтотОбъект; ПараметрыОжидания.ФормаВладелец = ЭтотОбъект;
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь; ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
@@ -137,10 +132,6 @@
&НаСервере &НаСервере
Функция НачатьОбновлениеКомпонентСПортала() Функция НачатьОбновлениеКомпонентСПортала()
Если Не ВнешниеКомпонентыСлужебный.ДоступнаЗагрузкаСПортала() Тогда
Возврат Неопределено;
КонецЕсли;
ПараметрыПроцедуры = ВнешниеКомпонентыСлужебный.ПараметрыОбновленияКомпонентСПортала(); ПараметрыПроцедуры = ВнешниеКомпонентыСлужебный.ПараметрыОбновленияКомпонентСПортала();
ПараметрыПроцедуры.ОбновляемыеКомпоненты = ОбновляемыеКомпоненты.ВыгрузитьЗначения(); ПараметрыПроцедуры.ОбновляемыеКомпоненты = ОбновляемыеКомпоненты.ВыгрузитьЗначения();
@@ -159,6 +150,9 @@
&НаКлиенте &НаКлиенте
Процедура ПослеОбновленияКомпонентСПортала(Результат, ДополнительныеПараметры) Экспорт Процедура ПослеОбновленияКомпонентСПортала(Результат, ДополнительныеПараметры) Экспорт
Элементы.Загрузить.Доступность = Истина;
Элементы.Страницы.ТекущаяСтраница = Элементы.Начальная;
Если Результат = Неопределено Тогда Если Результат = Неопределено Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -277,112 +277,6 @@
<scrollOnCompress>false</scrollOnCompress> <scrollOnCompress>false</scrollOnCompress>
</extInfo> </extInfo>
</items> </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> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
@@ -516,24 +410,6 @@
<common>true</common> <common>true</common>
</edit> </edit>
</attributes> </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> <formCommands>
<name>ПодключитьИнтернетПоддержку</name> <name>ПодключитьИнтернетПоддержку</name>
<title> <title>
@@ -68,11 +68,6 @@
ДлительнаяОперация = НачатьПолучениеКомпонентыСПортала(Параметры.Идентификатор, Параметры.Версия, Параметры.ОбновлятьАвтоматически); ДлительнаяОперация = НачатьПолучениеКомпонентыСПортала(Параметры.Идентификатор, Параметры.Версия, Параметры.ОбновлятьАвтоматически);
Если ДлительнаяОперация = Неопределено Тогда
КраткоеПредставлениеОшибки = НСтр("ru = 'Не удалось создать фоновое задание обновления компоненты.'");
Элементы.Страницы.ТекущаяСтраница = Элементы.Ошибка;
КонецЕсли;
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект); ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ПараметрыОжидания.ФормаВладелец = ЭтотОбъект; ПараметрыОжидания.ФормаВладелец = ЭтотОбъект;
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь; ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
@@ -111,10 +106,6 @@
&НаСервере &НаСервере
Функция НачатьПолучениеКомпонентыСПортала(Знач Идентификатор, Знач Версия, Знач ОбновлятьАвтоматически) Функция НачатьПолучениеКомпонентыСПортала(Знач Идентификатор, Знач Версия, Знач ОбновлятьАвтоматически)
Если Не ВнешниеКомпонентыСлужебный.ДоступнаЗагрузкаСПортала() Тогда
Возврат Неопределено;
КонецЕсли;
ПараметрыПроцедуры = ВнешниеКомпонентыСлужебный.ПараметрыКомпонентаСПортала(); ПараметрыПроцедуры = ВнешниеКомпонентыСлужебный.ПараметрыКомпонентаСПортала();
ПараметрыПроцедуры.Идентификатор = Идентификатор; ПараметрыПроцедуры.Идентификатор = Идентификатор;
ПараметрыПроцедуры.Версия = Версия; ПараметрыПроцедуры.Версия = Версия;
@@ -135,6 +126,9 @@
&НаКлиенте &НаКлиенте
Процедура ПослеПолученияКомпонентыСПортала(Результат, ДополнительныеПараметры) Экспорт Процедура ПослеПолученияКомпонентыСПортала(Результат, ДополнительныеПараметры) Экспорт
Элементы.Загрузить.Доступность = Истина;
Элементы.Страницы.ТекущаяСтраница = Элементы.Начальная;
Если Результат = Неопределено Тогда Если Результат = Неопределено Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -134,6 +134,37 @@
<importance>Normal</importance> <importance>Normal</importance>
</extInfo> </extInfo>
</items> </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"> <items xsi:type="form:FormGroup">
<name>ГруппаКомпактная</name> <name>ГруппаКомпактная</name>
<id>233</id> <id>233</id>
@@ -3234,6 +3265,24 @@
<currentRowUse>Auto</currentRowUse> <currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse> <selectedRowsUse>Auto</selectedRowsUse>
</formCommands> </formCommands>
<formCommands>
<name>ОбновитьКлассификаторыПолномочий</name>
<title>
<key>ru</key>
<value>Обновить классификаторы полномочий</value>
</title>
<id>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> <parameters>
<name>ТолькоПросмотр</name> <name>ТолькоПросмотр</name>
<valueType> <valueType>
@@ -15,6 +15,7 @@
Элементы.ГруппаВидПолномочий.ТолькоПросмотр = Параметры.ТолькоПросмотр; Элементы.ГруппаВидПолномочий.ТолькоПросмотр = Параметры.ТолькоПросмотр;
Элементы.ВыбратьИзКлассификатора.Видимость = Не Параметры.ТолькоПросмотр; Элементы.ВыбратьИзКлассификатора.Видимость = Не Параметры.ТолькоПросмотр;
Элементы.ОбновитьКлассификаторыПолномочий.Видимость = Не ОбщегоНазначения.РазделениеВключено();
РежимКлассификатора = Параметры.РежимКлассификатора; РежимКлассификатора = Параметры.РежимКлассификатора;
@@ -310,6 +311,16 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ОбновитьКлассификаторыПолномочий(Команда)
ОбновитьКлассификаторыПолномочийНаСервере();
ОбновитьПовторноИспользуемыеЗначения();
ОбновитьСписокПолномочий();
ПоказатьПредупреждение(, НСтр("ru = 'Обновление классификаторов полномочий выполнено.'"));
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
@@ -828,4 +839,26 @@
КонецПроцедуры КонецПроцедуры
&НаСервереБезКонтекста
Процедура ОбновитьКлассификаторыПолномочийНаСервере()
РегистрыСведений.КлассификаторыМЧД.ОбновитьКлассификаторы();
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьСписокПолномочий()
КодыПолномочий = Новый Массив;
Для Каждого Полномочие Из ВыбранныеПолномочияТаблица Цикл
Если ЗначениеЗаполнено(Полномочие.Код) И Не Полномочие.НетВКлассификаторе Тогда
КодыПолномочий.Добавить(Полномочие.Код);
КонецЕсли;
КонецЦикла;
СформироватьДеревоПолномочий(ПоместитьВоВременноеХранилище(КодыПолномочий));
КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -813,6 +813,10 @@
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>ДатаВыдачи</name> <name>ДатаВыдачи</name>
<id>22</id> <id>22</id>
<title>
<key>ru</key>
<value>С</value>
</title>
<visible>true</visible> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
@@ -842,8 +846,13 @@
<headerHorizontalAlign>Left</headerHorizontalAlign> <headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter> <showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo"> <extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth> <width>7</width>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>false</horizontalStretch>
<format>
<key>ru</key>
<value>ДФ=dd.MM.yyyy</value>
</format>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
@@ -851,7 +860,7 @@
<id>25</id> <id>25</id>
<title> <title>
<key>ru</key> <key>ru</key>
<value>Дата окончания</value> <value>По</value>
</title> </title>
<visible>true</visible> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
@@ -882,8 +891,13 @@
<headerHorizontalAlign>Left</headerHorizontalAlign> <headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter> <showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo"> <extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth> <width>7</width>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>false</horizontalStretch>
<format>
<key>ru</key>
<value>ДФ=dd.MM.yyyy</value>
</format>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
@@ -244,7 +244,7 @@
Кнопки.Добавить("Отменить", НСтр("ru = 'Отменить загрузку'")); Кнопки.Добавить("Отменить", НСтр("ru = 'Отменить загрузку'"));
Кнопки.Добавить("ПоказатьОшибку", НСтр("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='Организация:'")); НСтр("ru='Физическое лицо:'"), НСтр("ru='Организация:'"));
@@ -1696,8 +1696,8 @@
Объект.СовместныеПолномочия = ПризнакСовместногоОсуществленияПолномочий = "2"; Объект.СовместныеПолномочия = ПризнакСовместногоОсуществленияПолномочий = "2";
Если ТипПолномочия = "0" Тогда Если ТипПолномочия = "0" Тогда
Полномочие = Объект.Полномочия.Добавить(); Объект.ПолномочияВТекстовомВиде = Истина;
Полномочие.Наименование = ТекстовоеСодержаниеПолномочия; Объект.ТекстПолномочий = ТекстовоеСодержаниеПолномочия;
ИначеЕсли ТипПолномочия = "1" Тогда ИначеЕсли ТипПолномочия = "1" Тогда
Для Каждого СведенияОМашиночитаемомПолномочии Из СведенияОМашиночитаемыхПолномочиях Цикл Для Каждого СведенияОМашиночитаемомПолномочии Из СведенияОМашиночитаемыхПолномочиях Цикл
КодПолномочия = СведенияОМашиночитаемомПолномочии.КодПолн; КодПолномочия = СведенияОМашиночитаемомПолномочии.КодПолн;
@@ -583,12 +583,21 @@
<headerHorizontalAlign>Left</headerHorizontalAlign> <headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter> <showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo"> <extInfo xsi:type="form:InputFieldExtInfo">
<handlers>
<event>AutoComplete</event>
<name>НаименованиеАвтоПодбор</name>
</handlers>
<handlers>
<event>ChoiceProcessing</event>
<name>НаименованиеОбработкаВыбора</name>
</handlers>
<width>22</width> <width>22</width>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<chooseType>true</chooseType> <chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled> <typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit> <textEdit>true</textEdit>
<editTextUpdate>OnValueChange</editTextUpdate>
<borderColor xsi:type="core:ColorRef"> <borderColor xsi:type="core:ColorRef">
<color>Style.BorderColor</color> <color>Style.BorderColor</color>
</borderColor> </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 НСтр("ru = 'В описании папки профилей ""%1"" в свойстве %2
|указано несуществующее имя папки профилей ""%3"".'"), |указано несуществующее имя папки профилей ""%3"".'"),
НСтр("ru = 'В описании профиля ""%1"" в свойстве %2 НСтр("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/> <valueType/>
<keyParameter>true</keyParameter> <keyParameter>true</keyParameter>
</parameters> </parameters>
<parameters>
<name>РежимВыбора</name>
<valueType>
<types>Boolean</types>
</valueType>
</parameters>
<commandInterface> <commandInterface>
<navigationPanel/> <navigationPanel/>
<commandBar/> <commandBar/>
@@ -24,7 +24,7 @@
КонецЕсли; КонецЕсли;
ТолькоДанныеКлассификатора = Параметры.ТолькоДанныеКлассификатора; ТолькоДанныеКлассификатора = Параметры.ТолькоДанныеКлассификатора;
Параметры.Свойство("РежимВыбора", РежимВыбора); РежимВыбора = Параметры.РежимВыбора;
// Разрешаем элементы // Разрешаем элементы
Элементы.Список.РежимВыбора = РежимВыбора; Элементы.Список.РежимВыбора = РежимВыбора;
@@ -963,6 +963,9 @@
Если Результат.Статус = "Ошибка" Тогда Если Результат.Статус = "Ошибка" Тогда
ПроверкаЗавершиласьСОшибками = Истина; ПроверкаЗавершиласьСОшибками = Истина;
ПерейтиНаСледующуюСтраницу(); ПерейтиНаСледующуюСтраницу();
СтандартныеПодсистемыКлиент.ВывестиИнформациюОбОшибке(Результат.ИнформацияОбОшибке);
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -5188,6 +5188,33 @@
<common>true</common> <common>true</common>
</edit> </edit>
</attributes> </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> <formCommands>
<name>ИмпортФайлов</name> <name>ИмпортФайлов</name>
<title> <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> <common>true</common>
</edit> </edit>
</attributes> </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> <formCommands>
<name>ДобавитьФайл</name> <name>ДобавитьФайл</name>
<title> <title>
@@ -12,37 +12,37 @@
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если ЗначениеЗаполнено(Параметры.ВладелецФайла) Тогда Если ЗначениеЗаполнено(Параметры.ВладелецФайла) Тогда
Список.Параметры.УстановитьЗначениеПараметра( ИмяСправочникаХранилищаФайлов = Параметры.ВладелецФайла.Метаданные().Имя;
"Владелец", Параметры.ВладелецФайла); ВладелецФайла = Параметры.ВладелецФайла;
Список.Параметры.УстановитьЗначениеПараметра("Владелец", Параметры.ВладелецФайла);
Если ТипЗнч(Параметры.ВладелецФайла) = Тип("СправочникСсылка.ПапкиФайлов") Тогда Элементы.Папки.Видимость = (ТипЗнч(Параметры.ВладелецФайла) = Тип("СправочникСсылка.ПапкиФайлов"));
Элементы.Папки.ТекущаяСтрока = Параметры.ВладелецФайла;
Элементы.Папки.ВыделенныеСтроки.Очистить();
Элементы.Папки.ВыделенныеСтроки.Добавить(Элементы.Папки.ТекущаяСтрока);
Иначе
Элементы.Папки.Видимость = Ложь;
КонецЕсли;
Иначе Иначе
ИмяСправочникаХранилищаФайлов = "Файлы";
ВладелецФайла = Справочники.ПапкиФайлов.ПустаяСсылка();
КонецЕсли;
Если ТипЗнч(ВладелецФайла) = Тип("СправочникСсылка.ПапкиФайлов") Тогда
Если Параметры.ВыборШаблона Тогда Если Параметры.ВыборШаблона Тогда
ВладелецФайла = Справочники.ПапкиФайлов.Шаблоны;
ОпределитьВозможностьДобавлениеШаблоновФайлов(); ОпределитьВозможностьДобавлениеШаблоновФайлов();
РежимВыбораШаблона = Параметры.ВыборШаблона; РежимВыбораШаблона = Параметры.ВыборШаблона;
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Папки, "Ссылка", Справочники.ПапкиФайлов.Шаблоны, Папки, "Ссылка", Справочники.ПапкиФайлов.Шаблоны,
ВидСравненияКомпоновкиДанных.ВИерархии, , Истина); ВидСравненияКомпоновкиДанных.ВИерархии, , Истина);
ИначеЕсли ЗначениеЗаполнено(Параметры.ТекущаяСтрока) И ВладелецФайла.Пустая() Тогда
Элементы.Папки.ТекущаяСтрока = Справочники.ПапкиФайлов.Шаблоны; НовоеЗначение = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Параметры.ТекущаяСтрока, "ВладелецФайла", Истина);
Элементы.Папки.ВыделенныеСтроки.Очистить(); Если НовоеЗначение <> Неопределено Тогда
Элементы.Папки.ВыделенныеСтроки.Добавить(Элементы.Папки.ТекущаяСтрока); ВладелецФайла = НовоеЗначение;
КонецЕсли; КонецЕсли;
КонецЕсли;
Элементы.Папки.ТекущаяСтрока = ВладелецФайла;
Элементы.Папки.ВыделенныеСтроки.Очистить();
Элементы.Папки.ВыделенныеСтроки.Добавить(Элементы.Папки.ТекущаяСтрока);
Список.Параметры.УстановитьЗначениеПараметра("Владелец", Элементы.Папки.ТекущаяСтрока); Список.Параметры.УстановитьЗначениеПараметра("Владелец", Элементы.Папки.ТекущаяСтрока);
КонецЕсли; КонецЕсли;
Если ЗначениеЗаполнено(Параметры.ТекущаяСтрока) Тогда Если ЗначениеЗаполнено(Параметры.ТекущаяСтрока) Тогда
Элементы.Папки.ТекущаяСтрока = Параметры.ТекущаяСтрока; Элементы.Список.ТекущаяСтрока = Параметры.ТекущаяСтрока;
КонецЕсли; КонецЕсли;
ПриИзмененияИспользованияПодписанияИлиШифрованияНаСервере(); ПриИзмененияИспользованияПодписанияИлиШифрованияНаСервере();
@@ -51,6 +51,9 @@
Элементы.Папки.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Авто; Элементы.Папки.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Авто;
КонецЕсли; КонецЕсли;
ИнтеграцияПодсистемБСП.ПриСозданииФормыСпискаФайлов(ЭтотОбъект);
РаботаСФайламиПереопределяемый.ПриСозданииФормыСпискаФайлов(ЭтотОбъект);
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
@@ -191,14 +194,12 @@
&НаСервере &НаСервере
Процедура ОпределитьВозможностьДобавлениеШаблоновФайлов() Процедура ОпределитьВозможностьДобавлениеШаблоновФайлов()
Перем ЕстьПравоДобавлениеФайлов, МодульУправлениеДоступом;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом"); МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
ЕстьПравоДобавлениеФайлов = МодульУправлениеДоступом.ЕстьПраво("ДобавлениеФайлов", Справочники.ПапкиФайлов.Шаблоны); ЕстьПравоДобавлениеФайлов = МодульУправлениеДоступом.ЕстьПраво("ДобавлениеФайлов", Справочники.ПапкиФайлов.Шаблоны);
Иначе Иначе
ЕстьПравоДобавлениеФайлов = ПравоДоступа("Добавление", Метаданные.Справочники.Файлы) И ПравоДоступа("Чтение", Метаданные.Справочники.ПапкиФайлов); ЕстьПравоДобавлениеФайлов = ПравоДоступа("Добавление", Метаданные.Справочники.Файлы)
И ПравоДоступа("Чтение", Метаданные.Справочники.ПапкиФайлов);
КонецЕсли; КонецЕсли;
Если Не ЕстьПравоДобавлениеФайлов Тогда Если Не ЕстьПравоДобавлениеФайлов Тогда
@@ -152,7 +152,7 @@
Если ФайлПеренесенный.ЭтоКаталог() Тогда Если ФайлПеренесенный.ЭтоКаталог() Тогда
НовыйЭлемент.ИндексКартинки = 2; // папка НовыйЭлемент.ИндексКартинки = 2; // папка
Иначе Иначе
НовыйЭлемент.ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.ПолучитьИндексПиктограммыФайла(ФайлПеренесенный.Расширение); НовыйЭлемент.ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.ИндексПиктограммыФайла(ФайлПеренесенный.Расширение);
КонецЕсли; КонецЕсли;
Если ФайлПеренесенный.ЭтоКаталог() Тогда Если ФайлПеренесенный.ЭтоКаталог() Тогда
@@ -1014,6 +1014,33 @@
<getInvisibleFieldPresentations>true</getInvisibleFieldPresentations> <getInvisibleFieldPresentations>true</getInvisibleFieldPresentations>
</extInfo> </extInfo>
</attributes> </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> <parameters>
<name>ВладелецФайла</name> <name>ВладелецФайла</name>
<valueType/> <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; Возврат 0;
@@ -1409,7 +1409,7 @@
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиСлужебныйКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиСлужебныйКлиентСервер"); МодульРаботаСФайламиСлужебныйКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСФайламиСлужебныйКлиентСервер");
Возврат МодульРаботаСФайламиСлужебныйКлиентСервер.ПолучитьИндексПиктограммыФайла(Расширение); Возврат МодульРаботаСФайламиСлужебныйКлиентСервер.ИндексПиктограммыФайла(Расширение);
КонецЕсли; КонецЕсли;
Возврат 0; Возврат 0;
@@ -610,6 +610,10 @@
<metadata>InformationRegister.СообщенияОбменаДаннымиОбластейДанных</metadata> <metadata>InformationRegister.СообщенияОбменаДаннымиОбластейДанных</metadata>
<use>DontUse</use> <use>DontUse</use>
</content> </content>
<content>
<metadata>ScheduledJob.ОбновлениеКлассификаторовМЧД</metadata>
<use>DontUse</use>
</content>
<content> <content>
<metadata>ScheduledJob.СборИОтправкаСтатистики</metadata> <metadata>ScheduledJob.СборИОтправкаСтатистики</metadata>
<use>DontUse</use> <use>DontUse</use>
@@ -4474,6 +4474,13 @@
</valueType> </valueType>
<keyParameter>true</keyParameter> <keyParameter>true</keyParameter>
</parameters> </parameters>
<parameters>
<name>ПоказатьСтраницу</name>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
</parameters>
<commandInterface> <commandInterface>
<navigationPanel/> <navigationPanel/>
<commandBar/> <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=""> <!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>Подробнее о расширениях и работе с ними см. <a href="http://v8.1c.ru/o7/201410ext/index.htm">сайт</a>.</p>
<p>Открывается по команде <strong>Расширения</strong> в разделе <strong>Администрирование - Печатные формы, отчеты и обработки</strong>.</p> <p>Открывается по команде <strong>Расширения</strong> в разделе <strong>Администрирование - Печатные формы, отчеты и обработки</strong>.</p>
<p>В списке выводится: </p> <p>В списке выводится: </p>
<ul><li>с помощью флажка в первой колонке можно включить или выключить установленные расширения. <ul><li>с помощью кнопки <img src="StdPicture.CheckAll"></img> панели навигации можно включить или выключить все установленные расширения. Также можно переключить активность расширений с помощью флажка.
<ul><li>При выключении приложение выводит предупреждение. Необходимо учитывать, что отключение расширения может сделать недоступными данные, которые хранились в приложении и относились к расширению, поэтому после отключения расширения будет невозможно изменить эту часть данных. Для подтверждения нажмите <strong>Отключить</strong>.</li></ul></li> <ul><li>При выключении приложение выводит предупреждение. Необходимо учитывать, что отключение расширения может сделать недоступными данные, которые хранились в приложении и относились к расширению, поэтому после отключения расширения будет невозможно изменить эту часть данных. Для подтверждения нажмите <strong>Отключить</strong>.</li></ul></li>
<li><strong>Наименование</strong> - проставляется по умолчанию при подключении расширения, заполняется разработчиком; <li><strong>Наименование</strong> - проставляется по умолчанию при подключении расширения, заполняется разработчиком;
</li> </li>
<li><strong>Версия</strong> - проставляется приложением по умолчанию при подключении расширения, заполняется разработчиком; <li><strong>Версия</strong> - проставляется приложением по умолчанию при подключении расширения, заполняется разработчиком;
</li> </li>
<li><strong>Назначение</strong> - проставляется приложением по умолчанию при подключении расширения, заполняется разработчиком; <li><strong>Назначение</strong> - проставляется приложением по умолчанию при подключении расширения, заполняется разработчиком;
</li> </li>
<li><strong>Передавать в подчиненные узлы РИБ</strong> - если флажок включен, то расширения передаются в подчиненные узлы РИБ, по умолчанию выключен; <li><strong>Передавать в подчиненные узлы РИБ</strong>- если флажок включен, то расширения передаются в подчиненные узлы РИБ, по умолчанию выключен. Переключить передачу также можно с помощью кнопки <img src="StdPicture.ExchangePlan"></img> панели навигации;
</li> </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> <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> <div>подключено (тогда в списке зеленый кружок). Подробнее о подключении расширений см. <a href="http://its.1c.ru/db/v837doc#bookmark:dev:TI000001534">http://its.1c.ru/db/v837doc#bookmark:dev:TI000001534</a>;</div>
</li> </li>
@@ -21,34 +23,35 @@
<div>не подключено (тогда в списке красный кружок);</div> <div>не подключено (тогда в списке красный кружок);</div>
</li> </li>
<li> <li>
<div>установлено (тогда в списке серый кружок) - после перезапуска будет либо подключено, либо не подключено.</div></li></ul><h3>Добавление расширения</h3> <div>установлено (тогда в списке серый кружок) - после перезапуска будет либо подключено, либо не подключено.</div></li></ul><h3>Добавление расширения</h3>
<ul><li>Нажмите <strong>Добавить из файла</strong>; <ul><li>Нажмите <strong>Добавить из файла</strong>;
</li> </li>
<li>Перед установкой расширений приложение выводит предупреждение. Если расширение получено из надежного источника, нажмите кнопку <strong>Продолжить</strong>. <li>Перед установкой расширений приложение выводит предупреждение. Если расширение получено из надежного источника, нажмите кнопку <strong>Продолжить</strong>.
</li> </li>
<li>Укажите путь к файлу с расширением на компьютере. <li>Укажите путь к файлу с расширением на компьютере.
</li> </li>
<li>Добавление расширения занимает некоторое время. <li>Добавление расширения занимает некоторое время.
</li> </li>
<li>После добавления расширения, для того чтобы продолжить работу с учетом сделанных изменений, нажмите ссылку <strong>перезапустить</strong>. В приложении в Интернете этой ссылки нет, т.к. для неразделенных пользователей, например, для администраторов сервиса, при входе в область данных расширения области данных не подключаются, а остается подключенным состав расширений, который был до входа в область данных, т.е. при запуске сеанса. <li>После добавления расширения, для того чтобы продолжить работу с учетом сделанных изменений, нажмите ссылку <strong>перезапустить</strong>. В приложении в Интернете этой ссылки нет, т.к. для неразделенных пользователей, например, для администраторов сервиса, при входе в область данных расширения области данных не подключаются, а остается подключенным состав расширений, который был до входа в область данных, т.е. при запуске сеанса.
</li> </li>
<li>После перезапуска расширение будет подключено к приложению, и его функции можно будет использовать. </li></ul><h3>Удаление расширения</h3> <li>После перезапуска расширение будет подключено к приложению, и его функции можно будет использовать. </li></ul><h3>Удаление расширения</h3>
<ul><li>Если расширение больше не нужно в приложении, выделите его, нажмите <strong>Удалить</strong>.</li> <ul><li>Если расширение больше не нужно в приложении, выделите его, нажмите <strong>Удалить</strong>.</li>
<li>Если расширение хранит данные в информационной базе, то при удалении они будут безвозвратно утеряны, в этом случае перед удалением приложение выводит предупреждение. Рекомендуется перед удалением расширения произвести резервное копирование информационной базы.</li> <li>Если расширение хранит данные в информационной базе, то при удалении они будут безвозвратно утеряны, в этом случае перед удалением приложение выводит предупреждение. Рекомендуется перед удалением расширения произвести резервное копирование информационной базы.</li>
<li>Удаление расширения не отключает его. Все сеансы, запущенные после добавления расширения и до его удаления, продолжат работу с удаленным расширением.</li> <li>Удаление расширения не отключает его. Все сеансы, запущенные после добавления расширения и до его удаления, продолжат работу с удаленным расширением.</li>
<li>В новых сеансах удаленное расширение более не подключится.</li></ul><h3>Перезапуск приложения</h3> <li>В новых сеансах удаленное расширение более не подключится.</li></ul><h3>Перезапуск приложения</h3>
<ul><li>Для того чтобы изменения, внесенные в список расширений, вступили в силу (т.е. были учтены при работе приложения), нажмите ссылку <strong>перезапустить</strong>. <ul><li>Для того чтобы изменения, внесенные в список расширений, вступили в силу (т.е. были учтены при работе приложения), нажмите ссылку <strong>перезапустить</strong>.
</li> </li>
<ul><li>Если при запуске расширение не удалось подключить к приложению, тогда выводится сообщение об ошибке.</li></ul><li>В приложении в Интернете ссылка отсутствует.</li></ul><h3>Сохранение расширения в файл</h3> <ul><li>Если при запуске расширение не удалось подключить к приложению, тогда выводится сообщение об ошибке.</li></ul><li>В приложении в Интернете ссылка отсутствует.</li></ul><h3>Сохранение расширения в файл</h3>
<ul><li> <ul><li>
<div>Выделите расширение, в контекстном меню по правой кнопке мыши нажмите <strong>Сохранить как</strong>, укажите путь к файлу на компьютере.</div></li></ul><h3>Обновление расширения</h3> <div>Выделите расширение, в контекстном меню по правой кнопке мыши нажмите <strong>Сохранить как</strong>, укажите путь к файлу на компьютере.</div></li></ul><h3>Обновление расширения</h3>
<ul><li> <ul><li>
<div>Выделите расширение, нажмите <strong>Обновить из файла</strong>, укажите путь к файлу на компьютере.</div> <div>Выделите расширение, нажмите <strong>Обновить из файла</strong>, укажите путь к файлу на компьютере.</div>
</li> </li>
<li> <li>
<div>Следует использовать эту кнопку для установки новой версии расширения.</div></li> <div>Следует использовать эту кнопку для установки новой версии расширения.</div></li>
<li>Если обновить расширение на новую версию, в которой изменено его имя, то все прежние настройки этого расширения будут сохранены, например, созданные варианты отчетов.</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> <p></p>
<h3><b style="font-size: 13.4399995803833px;">Установленные исправления (патчи)</b></h3> <h3><b>Установленные исправления (патчи)</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> <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> <common>true</common>
</edit> </edit>
</attributes> </attributes>
<attributes>
<name>ОшибкаПроверкиПодписи</name>
<id>10</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands> <formCommands>
<name>ПерейтиКНастройкеПрограмм</name> <name>ПерейтиКНастройкеПрограмм</name>
<title> <title>
@@ -13,6 +13,10 @@
ДополнительныеДанные = Параметры.ДополнительныеДанные; ДополнительныеДанные = Параметры.ДополнительныеДанные;
Если ЗначениеЗаполнено(ДополнительныеДанные) Тогда
ОшибкаПроверкиПодписи = ЗначениеЗаполнено(ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеДанные, "ДанныеПодписи", Ложь));
КонецЕсли;
Если ЗначениеЗаполнено(Параметры.ИнформацияДляПоддержки) Тогда Если ЗначениеЗаполнено(Параметры.ИнформацияДляПоддержки) Тогда
Элементы.ИнформацияДляПоддержки.Заголовок = Параметры.ИнформацияДляПоддержки; Элементы.ИнформацияДляПоддержки.Заголовок = Параметры.ИнформацияДляПоддержки;
Иначе Иначе
@@ -208,7 +212,7 @@
ОшибкаПоКлассификатору.Причина = ФорматированнаяСтрока(Причина); ОшибкаПоКлассификатору.Причина = ФорматированнаяСтрока(Причина);
ОшибкаПоКлассификатору.Решение = ФорматированнаяСтрока(ЕстьПричинаИРешение.Решение); ОшибкаПоКлассификатору.Решение = ФорматированнаяСтрока(ЕстьПричинаИРешение.Решение);
Иначе Иначе
ОшибкаПоКлассификатору = ЭлектроннаяПодписьСлужебный.ОшибкаПоКлассификатору(ТекстОшибки, МестоОшибки = "Сервер"); ОшибкаПоКлассификатору = ЭлектроннаяПодписьСлужебный.ОшибкаПоКлассификатору(ТекстОшибки, МестоОшибки = "Сервер", ОшибкаПроверкиПодписи);
КонецЕсли; КонецЕсли;
ЭтоИзвестнаяОшибка = ОшибкаПоКлассификатору <> Неопределено; ЭтоИзвестнаяОшибка = ОшибкаПоКлассификатору <> Неопределено;
@@ -359,6 +363,11 @@
ДополнительныеДанныеДляКлассификатораОшибок.ДанныеСертификата = ДанныеСертификата; ДополнительныеДанныеДляКлассификатораОшибок.ДанныеСертификата = ДанныеСертификата;
КонецЕсли; КонецЕсли;
ДанныеПодписи = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеДанные, "ДанныеПодписи", Неопределено);
Если ЗначениеЗаполнено(ДанныеПодписи) Тогда
ДополнительныеДанныеДляКлассификатораОшибок.ДанныеПодписи = ДанныеПодписи;
КонецЕсли;
Возврат ДополнительныеДанныеДляКлассификатораОшибок; Возврат ДополнительныеДанныеДляКлассификатораОшибок;
КонецФункции КонецФункции
@@ -1948,7 +1948,7 @@
КонецПроцедуры КонецПроцедуры
&НаСервере &НаСервере
Процедура Подключаемый_ОбработчикКонструктораФормулСервер(Знач Параметр, Знач ДополнительныеПараметры) Процедура Подключаемый_ОбработчикКонструктораФормулСервер(Параметр, ДополнительныеПараметры) // АПК:1412 - параметры возвращаются на клиент.
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонструкторФормул") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонструкторФормул") Тогда
МодульКонструкторФормул = ОбщегоНазначения.ОбщийМодуль("КонструкторФормул"); МодульКонструкторФормул = ОбщегоНазначения.ОбщийМодуль("КонструкторФормул");
МодульКонструкторФормул.ОбработчикКонструктораФормул(ЭтотОбъект, Параметр, ДополнительныеПараметры); МодульКонструкторФормул.ОбработчикКонструктораФормул(ЭтотОбъект, Параметр, ДополнительныеПараметры);
@@ -3917,6 +3917,17 @@
<types>Boolean</types> <types>Boolean</types>
</valueType> </valueType>
</parameters> </parameters>
<parameters>
<name>ВариантНаименование</name>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
</parameters>
<parameters>
<name>НастройкиОтчета</name>
<valueType/>
</parameters>
<commandInterface> <commandInterface>
<navigationPanel/> <navigationPanel/>
<commandBar/> <commandBar/>
@@ -29,14 +29,15 @@
Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Изменение варианта отчета ""%1""'"), Параметры.ПредставлениеВарианта); Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Изменение варианта отчета ""%1""'"), Параметры.ПредставлениеВарианта);
КонецЕсли; КонецЕсли;
Если Параметры.Свойство("НастройкиОтчета", НастройкиОтчета) Тогда Если Параметры.НастройкиОтчета <> Неопределено Тогда
НастройкиОтчета = Параметры.НастройкиОтчета;
Если НастройкиОтчета.СхемаМодифицирована Тогда Если НастройкиОтчета.СхемаМодифицирована Тогда
Отчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(НастройкиОтчета.АдресСхемы)); Отчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(НастройкиОтчета.АдресСхемы));
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
Если Не ЗначениеЗаполнено(Параметры.ПредставлениеВарианта) Тогда Если Не ЗначениеЗаполнено(Параметры.ПредставлениеВарианта) Тогда
Параметры.Свойство("ВариантНаименование", Параметры.ПредставлениеВарианта); Параметры.ПредставлениеВарианта = Параметры.ВариантНаименование;
КонецЕсли; КонецЕсли;
НастройкиКД = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "Вариант"); НастройкиКД = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "Вариант");
@@ -4038,6 +4038,10 @@
ОписаниеНастройки = СортировкаЭлементаСтруктуры.ДоступныеПоляПорядка.НайтиПоле(ЭлементНастройкиИсточник.Поле); ОписаниеНастройки = СортировкаЭлементаСтруктуры.ДоступныеПоляПорядка.НайтиПоле(ЭлементНастройкиИсточник.Поле);
Если ОписаниеНастройки = Неопределено Тогда
Продолжить;
КонецЕсли;
СтрокаПриемник = Раздел.ПолучитьЭлементы().Добавить(); СтрокаПриемник = Раздел.ПолучитьЭлементы().Добавить();
ЗаполнитьЗначенияСвойств(СтрокаПриемник, ЭлементНастройкиПриемник); ЗаполнитьЗначенияСвойств(СтрокаПриемник, ЭлементНастройкиПриемник);
ЗаполнитьЗначенияСвойств(СтрокаПриемник, ОписаниеНастройки); ЗаполнитьЗначенияСвойств(СтрокаПриемник, ОписаниеНастройки);
@@ -3796,7 +3796,6 @@
ФорматыСохранения = ФорматыСохраненияОтчета(ПолноеИмяФайлаОтчета, Контекст.ИндексФорматовСохраненияОтчета); ФорматыСохранения = ФорматыСохраненияОтчета(ПолноеИмяФайлаОтчета, Контекст.ИндексФорматовСохраненияОтчета);
СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета
РезультатОтчета = РезультатОтчетаДляСохранения(ОтчетТабличныйДокумент, СвойстваРезультата.Заголовки); РезультатОтчета = РезультатОтчетаДляСохранения(ОтчетТабличныйДокумент, СвойстваРезультата.Заголовки);
РезультатОтчета.НачатьЗапись(Обработчик, ПолноеИмяФайлаОтчета, ФорматыСохранения); РезультатОтчета.НачатьЗапись(Обработчик, ПолноеИмяФайлаОтчета, ФорматыСохранения);
КонецПроцедуры КонецПроцедуры
@@ -214,11 +214,20 @@
ПараметрыФормы.Вставить("ЗаголовокПредупреждения", НСтр("ru = 'Ошибка проверки подписи'")); ПараметрыФормы.Вставить("ЗаголовокПредупреждения", НСтр("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 Тогда Если Результат.ЗаголовокДекорацииОшибки.Количество() > 0 Тогда
Результат.ЗаголовокДекорации.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не заполнены: %1'"), Результат.ЗаголовокДекорации.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не заполнены: %1'"),
@@ -1554,7 +1566,7 @@
Функция ЗаголовокДекорацииДляТаблицы(Назначение, Реквизиты, ИмяЭлементаОрганизация, ТолькоОсновные, ТолькоОбязательные = Ложь, ПоказыватьПерсональныеДанные = Истина) Экспорт Функция ЗаголовокДекорацииДляТаблицы(Назначение, Реквизиты, ИмяЭлементаОрганизация, ТолькоОсновные, ТолькоОбязательные = Ложь, ПоказыватьПерсональныеДанные = Истина) Экспорт
Результат = СтруктураЗаголовкаДекорации(Назначение, Реквизиты, ТолькоОсновные, ПоказыватьПерсональныеДанные, ИмяЭлементаОрганизация, ТолькоОбязательные, ПоказыватьПерсональныеДанные); Результат = СтруктураЗаголовкаДекорации(Назначение, Реквизиты, ТолькоОсновные, ПоказыватьПерсональныеДанные, ИмяЭлементаОрганизация, ТолькоОбязательные, Истина);
ЗаголовокДекорацииСтрока = СтрСоединить(Результат.ЗаголовокДекорации, Символы.ПС); ЗаголовокДекорацииСтрока = СтрСоединить(Результат.ЗаголовокДекорации, Символы.ПС);
@@ -1678,7 +1690,7 @@
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
Если Не ТолькоОсновные И ЗаголовокДекорацииНаименование.Количество() > 0 Тогда Если (Не ТолькоОсновные Или ДляТаблицы) И ЗаголовокДекорацииНаименование.Количество() > 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"; Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно"; Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0"; Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "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); ИспользуемоеКоличествоСимволов = ИспользуемоеКоличествоСимволов + Цел((БольшееКоличествоСимволов - ИспользуемоеКоличествоСимволов)/2);
КонецЕсли; КонецЕсли;
РазмерСтрокиВБайтах = РазмерСтрокиВБайтах(ИмяБезРасширения)+32; РазмерСтрокиВБайтах = РазмерСтрокиВБайтах(ИмяБезРасширения) + 32;
Если РазмерСтрокиВБайтах = ОграничениеВБайтах Или БольшееКоличествоСимволов - МеньшееКоличествоСимволов = 1 Тогда Если РазмерСтрокиВБайтах = ОграничениеВБайтах Или БольшееКоличествоСимволов - МеньшееКоличествоСимволов = 1 Тогда
Прервать; Прервать;
КонецЕсли; КонецЕсли;
Если РазмерСтрокиВБайтах > ОграничениеВБайтах Тогда Уменьшить = (РазмерСтрокиВБайтах > ОграничениеВБайтах);
Уменьшить = Истина; Если Уменьшить Тогда
БольшееКоличествоСимволов = ИспользуемоеКоличествоСимволов; БольшееКоличествоСимволов = ИспользуемоеКоличествоСимволов;
Иначе Иначе
Уменьшить = Ложь;
МеньшееКоличествоСимволов = ИспользуемоеКоличествоСимволов; МеньшееКоличествоСимволов = ИспользуемоеКоличествоСимволов;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
СокращеннаяСтрока = СократитьСтрокуКонтрольнойСуммой(ИмяБезРасширения, ИспользуемоеКоличествоСимволов+32); СокращеннаяСтрока = СократитьСтрокуКонтрольнойСуммой(ИмяБезРасширения, ИспользуемоеКоличествоСимволов + 32);
ИмяФайла = СокращеннаяСтрока + Файл.Расширение;
ИмяФайла = СокращеннаяСтрока+Файл.Расширение;
КонецПроцедуры КонецПроцедуры
@@ -137,7 +137,9 @@
// Процедуры и функции для вызова необязательных подсистем. // Процедуры и функции для вызова необязательных подсистем.
// Возвращает Истина, если функциональная подсистема существует в конфигурации. // Возвращает Истина, если функциональная подсистема существует в конфигурации.
// Предназначена для реализации вызова необязательной подсистемы (условного вызова). // Предназначена для вызова необязательной подсистемы (условного вызова) совместно
// с функцией ОбщегоНазначенияКлиент.ПодсистемаСуществует.
//
// У функциональной подсистемы снят флажок "Включать в командный интерфейс". // У функциональной подсистемы снят флажок "Включать в командный интерфейс".
// См. также ОбщегоНазначенияПереопределяемый.ПриОпределенииОтключенныхПодсистем, // См. также ОбщегоНазначенияПереопределяемый.ПриОпределенииОтключенныхПодсистем,
// и ОбщегоНазначения.ПодсистемаСуществует для вызова из серверного кода. // и ОбщегоНазначения.ПодсистемаСуществует для вызова из серверного кода.
@@ -150,7 +152,7 @@
// Пример: // Пример:
// Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Тогда // Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Тогда
// МодульВариантыОтчетовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ВариантыОтчетовКлиент"); // МодульВариантыОтчетовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ВариантыОтчетовКлиент");
// МодульВариантыОтчетовКлиент.<Имя метода>(); // МодульВариантыОтчетовКлиент.<Имя процедуры>();
// КонецЕсли; // КонецЕсли;
// //
// Возвращаемое значение: // Возвращаемое значение:
@@ -168,24 +170,20 @@
КонецФункции КонецФункции
// Возвращает ссылку на общий модуль или модуль менеджера по имени. // Возвращает ссылку на общий модуль по имени.
// // Применяется для условного вызова процедуры или функции совместно с ОбщегоНазначенияКлиент.ПодсистемаСуществует.
// См. ОбщегоНазначения.ОбщийМодуль // См. также ОбщегоНазначения.ОбщийМодуль для вызова серверного кода.
// //
// Параметры: // Параметры:
// Имя - Строка - имя общего модуля. // Имя - Строка - имя общего модуля, например "ОбновлениеКонфигурацииКлиент", "ОтчетыВызовСервера".
// //
// Возвращаемое значение: // Возвращаемое значение:
// ОбщийМодуль // ОбщийМодуль
// СправочникМенеджер,
// ДокументМенеджер,
// ОбработкаМенеджер,
// РегистрСведенийМенеджер.
// //
// Пример: // Пример:
// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда // Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда
// МодульОбновлениеКонфигурацииКлиент = ОбщегоНазначения.ОбщийМодуль("ОбновлениеКонфигурацииКлиент"); // МодульОбновлениеКонфигурацииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбновлениеКонфигурацииКлиент");
// МодульОбновлениеКонфигурацииКлиент.<Имя метода>(); // МодульОбновлениеКонфигурацииКлиент.<Имя процедуры>();
// КонецЕсли; // КонецЕсли;
// //
Функция ОбщийМодуль(Имя) Экспорт Функция ОбщийМодуль(Имя) Экспорт
@@ -194,9 +192,8 @@
#Если Не ВебКлиент Тогда #Если Не ВебКлиент Тогда
// В веб-клиенте не проверяется // В веб-клиенте не проверяется,
// т.к. при обращении к модулям с вызовом сервера типа такого модуля в веб-клиенте не существует. // т.к. при обращении к модулям с вызовом сервера типа такого модуля в веб-клиенте не существует.
Если ТипЗнч(Модуль) <> Тип("ОбщийМодуль") Тогда Если ТипЗнч(Модуль) <> Тип("ОбщийМодуль") Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Общий модуль ""%1"" не существует.'"), НСтр("ru = 'Общий модуль ""%1"" не существует.'"),
@@ -1232,8 +1232,7 @@
#Если ВебКлиент Тогда #Если ВебКлиент Тогда
СистемнаяИнформация = Новый СистемнаяИнформация; СистемнаяИнформация = Новый СистемнаяИнформация;
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.24.0") >= 0 Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.24.0") >= 0 Тогда
И Не ОбщегоНазначенияКлиент.РазделениеВключено() Тогда
Ждать ПаузаАсинх(2); Ждать ПаузаАсинх(2);
КонецЕсли; КонецЕсли;
#КонецЕсли #КонецЕсли
@@ -1704,14 +1703,6 @@
// //
// Возвращаемое значение: // Возвращаемое значение:
// Строка - хеш, вычисленный из строки // Строка - хеш, вычисленный из строки
////
// Возвращает хеш по алгоритму MD5 для произвольной строки.
//
// Параметры:
// Строка - строка - произвольная строка любой длины
//
// Возвращаемое значение:
// Строка - хеш, вычисленный из строки
// //
Функция ВычислитьХешСтрокиПоАлгоритмуMD5(Знач Строка) Функция ВычислитьХешСтрокиПоАлгоритмуMD5(Знач Строка)
@@ -180,9 +180,8 @@
HTTPОтвет = Неопределено; HTTPОтвет = Неопределено;
Попытка Попытка
Соединение = Новый HTTPСоединение("lcab.sms-uslugi.ru",,,, Соединение = Новый HTTPСоединение("lcab.sms-uslugi.ru", , , , ПолучениеФайловИзИнтернета.ПолучитьПрокси("http"),
ПолучениеФайловИзИнтернета.ПолучитьПрокси("http"), 60, ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение());
60);
HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос); HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
Исключение Исключение
ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()), ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
@@ -40,7 +40,8 @@
ТипЗначения = ОписаниеЭлементаНастройки.ТипЗначения; ТипЗначения = ОписаниеЭлементаНастройки.ТипЗначения;
КонецЕсли; КонецЕсли;
Если ТипЗначения = Новый ОписаниеТипов("Дата") И Не ОтчетыКлиентСервер.ЭтоВидСравненияСписка(ЭлементНастройки.ВидСравнения) Тогда Если ТипЗнч(ЭлементНастройки) = Тип("ЭлементОтбораКомпоновкиДанных") И ТипЗначения = Новый ОписаниеТипов("Дата")
И Не ОтчетыКлиентСервер.ЭтоВидСравненияСписка(ЭлементНастройки.ВидСравнения) Тогда
ТипЗначения = Новый ОписаниеТипов("СтандартнаяДатаНачала"); ТипЗначения = Новый ОписаниеТипов("СтандартнаяДатаНачала");
КонецЕсли; КонецЕсли;
@@ -355,23 +355,30 @@
РезультатДиагностики = ПолучениеФайловИзИнтернета.ДиагностикаСоединения(URL, ЗаписыватьОшибку, РезультатДиагностики = ПолучениеФайловИзИнтернета.ДиагностикаСоединения(URL, ЗаписыватьОшибку,
ПроверятьДоставкуПакетовПриОшибке); ПроверятьДоставкуПакетовПриОшибке);
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ШаблонОшибки = НСтр("ru = 'Не удалось установить HTTP-соединение с сервером %1:%2
НСтр("ru = 'Не удалось установить HTTP-соединение с сервером %1:%2 |по причине:
|по причине: |%3
|%3 |
| |Результат диагностики:
|Результат диагностики: |%4'");
|%4'"),
Сервер, Формат(Порт, "ЧГ="),
ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()),
РезультатДиагностики.ОписаниеОшибки);
ДописатьПредставлениеПеренаправлений(Перенаправления, ТекстОшибки); ПредставленияПеренаправлений = ПредставленияПеренаправлений(Перенаправления);
Если Не ПустаяСтрока(ПредставленияПеренаправлений) Тогда
ШаблонОшибки = ШаблонОшибки + Символы.ПС + Символы.ПС + ПредставленияПеренаправлений;
КонецЕсли;
Если ЗаписыватьОшибку Тогда Если ЗаписыватьОшибку Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки,
Сервер, Формат(Порт, "ЧГ="),
ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()),
РезультатДиагностики.ОписаниеОшибки);
ЗаписатьОшибкуВЖурналРегистрации(ТекстОшибки); ЗаписатьОшибкуВЖурналРегистрации(ТекстОшибки);
КонецЕсли; КонецЕсли;
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки,
Сервер, Формат(Порт, "ЧГ="),
ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()),
РезультатДиагностики.ОписаниеОшибки);
Возврат РезультатПолученияФайла(Ложь, ТекстОшибки); Возврат РезультатПолученияФайла(Ложь, ТекстОшибки);
КонецПопытки; КонецПопытки;
@@ -385,40 +392,38 @@
Или ОтветHTTP.КодСостояния = 308 Тогда // 308 Permanent Redirect Или ОтветHTTP.КодСостояния = 308 Тогда // 308 Permanent Redirect
Если Перенаправления.Количество() > 7 Тогда Если Перенаправления.Количество() > 7 Тогда
ВызватьИсключение ВызватьИсключение(НСтр("ru = 'Превышено количество перенаправлений.'"), КатегорияОшибки.ОшибкаСети);
НСтр("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, НастройкаСохранения, НастройкаСоединения,
НастройкиПрокси, ЗаписыватьОшибку, Перенаправления);
КонецЕсли; КонецЕсли;
Новый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'"), |%1'"),
РасшифровкаКодаСостоянияHTTP(ОтветHTTP.КодСостояния)); РасшифровкаКодаСостоянияHTTP(ОтветHTTP.КодСостояния));
ДописатьТелоОтветаСервера(ПутьДляСохранения, ТекстОшибки); ДописатьТелоОтветаСервера(ПутьДляСохранения, ТекстОшибки);
ВызватьИсключение(ТекстОшибки, КатегорияОшибки.ОшибкаСети);
ВызватьИсключение ТекстОшибки;
ИначеЕсли ОтветHTTP.КодСостояния < 200 ИначеЕсли ОтветHTTP.КодСостояния < 200
Или ОтветHTTP.КодСостояния >= 300 И ОтветHTTP.КодСостояния < 400 Тогда Или ОтветHTTP.КодСостояния >= 300 И ОтветHTTP.КодСостояния < 400 Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Неподдерживаемый ответ сервера: НСтр("ru = 'Неподдерживаемый ответ интернет-сервера:
|%1'"), |%1'"),
РасшифровкаКодаСостоянияHTTP(ОтветHTTP.КодСостояния)); РасшифровкаКодаСостоянияHTTP(ОтветHTTP.КодСостояния));
ДописатьТелоОтветаСервера(ПутьДляСохранения, ТекстОшибки); ДописатьТелоОтветаСервера(ПутьДляСохранения, ТекстОшибки);
ВызватьИсключение(ТекстОшибки, КатегорияОшибки.ОшибкаСети);
ВызватьИсключение ТекстОшибки;
ИначеЕсли ОтветHTTP.КодСостояния >= 400 И ОтветHTTP.КодСостояния < 500 Тогда ИначеЕсли ОтветHTTP.КодСостояния >= 400 И ОтветHTTP.КодСостояния < 500 Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Ошибка при выполнении запроса: НСтр("ru = 'Интернет-сервер не смог выполнить запрос:
|%1'"), |%1'"),
РасшифровкаКодаСостоянияHTTP(ОтветHTTP.КодСостояния)); РасшифровкаКодаСостоянияHTTP(ОтветHTTP.КодСостояния));
ДописатьТелоОтветаСервера(ПутьДляСохранения, ТекстОшибки); ДописатьТелоОтветаСервера(ПутьДляСохранения, ТекстОшибки);
ВызватьИсключение(ТекстОшибки, КатегорияОшибки.ОшибкаСети);
ВызватьИсключение ТекстОшибки;
Иначе Иначе
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Ошибка сервера при обработке запроса к ресурсу: НСтр("ru = 'Интернет-сервер перегружен, временно отключен или находится на техобслуживании:
|%1'"), |%1'"),
РасшифровкаКодаСостоянияHTTP(ОтветHTTP.КодСостояния)); РасшифровкаКодаСостоянияHTTP(ОтветHTTP.КодСостояния));
ДописатьТелоОтветаСервера(ПутьДляСохранения, ТекстОшибки); ДописатьТелоОтветаСервера(ПутьДляСохранения, ТекстОшибки);
ВызватьИсключение(ТекстОшибки, КатегорияОшибки.ОшибкаСети);
ВызватьИсключение ТекстОшибки;
КонецЕсли; КонецЕсли;
@@ -480,16 +481,19 @@
Исключение Исключение
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ШаблонОшибки = НСтр("ru = 'Не удалось получить файл %1 с сервера %2:%3
НСтр("ru = 'Не удалось получить файл %1 с сервера %2:%3 |по причине:
|по причине: |%4'");
|%4'"),
URL, Сервер, Формат(Порт, "ЧГ="),
ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
ДописатьПредставлениеПеренаправлений(Перенаправления, ТекстОшибки);
ПредставленияПеренаправлений = ПредставленияПеренаправлений(Перенаправления);
Если Не ПустаяСтрока(ПредставленияПеренаправлений) Тогда
ШаблонОшибки = ШаблонОшибки + Символы.ПС + Символы.ПС + ПредставленияПеренаправлений;
КонецЕсли;
Если ЗаписыватьОшибку Тогда Если ЗаписыватьОшибку Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки,
URL, Сервер, Формат(Порт, "ЧГ="),
ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1 НСтр("ru = '%1
| |
@@ -508,6 +512,10 @@
ЗаписатьОшибкуВЖурналРегистрации(СообщениеОбОшибке); ЗаписатьОшибкуВЖурналРегистрации(СообщениеОбОшибке);
КонецЕсли; КонецЕсли;
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки,
URL, Сервер, Формат(Порт, "ЧГ="),
ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат РезультатПолученияФайла(Ложь, ТекстОшибки, ОтветHTTP); Возврат РезультатПолученияФайла(Ложь, ТекстОшибки, ОтветHTTP);
КонецПопытки; КонецПопытки;
@@ -522,7 +530,9 @@
ИначеЕсли НастройкаСохранения["МестоХранения"] = "Сервер" Тогда ИначеЕсли НастройкаСохранения["МестоХранения"] = "Сервер" Тогда
Возврат РезультатПолученияФайла(Истина, ПутьДляСохранения, ОтветHTTP); Возврат РезультатПолученияФайла(Истина, ПутьДляСохранения, ОтветHTTP);
Иначе Иначе
ВызватьИсключение НСтр("ru = 'Не указано место для сохранения файла.'"); ВызватьИсключение(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не указано место для сохранения файла при вызове %1.'"), "ПолучитьФайлИзИнтернет"),
КатегорияОшибки.ОшибкаКонфигурации);
КонецЕсли; КонецЕсли;
КонецФункции КонецФункции
@@ -676,20 +686,19 @@
КонецФункции КонецФункции
Процедура ДописатьПредставлениеПеренаправлений(Перенаправления, ТекстОшибки) Функция ПредставленияПеренаправлений(Перенаправления)
Если Перенаправления.Количество() > 0 Тогда Если Перенаправления.Количество() = 0 Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( Возврат "";
НСтр("ru = '%1
|
|Выполненные перенаправления (%2):
|%3'"),
ТекстОшибки,
Перенаправления.Количество(),
СтрСоединить(Перенаправления, Символы.ПС));
КонецЕсли; КонецЕсли;
КонецПроцедуры Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Выполненные перенаправления (%1):
|%2'"),
Перенаправления.Количество(),
СтрСоединить(Перенаправления, Символы.ПС));
КонецФункции
Процедура ДописатьТелоОтветаСервера(ПутьКФайлу, ТекстОшибки) Процедура ДописатьТелоОтветаСервера(ПутьКФайлу, ТекстОшибки)
@@ -699,7 +708,7 @@
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1 НСтр("ru = '%1
| |
|Сообщение, полученное от сервера: |Сообщение от интернет-сервера:
|%2'"), |%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; Источник.ИндексКартинки = 2;
Иначе Иначе
Источник.ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.ПолучитьИндексПиктограммыФайла(Источник.Расширение); Источник.ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.ИндексПиктограммыФайла(Источник.Расширение);
КонецЕсли; КонецЕсли;
Если Источник.ЭтоНовый() И Не ЗначениеЗаполнено(Источник.Автор) Тогда Если Источник.ЭтоНовый() И Не ЗначениеЗаполнено(Источник.Автор) Тогда
@@ -130,7 +130,9 @@
// Позволяет изменить стандартную форму списка файлов. // Позволяет изменить стандартную форму списка файлов.
// //
// Параметры: // Параметры:
// Форма - ФормаКлиентскогоПриложения - форма списка файлов. // Форма - ФормаКлиентскогоПриложения - форма списка файлов:
// * ИмяСправочникаХранилищаФайлов - Строка
// * ВладелецФайла - ОпределяемыйТип.ВладелецФайлов
// //
Процедура ПриСозданииФормыСпискаФайлов(Форма) Экспорт Процедура ПриСозданииФормыСпискаФайлов(Форма) Экспорт
@@ -139,7 +141,8 @@
// Позволяет изменить стандартную форму файла. // Позволяет изменить стандартную форму файла.
// //
// Параметры: // Параметры:
// Форма - ФормаКлиентскогоПриложения - форма файла. // Форма - ФормаКлиентскогоПриложения - форма файла:
// * Объект - ОпределяемыйТип.ПрисоединенныйФайл
// //
Процедура ПриСозданииФормыЭлементаФайлов(Форма) Экспорт Процедура ПриСозданииФормыЭлементаФайлов(Форма) Экспорт
@@ -695,12 +695,16 @@
КонецПроцедуры КонецПроцедуры
// Возвращает соответствие имен справочников и значения Булево // Возвращает соответствие имен справочников и значения Булево для указанного владельца.
// для указанного владельца.
// //
// Параметры: // Параметры:
// ВладелецФайлов - ЛюбаяСсылка - объект, к которому добавляется файл. // ВладелецФайлов - ЛюбаяСсылка - объект, к которому добавляется файл.
// //
// Возвращаемое значение:
// Соответствие из КлючИЗначение:
// * Ключ - Строка
// * Значение - Булево
//
Функция ИменаСправочниковХраненияФайлов(ВладелецФайлов, НеВызыватьИсключение = Ложь) Экспорт Функция ИменаСправочниковХраненияФайлов(ВладелецФайлов, НеВызыватьИсключение = Ложь) Экспорт
Если ТипЗнч(ВладелецФайлов) = Тип("Тип") Тогда Если ТипЗнч(ВладелецФайлов) = Тип("Тип") Тогда
@@ -2199,7 +2203,6 @@
Функция КонвертироватьНастройкиСканирования(Знач Настройки) Экспорт Функция КонвертироватьНастройкиСканирования(Знач Настройки) Экспорт
Настройки.Разрешение = -1;
Если Настройки.Разрешение = Перечисления.РазрешенияСканированногоИзображения.dpi200 Тогда Если Настройки.Разрешение = Перечисления.РазрешенияСканированногоИзображения.dpi200 Тогда
Настройки.Разрешение = 200; Настройки.Разрешение = 200;
ИначеЕсли Настройки.Разрешение = Перечисления.РазрешенияСканированногоИзображения.dpi300 Тогда ИначеЕсли Настройки.Разрешение = Перечисления.РазрешенияСканированногоИзображения.dpi300 Тогда
@@ -2208,27 +2211,30 @@
Настройки.Разрешение = 600; Настройки.Разрешение = 600;
ИначеЕсли Настройки.Разрешение = Перечисления.РазрешенияСканированногоИзображения.dpi1200 Тогда ИначеЕсли Настройки.Разрешение = Перечисления.РазрешенияСканированногоИзображения.dpi1200 Тогда
Настройки.Разрешение = 1200; Настройки.Разрешение = 1200;
Иначе
Настройки.Разрешение = -1;
КонецЕсли; КонецЕсли;
Настройки.Цветность = -1;
Если Настройки.Цветность = Перечисления.ЦветностиИзображения.Монохромное Тогда Если Настройки.Цветность = Перечисления.ЦветностиИзображения.Монохромное Тогда
Настройки.Цветность = 0; Настройки.Цветность = 0;
ИначеЕсли Настройки.Цветность = Перечисления.ЦветностиИзображения.ГрадацииСерого Тогда ИначеЕсли Настройки.Цветность = Перечисления.ЦветностиИзображения.ГрадацииСерого Тогда
Настройки.Цветность = 1; Настройки.Цветность = 1;
ИначеЕсли Настройки.Цветность = Перечисления.ЦветностиИзображения.Цветное Тогда ИначеЕсли Настройки.Цветность = Перечисления.ЦветностиИзображения.Цветное Тогда
Настройки.Цветность = 2; Настройки.Цветность = 2;
Иначе
Настройки.Цветность = -1;
КонецЕсли; КонецЕсли;
Настройки.Поворот = 0;
Если Настройки.Поворот = Перечисления.СпособыПоворотаИзображения.ВправоНа90 Тогда Если Настройки.Поворот = Перечисления.СпособыПоворотаИзображения.ВправоНа90 Тогда
Настройки.Поворот = 90; Настройки.Поворот = 90;
ИначеЕсли Настройки.Поворот = Перечисления.СпособыПоворотаИзображения.ВправоНа180 Тогда ИначеЕсли Настройки.Поворот = Перечисления.СпособыПоворотаИзображения.ВправоНа180 Тогда
Настройки.Поворот = 180; Настройки.Поворот = 180;
ИначеЕсли Настройки.Поворот = Перечисления.СпособыПоворотаИзображения.ВлевоНа90 Тогда ИначеЕсли Настройки.Поворот = Перечисления.СпособыПоворотаИзображения.ВлевоНа90 Тогда
Настройки.Поворот = 270; Настройки.Поворот = 270;
Иначе
Настройки.Поворот = 0;
КонецЕсли; КонецЕсли;
Настройки.РазмерБумаги = 0;
Если Настройки.РазмерБумаги = Перечисления.РазмерыБумаги.НеЗадано Тогда Если Настройки.РазмерБумаги = Перечисления.РазмерыБумаги.НеЗадано Тогда
Настройки.РазмерБумаги = 0; Настройки.РазмерБумаги = 0;
ИначеЕсли Настройки.РазмерБумаги = Перечисления.РазмерыБумаги.A3 Тогда ИначеЕсли Настройки.РазмерБумаги = Перечисления.РазмерыБумаги.A3 Тогда
@@ -2255,9 +2261,10 @@
Настройки.РазмерБумаги = 4; Настройки.РазмерБумаги = 4;
ИначеЕсли Настройки.РазмерБумаги = Перечисления.РазмерыБумаги.USExecutive Тогда ИначеЕсли Настройки.РазмерБумаги = Перечисления.РазмерыБумаги.USExecutive Тогда
Настройки.РазмерБумаги = 10; Настройки.РазмерБумаги = 10;
Иначе
Настройки.РазмерБумаги = 0;
КонецЕсли; КонецЕсли;
Настройки.СжатиеTIFF = 6; // БезСжатия
Если Настройки.СжатиеTIFF = Перечисления.ВариантыСжатияTIFF.LZW Тогда Если Настройки.СжатиеTIFF = Перечисления.ВариантыСжатияTIFF.LZW Тогда
Настройки.СжатиеTIFF = 2; Настройки.СжатиеTIFF = 2;
ИначеЕсли Настройки.СжатиеTIFF = Перечисления.ВариантыСжатияTIFF.RLE Тогда ИначеЕсли Настройки.СжатиеTIFF = Перечисления.ВариантыСжатияTIFF.RLE Тогда
@@ -2266,6 +2273,8 @@
Настройки.СжатиеTIFF = 3; Настройки.СжатиеTIFF = 3;
ИначеЕсли Настройки.СжатиеTIFF = Перечисления.ВариантыСжатияTIFF.CCITT4 Тогда ИначеЕсли Настройки.СжатиеTIFF = Перечисления.ВариантыСжатияTIFF.CCITT4 Тогда
Настройки.СжатиеTIFF = 4; Настройки.СжатиеTIFF = 4;
Иначе
Настройки.СжатиеTIFF = 6; // БезСжатия
КонецЕсли; КонецЕсли;
Возврат Настройки; Возврат Настройки;
@@ -4931,7 +4940,7 @@
Версия.ДатаМодификацииФайла = СведенияОФайле.ВремяИзменения; Версия.ДатаМодификацииФайла = СведенияОФайле.ВремяИзменения;
Версия.Комментарий = СведенияОФайле.НоваяВерсияКомментарий; Версия.Комментарий = СведенияОФайле.НоваяВерсияКомментарий;
Версия.ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.ПолучитьИндексПиктограммыФайла(СведенияОФайле.РасширениеБезТочки); Версия.ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.ИндексПиктограммыФайла(СведенияОФайле.РасширениеБезТочки);
Если СведенияОФайле.НоваяВерсияАвтор = Неопределено Тогда Если СведенияОФайле.НоваяВерсияАвтор = Неопределено Тогда
Версия.Автор = Пользователи.АвторизованныйПользователь(); Версия.Автор = Пользователи.АвторизованныйПользователь();
@@ -5458,8 +5467,8 @@
НСтр("ru = 'Размер файла ""%1"" (%2 Мб) НСтр("ru = 'Размер файла ""%1"" (%2 Мб)
|превышает максимально допустимый размер файла (%3 Мб).'"), |превышает максимально допустимый размер файла (%3 Мб).'"),
Имя, Имя,
РаботаСФайламиСлужебныйКлиентСервер.ПолучитьСтрокуСРазмеромФайла(РазмерВМб), РаботаСФайламиСлужебныйКлиентСервер.ПредставлениеРазмераФайла(РазмерВМб),
РаботаСФайламиСлужебныйКлиентСервер.ПолучитьСтрокуСРазмеромФайла(РазмерВМбМакс)); РаботаСФайламиСлужебныйКлиентСервер.ПредставлениеРазмераФайла(РазмерВМбМакс));
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -99,6 +99,7 @@
МодульВыгрузкаЗагрузкаДанных = ОбщегоНазначения.ОбщийМодуль("ВыгрузкаЗагрузкаДанных"); МодульВыгрузкаЗагрузкаДанных = ОбщегоНазначения.ОбщийМодуль("ВыгрузкаЗагрузкаДанных");
Типы.Добавить(Метаданные.РегистрыСведений.ОчередьИзвлеченияТекста); Типы.Добавить(Метаданные.РегистрыСведений.ОчередьИзвлеченияТекста);
Типы.Добавить(Метаданные.РегистрыСведений.УдалитьДвоичныеДанныеФайлов);
Типы.Добавить(Метаданные.Константы.ПутьКТомуБезУчетаРегиональныхНастроек); Типы.Добавить(Метаданные.Константы.ПутьКТомуБезУчетаРегиональныхНастроек);
ИсключаемыеТипы = СправочникиФайловИОбъектыХранения().ОбъектыХранения; ИсключаемыеТипы = СправочникиФайловИОбъектыХранения().ОбъектыХранения;
@@ -799,7 +799,7 @@
Файл.Изменил = Файл.Автор; Файл.Изменил = Файл.Автор;
Файл.ДатаСоздания = ТекущаяДатаСеанса(); Файл.ДатаСоздания = ТекущаяДатаСеанса();
Файл.Описание = СведенияОФайле.Комментарий; Файл.Описание = СведенияОФайле.Комментарий;
Файл.ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.ПолучитьИндексПиктограммыФайла(Неопределено); Файл.ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.ИндексПиктограммыФайла(Неопределено);
Файл.ХранитьВерсии = СведенияОФайле.ХранитьВерсии; Файл.ХранитьВерсии = СведенияОФайле.ХранитьВерсии;
Файл.Расширение = СведенияОФайле.РасширениеБезТочки; Файл.Расширение = СведенияОФайле.РасширениеБезТочки;
Файл.Размер = СведенияОФайле.Размер; Файл.Размер = СведенияОФайле.Размер;
@@ -2267,13 +2267,13 @@
Редактирует = СтруктураРеквизитов.Редактирует; Редактирует = СтруктураРеквизитов.Редактирует;
Если ЗначениеЗаполнено(Редактирует) Тогда Если ЗначениеЗаполнено(Редактирует) Тогда
ВызватьИсключение РаботаСФайламиСлужебныйКлиентСервер.СтрокаСообщенияОНедопустимостиПодписанияЗанятогоФайла( ВызватьИсключение РаботаСФайламиСлужебныйКлиентСервер.СообщениеОНедопустимостиПодписанияЗанятогоФайла(
ФайлСсылка); ФайлСсылка);
КонецЕсли; КонецЕсли;
Зашифрован = СтруктураРеквизитов.Зашифрован; Зашифрован = СтруктураРеквизитов.Зашифрован;
Если Зашифрован Тогда Если Зашифрован Тогда
СтрокаИсключения = РаботаСФайламиСлужебныйКлиентСервер.СтрокаСообщенияОНедопустимостиПодписанияЗашифрованногоФайла( СтрокаИсключения = РаботаСФайламиСлужебныйКлиентСервер.СообщениеОНедопустимостиПодписанияЗашифрованногоФайла(
ФайлСсылка); ФайлСсылка);
ВызватьИсключение СтрокаИсключения; ВызватьИсключение СтрокаИсключения;
КонецЕсли; КонецЕсли;
@@ -1779,7 +1779,7 @@
СохраняемоеИмяФайла = ?(ПустаяСтрока(ИмяСоздаваемогоФайла), Файл.Имя, ИмяСоздаваемогоФайла); СохраняемоеИмяФайла = ?(ПустаяСтрока(ИмяСоздаваемогоФайла), Файл.Имя, ИмяСоздаваемогоФайла);
РазмерВМб = РаботаСФайламиСлужебныйКлиентСервер.ПолучитьСтрокуСРазмеромФайла(Файл.Размер() / (1024 * 1024)); РазмерВМб = РаботаСФайламиСлужебныйКлиентСервер.ПредставлениеРазмераФайла(Файл.Размер() / (1024 * 1024));
Если ВыбранныеФайлы.Количество() > 1 Тогда Если ВыбранныеФайлы.Количество() > 1 Тогда
Если ТекущаяПозиция = Неопределено Тогда Если ТекущаяПозиция = Неопределено Тогда
@@ -1857,8 +1857,8 @@
НСтр("ru = 'Размер файла ""%1"" (%2 Мб) НСтр("ru = 'Размер файла ""%1"" (%2 Мб)
|превышает максимально допустимый размер файла (%3 Мб).'"), |превышает максимально допустимый размер файла (%3 Мб).'"),
ВыбранноеИмяФайла, ВыбранноеИмяФайла,
РаботаСФайламиСлужебныйКлиентСервер.ПолучитьСтрокуСРазмеромФайла(РазмерВМб), РаботаСФайламиСлужебныйКлиентСервер.ПредставлениеРазмераФайла(РазмерВМб),
РаботаСФайламиСлужебныйКлиентСервер.ПолучитьСтрокуСРазмеромФайла(РазмерВМбМакс)); РаботаСФайламиСлужебныйКлиентСервер.ПредставлениеРазмераФайла(РазмерВМбМакс));
ВызватьИсключение ОписаниеОшибки; ВызватьИсключение ОписаниеОшибки;
@@ -2096,8 +2096,8 @@
НСтр("ru = 'Размер файла ""%1"" (%2 Мб) НСтр("ru = 'Размер файла ""%1"" (%2 Мб)
|превышает максимально допустимый размер файла (%3 Мб).'"), |превышает максимально допустимый размер файла (%3 Мб).'"),
Файл.Имя, Файл.Имя,
РаботаСФайламиСлужебныйКлиентСервер.ПолучитьСтрокуСРазмеромФайла(РазмерВМб), РаботаСФайламиСлужебныйКлиентСервер.ПредставлениеРазмераФайла(РазмерВМб),
РаботаСФайламиСлужебныйКлиентСервер.ПолучитьСтрокуСРазмеромФайла(РазмерВМбМакс)); РаботаСФайламиСлужебныйКлиентСервер.ПредставлениеРазмераФайла(РазмерВМбМакс));
Если ВызыватьИсключение Тогда Если ВызыватьИсключение Тогда
ВызватьИсключение ОписаниеОшибки; ВызватьИсключение ОписаниеОшибки;
@@ -8832,12 +8832,12 @@
Предупреждения = Новый Массив; Предупреждения = Новый Массив;
Для Каждого Файл Из ДанныеФайла Цикл Для Каждого Файл Из ДанныеФайла Цикл
Если ЗначениеЗаполнено(Файл.Редактирует) Тогда Если ЗначениеЗаполнено(Файл.Редактирует) Тогда
Предупреждения.Добавить(РаботаСФайламиСлужебныйКлиентСервер.СтрокаСообщенияОНедопустимостиПодписанияЗанятогоФайла(Файл.Ссылка)); Предупреждения.Добавить(РаботаСФайламиСлужебныйКлиентСервер.СообщениеОНедопустимостиПодписанияЗанятогоФайла(Файл.Ссылка));
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
Если Файл.Зашифрован Тогда Если Файл.Зашифрован Тогда
Предупреждения.Добавить(РаботаСФайламиСлужебныйКлиентСервер.СтрокаСообщенияОНедопустимостиПодписанияЗашифрованногоФайла(Файл.Ссылка)); Предупреждения.Добавить(РаботаСФайламиСлужебныйКлиентСервер.СообщениеОНедопустимостиПодписанияЗашифрованногоФайла(Файл.Ссылка));
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
@@ -8850,13 +8850,13 @@
Иначе Иначе
Если ЗначениеЗаполнено(ДанныеФайла.Редактирует) Тогда Если ЗначениеЗаполнено(ДанныеФайла.Редактирует) Тогда
ТекстПредупреждения = РаботаСФайламиСлужебныйКлиентСервер.СтрокаСообщенияОНедопустимостиПодписанияЗанятогоФайла(); ТекстПредупреждения = РаботаСФайламиСлужебныйКлиентСервер.СообщениеОНедопустимостиПодписанияЗанятогоФайла();
ВернутьРезультатПослеПоказаПредупреждения(ОбработчикРезультата, ТекстПредупреждения, ПараметрыВыполнения); ВернутьРезультатПослеПоказаПредупреждения(ОбработчикРезультата, ТекстПредупреждения, ПараметрыВыполнения);
Возврат Ложь; Возврат Ложь;
КонецЕсли; КонецЕсли;
Если ДанныеФайла.Зашифрован Тогда Если ДанныеФайла.Зашифрован Тогда
ТекстПредупреждения = РаботаСФайламиСлужебныйКлиентСервер.СтрокаСообщенияОНедопустимостиПодписанияЗашифрованногоФайла(); ТекстПредупреждения = РаботаСФайламиСлужебныйКлиентСервер.СообщениеОНедопустимостиПодписанияЗашифрованногоФайла();
ВернутьРезультатПослеПоказаПредупреждения(ОбработчикЗавершения, ТекстПредупреждения, ПараметрыВыполнения); ВернутьРезультатПослеПоказаПредупреждения(ОбработчикЗавершения, ТекстПредупреждения, ПараметрыВыполнения);
Возврат Ложь; Возврат Ложь;
КонецЕсли; КонецЕсли;
@@ -9099,7 +9099,7 @@
НадписьПодробнее = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НадписьПодробнее = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Обрабатывается файл ""%1"" (%2 Мб)...'"), НСтр("ru = 'Обрабатывается файл ""%1"" (%2 Мб)...'"),
ВыбранныйФайл.Имя, ВыбранныйФайл.Имя,
РаботаСФайламиСлужебныйКлиентСервер.ПолучитьСтрокуСРазмеромФайла(РазмерВМб)); РаботаСФайламиСлужебныйКлиентСервер.ПредставлениеРазмераФайла(РазмерВМб));
ТекстСостояния = НСтр("ru = 'Загрузка файлов с компьютера...'"); ТекстСостояния = НСтр("ru = 'Загрузка файлов с компьютера...'");
@@ -131,9 +131,9 @@
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Для пользовательского интерфейса. // Для пользовательского интерфейса.
// Возвращает Строку сообщения о недопустимости подписания занятого файла. // Возвращает сообщение о недопустимости подписания занятого файла.
// //
Функция СтрокаСообщенияОНедопустимостиПодписанияЗанятогоФайла(ФайлСсылка = Неопределено) Экспорт Функция СообщениеОНедопустимостиПодписанияЗанятогоФайла(ФайлСсылка = Неопределено) Экспорт
Если ФайлСсылка = Неопределено Тогда Если ФайлСсылка = Неопределено Тогда
Возврат НСтр("ru = 'Нельзя подписать занятый файл.'"); Возврат НСтр("ru = 'Нельзя подписать занятый файл.'");
@@ -145,9 +145,9 @@
КонецФункции КонецФункции
// Возвращает Строку сообщения о недопустимости подписания зашифрованного файла. // Возвращает сообщение о недопустимости подписания зашифрованного файла.
// //
Функция СтрокаСообщенияОНедопустимостиПодписанияЗашифрованногоФайла(ФайлСсылка = Неопределено) Экспорт Функция СообщениеОНедопустимостиПодписанияЗашифрованногоФайла(ФайлСсылка = Неопределено) Экспорт
Если ФайлСсылка = Неопределено Тогда Если ФайлСсылка = Неопределено Тогда
Возврат НСтр("ru = 'Нельзя подписать зашифрованный файл.'"); Возврат НСтр("ru = 'Нельзя подписать зашифрованный файл.'");
@@ -159,8 +159,8 @@
КонецФункции КонецФункции
// Получить строку с представлением размера файла - например для отображения в Состояние при передаче файла. // Получить строку с представлением размера файла - например для отображения состояния при передаче файла.
Функция ПолучитьСтрокуСРазмеромФайла(Знач РазмерВМб) Экспорт Функция ПредставлениеРазмераФайла(Знач РазмерВМб) Экспорт
Если РазмерВМб < 0.1 Тогда Если РазмерВМб < 0.1 Тогда
РазмерВМб = 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;
НовыйФормат.Расширение = "PDF";
НовыйФормат.Картинка = БиблиотекаКартинок.ФорматPDF;
НовыйФормат.Представление = НСтр("ru = 'Документ PDF (устаревший формат)'");
// Табличный документ (.mxl) // Табличный документ (.mxl)
НовыйФормат = ТаблицаФорматов.Добавить(); НовыйФормат = ТаблицаФорматов.Добавить();
НовыйФормат.ТипФайлаТабличногоДокумента = ТипФайлаТабличногоДокумента.MXL; НовыйФормат.ТипФайлаТабличногоДокумента = ТипФайлаТабличногоДокумента.MXL;
@@ -3750,6 +3758,7 @@
Версии = Новый Массив; Версии = Новый Массив;
Версии.Добавить("8.3.21.1676"); Версии.Добавить("8.3.21.1676");
Версии.Добавить("8.3.21.1901"); Версии.Добавить("8.3.21.1901");
Версии.Добавить("8.3.24.1440");
Возврат Версии; Возврат Версии;
@@ -114,13 +114,11 @@
КонецЕсли; КонецЕсли;
Диапазоны = Новый Массив; Диапазоны = Новый Массив;
Диапазоны.Добавить(Новый Структура("Мин,Макс", 48, 57)); // цифры СтроковыеФункцииКлиентСерверЛокализация.ПриОпределенииСимволовСлов(Диапазоны);
Диапазоны.Добавить(Новый Структура("Мин,Макс", 65, 90)); // латиница большие Диапазоны.Добавить(Новый Структура("Мин,Макс", 48, 57)); // цифры
Диапазоны.Добавить(Новый Структура("Мин,Макс", 97, 122)); // латиница маленькие Диапазоны.Добавить(Новый Структура("Мин,Макс", 65, 90)); // латиница большие
Диапазоны.Добавить(Новый Структура("Мин,Макс", 1040, 1103)); // кириллица Диапазоны.Добавить(Новый Структура("Мин,Макс", 97, 122)); // латиница маленькие
Диапазоны.Добавить(Новый Структура("Мин,Макс", 1025, 1025)); // символ "Ё" Диапазоны.Добавить(Новый Структура("Мин,Макс", 95, 95)); // символ "_"
Диапазоны.Добавить(Новый Структура("Мин,Макс", 1105, 1105)); // символ "ё"
Диапазоны.Добавить(Новый Структура("Мин,Макс", 95, 95)); // символ "_"
Для Каждого Диапазон Из Диапазоны Цикл Для Каждого Диапазон Из Диапазоны Цикл
Если КодСимвола >= Диапазон.Мин И КодСимвола <= Диапазон.Макс Тогда Если КодСимвола >= Диапазон.Мин И КодСимвола <= Диапазон.Макс Тогда
@@ -513,14 +511,17 @@
// //
// Параметры: // Параметры:
// Символ - Строка - символ, из которого будет формироваться строка. // Символ - Строка - символ, из которого будет формироваться строка.
// ДлинаСтроки - Число - требуемая длина результирующей строки. // ДлинаСтроки - Число - требуемая длина результирующей строки.
// //
// Возвращаемое значение: // Возвращаемое значение:
// Строка - строка, состоящая из повторяющихся символов. // Строка
// //
Функция СформироватьСтрокуСимволов(Знач Символ, Знач ДлинаСтроки) Экспорт Функция СформироватьСтрокуСимволов(Знач Символ, Знач ДлинаСтроки) Экспорт
Возврат СтрСоединить(Новый Массив(ДлинаСтроки+1), Символ); Если ДлинаСтроки <= 0 Тогда
Возврат "";
КонецЕсли;
Возврат СтрСоединить(Новый Массив(ДлинаСтроки + 1), Символ);
КонецФункции КонецФункции
@@ -1250,6 +1251,8 @@
Возврат ЧислоЦифрамиПредметИсчисленияПрописью(Значение, ФормаДля1 + "," + ФормаДля2 + "," + ФормаДля5, Ложь); Возврат ЧислоЦифрамиПредметИсчисленияПрописью(Значение, ФормаДля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 Тогда Если ОтсутствующиеПараметры.Количество() > 0 Тогда
@@ -716,7 +720,7 @@
// Возвращаемое значение: // Возвращаемое значение:
// Структура: // Структура:
// * Наименование - Строка - обязательно для заполнения. // * Наименование - Строка - обязательно для заполнения.
// * Тип - ОписаниеТипов - обязательно для заполнения. // * ТипЗначения - ОписаниеТипов - обязательно для заполнения.
// * Имя - Строка // * Имя - Строка
// * Комментарий - Строка // * Комментарий - Строка
// * ЗаголовокФормыЗначения - Строка // * ЗаголовокФормыЗначения - Строка
@@ -729,7 +733,7 @@
Параметры = Новый Структура; Параметры = Новый Структура;
Параметры.Вставить("Наименование", ""); Параметры.Вставить("Наименование", "");
Параметры.Вставить("Тип"); Параметры.Вставить("ТипЗначения");
Параметры.Вставить("Имя", ""); Параметры.Вставить("Имя", "");
Параметры.Вставить("Комментарий", ""); Параметры.Вставить("Комментарий", "");
Параметры.Вставить("ЗаголовокФормыЗначения", ""); Параметры.Вставить("ЗаголовокФормыЗначения", "");
@@ -737,6 +741,7 @@
Параметры.Вставить("ИдентификаторДляФормул", ""); Параметры.Вставить("ИдентификаторДляФормул", "");
Параметры.Вставить("МногострочноеПолеВвода", Ложь); Параметры.Вставить("МногострочноеПолеВвода", Ложь);
Параметры.Вставить("Подсказка", ""); Параметры.Вставить("Подсказка", "");
Параметры.Вставить("Тип"); // Для обратной совместимости.
Возврат Параметры; Возврат Параметры;
@@ -1595,20 +1595,19 @@
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
МодульЭлектроннаяПодписьСлужебный = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебный"); МодульЭлектроннаяПодписьСлужебный = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебный");
СоответствиеВложенийИПодписей = ВложенияИПодписи = МодульЭлектроннаяПодписьСлужебный.ИменаФайловПодписейИменФайловДанных(ИменаВложений);
МодульЭлектроннаяПодписьСлужебный.ИменаФайловПодписейИменФайловДанных(ИменаВложений);
Иначе Иначе
СоответствиеВложенийИПодписей = Новый Соответствие; ВложенияИПодписи = Новый Соответствие;
Для Каждого ИмяФайлаВложения Из ИменаВложений Цикл Для Каждого ИмяФайлаВложения Из ИменаВложений Цикл
СоответствиеВложенийИПодписей.Вставить(ИмяФайлаВложения, Новый Массив); ВложенияИПодписи.Вставить(ИмяФайлаВложения, Новый Массив);
КонецЦикла; КонецЦикла;
КонецЕсли; КонецЕсли;
КоличествоПустыхИменВоВложениях = 0; КоличествоПустыхИменВоВложениях = 0;
Для каждого ЭлементСоответствия Из СоответствиеВложенийИПодписей Цикл Для каждого ЭлементСоответствия Из ВложенияИПодписи Цикл
НайденноеВложение = Неопределено; НайденноеВложение = Неопределено;
МассивПодписей = Новый Массив; ПодписиФайла = Новый Массив;
Для каждого Вложение Из Сообщение.Вложения Цикл Для каждого Вложение Из Сообщение.Вложения Цикл
Если Вложение.ИмяФайла = ЭлементСоответствия.Ключ Тогда Если Вложение.ИмяФайла = ЭлементСоответствия.Ключ Тогда
@@ -1620,13 +1619,13 @@
Если НайденноеВложение <> Неопределено И ЭлементСоответствия.Значение.Количество() > 0 Тогда Если НайденноеВложение <> Неопределено И ЭлементСоответствия.Значение.Количество() > 0 Тогда
Для каждого Вложение Из Сообщение.Вложения Цикл Для каждого Вложение Из Сообщение.Вложения Цикл
Если ЭлементСоответствия.Значение.Найти(Вложение.ИмяФайла) <> Неопределено Тогда Если ЭлементСоответствия.Значение.Найти(Вложение.ИмяФайла) <> Неопределено Тогда
МассивПодписей.Добавить(Вложение); ПодписиФайла.Добавить(Вложение);
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
КонецЕсли; КонецЕсли;
Если НайденноеВложение <> Неопределено Тогда Если НайденноеВложение <> Неопределено Тогда
ЗаписатьВложениеЭлектронногоПисьма(Письмо, НайденноеВложение, МассивПодписей, КоличествоПустыхИменВоВложениях); ЗаписатьВложениеЭлектронногоПисьма(Письмо, НайденноеВложение, ПодписиФайла, КоличествоПустыхИменВоВложениях);
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
@@ -2442,7 +2441,7 @@
КонецФункции КонецФункции
Процедура ЗаписатьВложениеЭлектронногоПисьма(Объект, Вложение,МассивПодписей,КоличествоПустыхИменВоВложениях) Процедура ЗаписатьВложениеЭлектронногоПисьма(Объект, Вложение, ПодписиВложения, КоличествоПустыхИменВоВложениях)
ПисьмоСсылка = Объект.Ссылка; ПисьмоСсылка = Объект.Ссылка;
Размер = 0; Размер = 0;
@@ -2478,7 +2477,7 @@
КонецЕсли; КонецЕсли;
ЕстьПодписи = (МассивПодписей.Количество() > 0) ЕстьПодписи = (ПодписиВложения.Количество() > 0)
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись"); И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись");
ЭтоОтображаемыйФайл = НЕ ПустаяСтрока(Вложение.Идентификатор); ЭтоОтображаемыйФайл = НЕ ПустаяСтрока(Вложение.Идентификатор);
@@ -2522,7 +2521,7 @@
МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись"); МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись");
МодульЭлектроннаяПодписьКлиентСервер= ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьКлиентСервер"); МодульЭлектроннаяПодписьКлиентСервер= ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьКлиентСервер");
Для Каждого ПодписьВложения Из МассивПодписей Цикл Для Каждого ПодписьВложения Из ПодписиВложения Цикл
Попытка Попытка
ДанныеПодписиВложения = МодульЭлектроннаяПодпись.ПодписьВКодировкеDER(ПодписьВложения.Данные); ДанныеПодписиВложения = МодульЭлектроннаяПодпись.ПодписьВКодировкеDER(ПодписьВложения.Данные);
@@ -2666,11 +2665,8 @@
// СправочникСсылка.ЭлектронноеПисьмоВходящееПрисоединенныеФайлы // СправочникСсылка.ЭлектронноеПисьмоВходящееПрисоединенныеФайлы
// СправочникСсылка.ЭлектронноеПисьмоИсходящееПрисоединенныеФайлы // СправочникСсылка.ЭлектронноеПисьмоИсходящееПрисоединенныеФайлы
// //
Функция ЗаписатьВложениеЭлектронногоПисьмаИзВременногоХранилища( Функция ЗаписатьВложениеЭлектронногоПисьмаИзВременногоХранилища(Письмо, АдресВоВременномХранилище,
Письмо, ПараметрыВложения, КоличествоПустыхИменВоВложениях = 0) Экспорт
АдресВоВременномХранилище,
ПараметрыВложения,
КоличествоПустыхИменВоВложениях = 0) Экспорт
ИмяФайлаДляРазбора = ПараметрыВложения.ИмяФайла; ИмяФайлаДляРазбора = ПараметрыВложения.ИмяФайла;
ИмяБезРасширения = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(ИмяФайлаДляРазбора); ИмяБезРасширения = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(ИмяФайлаДляРазбора);
@@ -2678,14 +2674,12 @@
Если ПустаяСтрока(ИмяБезРасширения) Тогда Если ПустаяСтрока(ИмяБезРасширения) Тогда
ИмяБезРасширения = ИмяБезРасширения = НСтр("ru = 'Вложение без имени'")
НСтр("ru = 'Вложение без имени'") + ?(КоличествоПустыхИменВоВложениях = 0, ""," " + Строка(КоличествоПустыхИменВоВложениях + 1)); + ?(КоличествоПустыхИменВоВложениях = 0, ""," " + Строка(КоличествоПустыхИменВоВложениях + 1));
КоличествоПустыхИменВоВложениях = КоличествоПустыхИменВоВложениях + 1; КоличествоПустыхИменВоВложениях = КоличествоПустыхИменВоВложениях + 1;
Иначе Иначе
ИмяБезРасширения = ИмяБезРасширения = ?(РасширениеБезТочки = "", ИмяБезРасширения,
?(РасширениеБезТочки = "",
ИмяБезРасширения,
Лев(ИмяБезРасширения, СтрДлина(ИмяБезРасширения) - СтрДлина(РасширениеБезТочки) - 1)); Лев(ИмяБезРасширения, СтрДлина(ИмяБезРасширения) - СтрДлина(РасширениеБезТочки) - 1));
КонецЕсли; КонецЕсли;
@@ -595,7 +595,7 @@
// //
// ФайловаяСистемаКлиент.ЗапуститьПрограмму("ping 127.0.0.1 -n 5", ПараметрыЗапускаПрограммы); // ФайловаяСистемаКлиент.ЗапуститьПрограмму("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; НоваяОшибка.Решение = ИзвестнаяОшибка.Solution;
НоваяОшибка.ТолькоСервер = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ИзвестнаяОшибка, "Server", Ложь); НоваяОшибка.ТолькоСервер = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ИзвестнаяОшибка, "Server", Ложь);
НоваяОшибка.ТолькоКлиент = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ИзвестнаяОшибка, "Client", Ложь); НоваяОшибка.ТолькоКлиент = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ИзвестнаяОшибка, "Client", Ложь);
НоваяОшибка.ОшибкаПриПроверкеПодписи = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ИзвестнаяОшибка, "Sign", Ложь);
Категория = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ИзвестнаяОшибка, "Category", Неопределено); Категория = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ИзвестнаяОшибка, "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 = 'Не удалось создать временный каталог для загрузки списка отзыва.'"), Контекст); НСтр("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 = 'На компьютере не удалось автоматически определить установленные приложения электронной подписи и шифрования.'");
ИначеЕсли КриптопровайдерыРезультат.ПроверкаВыполнена Тогда
Если КриптопровайдерыРезультат = Неопределено Тогда Если КриптопровайдерыРезультат.Криптопровайдеры.Количество() > 0 Тогда
Возврат КриптопровайдерыРезультат.Криптопровайдеры;
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( Иначе
НСтр("ru = '%1 не удалось автоматически определить установленные приложения электронной подписи и шифрования.'"), ИмяСервера); ТекстОшибки = НСтр("ru = 'На компьютере не установлены приложения электронной подписи и шифрования.'");
ИначеЕсли КриптопровайдерыРезультат.ПроверкаВыполнена Тогда КонецЕсли;
Если КриптопровайдерыРезультат.Криптопровайдеры.Количество() > 0 Тогда
Возврат КриптопровайдерыРезультат.Криптопровайдеры;
Иначе Иначе
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1 не установлены приложения электронной подписи и шифрования.'"), ИмяСервера); НСтр("ru = 'На компьютере не удалось автоматически определить установленные приложения электронной подписи и шифрования:
|%1'"), КриптопровайдерыРезультат.Ошибка);
КонецЕсли; КонецЕсли;
Иначе Иначе
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1 не удалось автоматически определить установленные приложения электронной подписи и шифрования: Если КриптопровайдерыРезультат = Неопределено Тогда
|%2'"), ИмяСервера, КриптопровайдерыРезультат.Ошибка);
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр(
"ru = 'На сервере %1 не удалось автоматически определить установленные приложения электронной подписи и шифрования.'"),
ИмяСервера);
ИначеЕсли КриптопровайдерыРезультат.ПроверкаВыполнена Тогда
Если КриптопровайдерыРезультат.Криптопровайдеры.Количество() > 0 Тогда
Возврат КриптопровайдерыРезультат.Криптопровайдеры;
Иначе
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'На сервере %1 не установлены приложения электронной подписи и шифрования.'"), ИмяСервера);
КонецЕсли;
Иначе
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'На сервере %1 не удалось автоматически определить установленные приложения электронной подписи и шифрования:
|%2'"), ИмяСервера, КриптопровайдерыРезультат.Ошибка);
КонецЕсли;
КонецЕсли; КонецЕсли;
Возврат ТекстОшибки; Возврат ТекстОшибки;
КонецФункции КонецФункции
@@ -2319,7 +2336,7 @@
КонецФункции КонецФункции
Функция ПрочитатьДатуИзБуфера(Буфер, Смещение) Экспорт Функция ПрочитатьДатуИзБуфера(Буфер, Смещение)
ТипДаты = ПолучитьHexСтрокуИзБуфераДвоичныхДанных(Буфер.Прочитать(Смещение, 2)); ТипДаты = ПолучитьHexСтрокуИзБуфераДвоичныхДанных(Буфер.Прочитать(Смещение, 2));
Если ТипДаты = "170D" Тогда // UTCTime Если ТипДаты = "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 Тогда Если СтрНайти(ТекстДляПоиска, СтрокаКлассификатора.ТекстОшибкиНижнийРегистр) <> 0 Тогда
ПредставлениеОшибки = ЭлектроннаяПодписьСлужебный.ПредставлениеОшибки(); ПредставлениеОшибки = ЭлектроннаяПодписьСлужебный.ПредставлениеОшибки();
ЗаполнитьЗначенияСвойств(ПредставлениеОшибки, СтрокаКлассификатора); ЗаполнитьЗначенияСвойств(ПредставлениеОшибки, СтрокаКлассификатора);
ПредставлениеОшибки.ДействияДляУстранения = ПрочитанныеДействияДляУстраненияОшибок( ПредставлениеОшибки.ДействияДляУстранения = ПрочитанныеДействияДляУстраненияОшибок(
ПредставлениеОшибки.СпособУстранения); ПредставлениеОшибки.СпособУстранения);
Если Не ОшибкаНаСервере Тогда Если Не ОшибкаНаСервере Тогда
ДополнитьРешениеАвтоматическимиДействиями(ПредставлениеОшибки.Решение, ПредставлениеОшибки.ДействияДляУстранения); ДополнитьРешениеАвтоматическимиДействиями(ПредставлениеОшибки.Решение,
ПредставлениеОшибки.ДействияДляУстранения);
КонецЕсли; КонецЕсли;
ПредставлениеОшибки.Причина = СтроковыеФункции.ФорматированнаяСтрока(ПредставлениеОшибки.Причина); ПредставлениеОшибки.Причина = СтроковыеФункции.ФорматированнаяСтрока(ПредставлениеОшибки.Причина);
ПредставлениеОшибки.Решение = СтроковыеФункции.ФорматированнаяСтрока(ПредставлениеОшибки.Решение); ПредставлениеОшибки.Решение = СтроковыеФункции.ФорматированнаяСтрока(ПредставлениеОшибки.Решение);
Возврат Новый ФиксированнаяСтруктура(ПредставлениеОшибки); Возврат Новый ФиксированнаяСтруктура(ПредставлениеОшибки);
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
Возврат Неопределено; Возврат Неопределено;
+11 -9
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="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> <name>БиблиотекаСтандартныхПодсистем</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value> <value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym> </synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="6f5028aa-6399-4765-8957-959c1a48d857"/> <containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="a8d71e19-775e-40ea-9246-493a1b678151"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="897eb668-aedd-4c39-aace-7e7863ab90c9"/> <containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="ceb21d74-2ec7-4210-812e-c2922c78ad41"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="0f833d1b-ac95-461b-a583-2e5b9c491642"/> <containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="f9b1855d-d017-4462-bbe3-61021192eb35"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="ec3293d2-ae27-4e2b-8ed3-60791d56204a"/> <containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="a6382b1d-c526-46e6-a578-10d72e6cd283"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="05eeabcd-f200-42af-a619-293e2e019915"/> <containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="27aaa6da-c421-4556-a8ba-27db11d5426a"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="4f0d9ae8-6bbf-4747-bc4b-d90042f124ea"/> <containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="f2036c2f-f1cd-4f44-ac9d-cb103b2ef261"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="f18c9483-2f0d-479e-b431-9f56ae9233b8"/> <containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="53a62a8f-90a8-4b99-a108-cbca051ed24f"/>
<defaultRunMode>ManagedApplication</defaultRunMode> <defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes> <usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant> <scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles> <defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles> <defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor> <vendor>Фирма &quot;1С&quot;</vendor>
<version>3.1.10.123</version> <version>3.1.10.141</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress> <updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents> <includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities> <usedMobileApplicationFunctionalities>
@@ -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>
<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.ОбновлениеКлассификаторовМЧД</scheduledJobs>
<scheduledJobs>ScheduledJob.ОбновлениеПредопределенныхВариантовОтчетов</scheduledJobs> <scheduledJobs>ScheduledJob.ОбновлениеПредопределенныхВариантовОтчетов</scheduledJobs>
<scheduledJobs>ScheduledJob.ОбновлениеСостоянияЗаявленияНаВыпускСертификата</scheduledJobs> <scheduledJobs>ScheduledJob.ОбновлениеСостоянияЗаявленияНаВыпускСертификата</scheduledJobs>
<scheduledJobs>ScheduledJob.ОбновлениеСтатусовДоставкиSMS</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/> <stringQualifiers/>
</valueType> </valueType>
</parameters> </parameters>
<parameters>
<name>ИзФормыИстории</name>
<valueType>
<types>Boolean</types>
</valueType>
<keyParameter>true</keyParameter>
</parameters>
<commandInterface> <commandInterface>
<navigationPanel/> <navigationPanel/>
<commandBar/> <commandBar/>
@@ -820,8 +820,9 @@
Иначе Иначе
Элементы.ИсторияИзменений.Видимость = Ложь; Элементы.ИсторияИзменений.Видимость = Ложь;
КонецЕсли; КонецЕсли;
Элементы.ИсторияИзмененийГиперссылка.Видимость = НЕ Параметры.Свойство("ИзФормыИстории"); ВводНовогоАдреса = Параметры.ВводНовогоАдреса;
Если Параметры.ВводНовогоАдреса Тогда Элементы.ИсторияИзмененийГиперссылка.Видимость = НЕ Параметры.ИзФормыИстории;
Если ВводНовогоАдреса Тогда
ДействуетС = Параметры.ДействуетС; ДействуетС = Параметры.ДействуетС;
Иначе Иначе
ДействуетС = ?(ЗначениеЗаполнено(Параметры.ДействуетС), Параметры.ДействуетС, ТекущаяДатаСеанса()); ДействуетС = ?(ЗначениеЗаполнено(Параметры.ДействуетС), Параметры.ДействуетС, ТекущаяДатаСеанса());
@@ -863,6 +863,12 @@
<types>Boolean</types> <types>Boolean</types>
</valueType> </valueType>
</parameters> </parameters>
<parameters>
<name>ПоказыватьСлужебныеРеквизиты</name>
<valueType>
<types>Boolean</types>
</valueType>
</parameters>
<commandInterface> <commandInterface>
<navigationPanel/> <navigationPanel/>
<commandBar/> <commandBar/>
@@ -26,7 +26,7 @@
Элементы.ОтключитьСвязиПараметровВыбора.Видимость = МожноПоказыватьСлужебныеРеквизиты; Элементы.ОтключитьСвязиПараметровВыбора.Видимость = МожноПоказыватьСлужебныеРеквизиты;
Если МожноПоказыватьСлужебныеРеквизиты Тогда Если МожноПоказыватьСлужебныеРеквизиты Тогда
Параметры.Свойство("ПоказыватьСлужебныеРеквизиты", ПоказыватьСлужебныеРеквизиты); ПоказыватьСлужебныеРеквизиты = Параметры.ПоказыватьСлужебныеРеквизиты;
КонецЕсли; КонецЕсли;
Элементы.ГруппаОбрабатыватьРекурсивно.Видимость = Параметры.КонтекстныйВызов И Параметры.УчитыватьИерархию; Элементы.ГруппаОбрабатыватьРекурсивно.Видимость = Параметры.КонтекстныйВызов И Параметры.УчитыватьИерархию;
@@ -1813,6 +1813,12 @@
<stringQualifiers/> <stringQualifiers/>
</valueType> </valueType>
</parameters> </parameters>
<parameters>
<name>ИспользуетсяДеревоОперандов</name>
<valueType>
<types>Boolean</types>
</valueType>
</parameters>
<commandInterface> <commandInterface>
<navigationPanel/> <navigationPanel/>
<commandBar/> <commandBar/>
@@ -14,7 +14,7 @@
Формула = Параметры.Формула; Формула = Параметры.Формула;
ИсходнаяФормула = Параметры.Формула; ИсходнаяФормула = Параметры.Формула;
Параметры.Свойство("ИспользуетсяДеревоОперандов", ИспользуетсяДеревоОперандов); ИспользуетсяДеревоОперандов = Параметры.ИспользуетсяДеревоОперандов;
Элементы.ГруппаОперандыСтраницы.ТекущаяСтраница = Элементы.СтраницаЧисловыхОперандов; Элементы.ГруппаОперандыСтраницы.ТекущаяСтраница = Элементы.СтраницаЧисловыхОперандов;
Операнды.Загрузить(ПолучитьИзВременногоХранилища(Параметры.Операнды)); Операнды.Загрузить(ПолучитьИзВременногоХранилища(Параметры.Операнды));
@@ -2088,24 +2088,176 @@
<autoMaxCardHeight>true</autoMaxCardHeight> <autoMaxCardHeight>true</autoMaxCardHeight>
<rowFilter xsi:type="core:UndefinedValue"/> <rowFilter xsi:type="core:UndefinedValue"/>
</items> </items>
<items xsi:type="form:FormField"> <items xsi:type="form:FormGroup">
<name>Причина</name> <name>ГруппаПричина</name>
<id>142</id> <id>376</id>
<title> <items xsi:type="form:FormGroup">
<key>ru</key> <name>ГруппаСформироватьОтчетОбОшибке</name>
<value>Причина</value> <id>369</id>
</title> <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> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
<common>true</common> <common>true</common>
</userVisible> </userVisible>
<dataPath xsi:type="form:DataPath"> <title>
<segments>Причина</segments> <key>ru</key>
</dataPath> <value>Причина</value>
</title>
<verticalStretch>true</verticalStretch>
<extendedTooltip> <extendedTooltip>
<name>ПричинаРасширеннаяПодсказка</name> <name>ГруппаПричинаРасширеннаяПодсказка</name>
<id>144</id> <id>377</id>
<type>Label</type> <type>Label</type>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
@@ -2113,28 +2265,14 @@
<horizontalAlign>Left</horizontalAlign> <horizontalAlign>Left</horizontalAlign>
</extInfo> </extInfo>
</extendedTooltip> </extendedTooltip>
<contextMenu> <type>UsualGroup</type>
<name>ПричинаКонтекстноеМеню</name> <extInfo xsi:type="form:UsualGroupExtInfo">
<id>143</id> <group>Vertical</group>
<autoFill>true</autoFill> <behavior>Auto</behavior>
</contextMenu> <showLeftMargin>true</showLeftMargin>
<type>InputField</type> <united>true</united>
<readOnly>true</readOnly> <throughAlign>Auto</throughAlign>
<editMode>Enter</editMode> <currentRowUse>Auto</currentRowUse>
<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>
</extInfo> </extInfo>
</items> </items>
<visible>true</visible> <visible>true</visible>
@@ -2662,6 +2800,10 @@
<event>OnCreateAtServer</event> <event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name> <name>ПриСозданииНаСервере</name>
</handlers> </handlers>
<handlers>
<event>OnClose</event>
<name>ПриЗакрытии</name>
</handlers>
<windowOpeningMode>LockOwner</windowOpeningMode> <windowOpeningMode>LockOwner</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings> <saveWindowSettings>true</saveWindowSettings>
<autoUrl>true</autoUrl> <autoUrl>true</autoUrl>
@@ -3172,6 +3314,17 @@
<common>true</common> <common>true</common>
</edit> </edit>
</columns> </columns>
<columns>
<name>ОтчетОбОшибке</name>
<id>46</id>
<valueType/>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
</attributes> </attributes>
<attributes> <attributes>
<name>ПредставлениеИзменяемыхОбъектов</name> <name>ПредставлениеИзменяемыхОбъектов</name>
@@ -3445,6 +3598,19 @@
<common>true</common> <common>true</common>
</edit> </edit>
</attributes> </attributes>
<attributes>
<name>ВерсияБСПСоответствуетТребованиям</name>
<id>49</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands> <formCommands>
<name>Назад</name> <name>Назад</name>
<title> <title>
@@ -3554,6 +3720,12 @@
<name>КомпоновщикНастроек</name> <name>КомпоновщикНастроек</name>
<valueType/> <valueType/>
</parameters> </parameters>
<parameters>
<name>ДополнительнаяОбработкаСсылка</name>
<valueType>
<types>AnyRef</types>
</valueType>
</parameters>
<commandInterface> <commandInterface>
<navigationPanel/> <navigationPanel/>
<commandBar/> <commandBar/>
@@ -11,6 +11,9 @@
&НаКлиенте &НаКлиенте
Перем ТекущийВыбранныйРеквизит; Перем ТекущийВыбранныйРеквизит;
&НаКлиенте
Перем СведенияОбОшибках;
#КонецОбласти #КонецОбласти
#Область ОбработчикиСобытийФормы #Область ОбработчикиСобытийФормы
@@ -20,8 +23,9 @@
УстановитьУсловноеОформление(); УстановитьУсловноеОформление();
ПроверитьВерсиюИРежимСовместимостиПлатформы(); ПроверитьВерсиюИРежимСовместимостиПлатформы();
Параметры.Свойство("ДополнительнаяОбработкаСсылка", ДополнительнаяОбработкаСсылка); ВерсияБСПСоответствуетТребованиям = ВерсияБСПСоответствуетТребованиям();
ДополнительнаяОбработкаСсылка = Параметры.ДополнительнаяОбработкаСсылка;
КонтекстныйВызов = ТипЗнч(Параметры.МассивОбъектов) = Тип("Массив"); КонтекстныйВызов = ТипЗнч(Параметры.МассивОбъектов) = Тип("Массив");
Элементы.ФормаНазад.Видимость = Ложь; Элементы.ФормаНазад.Видимость = Ложь;
@@ -31,7 +35,7 @@
ВыполнитьДействияПриКонтекстномОткрытии(); ВыполнитьДействияПриКонтекстномОткрытии();
Иначе Иначе
Если Не ЭтоПолноправныйПользователь() Тогда Если Не ЭтоПолноправныйПользователь() Тогда
ВызватьИсключение НСтр("ru = 'Для открытия обработки требуется право администрирования.'") ВызватьИсключение(НСтр("ru = 'Недостаточно прав доступа.'"), КатегорияОшибки.НарушениеПравДоступа);
КонецЕсли; КонецЕсли;
Заголовок = НСтр("ru = 'Групповое изменение реквизитов'"); Заголовок = НСтр("ru = 'Групповое изменение реквизитов'");
ЗаполнитьСписокТиповОбъектов(); ЗаполнитьСписокТиповОбъектов();
@@ -51,13 +55,15 @@
СтруктураОбъекта = Новый Структура("ИспользуемоеИмяФайла", Неопределено); СтруктураОбъекта = Новый Структура("ИспользуемоеИмяФайла", Неопределено);
ЗаполнитьЗначенияСвойств(СтруктураОбъекта, ОбработкаОбъект); ЗаполнитьЗначенияСвойств(СтруктураОбъекта, ОбработкаОбъект);
// Если поле ИспользуемоеИмяФайла есть - это внешняя обработка. // Если поле ИспользуемоеИмяФайла есть, то это внешняя обработка.
Если Не ЗначениеЗаполнено(ДополнительнаяОбработкаСсылка) Если Не ЗначениеЗаполнено(ДополнительнаяОбработкаСсылка)
И ЗначениеЗаполнено(СтруктураОбъекта.ИспользуемоеИмяФайла) И ЗначениеЗаполнено(СтруктураОбъекта.ИспользуемоеИмяФайла)
И Не СтрНачинаетсяС(СтруктураОбъекта.ИспользуемоеИмяФайла, "e1cib/") И Не СтрНачинаетсяС(СтруктураОбъекта.ИспользуемоеИмяФайла, "e1cib/")
И Не СтрНачинаетсяС(СтруктураОбъекта.ИспользуемоеИмяФайла, "e1cib\") Тогда И Не СтрНачинаетсяС(СтруктураОбъекта.ИспользуемоеИмяФайла, "e1cib\") Тогда
ПутьКФайлуВнешнейОбработкиНаКлиенте = СтруктураОбъекта.ИспользуемоеИмяФайла; ПутьКФайлуВнешнейОбработкиНаКлиенте = СтруктураОбъекта.ИспользуемоеИмяФайла;
КонецЕсли; КонецЕсли;
Элементы.СформироватьОтчетОбОшибке.Видимость = Ложь;
КонецПроцедуры КонецПроцедуры
@@ -65,12 +71,19 @@
Процедура ПриОткрытии(Отказ) Процедура ПриОткрытии(Отказ)
#Если ВебКлиент Тогда #Если ВебКлиент Тогда
Если ЗначениеЗаполнено(ПутьКФайлуВнешнейОбработкиНаКлиенте) Тогда Если ЗначениеЗаполнено(ПутьКФайлуВнешнейОбработкиНаКлиенте) Тогда
ТекстОшибки = НСтр("ru = 'Для этого действия требуется запустить клиентское приложение'"); ТекстОшибки = НСтр("ru = 'Для выполнения действия требуется запустить клиентское приложение.'");
ВызватьИсключение ТекстОшибки; ВызватьИсключение ТекстОшибки;
КонецЕсли; КонецЕсли;
#КонецЕсли #КонецЕсли
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
ОтправитьОтчетОбОшибке();
КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора) Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
@@ -175,6 +188,27 @@
Элементы.РеквизитыСтрокаПоиска.Видимость = (ТекущаяСтраница = Элементы.Реквизиты); Элементы.РеквизитыСтрокаПоиска.Видимость = (ТекущаяСтраница = Элементы.Реквизиты);
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура СформироватьОтчетОбОшибкеНажатие(Элемент)
Если Не ВерсияБСПСоответствуетТребованиям Тогда
Возврат;
КонецЕсли;
МодульСтандартныеПодсистемыКлиент = ОбщийМодуль("СтандартныеПодсистемыКлиент");
ТекущиеДанные = Элементы.ОбъектыКоторыеНеУдалосьИзменить.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ОтчетОбОшибке = СведенияОбОшибке(ТекущиеДанные.Объект).ОтчетОбОшибке;
Если ОтчетОбОшибке <> Неопределено Тогда
МодульСтандартныеПодсистемыКлиент.ПоказатьОтчетОбОшибке(ОтчетОбОшибке);
КонецЕсли;
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыКомпоновщикНастроекНастройкиОтбор #Область ОбработчикиСобытийЭлементовТаблицыФормыКомпоновщикНастроекНастройкиОтбор
@@ -197,17 +231,52 @@
&НаКлиенте &НаКлиенте
Процедура ОбъектыКоторыеНеУдалосьИзменитьПередНачаломИзменения(Элемент, Отказ) Процедура ОбъектыКоторыеНеУдалосьИзменитьПередНачаломИзменения(Элемент, Отказ)
Отказ = Истина; Если ТипЗнч(Элемент.ТекущиеДанные.Объект) <> Тип("Строка")
Если ТипЗнч(Элемент.ТекущиеДанные.Объект) <> Тип("Строка") Тогда И Элемент.ТекущийЭлемент = Элементы.ОбъектыКоторыеНеУдалосьИзменитьОбъект Тогда
Отказ = Истина;
ПоказатьЗначение(, Элемент.ТекущиеДанные.Объект); ПоказатьЗначение(, Элемент.ТекущиеДанные.Объект);
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура ОбъектыКоторыеНеУдалосьИзменитьПриАктивизацииСтроки(Элемент) Процедура ОбъектыКоторыеНеУдалосьИзменитьПриАктивизацииСтроки(Элемент)
Если Элемент.ТекущиеДанные <> Неопределено Тогда Если Элемент.ТекущиеДанные = Неопределено Тогда
Причина = "";
Иначе
Причина = Элемент.ТекущиеДанные.Причина; Причина = Элемент.ТекущиеДанные.Причина;
КонецЕсли; КонецЕсли;
НастроитьВидимостьИЗаголовокСсылкиОтправкиОтчетаОбОшибке();
КонецПроцедуры
&НаКлиенте
Процедура НастроитьВидимостьИЗаголовокСсылкиОтправкиОтчетаОбОшибке()
Если Не ВерсияБСПСоответствуетТребованиям Тогда
Возврат;
КонецЕсли;
МодульСтандартныеПодсистемыКлиент = ОбщийМодуль("СтандартныеПодсистемыКлиент");
Элементы.СформироватьОтчетОбОшибке.Видимость = Ложь;
Если Элементы.Страницы.ТекущаяСтраница <> Элементы.ИзменениеОбъектов
Или Не Элементы.ГруппаОбъектыКоторыеНеУдалосьИзменить.Видимость Тогда
Возврат;
КонецЕсли;
ТекущиеДанные = Элементы.ОбъектыКоторыеНеУдалосьИзменить.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ИнформацияОбОшибке = СведенияОбОшибке(ТекущиеДанные.Объект).ИнформацияОбОшибке;
Если ИнформацияОбОшибке <> Неопределено Тогда
МодульСтандартныеПодсистемыКлиент.НастроитьВидимостьИЗаголовокСсылкиОтправкиОтчетаОбОшибке(
Элементы.СформироватьОтчетОбОшибке, ИнформацияОбОшибке);
КонецЕсли;
КонецПроцедуры КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -254,7 +323,8 @@
Результат = Ложь; Результат = Ложь;
Для Индекс = 0 По РеквизитыОбъекта.Количество() - 1 Цикл Для Индекс = 0 По РеквизитыОбъекта.Количество() - 1 Цикл
ОписаниеРеквизита = РеквизитыОбъекта[Индекс]; ОписаниеРеквизита = РеквизитыОбъекта[Индекс];
Если ОписаниеРеквизита.Изменять И ТипЗнч(ОписаниеРеквизита.Значение) = Тип("Строка") И СтрНачинаетсяС(ОписаниеРеквизита.Значение, "=") Тогда Если ОписаниеРеквизита.Изменять И ТипЗнч(ОписаниеРеквизита.Значение) = Тип("Строка")
И СтрНачинаетсяС(ОписаниеРеквизита.Значение, "=") Тогда
ТекстОшибки = ""; ТекстОшибки = "";
Если ЕстьОшибкаВВыражении(ОписаниеРеквизита.Значение, ТекстОшибки) Тогда Если ЕстьОшибкаВВыражении(ОписаниеРеквизита.Значение, ТекстОшибки) Тогда
Результат = Истина; Результат = Истина;
@@ -275,6 +345,7 @@
&НаКлиенте &НаКлиенте
Процедура Изменить(Команда) Процедура Изменить(Команда)
ОтправитьОтчетОбОшибке();
Если Объект.ТипОперации = "ВыполнитьАлгоритм" Тогда Если Объект.ТипОперации = "ВыполнитьАлгоритм" Тогда
ПраваВыполненияКода = ДоступныеПраваВыполнениеКода(); ПраваВыполненияКода = ДоступныеПраваВыполнениеКода();
@@ -318,7 +389,7 @@
Если НазначениеКнопки = "Изменить" Тогда Если НазначениеКнопки = "Изменить" Тогда
Если Не ЕстьВыбранныеОбъекты() Тогда Если Не ЕстьВыбранныеОбъекты() Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Не указаны элементы для изменения'")); ПоказатьПредупреждение(, НСтр("ru = 'Не указаны элементы для изменения.'"));
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -346,6 +417,7 @@
&НаКлиенте &НаКлиенте
Процедура Назад(Команда) Процедура Назад(Команда)
ОтправитьОтчетОбОшибке();
НазадСервер(); НазадСервер();
КонецПроцедуры КонецПроцедуры
@@ -582,7 +654,7 @@
КонецЕсли; КонецЕсли;
Если Не ЕстьНастроенныеИзменения() И Объект.ТипОперации = "ВвестиЗначения" Тогда Если Не ЕстьНастроенныеИзменения() И Объект.ТипОперации = "ВвестиЗначения" Тогда
ТекстВопроса = НСтр("ru = 'Изменения не настроены. Выполнить перезапись элементов без изменений?'"); ТекстВопроса = НСтр("ru = 'Изменения не заданы. Выполнить перезапись элементов без внесения изменений?'");
ОписаниеОповещения = Новый ОписаниеОповещения("ВыполнитьИзменениеПроверкиВыполнены", ЭтотОбъект); ОписаниеОповещения = Новый ОписаниеОповещения("ВыполнитьИзменениеПроверкиВыполнены", ЭтотОбъект);
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ОКОтмена, , , НСтр("ru = 'Изменение элементов'")); ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ОКОтмена, , , НСтр("ru = 'Изменение элементов'"));
Иначе Иначе
@@ -667,6 +739,7 @@
УстановитьКнопкиНаВремяИзменения(Истина); УстановитьКнопкиНаВремяИзменения(Истина);
ПерейтиНаСтраницуИзмененияОбъектов(); ПерейтиНаСтраницуИзмененияОбъектов();
ОбъектыКоторыеНеУдалосьИзменить.Очистить(); ОбъектыКоторыеНеУдалосьИзменить.Очистить();
СведенияОбОшибках = Неопределено;
ПодключитьОбработчикОжидания("ИзменитьОбъекты", 0.1, Истина); ПодключитьОбработчикОжидания("ИзменитьОбъекты", 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 = 'Больше не спрашивать'"));
ОписаниеОповещения = Новый ОписаниеОповещения("ОбработатьРезультатИзмененияОтветПолучен", ЭтотОбъект, РезультатИзменения); ОписаниеОповещения = Новый ОписаниеОповещения("ОбработатьРезультатИзмененияОтветПолучен",
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки, , КодВозвратаДиалога.Прервать, НСтр("ru = 'Ошибки при изменении элементов'")); ЭтотОбъект, РезультатИзменения);
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки, , КодВозвратаДиалога.Прервать,
НСтр("ru = 'Ошибки при изменении элементов'"));
Возврат; Возврат;
КонецЦикла; КонецЦикла;
@@ -1432,9 +1503,19 @@
Если Не ПустаяСтрока(СостояниеОбработанногоОбъекта.Значение.КодОшибки) Тогда Если Не ПустаяСтрока(СостояниеОбработанногоОбъекта.Значение.КодОшибки) Тогда
КоличествоОшибок = КоличествоОшибок + 1; КоличествоОшибок = КоличествоОшибок + 1;
ИнформацияОбОшибке = СостояниеОбработанногоОбъекта.Значение.СообщениеОбОшибке;
ОтчетОбОшибке = Новый ОтчетОбОшибке(ИнформацияОбОшибке);
СведенияОбОшибке = СведенияОбОшибке();
СведенияОбОшибке.ОтчетОбОшибке = ОтчетОбОшибке;
СведенияОбОшибке.ИнформацияОбОшибке = ИнформацияОбОшибке;
СведенияОбОшибках().Вставить(СостояниеОбработанногоОбъекта.Ключ, СведенияОбОшибке);
ЗаписьОбОшибке = ОбъектыКоторыеНеУдалосьИзменить.Добавить(); ЗаписьОбОшибке = ОбъектыКоторыеНеУдалосьИзменить.Добавить();
ЗаписьОбОшибке.Объект = СостояниеОбработанногоОбъекта.Ключ; ЗаписьОбОшибке.Объект = СостояниеОбработанногоОбъекта.Ключ;
ЗаписьОбОшибке.Причина = СостояниеОбработанногоОбъекта.Значение.СообщениеОбОшибке; ЗаписьОбОшибке.Причина = ОбработкаОшибок.СообщениеОбОшибкеДляПользователя(ИнформацияОбОшибке);
Иначе Иначе
КоличествоИзмененных = КоличествоИзмененных + 1; КоличествоИзмененных = КоличествоИзмененных + 1;
КонецЕсли; КонецЕсли;
@@ -1530,7 +1611,6 @@
ВыбранныеОбъекты = ВыбранныеОбъекты(); ВыбранныеОбъекты = ВыбранныеОбъекты();
Ссылки = ВыбранныеОбъекты.Строки.ВыгрузитьКолонку("Ссылка"); Ссылки = ВыбранныеОбъекты.Строки.ВыгрузитьКолонку("Ссылка");
Возврат ПоместитьВоВременноеХранилище(Ссылки, УникальныйИдентификатор); Возврат ПоместитьВоВременноеХранилище(Ссылки, УникальныйИдентификатор);
КонецФункции КонецФункции
@@ -1539,13 +1619,8 @@
Функция ОбъектМетаданныхИерархический(СсылкаПервого) Функция ОбъектМетаданныхИерархический(СсылкаПервого)
ВидОбъектаПоСсылке = ВидОбъектаПоСсылке(СсылкаПервого); ВидОбъектаПоСсылке = ВидОбъектаПоСсылке(СсылкаПервого);
Возврат ((ВидОбъектаПоСсылке = "Справочник" Или ВидОбъектаПоСсылке = "ПланВидовХарактеристик") И СсылкаПервого.Метаданные().Иерархический)
Если ((ВидОбъектаПоСсылке = "Справочник" ИЛИ ВидОбъектаПоСсылке = "ПланВидовХарактеристик") И СсылкаПервого.Метаданные().Иерархический) Или (ВидОбъектаПоСсылке = "ПланСчетов");
ИЛИ (ВидОбъектаПоСсылке = "ПланСчетов") Тогда
Возврат Истина;
КонецЕсли;
Возврат Ложь;
КонецФункции КонецФункции
@@ -1553,7 +1628,6 @@
Функция ИерархияГруппИЭлементов(СсылкаПервого) Функция ИерархияГруппИЭлементов(СсылкаПервого)
ВидОбъектаПоСсылке = ВидОбъектаПоСсылке(СсылкаПервого); ВидОбъектаПоСсылке = ВидОбъектаПоСсылке(СсылкаПервого);
Возврат (ВидОбъектаПоСсылке = "Справочник" И СсылкаПервого.Метаданные().Иерархический Возврат (ВидОбъектаПоСсылке = "Справочник" И СсылкаПервого.Метаданные().Иерархический
И СсылкаПервого.Метаданные().ВидИерархии = Метаданные.СвойстваОбъектов.ВидИерархии.ИерархияГруппИЭлементов) И СсылкаПервого.Метаданные().ВидИерархии = Метаданные.СвойстваОбъектов.ВидИерархии.ИерархияГруппИЭлементов)
Или (ВидОбъектаПоСсылке = "ПланВидовХарактеристик" И СсылкаПервого.Метаданные().Иерархический); Или (ВидОбъектаПоСсылке = "ПланВидовХарактеристик" И СсылкаПервого.Метаданные().Иерархический);
@@ -1599,16 +1673,15 @@
КонецФункции КонецФункции
// Параметры: // Параметры:
// НастройкиОтбора - Неопределено // НастройкиОтбора - Структура:
// - Структура: // * ОграничитьВыборку - Булево
// * ОграничитьВыборку - Булево // * ВключитьТабличныеЧастиВВыборку - Булево
// * ВключитьТабличныеЧастиВВыборку - Булево // * ОбновитьСписок - Булево
// * ОбновитьСписок - Булево
// ТекстСообщенияОбОшибке - Строка // ТекстСообщенияОбОшибке - Строка
// //
// Возвращаемое значение: // Возвращаемое значение:
// ДеревоЗначений: // ДеревоЗначений:
// * Ссылка - ЛюбаяСсылка // * Ссылка - ЛюбаяСсылка
// //
&НаСервере &НаСервере
Функция ВыбранныеОбъекты(НастройкиОтбора = Неопределено, ТекстСообщенияОбОшибке = "") Функция ВыбранныеОбъекты(НастройкиОтбора = Неопределено, ТекстСообщенияОбОшибке = "")
@@ -1802,7 +1875,8 @@
ОбъектОбработка = РеквизитФормыВЗначение("Объект"); ОбъектОбработка = РеквизитФормыВЗначение("Объект");
ТекстЗапроса = ОбъектОбработка.ТекстЗапроса(ВидыИзменяемыхОбъектов); ТекстЗапроса = ОбъектОбработка.ТекстЗапроса(ВидыИзменяемыхОбъектов);
СхемаКомпоновкиДанных = СхемаКомпоновкиДанных(ТекстЗапроса); СхемаКомпоновкиДанных = СхемаКомпоновкиДанных(ТекстЗапроса);
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(ПоместитьВоВременноеХранилище(СхемаКомпоновкиДанных, УникальныйИдентификатор))); КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(
ПоместитьВоВременноеХранилище(СхемаКомпоновкиДанных, УникальныйИдентификатор)));
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
Если ВыбранныеОбъектыВКонтексте.Количество() > 0 Тогда Если ВыбранныеОбъектыВКонтексте.Количество() > 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]; ИмяОбъекта = СписокВидовИзменяемыхОбъектов[0];
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ИмяОбъекта); ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ИмяОбъекта);
// Создание реквизитов для табличных частей.
НовыеРеквизитыФормы = Новый Массив; НовыеРеквизитыФормы = Новый Массив;
КолонкиТаблиц = ОписанияКолонокТаблицыРеквизитов(); КолонкиТаблиц = ОписанияКолонокТаблицыРеквизитов();
ТаблицыОбъекта = Новый Структура; ТаблицыОбъекта = Новый Структура;
ТабличныеЧастиОбъекта.Очистить(); ТабличныеЧастиОбъекта.Очистить();
Для Каждого ОписаниеТабличнойЧасти Из ОбъектМетаданных.ТабличныеЧасти Цикл Для Каждого ОписаниеТабличнойЧасти Из ОбъектМетаданных.ТабличныеЧасти Цикл
Если Не ДоступныеТабличныеЧасти.Свойство(ОписаниеТабличнойЧасти.Имя) Тогда Если Не ДоступныеТабличныеЧасти.Свойство(ОписаниеТабличнойЧасти.Имя) Тогда
Продолжить; Продолжить;
@@ -2120,17 +2221,16 @@
Если Не ПравоДоступа("Редактирование", ОписаниеТабличнойЧасти) Тогда Если Не ПравоДоступа("Редактирование", ОписаниеТабличнойЧасти) Тогда
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
// фильтры табличных частей
Если НередактируемыеРеквизиты.Найти(ОписаниеТабличнойЧасти.Имя + ".*") <> Неопределено Тогда Если СведенияОРеквизитах.НередактируемыеРеквизиты.Найти(ОписаниеТабличнойЧасти.Имя + ".*") <> Неопределено Тогда
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
Если ФильтруемыеРеквизиты.Найти(ОписаниеТабличнойЧасти.Имя + ".*") <> Неопределено Тогда Если СведенияОРеквизитах.ФильтруемыеРеквизиты.Найти(ОписаниеТабличнойЧасти.Имя + ".*") <> Неопределено Тогда
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
ДоступныеДляИзмененияРеквизиты = ДоступныеДляИзмененияРеквизиты(ОписаниеТабличнойЧасти, НередактируемыеРеквизиты, ДоступныеДляИзмененияРеквизиты = ДоступныеДляИзмененияРеквизиты(ОписаниеТабличнойЧасти, СведенияОРеквизитах,
ФильтруемыеРеквизиты, ДоступныеТабличныеЧасти[ОписаниеТабличнойЧасти.Имя]); ДоступныеТабличныеЧасти[ОписаниеТабличнойЧасти.Имя]);
Если ДоступныеДляИзмененияРеквизиты.Количество() = 0 Тогда Если ДоступныеДляИзмененияРеквизиты.Количество() = 0 Тогда
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
@@ -2157,7 +2257,6 @@
ОписаниеТабличнойЧасти = ТаблицаОбъекта.Значение; ОписаниеТабличнойЧасти = ТаблицаОбъекта.Значение;
Страница.Заголовок = ОписаниеТабличнойЧасти.Представление(); Страница.Заголовок = ОписаниеТабличнойЧасти.Представление();
// Создание элементов для табличных частей.
ТаблицаФормы = Элементы.Добавить(ИмяРеквизита, Тип("ТаблицаФормы"), Страница); ТаблицаФормы = Элементы.Добавить(ИмяРеквизита, Тип("ТаблицаФормы"), Страница);
ТаблицаФормы.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; ТаблицаФормы.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
ТаблицаФормы.ПутьКДанным = ИмяРеквизита; ТаблицаФормы.ПутьКДанным = ИмяРеквизита;
@@ -2192,19 +2291,20 @@
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
ДоступныеДляИзмененияРеквизиты = ДоступныеДляИзмененияРеквизиты(ОписаниеТабличнойЧасти, НередактируемыеРеквизиты, ДоступныеДляИзмененияРеквизиты = ДоступныеДляИзмененияРеквизиты(ОписаниеТабличнойЧасти, СведенияОРеквизитах,
ФильтруемыеРеквизиты, ДоступныеТабличныеЧасти[ОписаниеТабличнойЧасти.Имя]); ДоступныеТабличныеЧасти[ОписаниеТабличнойЧасти.Имя]);
Для Каждого ОписаниеРеквизита Из ДоступныеДляИзмененияРеквизиты Цикл Для Каждого ОписаниеРеквизита Из ДоступныеДляИзмененияРеквизиты Цикл
ДанныеФормыТаблица = ЭтотОбъект[ТаблицаОбъекта.Ключ];// см. ОписанияКолонокТаблицыРеквизитов ДанныеФормыТаблица = ЭтотОбъект[ТаблицаОбъекта.Ключ]; // см. ОписанияКолонокТаблицыРеквизитов
Реквизит = ДанныеФормыТаблица.Добавить(); Реквизит = ДанныеФормыТаблица.Добавить();
Реквизит.Имя = ОписаниеРеквизита.Имя; Реквизит.Имя = ОписаниеРеквизита.Имя;
Реквизит.Представление = ?(ПустаяСтрока(ОписаниеРеквизита.Представление()), ОписаниеРеквизита.Имя, ОписаниеРеквизита.Представление()); Реквизит.Представление = ?(ПустаяСтрока(ОписаниеРеквизита.Представление()), ОписаниеРеквизита.Имя,
ОписаниеРеквизита.Представление());
Реквизит.ДопустимыеТипы = ОписаниеРеквизита.Тип; Реквизит.ДопустимыеТипы = ОписаниеРеквизита.Тип;
Реквизит.СвязиПараметровВыбора = СвязиПараметровВыбораСтрокой(ОписаниеРеквизита.СвязиПараметровВыбора); Реквизит.СвязиПараметровВыбора = СвязиПараметровВыбораСтрокой(ОписаниеРеквизита.СвязиПараметровВыбора);
Реквизит.ПараметрыВыбора = ПараметрыВыбораСтрокой(ОписаниеРеквизита.ПараметрыВыбора); Реквизит.ПараметрыВыбора = ПараметрыВыбораСтрокой(ОписаниеРеквизита.ПараметрыВыбора);
Реквизит.ВидОперации = 1; Реквизит.ВидОперации = 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]; ИмяОбъекта = СписокВидовИзменяемыхОбъектов[0];
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ИмяОбъекта); ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ИмяОбъекта);
НаборыРеквизитов.Вставить("ОписанияРеквизитов", ОбъектМетаданных.СтандартныеРеквизиты);
ДобавитьРеквизитыВНабор(НаборыРеквизитов, ОбъектМетаданных); ДобавитьРеквизитыВНабор(СведенияОРеквизитах, ОбъектМетаданных, ДоступныеРеквизиты, ОбъектМетаданных.СтандартныеРеквизиты);
ДобавитьРеквизитыВНабор(СведенияОРеквизитах, ОбъектМетаданных, ДоступныеРеквизиты, ОбъектМетаданных.Реквизиты);
НаборыРеквизитов.Вставить("ОписанияРеквизитов", ОбъектМетаданных.Реквизиты);
ДобавитьРеквизитыВНабор(НаборыРеквизитов, ОбъектМетаданных);
РеквизитыОбъекта.Сортировать("Представление Возр"); РеквизитыОбъекта.Сортировать("Представление Возр");
Если ПодсистемаСуществует("СтандартныеПодсистемы.Свойства") Тогда Если ПодсистемаСуществует("СтандартныеПодсистемы.Свойства") Тогда
@@ -2504,7 +2597,7 @@
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
ДобавитьВнешниеРеквизитыВНабор(НаборыРеквизитов, СписокВидовИзменяемыхОбъектов); ДобавитьВнешниеРеквизитыВНабор(СведенияОРеквизитах, СписокВидовИзменяемыхОбъектов);
КонецПроцедуры КонецПроцедуры
@@ -2596,16 +2689,10 @@
КонецФункции КонецФункции
&НаСервере &НаСервере
Процедура ДобавитьРеквизитыВНабор(НаборыРеквизитов, ОбъектМетаданных) Процедура ДобавитьРеквизитыВНабор(СведенияОРеквизитах, ОбъектМетаданных, ДоступныеРеквизиты, ОписанияРеквизитов)
Реквизиты = НаборыРеквизитов.ОписанияРеквизитов; Для Каждого ОписаниеРеквизита Из ОписанияРеквизитов Цикл
НеРедактируемые = НаборыРеквизитов.НеРедактируемые; Если ДоступныеРеквизиты.Найти(ОписаниеРеквизита.Имя) = Неопределено Тогда
ФильтруемыеРеквизиты = НаборыРеквизитов.Фильтруемые;
БлокируемыеРеквизиты = НаборыРеквизитов.Блокируемые;
СписокДоступныхРеквизитов = НаборыРеквизитов.Доступные;
Для Каждого ОписаниеРеквизита Из Реквизиты Цикл
Если СписокДоступныхРеквизитов.Найти(ОписаниеРеквизита.Имя) = Неопределено Тогда
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
@@ -2619,13 +2706,15 @@
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
Если НеРедактируемые.Найти(ОписаниеРеквизита.Имя) <> Неопределено Тогда Если СведенияОРеквизитах.НередактируемыеРеквизиты.Найти(ОписаниеРеквизита.Имя) <> Неопределено Тогда
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
Если СведенияОРеквизитах.ФильтруемыеРеквизиты.Найти(ОписаниеРеквизита.Имя) <> Неопределено Тогда
Если ФильтруемыеРеквизиты.Найти(ОписаниеРеквизита.Имя) <> Неопределено Тогда
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
Если ЭтоИсключаемыйТипРеквизита(ОписаниеРеквизита, СведенияОРеквизитах.ИсключаемыеТипыРеквизитов) Тогда
Продолжить;
КонецЕсли;
ВыборГруппИЭлементов = ""; ВыборГруппИЭлементов = "";
Если ТипЗнч(ОписаниеРеквизита) = Тип("ОписаниеСтандартногоРеквизита") Тогда Если ТипЗнч(ОписаниеРеквизита) = Тип("ОписаниеСтандартногоРеквизита") Тогда
@@ -2683,7 +2772,7 @@
РеквизитОбъекта.ВыборГруппИЭлементов = ВыборГруппИЭлементов; РеквизитОбъекта.ВыборГруппИЭлементов = ВыборГруппИЭлементов;
РеквизитОбъекта.ВидОперации = 1; РеквизитОбъекта.ВидОперации = 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.127") >= 0;
КонецФункции
Функция ВерсияБСППоддерживаетВнешниеРеквизитыПользователей() Экспорт
Попытка
МодульСтандартныеПодсистемыСервер = ОбщийМодуль("СтандартныеПодсистемыСервер");
Исключение
// Модуль не существует
МодульСтандартныеПодсистемыСервер = Неопределено;
КонецПопытки;
Если МодульСтандартныеПодсистемыСервер = Неопределено Тогда
Возврат Ложь;
КонецЕсли;
ВерсияБСП = МодульСтандартныеПодсистемыСервер.ВерсияБиблиотеки();
Возврат СравнитьВерсии(ВерсияБСП, "3.1.10.32") >= 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