3_0_2_293

This commit is contained in:
Компания 1С committed 2019-05-15 23:51:00 +03:00
1 parent 53ad58684d
commit 04d905c55b
48 files changed
+4687 -2469

No files matched your search

@@ -149,7 +149,7 @@
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаХешИСрокУстаревания</name>
<name>ГруппаХешИНеИспользуетсяС</name>
<id>212</id>
<items xsi:type="form:FormField">
<name>Хеш</name>
@@ -193,7 +193,7 @@
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>СрокУстаревания</name>
<name>НеИспользуетсяС</name>
<id>209</id>
<visible>true</visible>
<enabled>true</enabled>
@@ -201,10 +201,10 @@
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.СрокУстаревания</segments>
<segments>Объект.НеИспользуетсяС</segments>
</dataPath>
<extendedTooltip>
<name>СрокУстареванияРасширеннаяПодсказка</name>
<name>НеИспользуетсяСРасширеннаяПодсказка</name>
<id>211</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -214,7 +214,7 @@
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СрокУстареванияКонтекстноеМеню</name>
<name>НеИспользуетсяСКонтекстноеМеню</name>
<id>210</id>
<autoFill>true</autoFill>
</contextMenu>
@@ -240,10 +240,10 @@
</userVisible>
<title>
<key>ru</key>
<value>Хеш и срок устаревания</value>
<value>Хеш и Не используется с</value>
</title>
<extendedTooltip>
<name>ГруппаХешИСрокУстареванияРасширеннаяПодсказка</name>
<name>ГруппаХешИНеИспользуетсяСРасширеннаяПодсказка</name>
<id>213</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -304,10 +304,10 @@
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="210972af-8687-4526-b288-60e7ee76cd61">
<name>СрокУстаревания</name>
<name>НеИспользуетсяС</name>
<synonym>
<key>ru</key>
<value>Срок устаревания</value>
<value>Не используется с</value>
</synonym>
<type>
<types>Date</types>
@@ -315,8 +315,9 @@
</type>
<toolTip>
<key>ru</key>
<value>Срок, после которого неиспользуемый ключ доступа
считается устаревшим и помечается на удаление</value>
<value>Когда заполнено, тогда ключ доступа не используется
ни одним элементом данных. Через некоторое время
неиспользуемый ключ доступа удаляется.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
@@ -224,6 +224,42 @@
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Хеш</name>
<id>40</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.Хеш</segments>
</dataPath>
<extendedTooltip>
<name>ХешРасширеннаяПодсказка</name>
<id>42</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ХешКонтекстноеМеню</name>
<id>41</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>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>НеИспользуетсяС</name>
<id>27</id>
@@ -510,6 +546,7 @@
СправочникНаборыГруппДоступа.ДляВнешнихПользователей КАК ДляВнешнихПользователей,
СправочникНаборыГруппДоступа.ТипЭлементовНабора КАК ТипЭлементовНабора,
ТИПЗНАЧЕНИЯ(СправочникНаборыГруппДоступа.ТипЭлементовНабора) КАК ТипЭлементов,
СправочникНаборыГруппДоступа.Хеш КАК Хеш,
СправочникНаборыГруппДоступа.НеИспользуетсяС КАК НеИспользуетсяС,
СправочникНаборыГруппДоступа.Пользователь КАК Пользователь,
ЕСТЬNULL(КоличествоГруппВНаборах.Количество, 0) КАК КоличествоГруппВНаборе,
@@ -140,6 +140,9 @@
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ТипЭлементовНабораИХеш</name>
<id>60</id>
<items xsi:type="form:FormField">
<name>ТипЭлементовНабора</name>
<id>10</id>
@@ -190,6 +193,76 @@
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Хеш</name>
<id>57</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.Хеш</segments>
</dataPath>
<extendedTooltip>
<name>ХешРасширеннаяПодсказка</name>
<id>59</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ХешКонтекстноеМеню</name>
<id>58</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Тип элементов набора и хеш</value>
</title>
<extendedTooltip>
<name>ТипЭлементовНабораИХешРасширеннаяПодсказка</name>
<id>61</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>РеквизитыНаборов</name>
<id>34</id>
@@ -91,6 +91,9 @@
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<createOnInput>DontUse</createOnInput>
<dataLockFields>Catalog.НаборыГруппДоступа.Attribute.ДляВнешнихПользователей</dataLockFields>
<dataLockFields>Catalog.НаборыГруппДоступа.Attribute.ТипЭлементовНабора</dataLockFields>
<dataLockFields>Catalog.НаборыГруппДоступа.Attribute.Хеш</dataLockFields>
<dataLockControlMode>Managed</dataLockControlMode>
<objectPresentation>
<key>ru</key>
@@ -159,6 +162,31 @@
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="a56ff7f4-2259-455f-b707-b98aacd7d0b2">
<name>Хеш</name>
<synonym>
<key>ru</key>
<value>Хеш</value>
</synonym>
<type>
<types>Number</types>
<numberQualifiers>
<precision>10</precision>
<nonNegative>true</nonNegative>
</numberQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Хеш-сумма состава групп, позволяющая
сделать быстрый поиск по индексу</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="8c9636c3-0a84-4575-b4c7-6d8bb588e1b0">
<name>НеИспользуетсяС</name>
<synonym>
@@ -173,7 +201,7 @@
<key>ru</key>
<value>Когда заполнено, тогда набор не используется ни одним из пользователей
по текущим настройкам, но еще может использоваться в параметрах сеансов.
Через сутки неиспользуемый набор удаляется.</value>
Через некоторое время неиспользуемый набор удаляется.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
@@ -74,7 +74,11 @@
КонецЕсли;
Обсуждение = СистемаВзаимодействия.СоздатьОбсуждение();
Если ПоддерживаетсяГрупповоеОбсуждение() Тогда
Обсуждение.Групповое = Ложь;
Иначе
Обсуждение.Заголовок = НСтр("ru='Обсуждение'");
КонецЕсли;
Обсуждение.Участники.Добавить(СистемаВзаимодействия.ИдентификаторТекущегоПользователя());
Обсуждение.Участники.Добавить(ИдентификаторПользователяСистемыВзаимодействия);
Обсуждение.Записать();
@@ -83,4 +87,15 @@
КонецФункции
&НаСервере
Функция ПоддерживаетсяГрупповоеОбсуждение()
СистемнаяИнформация = Новый СистемнаяИнформация;
ТекущаяВерсияПлатформы = СистемнаяИнформация.ВерсияПриложения;
ТребуемаяВерсияПлатформы = "8.3.13.0";
Возврат ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ТребуемаяВерсияПлатформы, ТекущаяВерсияПлатформы) <= 0;
КонецФункции
#КонецОбласти
@@ -4680,6 +4680,10 @@
Возврат;
КонецЕсли;
Если ОбщегоНазначения.РазделениеВключено() Тогда
Возврат;
КонецЕсли;
Если КодыЯзыков = Неопределено Тогда
КодыЯзыков = Новый Массив;
Для каждого Язык Из Метаданные.Языки Цикл
@@ -2481,6 +2481,30 @@
КонецФункции
Функция РезультатФорматированияНомераДляОтправки(Номер) Экспорт
Результат = "";
ДопустимыеСимволы = "+1234567890";
Для Позиция = 1 По СтрДлина(Номер) Цикл
Символ = Сред(Номер,Позиция,1);
Если СтрНайти(ДопустимыеСимволы, Символ) > 0 Тогда
Результат = Результат + Символ;
КонецЕсли;
КонецЦикла;
Если СтрДлина(Результат) > 10 Тогда
ПервыйСимвол = Лев(Результат, 1);
Если ПервыйСимвол = "8" Тогда
Результат = "+7" + Сред(Результат, 2);
ИначеЕсли ПервыйСимвол <> "+" Тогда
Результат = "+" + Результат;
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
// Заполняет значения прочих полей в строках табличной части Участники документов взаимодействий.
//
// Параметры:
@@ -3030,7 +3054,7 @@
ДобавитьВПараметрАдресатов(Объект, ПараметрыПисьма,"Кому", "ПолучателиПисьма");
ДобавитьВПараметрАдресатов(Объект, ПараметрыПисьма,"Копии", "ПолучателиКопий");
ДобавитьВПараметрАдресатов(Объект, ПараметрыПисьма,"СлепыеКопии", "ПолучателиСкрытыхКопий");
ДобавитьВПараметрАдресатов(Объект, ПараметрыПисьма,"СкрытыеКопии", "ПолучателиСкрытыхКопий");
ПараметрыПисьма.Вставить("Тема", Объект.Тема);
ПараметрыПисьма.Вставить("Тело", ?(Объект.ТипТекста = Перечисления.ТипыТекстовЭлектронныхПисем.ПростойТекст,
Объект.Текст, Объект.ТекстHTML));
@@ -2210,7 +2210,7 @@
УстановитьПривилегированныйРежим(Истина);
// Определение ссылки на объект через публичную ссылку.
ПубличнаяСсылка = НайтиСсылкуПоПубличномуИдентификатору(УИДОбъектаXDTO, КомпонентыОбмена, ТипЗначенияОбъектаИБ);
ПубличнаяСсылка = НайтиСсылкуПоПубличномуИдентификатору(УИДОбъектаXDTO, КомпонентыОбмена.УзелКорреспондента, ТипЗначенияОбъектаИБ);
Если ПубличнаяСсылка <> Неопределено Тогда
// Найден публичный идентификатор.
Возврат ПубличнаяСсылка;
@@ -5334,43 +5334,81 @@
КонецФункции
Функция НайтиСсылкуПоПубличномуИдентификатору(УИДОбъектаXDTO, КомпонентыОбмена, ТипЗначенияОбъектаИБ)
Функция НайтиСсылкуПоПубличномуИдентификатору(УИДОбъектаXDTO, УзелКорреспондента, ТипЗначенияОбъектаИБ)
Если НЕ ЗначениеЗаполнено(КомпонентыОбмена.УзелКорреспондента) Тогда
Если Не ЗначениеЗаполнено(УзелКорреспондента) Тогда
Возврат Неопределено;
КонецЕсли;
Запрос = Новый Запрос("
|ВЫБРАТЬ
| Ссылка
|ИЗ РегистрСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов
|ГДЕ УзелИнформационнойБазы = &УзелИнформационнойБазы
| И Идентификатор = &Идентификатор");
Запрос.УстановитьПараметр("УзелИнформационнойБазы", КомпонентыОбмена.УзелКорреспондента);
Запрос = Новый Запрос(
"ВЫБРАТЬ
| РПИ.Ссылка КАК Ссылка
|ИЗ
| РегистрСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов КАК РПИ
|ГДЕ
| РПИ.УзелИнформационнойБазы = &УзелИнформационнойБазы
| И РПИ.Идентификатор = &Идентификатор");
Запрос.УстановитьПараметр("УзелИнформационнойБазы", УзелКорреспондента);
Запрос.УстановитьПараметр("Идентификатор", УИДОбъектаXDTO);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество() > 0 Тогда
КоличествоСсылокПодходящегоТипа = 0;
НайденнаяСсылка = Неопределено;
НекорректныеСсылки = Новый Массив;
УдалитьВсеЗаписи = Ложь;
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Если ТипЗнч(Выборка.Ссылка) = ТипЗначенияОбъектаИБ Тогда
НайденнаяСсылка = Выборка.Ссылка;
КоличествоСсылокПодходящегоТипа = КоличествоСсылокПодходящегоТипа + 1;
Если КоличествоСсылокПодходящегоТипа > 1 Тогда
Прервать;
Если ТипЗнч(Выборка.Ссылка) <> ТипЗначенияОбъектаИБ Тогда
Продолжить;
КонецЕсли;
Если НайденнаяСсылка = Неопределено Тогда
НайденнаяСсылка = Выборка.Ссылка;
ИначеЕсли ОбщегоНазначения.СсылкаСуществует(Выборка.Ссылка) Тогда
Если ОбщегоНазначения.СсылкаСуществует(НайденнаяСсылка) Тогда
УдалитьВсеЗаписи = Истина;
НайденнаяСсылка = Неопределено;
Прервать;
Иначе
// Удаление битой ссылки.
НекорректныеСсылки.Добавить(НайденнаяСсылка);
НайденнаяСсылка = Выборка.Ссылка;
КонецЕсли;
Иначе
// Удаление битой ссылки.
НекорректныеСсылки.Добавить(Выборка.Ссылка);
КонецЕсли;
КонецЦикла;
Если КоличествоСсылокПодходящегоТипа > 1 Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Для уникального идентификатора <%1> и узла <%2> назначено несколько ссылок.'"),
Строка(УИДОбъектаXDTO), Строка(КомпонентыОбмена.УзелКорреспондента));
Иначе
Если НайденнаяСсылка <> Неопределено
И НекорректныеСсылки.Количество() > 0
И Не ОбщегоНазначения.СсылкаСуществует(НайденнаяСсылка) Тогда
УдалитьВсеЗаписи = Истина;
НайденнаяСсылка = Неопределено;
КонецЕсли;
Если УдалитьВсеЗаписи Тогда
СтруктураЗаписи = Новый Структура;
СтруктураЗаписи.Вставить("Идентификатор", УИДОбъектаXDTO);
СтруктураЗаписи.Вставить("УзелИнформационнойБазы", УзелКорреспондента);
РегистрыСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов.УдалитьЗапись(СтруктураЗаписи, Истина);
ИначеЕсли НекорректныеСсылки.Количество() > 0 Тогда
СтруктураЗаписи = Новый Структура;
СтруктураЗаписи.Вставить("Идентификатор", УИДОбъектаXDTO);
СтруктураЗаписи.Вставить("УзелИнформационнойБазы", УзелКорреспондента);
Для Каждого Ссылка Из НекорректныеСсылки Цикл
СтруктураЗаписи.Вставить("Ссылка", Ссылка);
РегистрыСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов.УдалитьЗапись(СтруктураЗаписи, Истина);
КонецЦикла;
КонецЕсли;
Возврат НайденнаяСсылка;
КонецЕсли;
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
@@ -1302,6 +1302,8 @@
//
Процедура ЗавершитьНастройкуСинхронизацииДанных(УзелОбмена) Экспорт
УстановитьПривилегированныйРежим(Истина);
Если УзелОбмена = ПланыОбмена[ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(УзелОбмена)].ЭтотУзел() Тогда
Возврат;
КонецЕсли;
@@ -1312,6 +1314,11 @@
// Изменения, зарегистрированные до момента завершения настройки синхронизации,
// являются некорректными, т.к. еще не были установлены отборы.
ПланыОбмена.УдалитьРегистрациюИзменений(УзелОбмена);
// Необходимо сбросить ранее установленный признак регистрации изменений для повторной отправки сообщения в МС.
Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда
Константы["ЗарегистрированыИзмененияДанных"].Установить(Ложь);
КонецЕсли;
КонецЕсли;
РегистрыСведений.ОбщиеНастройкиУзловИнформационныхБаз.УстановитьПризнакНастройкаЗавершена(УзелОбмена);
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.0.2.283";
Описание.Версия = "3.0.2.293";
Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -2346,10 +2346,18 @@
КонецЕсли;
ТипЭлемента = ТипЗнч(ЭлементНастройки);
Если ТипЭлемента = Тип("ЭлементУсловногоОформленияКомпоновкиДанных")
И Не ЗначениеЗаполнено(ЭлементНастройки.Представление) Тогда
ЭлементНастройки.Представление = ОтчетыКлиентСервер.ПредставлениеЭлементаУсловногоОформления(
Если ТипЭлемента = Тип("ЭлементУсловногоОформленияКомпоновкиДанных") Тогда
Представление = ОтчетыКлиентСервер.ПредставлениеЭлементаУсловногоОформления(
ЭлементНастройки, Неопределено, "");
Если Не ЗначениеЗаполнено(ЭлементНастройки.Представление) Тогда
ЭлементНастройки.Представление = Представление;
ИначеЕсли Не ЗначениеЗаполнено(ЭлементНастройки.ПредставлениеПользовательскойНастройки)
И ЭлементНастройки.Представление <> Представление Тогда
ЭлементНастройки.ПредставлениеПользовательскойНастройки = ЭлементНастройки.Представление;
ЭлементНастройки.Представление = Представление;
КонецЕсли;
КонецЕсли;
Свойства = СинхронизируемыеСвойства[ТипЭлемента];
@@ -2855,6 +2863,9 @@
Запись.ЭтоСписок = Не Запись.ЭтоФлажок
И ОтчетыКлиентСервер.ЭтоВидСравненияСписка(ЭлементПользовательскойНастройки.ВидСравнения);
ИначеЕсли ТипЗнч(ЭлементНастройки) = Тип("ЭлементУсловногоОформленияКомпоновкиДанных") Тогда
Запись.ЭтоФлажок = ЗначениеЗаполнено(ЭлементНастройки.Представление)
Или ЗначениеЗаполнено(ЭлементНастройки.ПредставлениеПользовательскойНастройки);
КонецЕсли;
Если ОсновныеСвойства.Свойство(Запись.СвойствоНастройки) Тогда
@@ -2988,6 +2999,11 @@
СвойстваПоля = СвойстваЭлементов.Поля.Найти(Элемент.ИндексНастройки, "ИндексНастройки");
ЗаполнитьЗначенияСвойств(Поле, СвойстваПоля,, "ПоложениеЗаголовка");
Если Элемент.ЭтоФлажок Тогда
Элемент.Поле.Видимость = Ложь;
Продолжить;
КонецЕсли;
Поле.УстановитьДействие("ПриИзменении", "Подключаемый_ЭлементНастройки_ПриИзменении");
Если Элемент.ЭтоСписок Тогда
Поле.УстановитьДействие("НачалоВыбора", "Подключаемый_ЭлементНастройки_НачалоВыбора");
@@ -64,15 +64,11 @@
//
Функция СформироватьСуммуПрописью(СуммаЧислом, Валюта, ВыводитьСуммуБезКопеек = Ложь) Экспорт
Сумма = ?(СуммаЧислом < 0, -СуммаЧислом, СуммаЧислом);
ПараметрыПрописи = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Валюта, "ПараметрыПрописи");
Результат = ЧислоПрописью(Сумма, "ДП=Ложь", ПараметрыПрописи);
Если ВыводитьСуммуБезКопеек И Цел(Сумма) = Сумма Тогда
Результат = Лев(Результат, СтрНайти(Результат, "0") - 1);
Если Метаданные.Обработки.Найти("ЗагрузкаКурсовВалют") <> Неопределено Тогда
Результат = Обработки["ЗагрузкаКурсовВалют"].СформироватьСуммуПрописью(СуммаЧислом, Валюта, ВыводитьСуммуБезКопеек);
Иначе
Результат = "";
КонецЕсли;
Возврат Результат;
КонецФункции
@@ -2118,167 +2118,6 @@
КонецФункции
// Получает данные для переноса файла из одного списка приложенных файлов в другой.
//
// Параметры:
// ФайлМассив - массив ссылок на файлы или СправочникСсылка.Файлы.
// ВладелецФайла - ЛюбаяСсылка - владелец файла.
//
// Возвращаемое значение:
// ТаблицаЗначений - описания файлов.
//
Функция ПолучитьДанныеДляПереносаВПриложенныеФайлы(ФайлМассив, ВладелецФайла) Экспорт
Если ТипЗнч(ФайлМассив) = Тип("Массив") Тогда
МассивФайлов = ФайлМассив;
Иначе
МассивФайлов = Новый Массив;
МассивФайлов.Добавить(ФайлМассив);
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Файлы.Ссылка КАК Ссылка,
| Файлы.Наименование КАК Наименование
|ИЗ
| Справочник.Файлы КАК Файлы
|ГДЕ
| Файлы.ВладелецФайла = &ВладелецФайла";
Запрос.УстановитьПараметр("ВладелецФайла", ВладелецФайла);
ТаблРезультат = Запрос.Выполнить().Выгрузить();
Результат = Новый Соответствие;
Для Каждого ФайлСсылка Из МассивФайлов Цикл
Если ТаблРезультат.Найти(ФайлСсылка, "Ссылка") <> Неопределено Тогда
Результат.Вставить(ФайлСсылка, "Пропустить");
ИначеЕсли ТаблРезультат.Найти(ФайлСсылка.Наименование, "Наименование") <> Неопределено Тогда
Результат.Вставить(ФайлСсылка, "Обновить");
Иначе
Результат.Вставить(ФайлСсылка, "Скопировать");
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
// Копирует файлы при переносе из одного списка приложенных файлов в другой.
//
// Параметры:
// ФайлМассив - Массив - массив ссылок на файлы или СправочникСсылка.Файлы.
// ВладелецФайла - ЛюбаяСсылка - владелец файла.
//
// Возвращаемое значение:
// СправочникСсылка.Файлы - скопированный файл.
//
Функция СкопироватьФайлВПриложенных(ФайлМассив, ВладелецФайла) Экспорт
Если ТипЗнч(ФайлМассив) = Тип("Массив") Тогда
МассивФайлов = ФайлМассив;
Иначе
МассивФайлов = Новый Массив;
МассивФайлов.Добавить(ФайлМассив);
КонецЕсли;
Для Каждого ФайлСсылка Из МассивФайлов Цикл
Источник = ФайлСсылка;
ИсточникОбъект = Источник.ПолучитьОбъект();
ПриемникОбъект = ИсточникОбъект.Скопировать();
ПриемникОбъект.ВладелецФайла = ВладелецФайла;
ПриемникОбъект.Записать();
Приемник = ПриемникОбъект.Ссылка;
Если Не Источник.ТекущаяВерсия.Пустая() Тогда
ХранилищеФайла = Неопределено;
Если Источник.ТекущаяВерсия.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда
ХранилищеФайла = РаботаСФайлами.ХранилищеФайлаИзИнформационнойБазы(Источник.ТекущаяВерсия);
КонецЕсли;
СведенияОФайле = РаботаСФайламиКлиентСервер.СведенияОФайле("ФайлСВерсией");
СведенияОФайле.ИмяБезРасширения = Приемник.Наименование;
СведенияОФайле.Размер = Источник.ТекущаяВерсия.Размер;
СведенияОФайле.РасширениеБезТочки = Источник.ТекущаяВерсия.Расширение;
СведенияОФайле.АдресВременногоХранилищаФайла = ХранилищеФайла;
СведенияОФайле.АдресВременногоХранилищаТекста = Источник.ТекущаяВерсия.ТекстХранилище;
СведенияОФайле.СсылкаНаВерсиюИсточник = Источник.ТекущаяВерсия;
Версия = РаботаСФайламиСлужебный.СоздатьВерсию(Приемник, СведенияОФайле);
РаботаСФайламиСлужебный.ОбновитьВерсиюВФайле(Приемник, Версия, Источник.ТекущаяВерсия.ТекстХранилище);
КонецЕсли;
КонецЦикла;
Возврат Приемник;
КонецФункции
// Обновляет версии одноименных файлов при переносе из одного списка приложенных файлов в другой.
//
// Параметры:
// ФайлМассив - массив ссылок на файлы или СправочникСсылка.Файлы.
// ВладелецФайла - ЛюбаяСсылка - владелец файла.
//
// Возвращаемое значение:
// СправочникСсылка.Файлы - скопированный файл.
//
Функция ОбновитьФайлВПриложенных(ФайлМассив, ВладелецФайла) Экспорт
Если ТипЗнч(ФайлМассив) = Тип("Массив") Тогда
МассивФайлов = ФайлМассив;
Иначе
МассивФайлов = Новый Массив;
МассивФайлов.Добавить(ФайлМассив);
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Файлы.Ссылка КАК Ссылка,
| Файлы.Наименование КАК ПолноеНаименование
|ИЗ
| Справочник.Файлы КАК Файлы
|ГДЕ
| Файлы.ВладелецФайла = &ВладелецФайла";
Запрос.УстановитьПараметр("ВладелецФайла", ВладелецФайла);
ТаблРезультат = Запрос.Выполнить().Выгрузить();
Для Каждого ФайлСсылка Из МассивФайлов Цикл
НайденнаяСтрока = ТаблРезультат.Найти(ФайлСсылка.Наименование, "ПолноеНаименование");
Источник = ФайлСсылка;
Приемник = НайденнаяСтрока.Ссылка;
Если Не Источник.ТекущаяВерсия.Пустая() Тогда
ХранилищеФайла = Неопределено;
Если Источник.ТекущаяВерсия.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда
ХранилищеФайла = РаботаСФайлами.ХранилищеФайлаИзИнформационнойБазы(Источник.ТекущаяВерсия);
КонецЕсли;
СведенияОФайле = РаботаСФайламиКлиентСервер.СведенияОФайле("ФайлСВерсией");
СведенияОФайле.ИмяБезРасширения = Приемник.Наименование;
СведенияОФайле.Размер = Источник.ТекущаяВерсия.Размер;
СведенияОФайле.РасширениеБезТочки = Источник.ТекущаяВерсия.Расширение;
СведенияОФайле.АдресВременногоХранилищаФайла = ХранилищеФайла;
СведенияОФайле.АдресВременногоХранилищаТекста = Источник.ТекущаяВерсия.ТекстХранилище;
СведенияОФайле.СсылкаНаВерсиюИсточник = Источник.ТекущаяВерсия;
Версия = РаботаСФайламиСлужебный.СоздатьВерсию(Приемник, СведенияОФайле);
РаботаСФайламиСлужебный.ОбновитьВерсиюВФайле(Приемник, Версия, Источник.ТекущаяВерсия.ТекстХранилище);
КонецЕсли;
КонецЦикла;
Возврат Приемник;
КонецФункции
// Получает данные файла для открытия и читает из общих настроек ПапкаДляСохранитьКак.
//
// Параметры:
@@ -8912,92 +8912,6 @@
КонецПроцедуры
// Переносит файл из одного списка приложенных файлов в другой.
// Параметры:
// ФайлСсылка - СправочникСсылка.Файлы - файл.
// ВладелецФайла - ЛюбаяСсылка - владелец файла.
Процедура ПеренестиФайлВПриложенныеФайлы(ФайлСсылка, ВладелецФайла)
Результат = РаботаСФайламиСлужебныйВызовСервера.ПолучитьДанныеДляПереносаВПриложенныеФайлы(ФайлСсылка, ВладелецФайла).Получить(ФайлСсылка);
Если Результат = "Скопировать" Тогда
СозданФайл = РаботаСФайламиСлужебныйВызовСервера.СкопироватьФайлВПриложенных(
ФайлСсылка, ВладелецФайла);
Оповестить("Запись_Файл", Новый Структура("Владелец, Файл, ЭтоНовый", ВладелецФайла, СозданФайл, Истина), СозданФайл);
ПоказатьОповещениеПользователя(
"Создание:",
ПолучитьНавигационнуюСсылку(СозданФайл),
Строка(СозданФайл),
БиблиотекаКартинок.Информация32);
ИначеЕсли Результат = "Обновить" Тогда
ОбновленФайл = РаботаСФайламиСлужебныйВызовСервера.ОбновитьФайлВПриложенных(ФайлСсылка, ВладелецФайла);
ПоказатьОповещениеПользователя(
"Изменение:",
ПолучитьНавигационнуюСсылку(ОбновленФайл),
Строка(ОбновленФайл),
БиблиотекаКартинок.Информация32);
КонецЕсли;
КонецПроцедуры
// Переносит файлы из одного списка приложенных файлов в другой.
// Параметры:
// МассивФайлов - Массив - массив файлов.
// ВладелецФайла - ЛюбаяСсылка - владелец файла.
Процедура ПеренестиФайлыВПриложенныеФайлы(МассивФайлов, ВладелецФайла) Экспорт
Если МассивФайлов.Количество() = 1 Тогда
ПеренестиФайлВПриложенныеФайлы(МассивФайлов[0], ВладелецФайла);
Иначе
Результат = РаботаСФайламиСлужебныйВызовСервера.ПолучитьДанныеДляПереносаВПриложенныеФайлы(МассивФайлов, ВладелецФайла);
МассивОбновить = Новый Массив;
МассивСкопировать = Новый Массив;
Для Каждого ФайлСсылка Из МассивФайлов Цикл
Если Результат.Получить(ФайлСсылка) = "Скопировать" Тогда
МассивСкопировать.Добавить(ФайлСсылка);
ИначеЕсли Результат.Получить(ФайлСсылка) = "Обновить" Тогда
МассивОбновить.Добавить(ФайлСсылка);
КонецЕсли;
КонецЦикла;
Если МассивСкопировать.Количество() > 0 Тогда
РаботаСФайламиСлужебныйВызовСервера.СкопироватьФайлВПриложенных(
МассивСкопировать, ВладелецФайла);
КонецЕсли;
Если МассивОбновить.Количество() > 0 Тогда
РаботаСФайламиСлужебныйВызовСервера.ОбновитьФайлВПриложенных(МассивОбновить, ВладелецФайла);
КонецЕсли;
ОбщееКоличество = МассивСкопировать.Количество() + МассивОбновить.Количество();
Если ОбщееКоличество > 0 Тогда
ПолноеОписание = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Файлы (%1 шт) перенесены в %2'"),
ОбщееКоличество,
ВладелецФайла);
ПоказатьОповещениеПользователя(
НСтр("ru = 'Файлы перенесены'"),
,
ПолноеОписание,
БиблиотекаКартинок.Информация32);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
// Возвращает параметры для работы с занятыми файлами.
// Возвращает:
// Неопределено - если нет редактируемых файлов или работать с ними не надо.
File diff suppressed because it is too large. Load diff
@@ -544,6 +544,22 @@
КонецФункции
Функция ОписаниеТиповСсылокДопустимыхОбъектов() Экспорт
ОписаниеТипов = Новый ОписаниеТипов(ПланыОбмена.ТипВсеСсылки());
ОписаниеТипов = Новый ОписаниеТипов(ОписаниеТипов, Справочники.ТипВсеСсылки().Типы());
ОписаниеТипов = Новый ОписаниеТипов(ОписаниеТипов, Документы.ТипВсеСсылки().Типы());
ОписаниеТипов = Новый ОписаниеТипов(ОписаниеТипов, ПланыВидовХарактеристик.ТипВсеСсылки().Типы());
ОписаниеТипов = Новый ОписаниеТипов(ОписаниеТипов, ПланыСчетов.ТипВсеСсылки().Типы());
ОписаниеТипов = Новый ОписаниеТипов(ОписаниеТипов, ПланыВидовРасчета.ТипВсеСсылки().Типы());
ОписаниеТипов = Новый ОписаниеТипов(ОписаниеТипов, БизнесПроцессы.ТипВсеСсылки().Типы());
ОписаниеТипов = Новый ОписаниеТипов(ОписаниеТипов, Задачи.ТипВсеСсылки().Типы());
ОписаниеТипов = Новый ОписаниеТипов(ОписаниеТипов,, "СправочникСсылка.НаборыГруппДоступа");
Возврат ОписаниеТипов;
КонецФункции
Функция КэшПараметровОграничения(КлючДанныхПовторногоИспользования) Экспорт
Хранилище = Новый Структура;
@@ -2884,7 +2884,15 @@
Функция ИмяФайлаОфисногоДокумента(Знач ИмяФайла, Знач ПереводитьВТранслит = Ложь) Экспорт
ИмяФайла = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(ИмяФайла);
Если Не СтрЗаканчиваетсяНа(ИмяФайла, ".odt") И Не СтрЗаканчиваетсяНа(ИмяФайла, ".docx") Тогда
ОжидаемыеРасширения = Новый Соответствие;
ОжидаемыеРасширения.Вставить(".docx", Истина);
ОжидаемыеРасширения.Вставить(".doc", Истина);
ОжидаемыеРасширения.Вставить(".odt", Истина);
ОжидаемыеРасширения.Вставить(".html", Истина);
Файл = Новый Файл(ИмяФайла);
Если ОжидаемыеРасширения[Файл.Расширение] = Неопределено Тогда
ИмяФайла = ИмяФайла + ".docx";
КонецЕсли;
+9 -9
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="743c227a-1fa4-450f-970f-4a29f065593e">
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="4852d9ae-5956-406f-954e-37bef580d67f">
<name>БиблиотекаСтандартныхПодсистем</name>
<synonym>
<key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.0</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="133cfffc-af69-49db-a51e-81ca6737339e"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="2eaf88b6-f05f-456c-9ef2-3ad1f5c0e439"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="f69e09a5-f7e6-4411-8b6b-b0d2b821435f"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="b3696bd9-130b-4c6a-b3b4-b8a567d067e9"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="54be0449-83f5-438a-80c5-4a46e078d638"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="04138291-e4c7-416d-83ba-69b15ab6522b"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="5c45f9d2-d5eb-4198-9610-b71a016d5fe5"/>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="08b02198-9106-44b8-82e5-b330ec7eb38d"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="8f7543e9-89dc-46eb-b006-dca148577892"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="61356c99-bd9b-44d4-8902-892b0fbb6dc3"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="6fc435a5-5612-4511-86c2-ae5865bef3a2"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="21b4b063-1205-415c-9204-ad22eaa190cd"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="f70a6c95-d2ee-468a-844a-400cc7504d5f"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="967a84d6-5699-4acc-b21e-96ee36eff521"/>
<defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor>
<version>3.0.2.283</version>
<version>3.0.2.293</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities>
@@ -1 +1 @@
{6,1,1,6b8359bc-e9d8-4ad1-a1f1-cccd887e758d,1,152d551c-d637-4dac-b0f4-5e9140b54abb,"3.0.2.283","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6027,1,0,743c227a-1fa4-450f-970f-4a29f065593e,743c227a-1fa4-450f-970f-4a29f065593e,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,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,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,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,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,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,c27472ee-879a-4746-9d21-122738ec80b7,c27472ee-879a-4746-9d21-122738ec80b7,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,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,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,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,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,83192b3e-e7a9-4595-8887-24cda84457a9,83192b3e-e7a9-4595-8887-24cda84457a9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,1,0,08eeb8f1-944f-4450-83f6-ef20aaab7d86,08eeb8f1-944f-4450-83f6-ef20aaab7d86,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,1,0,2fd12dba-5311-4f31-949c-f6b15decc0cc,2fd12dba-5311-4f31-949c-f6b15decc0cc,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,35895e12-52b6-49a1-acdf-6d828a948af0,35895e12-52b6-49a1-acdf-6d828a948af0,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8Line truncated
{6,1,1,8750a181-cf7a-46fa-b845-ad923bd5ed37,1,8877b165-8ed3-4211-bef7-aeb4f2e3163e,"3.0.2.293","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6031,1,0,4852d9ae-5956-406f-954e-37bef580d67f,4852d9ae-5956-406f-954e-37bef580d67f,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,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,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,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,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,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,c27472ee-879a-4746-9d21-122738ec80b7,c27472ee-879a-4746-9d21-122738ec80b7,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,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,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,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,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,83192b3e-e7a9-4595-8887-24cda84457a9,83192b3e-e7a9-4595-8887-24cda84457a9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,1,0,08eeb8f1-944f-4450-83f6-ef20aaab7d86,08eeb8f1-944f-4450-83f6-ef20aaab7d86,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,1,0,2fd12dba-5311-4f31-949c-f6b15decc0cc,2fd12dba-5311-4f31-949c-f6b15decc0cc,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,35895e12-52b6-49a1-acdf-6d828a948af0,35895e12-52b6-49a1-acdf-6d828a948af0,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8Line truncated
@@ -1,9 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
<title>
<key>ru</key>
<value>Параметры прописи валюты</value>
</title>
<items xsi:type="form:FormGroup">
<name>СклонениеЦелойЧасти</name>
<id>9</id>
@@ -924,6 +920,7 @@
<excludedCommands>Yes</excludedCommands>
<windowOpeningMode>LockOwner</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
@@ -169,10 +169,17 @@
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьСуммуПрописью(Форма)
Форма.СуммаПрописью = ЧислоПрописью(Форма.СуммаЧисло, , ПараметрыПрописиНаРусском(Форма));
Форма.СуммаПрописью = СуммаПрописью(Форма.СуммаЧисло, ПараметрыПрописиНаРусском(Форма));
КонецПроцедуры
&НаСервереБезКонтекста
Функция СуммаПрописью(СуммаЧисло, ПараметрыПрописиНаРусском)
Возврат Обработки.ЗагрузкаКурсовВалют.СуммаПрописью(СуммаЧисло, ПараметрыПрописиНаРусском);
КонецФункции
&НаСервере
Процедура ПрочитатьПараметрыПрописи()
@@ -478,6 +478,24 @@
КонецФункции
Функция СформироватьСуммуПрописью(СуммаЧислом, Валюта, ВыводитьСуммуБезКопеек = Ложь) Экспорт
ПараметрыПрописи = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Валюта, "ПараметрыПрописи");
Возврат СуммаПрописью(СуммаЧислом, ПараметрыПрописи, ВыводитьСуммуБезКопеек);
КонецФункции
Функция СуммаПрописью(СуммаЧислом, ПараметрыПрописиНаРусскомЯзыке, ВыводитьСуммуБезКопеек = Ложь) Экспорт
Сумма = ?(СуммаЧислом < 0, -СуммаЧислом, СуммаЧислом);
Результат = ЧислоПрописью(Сумма, "L=ru_RU;ДП=Ложь", ПараметрыПрописиНаРусскомЯзыке); // всегда на русском языке
Если ВыводитьСуммуБезКопеек И Цел(Сумма) = Сумма Тогда
Результат = Лев(Результат, СтрНайти(Результат, "0") - 1);
КонецЕсли;
Возврат Результат;
КонецФункции
Процедура ОбновитьФорматХраненияПрописи() Экспорт
ВыборкаВалют = Справочники.Валюты.Выбрать();
@@ -265,7 +265,7 @@
<name>ПараметрыПрописиВалюты</name>
<synonym>
<key>ru</key>
<value>Параметры прописи валюты</value>
<value>Параметры прописи валюты на русском языке</value>
</synonym>
<help>
<pages>
@@ -45,7 +45,7 @@
Функция ВерсияКалендарей() Экспорт
Возврат 27;
Возврат 28;
КонецФункции
@@ -57,7 +57,7 @@
Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт
Возврат "3.0.2.215";
Возврат "3.0.2.286";
КонецФункции
@@ -924,7 +924,7 @@
<Item Calendar="РФ" Year="2020" DayType="Праздник" Date="20200102" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Праздник" Date="20200103" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Праздник" Date="20200104" SwapDate="20200504"/>
<Item Calendar="РФ" Year="2020" DayType="Праздник" Date="20200105" SwapDate="20200512"/>
<Item Calendar="РФ" Year="2020" DayType="Праздник" Date="20200105" SwapDate="20200505"/>
<Item Calendar="РФ" Year="2020" DayType="Праздник" Date="20200106" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Праздник" Date="20200107" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Праздник" Date="20200108" SwapDate=""/>
@@ -935,10 +935,10 @@
<Item Calendar="РФ" Year="2020" DayType="Предпраздничный" Date="20200430" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Праздник" Date="20200501" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Суббота" Date="20200504" SwapDate="20200104"/>
<Item Calendar="РФ" Year="2020" DayType="Воскресенье" Date="20200505" SwapDate="20200105"/>
<Item Calendar="РФ" Year="2020" DayType="Предпраздничный" Date="20200508" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Праздник" Date="20200509" SwapDate="20200511"/>
<Item Calendar="РФ" Year="2020" DayType="Суббота" Date="20200511" SwapDate="20200509"/>
<Item Calendar="РФ" Year="2020" DayType="Воскресенье" Date="20200512" SwapDate="20200105"/>
<Item Calendar="РФ" Year="2020" DayType="Предпраздничный" Date="20200611" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Праздник" Date="20200612" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Предпраздничный" Date="20201103" SwapDate=""/>
@@ -15,17 +15,21 @@
Возврат;
КонецЕсли;
ЭтоНоваяГруппа = Параметры.ЭтоНоваяГруппа;
Если Параметры.ЭтоНоваяГруппа Тогда
Если ЭтоНоваяГруппа Тогда
ОбъектЗначение = Справочники[Параметры.ИмяСправочникаХранилищаФайлов].СоздатьГруппу();
Если Параметры.Свойство("Родитель")
И Параметры.Родитель <> Неопределено
И ТипЗнч(Параметры.Родитель) = ТипЗнч(ОбъектЗначение.Ссылка) Тогда
Если Параметры.Свойство("Родитель") И Параметры.Родитель <> Неопределено И ТипЗнч(Параметры.Родитель) = ТипЗнч(ОбъектЗначение.Ссылка) Тогда
Если Параметры.Родитель.ЭтоГруппа Тогда
ОбъектЗначение.Родитель = Параметры.Родитель;
ИначеЕсли Параметры.Родитель.Родитель <> Неопределено И ТипЗнч(Параметры.Родитель.Родитель) = ТипЗнч(ОбъектЗначение.Ссылка) Тогда
ИначеЕсли Параметры.Родитель.Родитель <> Неопределено
И ТипЗнч(Параметры.Родитель.Родитель) = ТипЗнч(ОбъектЗначение.Ссылка) Тогда
ОбъектЗначение.Родитель = Параметры.Родитель.Родитель; // В качестве первого родителя была передана ссылка на элемент.
КонецЕсли;
Иначе
ОбъектЗначение.Родитель = Неопределено;
КонецЕсли;
@@ -33,6 +37,8 @@
ОбъектЗначение.ВладелецФайла = Параметры.ВладелецФайла;
ОбъектЗначение.ДатаСоздания = ТекущаяУниверсальнаяДата();
ОбъектЗначение.Автор = Пользователи.АвторизованныйПользователь();
ОбъектЗначение.Изменил = ОбъектЗначение.Автор;
ИначеЕсли ЗначениеЗаполнено(Параметры.ЗначениеКопирования) Тогда
КопируемыйОбъект = Параметры.ЗначениеКопирования.ПолучитьОбъект();
@@ -366,48 +366,34 @@
&НаКлиенте
Процедура СписокПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле)
СтандартнаяОбработка = Ложь;
МассивИменФайлов = Новый Массив;
МассивЭлементовСписка = Новый Массив;
Если ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("Массив")
И ПараметрыПеретаскивания.Значение.Количество() > 0 Тогда
Если ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("Файл")
ПеретаскиваемыйФайл = ПараметрыПеретаскивания.Значение[0];
Если ВозможностьСоздаватьГруппыФайлов
И ТипЗнч(ПеретаскиваемыйФайл) = ТипСправочникаСФайлами
И ВладелецФайловСовпадает(Параметры.ВладелецФайла, ПеретаскиваемыйФайл) Тогда
Возврат;
КонецЕсли;
СтандартнаяОбработка = Ложь;
Для Каждого ПеретаскиваемыйФайл Из ПараметрыПеретаскивания.Значение Цикл
Если ТипЗнч(ПеретаскиваемыйФайл) = Тип("Файл")
И ПеретаскиваемыйФайл.ЭтоФайл() Тогда
МассивИменФайлов.Добавить(ПеретаскиваемыйФайл.ПолноеИмя);
КонецЕсли;
КонецЦикла;
ИначеЕсли ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("Файл")
И ПараметрыПеретаскивания.Значение.ЭтоФайл() Тогда
Если СтрСравнить(ИмяСправочникаХранилищаФайлов, "Файлы") <> 0 Тогда
СтандартнаяОбработка = Ложь;
МассивИменФайлов.Добавить(ПараметрыПеретаскивания.Значение.ПолноеИмя);
Иначе
ПеретаскиваниеФайлов(ВладелецФайла, ПараметрыПеретаскивания.Значение, ПараметрыПеретаскивания.Действие);
Возврат;
КонецЕсли;
ИначеЕсли ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("Массив") Тогда
Если ПараметрыПеретаскивания.Значение.Количество() > 0 Тогда
ТипПеретаскиваемого = ТипЗнч(ПараметрыПеретаскивания.Значение[0]);
Если ТипПеретаскиваемого = Тип("СправочникСсылка.Файлы") Тогда
РаботаСФайламиСлужебныйКлиент.ПеренестиФайлыВПриложенныеФайлы(
ПараметрыПеретаскивания.Значение,
ВладелецФайла);
Возврат;
КонецЕсли;
Если ТипЗнч(ПараметрыПеретаскивания.Значение[0]) = Тип("Файл") Тогда
Если СтрСравнить(ИмяСправочникаХранилищаФайлов, "Файлы") <> 0 Тогда
Для Каждого Значение Из ПараметрыПеретаскивания.Значение Цикл
Если ТипЗнч(Значение) = Тип("Файл") И Значение.ЭтоФайл() Тогда
МассивИменФайлов.Добавить(Значение.ПолноеИмя);
КонецЕсли;
КонецЦикла;
Иначе
ПеретаскиваниеФайлов(ВладелецФайла, ПараметрыПеретаскивания.Значение, ПараметрыПеретаскивания.Действие);
Возврат;
КонецЕсли;
ИначеЕсли ТипЗнч(ПараметрыПеретаскивания.Значение[0]) = ТипСправочникаСФайлами Тогда
Для Каждого Значение Из ПараметрыПеретаскивания.Значение Цикл
МассивЭлементовСписка.Добавить(Значение);
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЕсли;
@@ -416,10 +402,6 @@
Параметры.ВладелецФайла, УникальныйИдентификатор, МассивИменФайлов);
КонецЕсли;
Если МассивЭлементовСписка.Количество() > 0 И ВозможностьСоздаватьГруппыФайлов Тогда
СтандартнаяОбработка = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
@@ -1101,7 +1083,6 @@
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -1353,45 +1334,6 @@
КонецПроцедуры
&НаКлиенте
Процедура ПеретаскиваниеФайлов(ВладелецФайла, ЗначениеПеретаскивания, Действие)
МассивИменФайлов = Новый Массив;
ТипЗначения = ТипЗнч(ЗначениеПеретаскивания);
Если ТипЗначения = Тип("Файл") Тогда
Если ЗначениеПеретаскивания.ЭтоФайл() Тогда
МассивИменФайлов.Добавить(ЗначениеПеретаскивания.ПолноеИмя);
КонецЕсли;
ИначеЕсли ТипЗнч(ЗначениеПеретаскивания) = Тип("Массив") Тогда
Для Каждого ФайлПринятый Из ЗначениеПеретаскивания Цикл
Если ФайлПринятый.ЭтоФайл() Тогда
МассивИменФайлов.Добавить(ФайлПринятый.ПолноеИмя);
КонецЕсли;
КонецЦикла;
КонецЕсли;
ПараметрыДобавления = Новый Структура;
ПараметрыДобавления.Вставить("ОбработчикРезультата", Неопределено);
ПараметрыДобавления.Вставить("ПолноеИмяФайла", Неопределено);
ПараметрыДобавления.Вставить("ВладелецФайла", ВладелецФайла);
ПараметрыДобавления.Вставить("ФормаВладелец", ЭтотОбъект);
ПараметрыДобавления.Вставить("ИмяСоздаваемогоФайла", Неопределено);
ПараметрыДобавления.Вставить("НеОткрыватьКарточкуПослеСозданияИзФайла", Истина);
Для Каждого ФайлПринятый Из МассивИменФайлов Цикл
ПараметрыДобавления.ПолноеИмяФайла = ФайлПринятый;
РаботаСФайламиСлужебныйКлиент.ДобавитьИзФайловойСистемыСРасширением(ПараметрыДобавления);
КонецЦикла;
Элементы.Список.Обновить();
КонецПроцедуры
&НаКлиенте
Процедура УстановитьДоступностьФайловыхКоманд(Результат = Неопределено, ПараметрыВыполнения = Неопределено) Экспорт
@@ -1545,7 +1487,6 @@
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция ПолучитьИменаКомандФормы()
@@ -1910,4 +1851,11 @@
КонецПроцедуры
&НаСервереБезКонтекста
Функция ВладелецФайловСовпадает(ВладелецФайлов, ПеретаскиваемыйФайл)
Возврат ВладелецФайлов = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПеретаскиваемыйФайл, "ВладелецФайла");
КонецФункции
#КонецОбласти
@@ -4196,7 +4196,8 @@
<id>116</id>
<title>
<key>ru</key>
<value>Протокол загрузки (для COM - соединения) на сервере</value>
<value>Протокол загрузки (для COM - соединения)
на сервере</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
@@ -4246,6 +4247,93 @@
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>КодировкаФайлаПротоколаСписок</name>
<id>407</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.КодировкаФайлаПротоколаОбмена</segments>
</dataPath>
<extendedTooltip>
<name>КодировкаФайлаПротоколаСписокРасширеннаяПодсказка</name>
<id>409</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>КодировкаФайлаПротоколаСписокКонтекстноеМеню</name>
<id>408</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<listChoiceMode>true</listChoiceMode>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<choiceList>
<presentation>
<key>ru</key>
<value>ANSI</value>
</presentation>
<value xsi:type="core:StringValue">
<value>КодировкаТекста.ANSI</value>
</value>
</choiceList>
<choiceList>
<presentation>
<key>ru</key>
<value>OEM</value>
</presentation>
<value xsi:type="core:StringValue">
<value>КодировкаТекста.OEM</value>
</value>
</choiceList>
<choiceList>
<presentation>
<key>ru</key>
<value>UTF-8</value>
</presentation>
<value xsi:type="core:StringValue">
<value>КодировкаТекста.UTF8</value>
</value>
</choiceList>
<choiceList>
<presentation>
<key>ru</key>
<value>UTF-16</value>
</presentation>
<value xsi:type="core:StringValue">
<value>КодировкаТекста.UTF16</value>
</value>
</choiceList>
<choiceList>
<presentation>
<key>ru</key>
<value>Системная</value>
</presentation>
<value xsi:type="core:StringValue">
<value>КодировкаТекста.Системная</value>
</value>
</choiceList>
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ДописыватьДанныеВПротоколОбмена</name>
<id>118</id>
@@ -24,6 +24,7 @@
Объект.ЭтоИнтерактивныйРежим = Истина;
Объект.БезопасныйРежим = Истина;
Объект.КодировкаФайлаПротоколаОбмена = "КодировкаТекста.UTF8";
ЗаголовокФормы = НСтр("ru = 'Универсальный обмен данными в формате XML (%ВерсияОбработки%)'");
ЗаголовокФормы = СтрЗаменить(ЗаголовокФормы, "%ВерсияОбработки%", ВерсияОбъектаСтрокойНаСервере());
@@ -1823,7 +1824,7 @@
Объект.ИмяФайлаПротоколаОбменаЗагрузка = ПолучитьИмяПротоколаДляВторойИнформационнойБазыComСоединенияНаСервере();
Если Не ПустаяСтрока(Объект.ИмяФайлаПротоколаОбменаЗагрузка) Тогда
ОткрытьВПриложении(Объект.ИмяПротоколаЗагрузки);
ОткрытьВПриложении(Объект.ИмяФайлаПротоколаОбменаЗагрузка);
КонецЕсли;
КонецЕсли;
@@ -2983,7 +2983,7 @@
КонецЕсли;
мФайлПротоколаДанных = Новый ЗаписьТекста(ИмяФайлаПротоколаОбмена, КодировкаТекста.ANSI, , ДописыватьДанныеВПротоколОбмена) ;
мФайлПротоколаДанных = Новый ЗаписьТекста(ИмяФайлаПротоколаОбмена, КодировкаФайлаПротоколаОбмена(), , ДописыватьДанныеВПротоколОбмена) ;
КонецПроцедуры
@@ -2991,12 +2991,37 @@
ИмяВременногоФайлаПротоколаОбмена = ПолучитьНовоеУникальноеИмяВременногоФайла(ИмяВременногоФайлаПротоколаОбмена);
мФайлПротоколаДанных = Новый ЗаписьТекста(ИмяВременногоФайлаПротоколаОбмена, КодировкаТекста.ANSI);
мФайлПротоколаДанных = Новый ЗаписьТекста(ИмяВременногоФайлаПротоколаОбмена, КодировкаФайлаПротоколаОбмена());
ФлагКомментироватьОбработкуОбъектов = Ложь;
КонецПроцедуры
Функция КодировкаФайлаПротоколаОбмена()
ПредставлениеКодировки = СокрЛП(КодировкаФайлаПротоколаОбмена);
Результат = КодировкаТекста.ANSI;
Если Не ПустаяСтрока(КодировкаФайлаПротоколаОбмена) Тогда
Если СтрНачинаетсяС(ПредставлениеКодировки, "КодировкаТекста.") Тогда
ПредставлениеКодировки = СтрЗаменить(ПредставлениеКодировки, "КодировкаТекста.", "");
Попытка
Результат = КодировкаТекста[ПредставлениеКодировки];
Исключение
ТекстОшибки = ПодставитьПараметрыВСтроку(НСтр("ru = 'Неизвестная кодировка файла протокола обмена: %1.
|Используется ANSI.'"), ПредставлениеКодировки);
ЗаписьЖурналаРегистрации(НСтр("ru = 'Универсальный обмен данными в формате XML'", КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Предупреждение, , , ТекстОшибки);
КонецПопытки;
Иначе
Результат = ПредставлениеКодировки;
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
// Закрывает файл протокола обмена данными. Файл сохраняется на диск.
//
Процедура ЗавершитьВедениеПротоколаОбмена() Экспорт
@@ -13925,7 +13950,7 @@
КонецФункции
Функция ПолучитьИмяПротоколаДляВторойИнформационнойБазыComСоединения()
Функция ПолучитьИмяПротоколаДляВторойИнформационнойБазыComСоединения() Экспорт
Если Не ПустаяСтрока(ИмяФайлаПротоколаОбменаЗагрузка) Тогда
@@ -13999,17 +14024,17 @@
Если РезультатПодключения <> Неопределено Тогда
РезультатПодключения.ИспользоватьТранзакции = ИспользоватьТранзакции;
РезультатПодключения.КоличествоОбъектовНаТранзакцию = КоличествоОбъектовНаТранзакцию;
СвойстваЗаполнения = Новый Структура;
СвойстваЗаполнения.Вставить("ИспользоватьТранзакции", ИспользоватьТранзакции);
СвойстваЗаполнения.Вставить("КоличествоОбъектовНаТранзакцию", КоличествоОбъектовНаТранзакцию);
СвойстваЗаполнения.Вставить("ФлагРежимОтладки", ФлагРежимОтладки);
СвойстваЗаполнения.Вставить("ИмяФайлаПротоколаОбмена", ПолучитьИмяПротоколаДляВторойИнформационнойБазыComСоединения());
СвойстваЗаполнения.Вставить("ДописыватьДанныеВПротоколОбмена", ДописыватьДанныеВПротоколОбмена);
СвойстваЗаполнения.Вставить("ВыводВПротоколИнформационныхСообщений", ВыводВПротоколИнформационныхСообщений);
СвойстваЗаполнения.Вставить("РежимОбмена", "Загрузка");
СвойстваЗаполнения.Вставить("КодировкаФайлаПротоколаОбмена", КодировкаФайлаПротоколаОбмена);
РезультатПодключения.ФлагРежимОтладки = ФлагРежимОтладки;
РезультатПодключения.ИмяФайлаПротоколаОбмена = ПолучитьИмяПротоколаДляВторойИнформационнойБазыComСоединения();
РезультатПодключения.ДописыватьДанныеВПротоколОбмена = ДописыватьДанныеВПротоколОбмена;
РезультатПодключения.ВыводВПротоколИнформационныхСообщений = ВыводВПротоколИнформационныхСообщений;
РезультатПодключения.РежимОбмена = "Загрузка";
ЗаполнитьЗначенияСвойств(РезультатПодключения, СвойстваЗаполнения);
КонецЕсли;
@@ -1208,6 +1208,21 @@
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</attributes>
<attributes uuid="905b787b-c638-4703-af70-416a2ce43b50">
<name>КодировкаФайлаПротоколаОбмена</name>
<synonym>
<key>ru</key>
<value>Кодировка файла протокола обмена</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>100</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</attributes>
<forms uuid="4522c564-61da-40da-a749-5312121a331d">
<name>УправляемаяФорма</name>
<synonym>
@@ -186,7 +186,7 @@ function finalize (success) {
writeEventLog(success)
if (!success) {
if (UseRestore) {
if (UseRestore && backupCreated) {
log('Восстановление ИБ из временного архива')
restoreDB()
}
@@ -288,7 +288,6 @@ function backupDB () {
return 0
}
var ret = 0
UseRestore = false
log(
format('\r\n\
@@ -391,7 +390,6 @@ function backupDB () {
}
if (ret === 0) {
backupCreated = true
UseRestore = true
}
return ret
}
@@ -628,33 +628,8 @@
Возврат;
КонецЕсли;
Адресат.НомерДляОтправки = ФорматироватьНомер(Адресат.КакСвязаться);
КонецПроцедуры
&НаСервере
Функция ФорматироватьНомер(Номер)
Результат = "";
ДопустимыеСимволы = "+1234567890";
Для Позиция = 1 По СтрДлина(Номер) Цикл
Символ = Сред(Номер,Позиция,1);
Если СтрНайти(ДопустимыеСимволы, Символ) > 0 Тогда
Результат = Результат + Символ;
КонецЕсли;
КонецЦикла;
Если СтрДлина(Результат) > 10 Тогда
ПервыйСимвол = Лев(Результат, 1);
Если ПервыйСимвол = "8" Тогда
Результат = "+7" + Сред(Результат, 2);
ИначеЕсли ПервыйСимвол <> "+" Тогда
Результат = "+" + Результат;
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
&НаСервере
Функция ВыполнитьОтправкуНаСервере()
@@ -67,6 +67,12 @@
Тема = Взаимодействия.ТемаПоТекстуСообщения(ТекстСообщения);
Взаимодействия.СформироватьСписокУчастников(ЭтотОбъект);
Для Каждого СтрокаАдресаты Из Адресаты Цикл
СтрокаАдресаты.НомерДляОтправки = Взаимодействия.РезультатФорматированияНомераДляОтправки(СтрокаАдресаты.КакСвязаться);
КонецЦикла;
КонецПроцедуры
Процедура ПриКопировании(ОбъектКопирования)
@@ -1832,6 +1832,44 @@
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<items xsi:type="form:FormField">
<name>ПоказыватьЗадержкуОбработки</name>
<id>306</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ПоказыватьЗадержкуОбработки</segments>
</dataPath>
<titleLocation>Right</titleLocation>
<handlers>
<event>OnChange</event>
<name>ПоказыватьЗадержкуОбработкиПриИзменении</name>
</handlers>
<extendedTooltip>
<name>ПоказыватьЗадержкуОбработкиРасширеннаяПодсказка</name>
<id>308</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПоказыватьЗадержкуОбработкиКонтекстноеМеню</name>
<id>307</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<items xsi:type="form:FormField">
<name>ПоказыватьИмяТаблицы</name>
<id>290</id>
@@ -1950,7 +1988,6 @@
<key>ru</key>
<value>Расчет прогресса по количеству данных</value>
</title>
<height>1</height>
<extendedTooltip>
<name>РасчетПрогрессаПоКоличествуДанныхРасширеннаяПодсказка</name>
<id>283</id>
@@ -2055,6 +2092,12 @@
<items xsi:type="form:FormField">
<name>СпискиОбработаноЭлементов</name>
<id>27</id>
<title>
<key>ru</key>
<value>Обработано
элементов
данных, %</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -2112,6 +2155,12 @@
<items xsi:type="form:FormField">
<name>СпискиОбработаноКлючейДоступа</name>
<id>30</id>
<title>
<key>ru</key>
<value>Обработано
ключей
доступа, %</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -2166,58 +2215,14 @@
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>СпискиПозицияОбновления</name>
<id>24</id>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Списки.ПозицияОбновления</segments>
</dataPath>
<toolTip>
<key>ru</key>
<value>Одно из трех:
- либо дата, с которой продолжится обновление по убыванию;
- либо текущий ссылочный элемент данных (у которого нет даты);
- либо текущий отбор группы записей регистра.</value>
</toolTip>
<extendedTooltip>
<name>СпискиПозицияОбновленияРасширеннаяПодсказка</name>
<id>26</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СпискиПозицияОбновленияКонтекстноеМеню</name>
<id>25</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<readOnly>true</readOnly>
<editMode>Auto</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<width>15</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>СпискиКоличествоЭлементов</name>
<id>33</id>
<title>
<key>ru</key>
<value>Количество
элементов</value>
</title>
<enabled>true</enabled>
<userVisible>
<common>true</common>
@@ -2225,6 +2230,11 @@
<dataPath xsi:type="form:DataPath">
<segments>Списки.КоличествоЭлементов</segments>
</dataPath>
<toolTip>
<key>ru</key>
<value>Количество объектов или
групп записей регистров</value>
</toolTip>
<extendedTooltip>
<name>СпискиКоличествоЭлементовРасширеннаяПодсказка</name>
<id>35</id>
@@ -2260,6 +2270,12 @@
<items xsi:type="form:FormField">
<name>СпискиКоличествоОбработанныхЭлементов</name>
<id>36</id>
<title>
<key>ru</key>
<value>Количество
обработанных
элементов</value>
</title>
<enabled>true</enabled>
<userVisible>
<common>true</common>
@@ -2267,6 +2283,11 @@
<dataPath xsi:type="form:DataPath">
<segments>Списки.КоличествоОбработанныхЭлементов</segments>
</dataPath>
<toolTip>
<key>ru</key>
<value>Количество обработанных объектов или
групп записей регистров</value>
</toolTip>
<extendedTooltip>
<name>СпискиКоличествоОбработанныхЭлементовРасширеннаяПодсказка</name>
<id>38</id>
@@ -2302,6 +2323,12 @@
<items xsi:type="form:FormField">
<name>СпискиКоличествоКлючейДоступа</name>
<id>39</id>
<title>
<key>ru</key>
<value>Количество
ключей
доступа</value>
</title>
<enabled>true</enabled>
<userVisible>
<common>true</common>
@@ -2344,6 +2371,12 @@
<items xsi:type="form:FormField">
<name>СпискиКоличествоОбработанныхКлючейДоступа</name>
<id>42</id>
<title>
<key>ru</key>
<value>Количество
обработанных
ключей доступа</value>
</title>
<enabled>true</enabled>
<userVisible>
<common>true</common>
@@ -2383,9 +2416,65 @@
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>СпискиЗадержкаОбработкиСписка</name>
<id>303</id>
<title>
<key>ru</key>
<value>Задержка
обработки
списка, сек</value>
</title>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Списки.ЗадержкаОбработкиСписка</segments>
</dataPath>
<toolTip>
<key>ru</key>
<value>Количество секунд, которое прошло с момента завершения
последнего задания обновления доступа для списка</value>
</toolTip>
<extendedTooltip>
<name>СпискиЗадержкаОбработкиСпискаРасширеннаяПодсказка</name>
<id>305</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СпискиЗадержкаОбработкиСпискаКонтекстноеМеню</name>
<id>304</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Auto</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<width>7</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>СпискиИмяТаблицы</name>
<id>21</id>
<title>
<key>ru</key>
<value>Имя таблицы</value>
</title>
<enabled>true</enabled>
<userVisible>
<common>true</common>
@@ -2795,31 +2884,11 @@
<common>true</common>
</edit>
</columns>
<columns>
<name>ПозицияОбновления</name>
<title>
<key>ru</key>
<value>Позиция обновления</value>
</title>
<id>3</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
<columns>
<name>ОбработаноЭлементов</name>
<title>
<key>ru</key>
<value>Обработано
элементов
данных, %</value>
<value>Обработано элементов</value>
</title>
<id>4</id>
<valueType>
@@ -2840,9 +2909,7 @@
<name>ОбработаноКлючейДоступа</name>
<title>
<key>ru</key>
<value>Обработано
ключей
доступа, %</value>
<value>Обработано ключей доступа</value>
</title>
<id>5</id>
<valueType>
@@ -2863,8 +2930,7 @@
<name>КоличествоЭлементов</name>
<title>
<key>ru</key>
<value>Количество
элементов</value>
<value>Количество элементов</value>
</title>
<id>6</id>
<valueType>
@@ -2885,9 +2951,7 @@
<name>КоличествоОбработанныхЭлементов</name>
<title>
<key>ru</key>
<value>Количество
обработанных
элементов</value>
<value>Количество обработанных элементов</value>
</title>
<id>7</id>
<valueType>
@@ -2908,9 +2972,7 @@
<name>КоличествоКлючейДоступа</name>
<title>
<key>ru</key>
<value>Количество
ключей
доступа</value>
<value>Количество ключей доступа</value>
</title>
<id>8</id>
<valueType>
@@ -2931,9 +2993,7 @@
<name>КоличествоОбработанныхКлючейДоступа</name>
<title>
<key>ru</key>
<value>Количество
обработанных
ключей доступа</value>
<value>Количество обработанных ключей доступа</value>
</title>
<id>9</id>
<valueType>
@@ -2998,6 +3058,63 @@
<common>true</common>
</edit>
</columns>
<columns>
<name>ЗадержкаОбработкиСписка</name>
<title>
<key>ru</key>
<value>Задержка обработки списка</value>
</title>
<id>13</id>
<valueType>
<types>Number</types>
<numberQualifiers>
<precision>6</precision>
<nonNegative>true</nonNegative>
</numberQualifiers>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
<columns>
<name>ПоследнееОбновление</name>
<title>
<key>ru</key>
<value>Последнее обновление</value>
</title>
<id>14</id>
<valueType>
<types>Date</types>
<dateQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
<columns>
<name>ПервоеПланированиеОбновления</name>
<title>
<key>ru</key>
<value>Первое планирование обновления</value>
</title>
<id>3</id>
<valueType>
<types>Date</types>
<dateQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
</attributes>
<attributes>
<name>ПериодОбновленияПрогресса</name>
@@ -3283,6 +3400,46 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ПоказыватьЗадержкуОбработки</name>
<title>
<key>ru</key>
<value>Показывать задержку обработки</value>
</title>
<id>21</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<settingsSavedData xsi:type="form:DataPath">
<segments>ПоказыватьЗадержкуОбработки</segments>
</settingsSavedData>
</attributes>
<attributes>
<name>МаксимальнаяДата</name>
<title>
<key>ru</key>
<value>Максимальная дата</value>
</title>
<id>22</id>
<valueType>
<types>Date</types>
<dateQualifiers>
<dateFractions>Date</dateFractions>
</dateQualifiers>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>РучноеУправление</name>
<title>
@@ -19,6 +19,8 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьУсловноеОформление();
Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
Возврат;
КонецЕсли;
@@ -27,7 +29,13 @@
ПериодОбновленияПрогресса = 3;
АвтообновлениеПрогресса = Не Параметры.ВыключитьАвтообновлениеПрогресса;
ПоляСортировки.Добавить("Список", "Возр");
ПоказыватьКоличествоЭлементов = Истина;
ПоказыватьКоличествоКлючейДоступа = Истина;
ПоказыватьЗадержкуОбработки = Истина;
ПоляСортировки.Добавить("ЗадержкаОбработкиСписка", "Возр");
МаксимальнаяДата = УправлениеДоступомСлужебный.МаксимальнаяДата();
УстановитьКартинкуСортировки(Элементы.СпискиЗадержкаОбработкиСписка, Ложь);
Если Не УправлениеДоступом.ОграничиватьДоступНаУровнеЗаписей() Тогда
Элементы.ГруппаПредупреждениеОграничениеОтключено.Видимость = Истина;
@@ -182,6 +190,13 @@
КонецПроцедуры
&НаКлиенте
Процедура ПоказыватьЗадержкуОбработкиПриИзменении(Элемент)
Элементы.СпискиЗадержкаОбработкиСписка.Видимость = ПоказыватьЗадержкуОбработки;
КонецПроцедуры
&НаКлиенте
Процедура ПоказыватьИмяТаблицыПриИзменении(Элемент)
@@ -293,6 +308,38 @@
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СпискиЗадержкаОбработкиСписка.Имя);
ГруппаОтбора = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Списки.ЗадержкаОбработкиСписка");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 999999;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Списки.ОбработаноЭлементов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 100;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Списки.ОбработаноКлючейДоступа");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = 100;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", "--- ---");
КонецПроцедуры
&НаСервереБезКонтекста
Процедура УстановитьКоличествоПотоковОбновленияДоступаНаСервере(Знач Количество)
@@ -675,6 +722,9 @@
РегламентноеЗаданиеОтключено = Контекст.Свойство("РегламентноеЗаданиеОтключено");
ТекущийМомент = ОбщегоНазначенияКлиент.ДатаСеанса();
ОбновитьЗадержку = ПоляСортировки[0].Значение = "ЗадержкаОбработкиСписка";
Индекс = Списки.Количество() - 1;
Пока Индекс >= 0 Цикл
Строка = Списки.Получить(Индекс);
@@ -685,14 +735,24 @@
Если ИзмененнаяСтрока <> Неопределено Тогда
ЗаполнитьЗначенияСвойств(Строка, ИзмененнаяСтрока);
КонецЕсли;
Если ОбновитьЗадержку Тогда
ОбновитьЗадержкуОбновленияСписка(Строка, ТекущийМомент);
КонецЕсли;
КонецЕсли;
Индекс = Индекс - 1;
КонецЦикла;
Для Каждого ДобавленнаяСтрока Из Контекст.ДобавленныеСтроки Цикл
ЗаполнитьЗначенияСвойств(Списки.Добавить(), ДобавленнаяСтрока);
НоваяСтрока = Списки.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ДобавленнаяСтрока);
Если ОбновитьЗадержку Тогда
ОбновитьЗадержкуОбновленияСписка(НоваяСтрока, ТекущийМомент);
КонецЕсли;
КонецЦикла;
Если Контекст.ДобавленныеСтроки.Количество() > 0 Тогда
Если Контекст.ДобавленныеСтроки.Количество() > 0
Или СортировкаСПереходомКНачалу()
И Контекст.ИзмененныеСтроки.Количество() > 0 Тогда
СортироватьСписокПоПолям();
КонецЕсли;
@@ -709,6 +769,24 @@
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьЗадержкуОбновленияСписка(Строка, ТекущийМомент)
Делитель = 5;
Если ЗначениеЗаполнено(Строка.ПоследнееОбновление) Тогда
Строка.ЗадержкаОбработкиСписка =
Цел((ТекущийМомент - Строка.ПоследнееОбновление) / Делитель) * Делитель;
ИначеЕсли Строка.ПервоеПланированиеОбновления < МаксимальнаяДата Тогда
Строка.ЗадержкаОбработкиСписка =
Цел((ТекущийМомент - Строка.ПервоеПланированиеОбновления) / Делитель) * Делитель;
Иначе
Строка.ЗадержкаОбработкиСписка = 999999;
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция НачатьОбновлениеПрогрессаНаСервере(Контекст, АдресРезультата, АдресХранимыхДанных,
ИдентификаторФормы, ИдентификаторЗаданияОбновленияПрогресса)
@@ -766,7 +844,7 @@
&НаСервереБезКонтекста
Функция ЗавершитьОбновлениеПрогрессаНаСервере(Контекст, Знач АдресРезультата, Знач АдресХранимыхДанных,
Знач ИдентификаторЗаданияОбновленияПрогресса)
ИдентификаторЗаданияОбновленияПрогресса)
Если ИдентификаторЗаданияОбновленияПрогресса <> Неопределено
И Не ДлительныеОперации.ЗаданиеВыполнено(ИдентификаторЗаданияОбновленияПрогресса) Тогда
@@ -775,6 +853,7 @@
ДлительныеОперации.ПрочитатьПрогресс(ИдентификаторЗаданияОбновленияПрогресса) <> Неопределено);
Возврат Ложь;
КонецЕсли;
ИдентификаторЗаданияОбновленияПрогресса = Неопределено;
Контекст = ПолучитьИзВременногоХранилища(АдресРезультата);
ПоместитьВоВременноеХранилище(Контекст.ХранимыеДанные, АдресХранимыхДанных);
@@ -792,10 +871,7 @@
ОтображатьНастройки = РассчитыватьПоКоличествуДанных
И Не Элементы.КраткоПодробно.Скрыта();
Если Элементы.НастройкиОтображения.Видимость = ОтображатьНастройки Тогда
Возврат;
КонецЕсли;
Если Элементы.НастройкиОтображения.Видимость <> ОтображатьНастройки Тогда
Элементы.НастройкиОтображения.Видимость = ОтображатьНастройки;
Если ОтображатьНастройки Тогда
@@ -811,6 +887,9 @@
Элементы.СпискиКоличествоОбработанныхКлючейДоступа.Видимость = Ложь;
Элементы.СпискиИмяТаблицы.Видимость = Ложь;
КонецЕсли;
КонецЕсли;
Элементы.СпискиЗадержкаОбработкиСписка.Видимость = ПоказыватьЗадержкуОбработки;
КонецПроцедуры
@@ -827,18 +906,62 @@
Возврат;
КонецЕсли;
ОчиститьКартинкуСортировки(Элементы["Списки" + ПоляСортировки[0].Значение]);
ПоляСортировки.Очистить();
Поле = Сред(Элементы.Списки.ТекущийЭлемент.Имя, СтрДлина("Списки") + 1);
Поле = Сред(ТекущаяКолонка.Имя, СтрДлина("Списки") + 1);
ПоляСортировки.Добавить(Поле, ?(ПоУбыванию, "Убыв", "Возр"));
Если Поле <> "СписокПредставление" Тогда
ПоляСортировки.Добавить("СписокПредставление", "Возр");
КонецЕсли;
УстановитьКартинкуСортировки(ТекущаяКолонка, ПоУбыванию);
СортироватьСписокПоПолям();
ПоказатьОповещениеПользователя(
?(ПоУбыванию, НСтр("ru = 'Сортировка по убыванию'"),
НСтр("ru = 'Сортировка по возрастанию'")),,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Колонка ""%1""'"),
СтрЗаменить(ТекущаяКолонка.Заголовок, Символы.ПС, " ")));
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьКартинкуСортировки(Элемент, ПоУбыванию)
ДобавкаШирины = 3;
Если Элемент.Ширина > 0 Тогда
Элемент.Ширина = Элемент.Ширина + ДобавкаШирины;
КонецЕсли;
Элемент.КартинкаШапки = ?(ПоУбыванию,
БиблиотекаКартинок.СортироватьСписокПоУбыванию,
БиблиотекаКартинок.СортироватьСписокПоВозрастанию);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ОчиститьКартинкуСортировки(Элемент)
ДобавкаШирины = 3;
Элемент.КартинкаШапки = Новый Картинка;
Если Элемент.Ширина > ДобавкаШирины Тогда
Элемент.Ширина = Элемент.Ширина - ДобавкаШирины;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция СортировкаСПереходомКНачалу()
Возврат ПоляСортировки[0].Значение <> "СписокПредставление";
КонецФункции
&НаКлиенте
Процедура СортироватьСписокПоПолям(ИндексПоляСортировки = 0, СтрокиСписка = Неопределено)
@@ -849,6 +972,9 @@
ПолеСортировки = ПоляСортировки[ИндексПоляСортировки].Значение;
Если СтрокиСписка = Неопределено Тогда
СтрокиСписка = Новый СписокЗначений;
Если Списки.Количество() < 2 Тогда
Возврат;
КонецЕсли;
Для Каждого Строка Из Списки Цикл
СтрокиСписка.Добавить(Строка,
ПредставлениеДляСортировки(Строка[ПолеСортировки]));
@@ -889,6 +1015,13 @@
СортироватьСписокПоПолям(ИндексПоляСортировки + 1, Подстроки);
КонецЕсли;
Если ИндексПоляСортировки = 0
И СортировкаСПереходомКНачалу()
И Списки.Количество() > 0 Тогда
Элементы.Списки.ТекущаяСтрока = Списки[0].ПолучитьИдентификатор();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
@@ -214,8 +214,134 @@
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаОбновлениеДоступаКоВсемЭлементамСписков</name>
<name>ГруппаПланированиеОбновлениеДоступа</name>
<id>11</id>
<items xsi:type="form:FormField">
<name>ОбновитьКлючиДоступаКЭлементамДанных</name>
<id>58</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ОбновитьКлючиДоступаКЭлементамДанных</segments>
</dataPath>
<titleLocation>Right</titleLocation>
<toolTip>
<key>ru</key>
<value>Это обработка элементов данных:
выбор запросом порций объектов или отборов записей регистров,
у которых устарели ключи доступа, и замена их ключей доступа на новые.</value>
</toolTip>
<toolTipRepresentation>Button</toolTipRepresentation>
<extendedTooltip>
<name>ОбновитьКлючиДоступаКЭлементамДанныхРасширеннаяПодсказка</name>
<id>60</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ОбновитьКлючиДоступаКЭлементамДанныхКонтекстноеМеню</name>
<id>59</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<items xsi:type="form:FormField">
<name>ОбновитьПраваНаКлючиДоступа</name>
<id>61</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ОбновитьПраваНаКлючиДоступа</segments>
</dataPath>
<titleLocation>Right</titleLocation>
<toolTip>
<key>ru</key>
<value>Это обработка ключей доступа:
выбор запросом порций ранее созданных ключей доступа списка,
расчет прав групп доступа, прав пользователей, прав внешних пользователей и
обновление прав в регистрах, если права в регистрах отличаются от рассчитанных прав.</value>
</toolTip>
<toolTipRepresentation>Button</toolTipRepresentation>
<extendedTooltip>
<name>ОбновитьПраваНаКлючиДоступаРасширеннаяПодсказка</name>
<id>63</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ОбновитьПраваНаКлючиДоступаКонтекстноеМеню</name>
<id>62</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<items xsi:type="form:FormField">
<name>УдалитьУстаревшиеСлужебныеДанные</name>
<id>64</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>УдалитьУстаревшиеСлужебныеДанные</segments>
</dataPath>
<titleLocation>Right</titleLocation>
<toolTipRepresentation>Button</toolTipRepresentation>
<extendedTooltip>
<name>УдалитьУстаревшиеСлужебныеДанныеРасширеннаяПодсказка</name>
<id>66</id>
<title>
<key>ru</key>
<value>Это обработка устаревших:
- выбор запросом порций устаревших элементов данных и удаление,
- выбор запросом порций неиспользуемых ключей доступа и установка отсрочки устаревания,
- выбор запросом порций устаревших ключей доступа и удаление,
- выбор запросом порций устаревших наборов групп доступа и удаление.</value>
</title>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>УдалитьУстаревшиеСлужебныеДанныеКонтекстноеМеню</name>
<id>65</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<items xsi:type="form:Table">
<name>СпискиДляОбновления</name>
<id>18</id>
@@ -394,7 +520,7 @@
<locationInCommandBar>InCommandBarAndInAdditionalSubmenu</locationInCommandBar>
</items>
<items xsi:type="form:Button">
<name>СпискиЗапланироватьОбновлениеДоступаКоВсемЭлементамОтмеченныхСписков</name>
<name>СпискиЗапланироватьОбновлениеДоступаСписков</name>
<id>37</id>
<title>
<key>ru</key>
@@ -406,7 +532,7 @@
<common>true</common>
</userVisible>
<extendedTooltip>
<name>СпискиЗапланироватьОбновлениеДоступаКоВсемЭлементамОтмеченныхСписковРасширеннаяПодсказка</name>
<name>СпискиЗапланироватьОбновлениеДоступаСписковРасширеннаяПодсказка</name>
<id>38</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -415,7 +541,7 @@
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ЗапланироватьОбновлениеДоступаКоВсемЭлементамОтмеченныхСписков</commandName>
<commandName>Form.Command.ЗапланироватьОбновлениеДоступаСписков</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
@@ -544,7 +670,7 @@
<value>2. Обновление доступа ко всем элементам списков</value>
</title>
<extendedTooltip>
<name>ГруппаОбновлениеДоступаКоВсемЭлементамСписковРасширеннаяПодсказка</name>
<name>ГруппаПланированиеОбновлениеДоступаРасширеннаяПодсказка</name>
<id>12</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -555,7 +681,7 @@
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<group>Vertical</group>
<behavior>Auto</behavior>
<representation>NormalSeparation</representation>
<showLeftMargin>true</showLeftMargin>
@@ -684,6 +810,57 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ОбновитьКлючиДоступаКЭлементамДанных</name>
<title>
<key>ru</key>
<value>Обновить ключи доступа к элементам данных</value>
</title>
<id>8</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ОбновитьПраваНаКлючиДоступа</name>
<title>
<key>ru</key>
<value>Обновить права на ключи доступа</value>
</title>
<id>9</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>УдалитьУстаревшиеСлужебныеДанные</name>
<title>
<key>ru</key>
<value>Удалить устаревшие служебные данные</value>
</title>
<id>10</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ОбновитьДоступКОбъекту</name>
<title>
@@ -707,15 +884,15 @@
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<formCommands>
<name>ЗапланироватьОбновлениеДоступаКоВсемЭлементамОтмеченныхСписков</name>
<name>ЗапланироватьОбновлениеДоступаСписков</name>
<title>
<key>ru</key>
<value>Запланировать обновление доступа ко всем элементам отмеченных списков</value>
<value>Запланировать обновление доступа списков</value>
</title>
<id>2</id>
<toolTip>
<key>ru</key>
<value>Запланировать обновление доступа ко всем элементам отмеченных списков.
<value>Запланировать указанные виды обновления для отмеченных списков.
Обновление будет выполняться регламентным заданием &quot;Обновление доступа&quot;.</value>
</toolTip>
<use>
@@ -723,7 +900,7 @@
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ЗапланироватьОбновлениеДоступаКоВсемЭлементамОтмеченныхСписков</name>
<name>ЗапланироватьОбновлениеДоступаСписков</name>
</handler>
</action>
<currentRowUse>DontUse</currentRowUse>
@@ -15,6 +15,10 @@
Возврат;
КонецЕсли;
ОбновитьКлючиДоступаКЭлементамДанных = Истина;
ОбновитьПраваНаКлючиДоступа = Истина;
УдалитьУстаревшиеСлужебныеДанные = Истина;
Если Не СтандартныеПодсистемыСервер.ВерсияПрограммыОбновленаДинамически() Тогда
СпискиСОграничением = УправлениеДоступомСлужебныйПовтИсп.СпискиСОграничением();
Иначе
@@ -40,7 +44,7 @@
Для Каждого ОписаниеИдентификатора Из Идентификаторы Цикл
СпискиДляОбновления.Добавить(ОписаниеИдентификатора.Значение,
Строка(ОписаниеИдентификатора.Значение));
Строка(ОписаниеИдентификатора.Значение), Истина);
КонецЦикла;
СпискиДляОбновления.СортироватьПоПредставлению();
@@ -92,13 +96,26 @@
КонецПроцедуры
&НаКлиенте
Процедура ЗапланироватьОбновлениеДоступаКоВсемЭлементамОтмеченныхСписков(Команда)
Процедура ЗапланироватьОбновлениеДоступаСписков(Команда)
ЗапланироватьОбновлениеДоступаКоВсемЭлементамОтмеченныхСписковНаСервере();
Если Не ОбновитьКлючиДоступаКЭлементамДанных
И Не ОбновитьПраваНаКлючиДоступа
И Не УдалитьУстаревшиеСлужебныеДанные Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Выберите хотя бы один вид обновления.'"));
Возврат;
КонецЕсли;
Если Не ЗапланироватьОбновлениеДоступаСписковНаСервере() Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Выберите хотя бы один список.'"));
Возврат;
КонецЕсли;
Оповестить("Запись_ОбновлениеКлючейДоступаКДанным", Новый Структура, Неопределено);
Оповестить("Запись_ОбновлениеКлючейДоступаПользователей", Новый Структура, Неопределено);
ПоказатьОповещениеПользователя(НСтр("ru = 'Обновление запланировано.'"));
КонецПроцедуры
#КонецОбласти
@@ -164,23 +181,15 @@
УправлениеДоступомСлужебный.ОбновитьКлючиДоступаЭлементовДанныхПриЗаписи(СсылкаНаОбъект,
ПараметрыОграничения, ИдентификаторТранзакции, Истина, ЕстьИзмененияПрав);
Если ПараметрыОграничения.ОграничениеОтключено
Или ПараметрыОграничения.ДоступЗапрещен
Или ПараметрыОграничения.ИспользуетсяОграничениеПоВладельцу Тогда
Если ПараметрыОграничения.БезЗаписиКлючейДоступа Тогда
Текст = Текст + Символы.ПС + НСтр("ru = '1. Обновление не требуется. Ключ доступа объекта не используется.'");
Если Не ПараметрыОграничения.Свойство("ТекстЗапросаЭлементовДанныхДляОчисткиКлючей") Тогда
ИначеЕсли ПараметрыОграничения.СЗаписьюВсегдаРазрешенногоКлючаДоступа Тогда
Если КлючДоступаИсточникаУстарел Тогда
Текст = Текст + Символы.ПС + НСтр("ru = '1. У объекта установлен всегда разрешенный ключ доступа.'");
Иначе
Текст = Текст + Символы.ПС + НСтр("ru = '1. Обновление не требуется. У объекта ключ доступа уже всегда разрешенный.'");
КонецЕсли;
Иначе
Если КлючДоступаИсточникаУстарел Тогда
Текст = Текст + Символы.ПС + НСтр("ru = '1. У объекта очищен ключ доступа.'");
Иначе
Текст = Текст + Символы.ПС + НСтр("ru = '1. Обновление не требуется. У объекта ключ доступа уже пустой.'");
КонецЕсли;
КонецЕсли;
Иначе
Если КлючДоступаИсточникаУстарел Тогда
Текст = Текст + Символы.ПС + НСтр("ru = '1. У объекта обновлен ключ доступа.'");
@@ -189,11 +198,10 @@
КонецЕсли;
КонецЕсли;
Если ПараметрыОграничения.ОграничениеОтключено
Или ПараметрыОграничения.ДоступЗапрещен
Или ПараметрыОграничения.ИспользуетсяОграничениеПоВладельцу Тогда
Если ПараметрыОграничения.БезЗаписиКлючейДоступа Тогда
Текст = Текст + Символы.ПС + НСтр("ru = '2. Обновление не требуется. Ключ доступа объекта не используется.'");
Если Не ПараметрыОграничения.Свойство("ТекстЗапросаЭлементовДанныхДляОчисткиКлючей") Тогда
ИначеЕсли ПараметрыОграничения.СЗаписьюВсегдаРазрешенногоКлючаДоступа Тогда
Если ЕстьИзмененияПрав Тогда
Текст = Текст + Символы.ПС
+ НСтр("ru = '2. У всегда разрешенного ключа доступа обновлен состав
@@ -203,9 +211,6 @@
+ НСтр("ru = '2. Обновление не требуется. У всегда разрешенного ключа доступа
| состав групп доступа, пользователей и внешних пользователей не устарел.'");
КонецЕсли;
Иначе
Текст = Текст + Символы.ПС + НСтр("ru = '2. Обновление не требуется. Пустой ключ доступа всегда запрещен.'");
КонецЕсли;
ИначеЕсли ЕстьИзмененияПрав Тогда
Если ПараметрыОграничения.ЕстьОграничениеПоПользователям Тогда
@@ -232,7 +237,7 @@
КонецПроцедуры
&НаСервере
Процедура ЗапланироватьОбновлениеДоступаКоВсемЭлементамОтмеченныхСписковНаСервере()
Функция ЗапланироватьОбновлениеДоступаСписковНаСервере()
Списки = Новый Массив;
Для Каждого ЭлементСписка Из СпискиДляОбновления Цикл
@@ -241,21 +246,42 @@
КонецЕсли;
КонецЦикла;
Если Списки.Количество() = 0 Тогда
Возврат Ложь;
КонецЕсли;
Если Списки.Количество() = СпискиДляОбновления.Количество() Тогда
Списки = Неопределено;
КонецЕсли;
УправлениеДоступомСлужебный.ОчиститьКэшЗначенийГруппДоступаДляРасчетаПрав();
Если ОбновитьКлючиДоступаКЭлементамДанных Или ОбновитьПраваНаКлючиДоступа Тогда
ПараметрыПланирования = УправлениеДоступомСлужебный.ПараметрыПланированияОбновленияДоступа();
ПараметрыПланирования.ЭтоПродолжениеОбновления = Истина;
ПараметрыПланирования.Описание = "ЗапланироватьОбновлениеДоступаКоВсемЭлементамОтмеченныхСписковНаСервере";
Если Не ОбновитьКлючиДоступаКЭлементамДанных Тогда
ПараметрыПланирования.КлючиДоступаКДанным = Ложь;
КонецЕсли;
Если Не ОбновитьПраваНаКлючиДоступа Тогда
ПараметрыПланирования.РазрешенныеКлючиДоступа = Ложь;
КонецЕсли;
ПараметрыПланирования.Описание = "ПланированиеОбновленияДоступаВручную";
УправлениеДоступомСлужебный.ЗапланироватьОбновлениеДоступа(Списки, ПараметрыПланирования);
КонецЕсли;
Если УдалитьУстаревшиеСлужебныеДанные Тогда
ПараметрыПланирования = УправлениеДоступомСлужебный.ПараметрыПланированияОбновленияДоступа();
ПараметрыПланирования.ЭтоОбработкаУстаревшихЭлементов = Истина;
ПараметрыПланирования.Описание = "ПланированиеОбновленияДоступаВручную";
УправлениеДоступомСлужебный.ЗапланироватьОбновлениеДоступа(Списки, ПараметрыПланирования);
КонецЕсли;
УправлениеДоступомСлужебный.УстановитьОбновлениеДоступа(Ложь);
УправлениеДоступомСлужебный.УстановитьОбновлениеДоступа(Истина);
КонецПроцедуры
Возврат Истина;
КонецФункции
// Продолжение обработчика события ОбъектОбновленияДоступаНачалоВыбора.
&НаКлиенте
@@ -149,6 +149,47 @@
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>РазмерЗадания</name>
<id>21</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Запись.РазмерЗадания</segments>
</dataPath>
<extendedTooltip>
<name>РазмерЗаданияРасширеннаяПодсказка</name>
<id>23</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>РазмерЗаданияКонтекстноеМеню</name>
<id>22</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ДатаИзмененияЗаписиРегистра</name>
<id>13</id>
@@ -283,6 +283,53 @@
<autoMaxHeight>true</autoMaxHeight>
</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>
<toolTip>
<key>ru</key>
<value>Размер задания:
1 - точечное задание,
2 - обновление устаревших,
3 - обновление с начала.</value>
</toolTip>
<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>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>СписокДатаИзмененияЗаписиРегистра</name>
<id>28</id>
@@ -121,6 +121,31 @@
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</attributes>
<attributes uuid="8984f28e-8c83-499a-838c-5f51410d7b0e">
<name>РазмерЗадания</name>
<synonym>
<key>ru</key>
<value>Размер задания</value>
</synonym>
<type>
<types>Number</types>
<numberQualifiers>
<precision>1</precision>
<nonNegative>true</nonNegative>
</numberQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>1 - точечное задание,
2 - обновление устаревших,
3 - обновление с начала.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</attributes>
<attributes uuid="73bf8c40-76ee-4c61-b56a-898bcd6da1ca">
<name>ДатаИзмененияЗаписиРегистра</name>
<synonym>
@@ -108,6 +108,47 @@
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<items xsi:type="form:FormField">
<name>РазмерЗадания</name>
<id>18</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Запись.РазмерЗадания</segments>
</dataPath>
<extendedTooltip>
<name>РазмерЗаданияРасширеннаяПодсказка</name>
<id>20</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>РазмерЗаданияКонтекстноеМеню</name>
<id>19</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ДатаИзмененияЗаписиРегистра</name>
<id>7</id>
@@ -216,6 +216,53 @@
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<items xsi:type="form:FormField">
<name>РазмерЗадания</name>
<id>37</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>
<toolTip>
<key>ru</key>
<value>Размер задания:
1 - точечное задание,
2 - обновление устаревших,
3 - обновление с начала.</value>
</toolTip>
<extendedTooltip>
<name>РазмерЗаданияРасширеннаяПодсказка</name>
<id>39</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>РазмерЗаданияКонтекстноеМеню</name>
<id>38</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>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>СписокДатаИзмененияЗаписиРегистра</name>
<id>22</id>
@@ -100,6 +100,31 @@
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</attributes>
<attributes uuid="d0031774-fa35-469f-9f8a-3aaa920928a0">
<name>РазмерЗадания</name>
<synonym>
<key>ru</key>
<value>Размер задания</value>
</synonym>
<type>
<types>Number</types>
<numberQualifiers>
<precision>1</precision>
<nonNegative>true</nonNegative>
</numberQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>1 - точечное задание,
2 - обновление устаревших,
3 - обновление с начала.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</attributes>
<attributes uuid="6da02618-2454-48fe-b1dc-399d0d40d043">
<name>ДатаИзмененияЗаписиРегистра</name>
<synonym>
@@ -19,15 +19,19 @@
Функция ЗаписьЕстьВРегистре(СтруктураЗаписи) Экспорт
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
|1
|ИЗ РегистрСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов
|ГДЕ УзелИнформационнойБазы = &УзелИнформационнойБазы
| И Ссылка = &Ссылка";
Запрос = Новый Запрос(
"ВЫБРАТЬ ПЕРВЫЕ 1
| ИСТИНА КАК ЕстьЗапись
|ИЗ
| РегистрСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов КАК РПИ
|ГДЕ
| РПИ.УзелИнформационнойБазы = &УзелИнформационнойБазы
| И РПИ.Ссылка = &Ссылка");
Запрос.УстановитьПараметр("УзелИнформационнойБазы", СтруктураЗаписи.УзелИнформационнойБазы);
Запрос.УстановитьПараметр("Ссылка", СтруктураЗаписи.Ссылка);
РезультатЗапроса = Запрос.Выполнить();
Возврат Не РезультатЗапроса.Пустой();
КонецФункции
@@ -51,17 +55,21 @@
// Возвращаемое значение:
// Строка - Уникальный идентификатор объекта.
Функция ПубличныйИдентификаторПоСсылкеОбъекта(УзелИнформационнойБазы, СсылкаНаОбъект) Экспорт
УстановитьПривилегированныйРежим(Истина);
// Определение публичной ссылки через ссылку на объект.
Запрос = Новый Запрос("
|ВЫБРАТЬ
| Идентификатор
|ИЗ РегистрСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов
|ГДЕ УзелИнформационнойБазы = &УзелИнформационнойБазы
| И Ссылка = &Ссылка");
Запрос = Новый Запрос(
"ВЫБРАТЬ
| РПИ.Идентификатор КАК Идентификатор
|ИЗ
| РегистрСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов КАК РПИ
|ГДЕ
| РПИ.УзелИнформационнойБазы = &УзелИнформационнойБазы
| И РПИ.Ссылка = &Ссылка");
Запрос.УстановитьПараметр("УзелИнформационнойБазы", УзелИнформационнойБазы);
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество() = 1 Тогда
Выборка.Следующий();
@@ -72,7 +80,7 @@
СтруктураЗаписи.Вставить("Ссылка", СсылкаНаОбъект);
УдалитьЗапись(СтруктураЗаписи, Истина);
КонецЕсли;
// Получение УИД текущей ссылки.
Возврат СокрЛП(СсылкаНаОбъект.УникальныйИдентификатор());
КонецФункции
@@ -1923,6 +1923,93 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>CommonForm.ВходВОбластьДанных</name>
<right>
@@ -3094,93 +3181,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>CommonCommand.СозданиеСвязанныхОбъектов</name>
<right>
@@ -2547,6 +2547,45 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>CommonForm.ВходВОбластьДанных</name>
<right>
@@ -4079,45 +4118,6 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>Catalog.ПроизводственныеКалендари</name>
<right>