3_1_3_264

This commit is contained in:
Компания 1С committed 2020-09-04 19:02:00 +03:00
1 parent eff646d7ea
commit deb29ece90
46 files changed
+943 -631

No files matched your search

@@ -37,4 +37,25 @@
#КонецОбласти #КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция КодыВалют() Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| Валюты.Ссылка КАК Ссылка,
| Валюты.Наименование КАК СимвольныйКод
|ИЗ
| Справочник.Валюты КАК Валюты
|ГДЕ
| Валюты.СпособУстановкиКурса <> ЗНАЧЕНИЕ(Перечисление.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты)
| И Валюты.СпособУстановкиКурса <> ЗНАЧЕНИЕ(Перечисление.СпособыУстановкиКурсаВалюты.РасчетПоФормуле)";
Запрос = Новый Запрос(ТекстЗапроса);
Возврат ОбщегоНазначения.ТаблицаЗначенийВМассив(Запрос.Выполнить().Выгрузить());
КонецФункции
#КонецОбласти
#КонецЕсли #КонецЕсли
+35 -2
View File
@@ -165,10 +165,12 @@
ПараметрыВалюты.Вставить("ДополнительныеСвойства"); ПараметрыВалюты.Вставить("ДополнительныеСвойства");
ПараметрыВалюты.Вставить("ФормулаРасчетаКурса"); ПараметрыВалюты.Вставить("ФормулаРасчетаКурса");
ПараметрыВалюты.Вставить("СпособУстановкиКурса"); ПараметрыВалюты.Вставить("СпособУстановкиКурса");
ПараметрыВалюты.Вставить("ИспользуемыеВалютыПриРасчетеКурса", ИспользуемыеВалютыПриРасчетеКурса());
ЗаполнитьЗначенияСвойств(ПараметрыВалюты, ЭтотОбъект); ЗаполнитьЗначенияСвойств(ПараметрыВалюты, ЭтотОбъект);
ПараметрыЗадания = Новый Структура; ПараметрыЗадания = Новый Структура;
ПараметрыЗадания.Вставить("Валюта", ПараметрыВалюты); ПараметрыЗадания.Вставить("Валюта", ПараметрыВалюты);
ПараметрыЗадания.Вставить("КодыВалют", Справочники.Валюты.КодыВалют());
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(Новый УникальныйИдентификатор()); ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(Новый УникальныйИдентификатор());
ПараметрыВыполнения.ОжидатьЗавершение = 0; ПараметрыВыполнения.ОжидатьЗавершение = 0;
@@ -183,8 +185,6 @@
Процедура ЗапланироватьКопированиеКурсовВалюты() Процедура ЗапланироватьКопированиеКурсовВалюты()
Перем РаботаСКурсамиВалютСлужебный;
Если ОбщегоНазначения.РазделениеВключено() Если ОбщегоНазначения.РазделениеВключено()
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Валюты") Тогда И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Валюты") Тогда
МодульРаботаСКурсамиВалютСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСКурсамиВалютСлужебный"); МодульРаботаСКурсамиВалютСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСКурсамиВалютСлужебный");
@@ -193,6 +193,39 @@
КонецПроцедуры КонецПроцедуры
Функция ИспользуемыеВалютыПриРасчетеКурса()
Если СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты Тогда
Возврат ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ОсновнаяВалюта);
КонецЕсли;
Если СпособУстановкиКурса <> Перечисления.СпособыУстановкиКурсаВалюты.РасчетПоФормуле Тогда
Возврат Новый Массив;
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| Валюты.Ссылка КАК Ссылка
|ИЗ
| Справочник.Валюты КАК Валюты
|ГДЕ
| &ФормулаРасчетаКурса ПОДОБНО ""%"" + Валюты.Наименование + ""%""
| И Валюты.Наименование <> """"";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("ФормулаРасчетаКурса", ФормулаРасчетаКурса);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
ТекстОшибки = НСтр("ru = 'В формуле должна быть использована хотя бы одна основная валюта.'");
ОбщегоНазначения.СообщитьПользователю(ТекстОшибки, , "Объект.ФормулаРасчетаКурса");
ВызватьИсключение ТекстОшибки;
КонецЕсли;
Возврат РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("Ссылка");
КонецФункции
#КонецОбласти #КонецОбласти
#Иначе #Иначе
@@ -419,6 +419,110 @@
<showInCard>true</showInCard> <showInCard>true</showInCard>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:FormField">
<name>РолиИмя</name>
<id>400</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible/>
<dataPath xsi:type="form:DataPath">
<segments>Роли.Имя</segments>
</dataPath>
<extendedTooltip>
<name>РолиИмяРасширеннаяПодсказка</name>
<id>402</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>РолиИмяКонтекстноеМеню</name>
<id>401</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">
<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>406</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible/>
<dataPath xsi:type="form:DataPath">
<segments>Роли.ЭтоНедоступнаяРоль</segments>
</dataPath>
<extendedTooltip>
<name>РолиЭтоНедоступнаяРольРасширеннаяПодсказка</name>
<id>408</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>РолиЭтоНедоступнаяРольКонтекстноеМеню</name>
<id>407</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<readOnly>true</readOnly>
<editMode>Auto</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<items xsi:type="form:FormField">
<name>РолиЭтоНесуществующаяРоль</name>
<id>409</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible/>
<dataPath xsi:type="form:DataPath">
<segments>Роли.ЭтоНесуществующаяРоль</segments>
</dataPath>
<extendedTooltip>
<name>РолиЭтоНесуществующаяРольРасширеннаяПодсказка</name>
<id>411</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>РолиЭтоНесуществующаяРольКонтекстноеМеню</name>
<id>410</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<readOnly>true</readOnly>
<editMode>Auto</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<autoCommandBar> <autoCommandBar>
<name>РолиКоманднаяПанель</name> <name>РолиКоманднаяПанель</name>
<id>199</id> <id>199</id>
@@ -2042,6 +2146,10 @@
</columns> </columns>
<columns> <columns>
<name>Имя</name> <name>Имя</name>
<title>
<key>ru</key>
<value>Имя роли в конфигурации</value>
</title>
<id>5</id> <id>5</id>
<valueType> <valueType>
<types>String</types> <types>String</types>
@@ -2069,6 +2177,10 @@
</columns> </columns>
<columns> <columns>
<name>ЭтоНедоступнаяРоль</name> <name>ЭтоНедоступнаяРоль</name>
<title>
<key>ru</key>
<value>Это недоступная роль</value>
</title>
<id>6</id> <id>6</id>
<valueType> <valueType>
<types>Boolean</types> <types>Boolean</types>
@@ -2082,6 +2194,10 @@
</columns> </columns>
<columns> <columns>
<name>ЭтоНесуществующаяРоль</name> <name>ЭтоНесуществующаяРоль</name>
<title>
<key>ru</key>
<value>Это несуществующая роль</value>
</title>
<id>7</id> <id>7</id>
<valueType> <valueType>
<types>Boolean</types> <types>Boolean</types>
@@ -121,7 +121,7 @@
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
МодульУправлениеКонтактнойИнформациейСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформациейСлужебный"); МодульУправлениеКонтактнойИнформациейСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформациейСлужебный");
Если МодульУправлениеКонтактнойИнформациейСлужебный.ЕстьЗаблокированныеПредыдущимиОчередямиДанные(Параметры.Очередь) Тогда Если МодульУправлениеКонтактнойИнформациейСлужебный.ВидыКонтактнойИнформацииОбновляются(Параметры.Очередь) Тогда
Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.ШаблоныСообщений"); Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.ШаблоныСообщений");
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -129,7 +129,7 @@
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки") Тогда
МодульДополнительныеОтчетыИОбработки = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработки"); МодульДополнительныеОтчетыИОбработки = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработки");
Если МодульДополнительныеОтчетыИОбработки.ЕстьЗаблокированныеПредыдущимиОчередямиДанные(Параметры.Очередь) Тогда Если МодульДополнительныеОтчетыИОбработки.ДополнительныеОтчетыИОбработкиОбновляются(Параметры.Очередь) Тогда
Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.ШаблоныСообщений"); Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.ШаблоныСообщений");
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -958,12 +958,18 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ПараметрыФормирования = Новый Структура;
ПараметрыФормирования.Вставить("ЗагрузитьРезультат", Ложь);
ПараметрыФормирования.Вставить("ИдентификаторЗадания", Результат.ИдентификаторЗадания);
Если Результат.Статус <> "Выполняется" Тогда Если Результат.Статус <> "Выполняется" Тогда
ПослеФормирования(Результат, Ложь); ПослеФормирования(Результат, ПараметрыФормирования);
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Обработчик = Новый ОписаниеОповещения("ПослеФормирования", ЭтотОбъект, Истина); ПараметрыФормирования.ЗагрузитьРезультат = Истина;
Обработчик = Новый ОписаниеОповещения("ПослеФормирования", ЭтотОбъект, ПараметрыФормирования);
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект); ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь; ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
@@ -971,13 +977,16 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура ПослеФормирования(Результат, ЗагрузитьРезультатФормированияОтчета) Экспорт Процедура ПослеФормирования(Результат, ПараметрыФормирования) Экспорт
Если Результат = Неопределено Тогда Если ФоновоеЗаданиеИдентификатор <> ПараметрыФормирования.ИдентификаторЗадания Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Если Результат.Статус = "Выполнено" Тогда Если Результат = Неопределено Тогда
Если ЗагрузитьРезультатФормированияОтчета Тогда ПоказатьОшибкиФормирования(НСтр("ru = 'Формирование отчета прервано администратором'"));
ПоказатьОповещениеПользователя(НСтр("ru = 'Отчет не сформирован'"),, Заголовок);
ИначеЕсли Результат.Статус = "Выполнено" Тогда
Если ПараметрыФормирования.ЗагрузитьРезультат Тогда
ЗагрузитьРезультатФормированияОтчета(); ЗагрузитьРезультатФормированияОтчета();
КонецЕсли; КонецЕсли;
ПоказатьОповещениеПользователя(НСтр("ru = 'Отчет сформирован'"),, Заголовок); ПоказатьОповещениеПользователя(НСтр("ru = 'Отчет сформирован'"),, Заголовок);
@@ -994,7 +1003,7 @@
МодульОценкаПроизводительностиКлиент.ЗавершитьЗамерВремени(ИдентификаторЗамера); МодульОценкаПроизводительностиКлиент.ЗавершитьЗамерВремени(ИдентификаторЗамера);
КонецЕсли; КонецЕсли;
ОтчетСформирован = (Результат.Статус = "Выполнено"); ОтчетСформирован = ?(Результат = Неопределено, Ложь, Результат.Статус = "Выполнено");
ИнтеграцияПодсистемБСПКлиент.ПослеФормирования(ЭтотОбъект, ОтчетСформирован); ИнтеграцияПодсистемБСПКлиент.ПослеФормирования(ЭтотОбъект, ОтчетСформирован);
ОтчетыКлиентПереопределяемый.ПослеФормирования(ЭтотОбъект, ОтчетСформирован); ОтчетыКлиентПереопределяемый.ПослеФормирования(ЭтотОбъект, ОтчетСформирован);
@@ -1108,6 +1117,7 @@
&НаСервере &НаСервере
Процедура ЗагрузитьРезультатФормированияОтчета() Процедура ЗагрузитьРезультатФормированияОтчета()
Если Не ЭтоАдресВременногоХранилища(ФоновоеЗаданиеАдресХранилища) Тогда Если Не ЭтоАдресВременногоХранилища(ФоновоеЗаданиеАдресХранилища) Тогда
ПоказатьОшибкиФормирования(НСтр("ru = 'Не удалось сформировать отчет'"));
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -1118,6 +1128,7 @@
ФоновоеЗаданиеИдентификатор = Неопределено; ФоновоеЗаданиеИдентификатор = Неопределено;
Если Результат = Неопределено Тогда Если Результат = Неопределено Тогда
ПоказатьОшибкиФормирования(НСтр("ru = 'Не удалось сформировать отчет (пустой результат)'"));
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -62,8 +62,10 @@
// //
Функция КодРегионаПоНаименованию(Название) Экспорт Функция КодРегионаПоНаименованию(Название) Экспорт
НаименованиеРегиона = СтрЗаменить(Название, "Кемеровская область - Кузбасс обл", "Кемеровская область - Кузбасс");
СписокРегионов = АдресныйКлассификаторПовтИсп.СписокРегионов(); СписокРегионов = АдресныйКлассификаторПовтИсп.СписокРегионов();
КодСубъектаРФ = СписокРегионов.Получить(ВРег(Название)); КодСубъектаРФ = СписокРегионов.Получить(ВРег(НаименованиеРегиона));
Если КодСубъектаРФ <> Неопределено Тогда Если КодСубъектаРФ <> Неопределено Тогда
Возврат КодСубъектаРФ; Возврат КодСубъектаРФ;
@@ -72,10 +74,10 @@
// Если не нашли, то подсмотрим еще и в классификаторе - макете. // Если не нашли, то подсмотрим еще и в классификаторе - макете.
Классификатор = РегистрыСведений.АдресныеОбъекты.КлассификаторСубъектовРФ(); Классификатор = РегистрыСведений.АдресныеОбъекты.КлассификаторСубъектовРФ();
Фильтр = Новый Структура("Наименование", Название); Фильтр = Новый Структура("Наименование", НаименованиеРегиона);
Варианты = Классификатор.НайтиСтроки(Фильтр); Варианты = Классификатор.НайтиСтроки(Фильтр);
Если Варианты.Количество() = 0 Тогда Если Варианты.Количество() = 0 Тогда
ЧастиСлова = АдресныйКлассификаторСлужебный.НаименованиеИСокращение(Название); ЧастиСлова = АдресныйКлассификаторСлужебный.НаименованиеИСокращение(НаименованиеРегиона);
Фильтр.Вставить("Наименование", ЧастиСлова.Наименование); Фильтр.Вставить("Наименование", ЧастиСлова.Наименование);
Фильтр.Вставить("Сокращение", ЧастиСлова.Сокращение); Фильтр.Вставить("Сокращение", ЧастиСлова.Сокращение);
Варианты = Классификатор.НайтиСтроки(Фильтр); Варианты = Классификатор.НайтиСтроки(Фильтр);
@@ -282,8 +282,7 @@
// Возвращает тип ссылки дополнительного отчета. // Возвращает тип ссылки дополнительного отчета.
Функция ТипСсылкиДополнительногоОтчета() Функция ТипСсылкиДополнительногоОтчета()
Существует = ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки"); Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки") Тогда
Если Существует Тогда
Возврат Тип("СправочникСсылка.ДополнительныеОтчетыИОбработки"); Возврат Тип("СправочникСсылка.ДополнительныеОтчетыИОбработки");
КонецЕсли; КонецЕсли;
@@ -1691,7 +1691,7 @@
КонецПроцедуры КонецПроцедуры
Функция ЕстьЗаблокированныеПредыдущимиОчередямиДанные(Очередь) Экспорт Функция ДополнительныеОтчетыИОбработкиОбновляются(Очередь) Экспорт
Возврат ОбновлениеИнформационнойБазы.ЕстьЗаблокированныеПредыдущимиОчередямиДанные(Очередь, "Справочник.ДополнительныеОтчетыИОбработки"); Возврат ОбновлениеИнформационнойБазы.ЕстьЗаблокированныеПредыдущимиОчередямиДанные(Очередь, "Справочник.ДополнительныеОтчетыИОбработки");
КонецФункции КонецФункции
@@ -234,6 +234,10 @@
НомерВРегистре = 0; НомерВРегистре = 0;
// Чтение макета "Описатель". // Чтение макета "Описатель".
Если НосительМакетов.Метаданные().Макеты.Найти("Описатель") = Неопределено Тогда
Возврат Результат;
КонецЕсли;
ТабличныйДокумент = НосительМакетов.ПолучитьМакет("Описатель"); ТабличныйДокумент = НосительМакетов.ПолучитьМакет("Описатель");
Для НомерСтроки = 3 По ТабличныйДокумент.ВысотаТаблицы Цикл Для НомерСтроки = 3 По ТабличныйДокумент.ВысотаТаблицы Цикл
ПрефиксСтроки = "R"+ НомерСтроки +"C"; ПрефиксСтроки = "R"+ НомерСтроки +"C";
@@ -355,12 +359,16 @@
ДвоичныеДанные = НосительМакетов.ПолучитьМакет(ЛокализованноеИмяМакета); ДвоичныеДанные = НосительМакетов.ПолучитьМакет(ЛокализованноеИмяМакета);
ДвоичныеДанные.Записать(АрхивПолноеИмя); ДвоичныеДанные.Записать(АрхивПолноеИмя);
Исключение Исключение
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось извлечь файл из макета %1 (ЛокализованноеИмяМакета: %2) обработки ИнформацияПриЗапуске по причине:'"),
ИмяМакета, ЛокализованноеИмяМакета) + Символы.ПС;
Если НосительМакетов.Метаданные().Макеты.Найти(ЛокализованноеИмяМакета) = Неопределено Тогда
ТекстСообщения = ТекстСообщения + НСтр("ru = 'Макет с таким именем не существует.'") + Символы.ПС;
КонецЕсли;
ТекстСообщения = ТекстСообщения + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ЗаписьЖурналаРегистрации( ЗаписьЖурналаРегистрации(
НСтр("ru = 'Информация при запуске'", ОбщегоНазначения.КодОсновногоЯзыка()), НСтр("ru = 'Информация при запуске'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка, УровеньЖурналаРегистрации.Ошибка,,, ТекстСообщения);
,
,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат Неопределено; Возврат Неопределено;
КонецПопытки; КонецПопытки;
@@ -732,6 +732,8 @@
ПараметрыНапоминания.Вставить("Описание", Текст); ПараметрыНапоминания.Вставить("Описание", Текст);
Если ТипЗнч(ВремяСобытия) = Тип("РасписаниеРегламентногоЗадания") Тогда Если ТипЗнч(ВремяСобытия) = Тип("РасписаниеРегламентногоЗадания") Тогда
ПараметрыНапоминания.Вставить("Расписание", ВремяСобытия); ПараметрыНапоминания.Вставить("Расписание", ВремяСобытия);
ИначеЕсли ТипЗнч(ВремяСобытия) = Тип("Строка") Тогда
ПараметрыНапоминания.Вставить("ИмяРеквизитаИсточника", ВремяСобытия);
Иначе Иначе
ПараметрыНапоминания.Вставить("ВремяСобытия", ВремяСобытия); ПараметрыНапоминания.Вставить("ВремяСобытия", ВремяСобытия);
КонецЕсли; КонецЕсли;
@@ -2483,9 +2483,6 @@
РегистрыСведений.РезультатыОбменаДанными.ЗарегистрироватьУстранениеПроблемы(Объект, РегистрыСведений.РезультатыОбменаДанными.ЗарегистрироватьУстранениеПроблемы(Объект,
Перечисления.ТипыПроблемОбменаДанными.НепроведенныйДокумент); Перечисления.ТипыПроблемОбменаДанными.НепроведенныйДокумент);
// Устанавливаем режим загрузки данных для объекта.
ОбменДаннымиСервер.УстановитьОбменДаннымиЗагрузка(Объект, Истина, Ложь, Отправитель);
// Проверка на коллизии дат запрета загрузки. // Проверка на коллизии дат запрета загрузки.
Объект.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения"); Объект.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения");
@@ -2494,11 +2491,27 @@
НачатьТранзакцию(); НачатьТранзакцию();
Попытка Попытка
Если Объект.ДополнительныеСвойства.Свойство("ИспользоватьОтменуПроведенияДляОчисткиДвижений")
И Объект.ДополнительныеСвойства.ИспользоватьОтменуПроведенияДляОчисткиДвижений = Истина Тогда
ОбменДаннымиСервер.УстановитьОбменДаннымиЗагрузка(Объект, Ложь, Ложь, Отправитель);
Объект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
ОбменДаннымиСервер.УстановитьОбменДаннымиЗагрузка(Объект, Истина, Ложь, Отправитель);
Иначе
// Устанавливаем режим загрузки данных для объекта.
ОбменДаннымиСервер.УстановитьОбменДаннымиЗагрузка(Объект, Истина, Ложь, Отправитель);
// Отменяем проведение документа. // Отменяем проведение документа.
Объект.Проведен = Ложь; Объект.Проведен = Ложь;
Объект.Записать(); Объект.Записать();
ОбменДаннымиСервер.УдалитьДвиженияУДокумента(Объект); ОбменДаннымиСервер.УдалитьДвиженияУДокумента(Объект);
КонецЕсли;
ПроведениеДокументаОтменено = Истина; ПроведениеДокументаОтменено = Истина;
ЗафиксироватьТранзакцию(); ЗафиксироватьТранзакцию();
Исключение Исключение
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы"; Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.3.250"; Описание.Версия = "3.1.3.264";
Описание.ИдентификаторИнтернетПоддержки = "SSL"; Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно"; Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0"; Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -151,7 +151,8 @@
// * КодСтраны - Строка - код страны по ОКСМ. // * КодСтраны - Строка - код страны по ОКСМ.
// * Индекс - Строка - почтовый индекс. // * Индекс - Строка - почтовый индекс.
// * КодРегиона - Строка - код региона РФ. // * КодРегиона - Строка - код региона РФ.
// * Регион - Строка - текстовое представление региона РФ. // * Регион - Строка - текстовое представление региона РФ. Для получения полного наименования региона
// следует использовать функцию РегионАдресаКонтактнойИнформации.
// * РегионТипПолный - Строка - полное наименование типа региона. Например: "область". // * РегионТипПолный - Строка - полное наименование типа региона. Например: "область".
// * РегионТипКраткий - Строка - краткое наименование типа региона. Например: "обл". // * РегионТипКраткий - Строка - краткое наименование типа региона. Например: "обл".
// * РегионСокращение - Строка - устаревшее свойство. Сокращение региона, например: "обл", если // * РегионСокращение - Строка - устаревшее свойство. Сокращение региона, например: "обл", если
@@ -2243,10 +2244,15 @@
Для каждого ЧастьАдреса Из СоответствиеУровней Цикл Для каждого ЧастьАдреса Из СоответствиеУровней Цикл
ИдентификаторТекущегоУровня = АдресИзJSON[ЧастьАдреса.Ключ + "Id"]; ИдентификаторТекущегоУровня = АдресИзJSON[ЧастьАдреса.Ключ + "Id"];
ТипКраткий = АдресИзJSON[ЧастьАдреса.Ключ + "Type"];
Если ЧастьАдреса.Ключ = "area" И СтрНачинаетсяС(АдресИзJSON[ЧастьАдреса.Ключ], "Кемеровская область -") Тогда
НаименованиеУровня = "Кемеровская область - Кузбасс";
ТипКраткий = "обл";
Иначе
ТипКраткий = АдресИзJSON[ЧастьАдреса.Ключ + "Type"];
НаименованиеУровня = ?(Параметры.НаименованиеВключаетСокращение, СокрЛП(АдресИзJSON[ЧастьАдреса.Ключ] + " " + ТипКраткий), НаименованиеУровня = ?(Параметры.НаименованиеВключаетСокращение, СокрЛП(АдресИзJSON[ЧастьАдреса.Ключ] + " " + ТипКраткий),
АдресИзJSON[ЧастьАдреса.Ключ]); АдресИзJSON[ЧастьАдреса.Ключ]);
КонецЕсли;
АдресПоПолям[ЧастьАдреса.Значение.Имя] = НаименованиеУровня; АдресПоПолям[ЧастьАдреса.Значение.Имя] = НаименованиеУровня;
АдресПоПолям[ЧастьАдреса.Значение.Имя + "Сокращение"] = ТипКраткий; АдресПоПолям[ЧастьАдреса.Значение.Имя + "Сокращение"] = ТипКраткий;
@@ -2351,6 +2357,7 @@
КонецЕсли; КонецЕсли;
АдресПоПолям.Регион = СтрЗаменить(АдресПоПолям.Регион, "Кемеровская область - Кузбасс обл", "Кемеровская область - Кузбасс");
УправлениеКонтактнойИнформациейСлужебный.ЗаменитьВСтруктуреНеопределеноНаПустуюСтроку(АдресПоПолям); УправлениеКонтактнойИнформациейСлужебный.ЗаменитьВСтруктуреНеопределеноНаПустуюСтроку(АдресПоПолям);
СтрокаАдреса.Адрес = АдресПоПолям; СтрокаАдреса.Адрес = АдресПоПолям;
@@ -2366,6 +2373,24 @@
КонецФункции КонецФункции
Процедура УстановкаТипаОбластьКемеровскойОбласти(КонтактнаяИнформацияПоПолям) Экспорт
Если СтрСравнить(КонтактнаяИнформацияПоПолям.area, "Кемеровская область -") = 0 Тогда
КонтактнаяИнформацияПоПолям.area = "Кемеровская область - Кузбасс";
КонтактнаяИнформацияПоПолям.areaType= "обл";
КонецЕсли;
КонецПроцедуры
Процедура УстановкаТипаКузбассКемеровскойОбласти(КонтактнаяИнформацияПоПолям) Экспорт
Если СтрСравнить(КонтактнаяИнформацияПоПолям.area, "Кемеровская область - Кузбасс") = 0 Тогда
КонтактнаяИнформацияПоПолям.area = "Кемеровская область -";
КонтактнаяИнформацияПоПолям.areaType= "Кузбасс";
КонецЕсли;
КонецПроцедуры
// Возвращает сведения об адресе в виде отдельных частей адреса и различных кодов (код региона, ОКТМО и др.). // Возвращает сведения об адресе в виде отдельных частей адреса и различных кодов (код региона, ОКТМО и др.).
// //
Функция СведенияОбАдресеВВидеСтруктуры(Знач АдресСтрокой, ДополнительныеПараметры) Функция СведенияОбАдресеВВидеСтруктуры(Знач АдресСтрокой, ДополнительныеПараметры)
@@ -275,6 +275,15 @@
Процедура ПроверитьКорректностьКурсаНа01_01_1980(Валюта) Экспорт Процедура ПроверитьКорректностьКурсаНа01_01_1980(Валюта) Экспорт
ДатаКурса = Дата("19800101"); ДатаКурса = Дата("19800101");
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.КурсыВалют");
ЭлементБлокировки.УстановитьЗначение("Валюта", Валюта);
ЭлементБлокировки.УстановитьЗначение("Период", ДатаКурса);
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
СтруктураКурса = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(ДатаКурса, Новый Структура("Валюта", Валюта)); СтруктураКурса = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(ДатаКурса, Новый Структура("Валюта", Валюта));
Если (СтруктураКурса.Курс = 0) Или (СтруктураКурса.Кратность = 0) Тогда Если (СтруктураКурса.Курс = 0) Или (СтруктураКурса.Кратность = 0) Тогда
@@ -290,6 +299,12 @@
НаборЗаписей.Записать(); НаборЗаписей.Записать();
КонецЕсли; КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -443,34 +458,7 @@
ЗависимаяВалюта = Параметры.Валюта; ЗависимаяВалюта = Параметры.Валюта;
СпособУстановкиКурса = ЗависимаяВалюта.СпособУстановкиКурса; СпособУстановкиКурса = ЗависимаяВалюта.СпособУстановкиКурса;
СписокВалют = Новый Массив; СписокВалют = Параметры.Валюта.ИспользуемыеВалютыПриРасчетеКурса;
Если СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты Тогда
СписокВалют.Добавить(ЗависимаяВалюта.ОсновнаяВалюта);
ИначеЕсли СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.РасчетПоФормуле Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Валюты.Ссылка КАК Ссылка
|ИЗ
| Справочник.Валюты КАК Валюты
|ГДЕ
| &ФормулаРасчетаКурса ПОДОБНО ""%"" + Валюты.Наименование + ""%""";
Запрос.УстановитьПараметр("ФормулаРасчетаКурса", ЗависимаяВалюта.ФормулаРасчетаКурса);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
ТекстОшибки = НСтр("ru = 'В формуле должна быть использована хотя бы одна основная валюта.'");
ОбщегоНазначения.СообщитьПользователю(ТекстОшибки, , "Объект.ФормулаРасчетаКурса");
ВызватьИсключение ТекстОшибки;
КонецЕсли;
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
СписокВалют.Добавить(Выборка.Ссылка);
КонецЦикла
КонецЕсли;
ТекстЗапроса = ТекстЗапроса =
"ВЫБРАТЬ "ВЫБРАТЬ
@@ -514,6 +502,7 @@
НаборЗаписей.Отбор.Период.Установить(Выборка.Период); НаборЗаписей.Отбор.Период.Установить(Выборка.Период);
НаборЗаписей.Прочитать(); НаборЗаписей.Прочитать();
НаборЗаписей.ДополнительныеСвойства.Вставить("ОбновитьКурсЗависимойВалюты", ЗависимаяВалюта); НаборЗаписей.ДополнительныеСвойства.Вставить("ОбновитьКурсЗависимойВалюты", ЗависимаяВалюта);
НаборЗаписей.ДополнительныеСвойства.Вставить("КодыВалют", Параметры.КодыВалют);
НаборЗаписей.ДополнительныеСвойства.Вставить("ОбновленныеПериоды", ОбновленныеПериоды); НаборЗаписей.ДополнительныеСвойства.Вставить("ОбновленныеПериоды", ОбновленныеПериоды);
НаборЗаписей.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения"); НаборЗаписей.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения");
НаборЗаписей.Записать(); НаборЗаписей.Записать();
@@ -2354,27 +2354,6 @@
КонецЕсли; КонецЕсли;
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "2.4.1.50";
Обработчик.Комментарий =
НСтр("ru = 'Перенос двоичных данных файлов в регистр сведений Двоичные данные файлов.'");
Обработчик.Идентификатор = Новый УникальныйИдентификатор("bb2c6a93-98b0-4a01-8793-6b82f316490e");
Обработчик.Процедура = "РегистрыСведений.ДвоичныеДанныеФайлов.ОбработатьДанныеДляПереходаНаНовуюВерсию";
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.ОчередьОтложеннойОбработки = 2;
Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыСведений.ДвоичныеДанныеФайлов.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию";
Обработчик.ЧитаемыеОбъекты = "Справочник.ВерсииФайлов";
Обработчик.ИзменяемыеОбъекты = "Справочник.ВерсииФайлов,РегистрСведений.ДвоичныеДанныеФайлов";
Обработчик.БлокируемыеОбъекты = "Справочник.Файлы, Справочник.ВерсииФайлов";
Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы";
Обработчик.ПриоритетыВыполнения = ОбновлениеИнформационнойБазы.ПриоритетыВыполненияОбработчика();
Если ПодсистемаЭПСуществует Тогда
Приоритет = Обработчик.ПриоритетыВыполнения.Добавить();
Приоритет.Процедура = "РаботаСФайлами.ПеренестиЭлектронныеПодписиИСертификатыШифрованияВРегистрыСведений";
Приоритет.Порядок = "После";
КонецЕсли;
Обработчик = Обработчики.Добавить(); Обработчик = Обработчики.Добавить();
Обработчик.Версия = "2.4.1.1"; Обработчик.Версия = "2.4.1.1";
Обработчик.Комментарий = Обработчик.Комментарий =
@@ -2461,6 +2440,51 @@
Приоритет.Процедура = "Справочники.Файлы.ОбработатьДанныеДляПереходаНаНовуюВерсию"; Приоритет.Процедура = "Справочники.Файлы.ОбработатьДанныеДляПереходаНаНовуюВерсию";
Приоритет.Порядок = "Любой"; Приоритет.Порядок = "Любой";
Обработчик = Обработчики.Добавить();
Обработчик.Процедура = "РегистрыСведений.ДвоичныеДанныеФайлов.ОбработатьДанныеДляПереходаНаНовуюВерсию";
Обработчик.Версия = "3.1.3.260";
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.Идентификатор = Новый УникальныйИдентификатор("84e58943-94fe-4f92-99b3-91be534d3754");
Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыСведений.ДвоичныеДанныеФайлов.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию";
Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы";
Обработчик.Комментарий = НСтр("ru = 'Создание недостающих версий файлов для элементов справочника Файлы.'");
Обработчик.ОчередьОтложеннойОбработки = 6;
Читаемые = Новый Массив;
Читаемые.Добавить(Метаданные.Справочники.Файлы.ПолноеИмя());
Читаемые.Добавить(Метаданные.РегистрыСведений.ДвоичныеДанныеФайлов.ПолноеИмя());
Обработчик.ЧитаемыеОбъекты = СтрСоединить(Читаемые, ",");
Изменяемые = Новый Массив;
Изменяемые.Добавить(Метаданные.Справочники.Файлы.ПолноеИмя());
Изменяемые.Добавить(Метаданные.РегистрыСведений.ДвоичныеДанныеФайлов.ПолноеИмя());
Изменяемые.Добавить(Метаданные.Справочники.ВерсииФайлов.ПолноеИмя());
Обработчик.ИзменяемыеОбъекты = СтрСоединить(Изменяемые, ",");
Блокируемые = Новый Массив;
Блокируемые.Добавить(Метаданные.РегистрыСведений.ДвоичныеДанныеФайлов.ПолноеИмя());
Блокируемые.Добавить(Метаданные.Справочники.ВерсииФайлов.ПолноеИмя());
Блокируемые.Добавить(Метаданные.Справочники.Файлы.ПолноеИмя());
Обработчик.БлокируемыеОбъекты = СтрСоединить(Блокируемые, ",");
Обработчик.ПриоритетыВыполнения = ОбновлениеИнформационнойБазы.ПриоритетыВыполненияОбработчика();
НоваяСтрока = Обработчик.ПриоритетыВыполнения.Добавить();
НоваяСтрока.Процедура = "РаботаСФайлами.ПеренестиЭлектронныеПодписиИСертификатыШифрованияВРегистрыСведений";
НоваяСтрока.Порядок = "После";
НоваяСтрока = Обработчик.ПриоритетыВыполнения.Добавить();
НоваяСтрока.Процедура = "РегистрыСведений.НаличиеФайлов.ОбработатьДанныеДляПереходаНаНовуюВерсию";
НоваяСтрока.Порядок = "После";
НоваяСтрока = Обработчик.ПриоритетыВыполнения.Добавить();
НоваяСтрока.Процедура = "Справочники.Файлы.ОбработатьДанныеДляПереходаНаНовуюВерсию";
НоваяСтрока.Порядок = "После";
НоваяСтрока = Обработчик.ПриоритетыВыполнения.Добавить();
НоваяСтрока.Процедура = "РегистрыСведений.СведенияОФайлах.ОбработатьДанныеДляПереходаНаНовуюВерсию";
НоваяСтрока.Порядок = "После";
РаботаСФайламиВТомахСлужебный.ПриДобавленииОбработчиковОбновления(Обработчики); РаботаСФайламиВТомахСлужебный.ПриДобавленииОбработчиковОбновления(Обработчики);
КонецПроцедуры КонецПроцедуры
@@ -46,7 +46,7 @@
ИначеЕсли КаналСообщений = "ОбменДанными\ПрикладноеПриложение\УдалениеОбмена" Тогда ИначеЕсли КаналСообщений = "ОбменДанными\ПрикладноеПриложение\УдалениеОбмена" Тогда
УдалитьОбменДаннымиВИнформационнойБазе(Отправитель, ТелоСообщения.ИмяПланаОбмена, ТелоСообщения.КодУзла); УдалитьОбменДаннымиВИнформационнойБазе(Отправитель, ТелоСообщения.ИмяПланаОбмена, ТелоСообщения.КодУзла, ТелоСообщения.ОбластьДанных);
ИначеЕсли КаналСообщений = "ОбменДанными\ПрикладноеПриложение\УстановитьПрефиксОбластиДанных" Тогда ИначеЕсли КаналСообщений = "ОбменДанными\ПрикладноеПриложение\УстановитьПрефиксОбластиДанных" Тогда
@@ -154,72 +154,10 @@
// Для совместимости, если корреспондент имеет БСП версии ниже БСП 2.1.2 // Для совместимости, если корреспондент имеет БСП версии ниже БСП 2.1.2
// //
Процедура УдалитьОбменДаннымиВИнформационнойБазе(Отправитель, ИмяПланаОбмена, КодУзла) Процедура УдалитьОбменДаннымиВИнформационнойБазе(Отправитель, ИмяПланаОбмена, КодУзла, ОбластьДанных)
// Поиск узла по формату кода узла "S00000123"
УзелИнформационнойБазы = ПланыОбмена[ИмяПланаОбмена].НайтиПоКоду(ОбменДаннымиВМоделиСервиса.КодУзлаПланаОбменаВСервисе(Число(КодУзла)));
Если УзелИнформационнойБазы.Пустая() Тогда
// Поиск узла по формату кода узла "0000123" (старый формат)
УзелИнформационнойБазы = ПланыОбмена[ИмяПланаОбмена].НайтиПоКоду(КодУзла);
КонецЕсли;
КодЭтогоУзла = ОбменДаннымиПовтИсп.ПолучитьКодЭтогоУзлаДляПланаОбмена(ИмяПланаОбмена);
КодЭтогоУзла = ОбменДаннымиСлужебный.НомерОбластиИзКодаУзлаПланаОбмена(КодЭтогоУзла);
Если УзелИнформационнойБазы.Пустая() Тогда
// Отмечаем успешное выполнение операции в управляющем приложении // Отмечаем успешное выполнение операции в управляющем приложении
ОтправитьСообщениеУспешноеВыполнениеОперации(КодЭтогоУзла, Число(КодУзла), Отправитель); ОтправитьСообщениеУспешноеВыполнениеОперации(ОбластьДанных, Число(КодУзла), Отправитель);
Возврат; // настройка обмена не найдена (возможно, была удалена ранее)
КонецЕсли;
// Удаляем каталог обмена информацией
НастройкиТранспорта = РегистрыСведений.НастройкиТранспортаОбменаОбластиДанных.НастройкиТранспорта(УзелИнформационнойБазы);
Если НастройкиТранспорта <> Неопределено
И НастройкиТранспорта.ВидТранспортаСообщенийОбменаПоУмолчанию = Перечисления.ВидыТранспортаСообщенийОбмена.FILE Тогда
Если Не ПустаяСтрока(НастройкиТранспорта.FILEОбщийКаталогОбменаИнформацией)
И Не ПустаяСтрока(НастройкиТранспорта.ОтносительныйКаталогОбменаИнформацией) Тогда
АбсолютныйКаталогОбменаИнформацией = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(
НастройкиТранспорта.FILEОбщийКаталогОбменаИнформацией,
НастройкиТранспорта.ОтносительныйКаталогОбменаИнформацией);
АбсолютныйКаталог = Новый Файл(АбсолютныйКаталогОбменаИнформацией);
Попытка
УдалитьФайлы(АбсолютныйКаталог.ПолноеИмя);
Исключение
ЗаписьЖурналаРегистрации(ОбменДаннымиВМоделиСервиса.СобытиеЖурналаРегистрацииНастройкаСинхронизацииДанных(),
УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
КонецЕсли;
КонецЕсли;
// Удаляем узел
Попытка
УзелИнформационнойБазы.ПолучитьОбъект().Удалить();
Исключение
СтрокаСообщенияОбОшибке = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
// Отмечаем в управляющем приложении ошибку выполнения операции
ОтправитьСообщениеОшибкаПриУдаленииОбмена(КодЭтогоУзла, Число(КодУзла), СтрокаСообщенияОбОшибке, Отправитель);
ЗаписьЖурналаРегистрации(ОбменДаннымиСервер.СобытиеЖурналаРегистрацииОбменДанными(),
УровеньЖурналаРегистрации.Ошибка,,, СтрокаСообщенияОбОшибке);
Возврат;
КонецПопытки;
// Отмечаем успешное выполнение операции в управляющем приложении
ОтправитьСообщениеУспешноеВыполнениеОперации(КодЭтогоУзла, Число(КодУзла), Отправитель);
КонецПроцедуры КонецПроцедуры
@@ -319,31 +257,6 @@
КонецПроцедуры КонецПроцедуры
Процедура ОтправитьСообщениеОшибкаПриУдаленииОбмена(Код1, Код2, СтрокаОшибки, КонечнаяТочка)
Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда
Возврат;
КонецЕсли;
МодульОбменСообщениями = ОбщегоНазначения.ОбщийМодуль("ОбменСообщениями");
НачатьТранзакцию();
Попытка
ТелоСообщения = Новый Структура("Код1, Код2, СтрокаОшибки", Код1, Код2, СтрокаОшибки);
МодульОбменСообщениями.ОтправитьСообщение("ОбменДанными\ПрикладноеПриложение\Ответ\ОшибкаПриУдаленииОбмена", ТелоСообщения, КонечнаяТочка);
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииОтправкаСообщений(),
УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
Процедура ДобавитьОбработчикКаналаСообщений(Канал, ОбработчикКанала, Обработчики) Процедура ДобавитьОбработчикКаналаСообщений(Канал, ОбработчикКанала, Обработчики)
Обработчик = Обработчики.Добавить(); Обработчик = Обработчики.Добавить();
@@ -405,7 +405,7 @@
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
Функция СсылкиНаУдаляемыеОбъектыВРеквизитах(Источник, Реквизиты) Функция СсылкиНаУдаляемыеОбъектыВРеквизитах(Источник, Реквизиты, ЭтоРегистрБухгалтерии = Ложь)
ЗначенияСсылочныхТипов = Новый Массив; ЗначенияСсылочныхТипов = Новый Массив;
Для Каждого Реквизит Из Реквизиты Цикл Для Каждого Реквизит Из Реквизиты Цикл
@@ -418,7 +418,7 @@
ТипЗначения = ТипЗнч(Значение); ТипЗначения = ТипЗнч(Значение);
Если ЗначениеЗаполнено(Значение) И ОбщегоНазначения.ЭтоСсылка(ТипЗначения) Тогда Если ЗначениеЗаполнено(Значение) И ОбщегоНазначения.ЭтоСсылка(ТипЗначения) Тогда
ЗначенияСсылочныхТипов.Добавить(Значение); ЗначенияСсылочныхТипов.Добавить(Значение);
ИначеЕсли СтрНайти(Реквизит.Имя,"Субконто") > 0 Тогда ИначеЕсли СтрНайти(Реквизит.Имя,"Субконто") > 0 И ЭтоРегистрБухгалтерии Тогда
СсылкиНаУдаляемыеОбъектыВСубконто(Значение, ЗначенияСсылочныхТипов); СсылкиНаУдаляемыеОбъектыВСубконто(Значение, ЗначенияСсылочныхТипов);
КонецЕсли; КонецЕсли;
@@ -455,13 +455,13 @@
Возврат ЗначенияСсылочныхТипов; Возврат ЗначенияСсылочныхТипов;
КонецФункции КонецФункции
Функция СсылкиНаУдаляемыеОбъектыВНабореЗаписей(НаборЗаписей, Знач Реквизиты) Функция СсылкиНаУдаляемыеОбъектыВНабореЗаписей(НаборЗаписей, Знач Реквизиты, ЭтоРегистрБухгалтерии = Ложь)
ЗначенияСсылочныхТипов = Новый Массив; ЗначенияСсылочныхТипов = Новый Массив;
Для Каждого Запись Из НаборЗаписей Цикл Для Каждого Запись Из НаборЗаписей Цикл
ОбщегоНазначенияКлиентСервер.ДополнитьМассив( ОбщегоНазначенияКлиентСервер.ДополнитьМассив(
ЗначенияСсылочныхТипов, ЗначенияСсылочныхТипов,
СсылкиНаУдаляемыеОбъектыВРеквизитах(Запись, Реквизиты)); СсылкиНаУдаляемыеОбъектыВРеквизитах(Запись, Реквизиты, ЭтоРегистрБухгалтерии));
КонецЦикла; КонецЦикла;
Возврат ЗначенияСсылочныхТипов; Возврат ЗначенияСсылочныхТипов;
@@ -526,6 +526,7 @@
Функция СсылкиНаУдаляемыеОбъектыВРегистрах(Источник, МетаданныеИсточника) Функция СсылкиНаУдаляемыеОбъектыВРегистрах(Источник, МетаданныеИсточника)
ЗначенияСсылочныхТипов = Новый Массив; ЗначенияСсылочныхТипов = Новый Массив;
ЭтоРегистрБухгалтерии = ОбщегоНазначения.ЭтоРегистрБухгалтерии(МетаданныеИсточника);
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(МетаданныеИсточника, "Измерения") Тогда Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(МетаданныеИсточника, "Измерения") Тогда
Если ОбщегоНазначения.ЭтоРегистрБухгалтерии(МетаданныеИсточника) И МетаданныеИсточника.Корреспонденция Тогда Если ОбщегоНазначения.ЭтоРегистрБухгалтерии(МетаданныеИсточника) И МетаданныеИсточника.Корреспонденция Тогда
@@ -535,7 +536,7 @@
КонецЕсли; КонецЕсли;
ОбщегоНазначенияКлиентСервер.ДополнитьМассив( ОбщегоНазначенияКлиентСервер.ДополнитьМассив(
ЗначенияСсылочныхТипов, ЗначенияСсылочныхТипов,
СсылкиНаУдаляемыеОбъектыВНабореЗаписей(Источник, Реквизиты)); СсылкиНаУдаляемыеОбъектыВНабореЗаписей(Источник, Реквизиты, ЭтоРегистрБухгалтерии));
КонецЕсли; КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(МетаданныеИсточника, "Ресурсы") Тогда Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(МетаданныеИсточника, "Ресурсы") Тогда
@@ -545,24 +546,24 @@
Реквизиты = МетаданныеИсточника.Ресурсы; Реквизиты = МетаданныеИсточника.Ресурсы;
КонецЕсли; КонецЕсли;
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ЗначенияСсылочныхТипов, СсылкиНаУдаляемыеОбъектыВНабореЗаписей( ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ЗначенияСсылочныхТипов, СсылкиНаУдаляемыеОбъектыВНабореЗаписей(
Источник, Реквизиты)); Источник, Реквизиты, ЭтоРегистрБухгалтерии));
КонецЕсли; КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(МетаданныеИсточника,"СтандартныеРеквизиты") Тогда Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(МетаданныеИсточника,"СтандартныеРеквизиты") Тогда
Если ОбщегоНазначения.ЭтоРегистрБухгалтерии(МетаданныеИсточника) Тогда Если ЭтоРегистрБухгалтерии Тогда
Реквизиты = СформироватьСтандартныеРеквизитыРегистраБухгалтерии(МетаданныеИсточника); Реквизиты = СформироватьСтандартныеРеквизитыРегистраБухгалтерии(МетаданныеИсточника);
Иначе Иначе
Реквизиты = МетаданныеИсточника.СтандартныеРеквизиты; Реквизиты = МетаданныеИсточника.СтандартныеРеквизиты;
КонецЕсли; КонецЕсли;
ОбщегоНазначенияКлиентСервер.ДополнитьМассив( ОбщегоНазначенияКлиентСервер.ДополнитьМассив(
ЗначенияСсылочныхТипов, ЗначенияСсылочныхТипов,
СсылкиНаУдаляемыеОбъектыВНабореЗаписей(Источник, Реквизиты)); СсылкиНаУдаляемыеОбъектыВНабореЗаписей(Источник, Реквизиты, ЭтоРегистрБухгалтерии));
КонецЕсли; КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(МетаданныеИсточника, "Реквизиты") Тогда Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(МетаданныеИсточника, "Реквизиты") Тогда
ОбщегоНазначенияКлиентСервер.ДополнитьМассив( ОбщегоНазначенияКлиентСервер.ДополнитьМассив(
ЗначенияСсылочныхТипов, ЗначенияСсылочныхТипов,
СсылкиНаУдаляемыеОбъектыВНабореЗаписей(Источник, МетаданныеИсточника.Реквизиты)); СсылкиНаУдаляемыеОбъектыВНабореЗаписей(Источник, МетаданныеИсточника.Реквизиты, ЭтоРегистрБухгалтерии));
КонецЕсли; КонецЕсли;
Возврат ЗначенияСсылочныхТипов; Возврат ЗначенияСсылочныхТипов;
@@ -605,4 +606,3 @@
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти
@@ -968,7 +968,16 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
СсылкиНаУдаляемыеОбъекты = Новый Массив;
Попытка
СсылкиНаУдаляемыеОбъекты = УдалениеПомеченныхОбъектов.СсылкиНаУдаляемыеОбъекты(Источник); СсылкиНаУдаляемыеОбъекты = УдалениеПомеченныхОбъектов.СсылкиНаУдаляемыеОбъекты(Источник);
Исключение
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Удаление помеченных'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка, , ,
НСтр("ru='Не удалось выполнить контроль удаляемых объектов:'") + ОписаниеОшибки());
КонецПопытки;
Если СсылкиНаУдаляемыеОбъекты.Количество() > 0 Тогда Если СсылкиНаУдаляемыеОбъекты.Количество() > 0 Тогда
ШаблонСообщения = НСтр("ru = 'Выполняется удаление ""%1"". ШаблонСообщения = НСтр("ru = 'Выполняется удаление ""%1"".
|Замените ""%1"" на непомеченные на удаление аналоги.'"); |Замените ""%1"" на непомеченные на удаление аналоги.'");
@@ -1513,7 +1522,6 @@
КонецФункции КонецФункции
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти
@@ -22566,7 +22566,7 @@
// Число нужно увеличивать при внесении изменений в состав параметров кэша // Число нужно увеличивать при внесении изменений в состав параметров кэша
// (в том числе при изменении версии шаблонов). // (в том числе при изменении версии шаблонов).
Возврат "19"; Возврат "20";
КонецФункции КонецФункции
@@ -23815,7 +23815,7 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Если Параметры.ПолеВладельца <> Неопределено Тогда Если Параметры.ИспользуетсяОграничениеПоВладельцу Тогда
ПолеВладельца = Параметры.ПолеВладельца; // См. НовоеПолеВладельца ПолеВладельца = Параметры.ПолеВладельца; // См. НовоеПолеВладельца
Поля = ":" + ПолеВладельца.Имя; Поля = ":" + ПолеВладельца.Имя;
@@ -286,7 +286,7 @@
СоответствиеИменПсевдонимам.Вставить("УправлениеКонтактнойИнформациейСлужебный.ИсправлениеУстаревшихАдресов"); СоответствиеИменПсевдонимам.Вставить("УправлениеКонтактнойИнформациейСлужебный.ИсправлениеУстаревшихАдресов");
КонецПроцедуры КонецПроцедуры
Функция ЕстьЗаблокированныеПредыдущимиОчередямиДанные(Очередь) Экспорт Функция ВидыКонтактнойИнформацииОбновляются(Очередь) Экспорт
Возврат ОбновлениеИнформационнойБазы.ЕстьЗаблокированныеПредыдущимиОчередямиДанные(Очередь, "Справочник.ВидыКонтактнойИнформации"); Возврат ОбновлениеИнформационнойБазы.ЕстьЗаблокированныеПредыдущимиОчередямиДанные(Очередь, "Справочник.ВидыКонтактнойИнформации");
КонецФункции КонецФункции
@@ -1076,6 +1076,7 @@
ДанныеАнализа = ЧастиАдресаТаблицей(Представление); ДанныеАнализа = ЧастиАдресаТаблицей(Представление);
Если ДанныеАнализа.Количество() = 0 Тогда Если ДанныеАнализа.Количество() = 0 Тогда
Адрес.Value = Представление;
Возврат Адрес; Возврат Адрес;
КонецЕсли; КонецЕсли;
@@ -1110,7 +1111,9 @@
Если РазбиватьНаПоля Тогда Если РазбиватьНаПоля Тогда
МодульРаботаСАдресамиКлиентСервер = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресамиКлиентСервер"); МодульРаботаСАдресамиКлиентСервер = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресамиКлиентСервер");
Если МодульРаботаСАдресамиКлиентСервер <> Неопределено Тогда
Адрес.AddressType = МодульРаботаСАдресамиКлиентСервер.МуниципальныйАдрес(); Адрес.AddressType = МодульРаботаСАдресамиКлиентСервер.МуниципальныйАдрес();
КонецЕсли;
Адрес.Value = Представление; Адрес.Value = Представление;
РаспределитьАдресПоПолямБезКлассификатора(Адрес, ДанныеАнализа); РаспределитьАдресПоПолямБезКлассификатора(Адрес, ДанныеАнализа);
@@ -1126,7 +1129,9 @@
ЗаполнитьЗначенияСвойств(Адрес, ВариантыАдреса); ЗаполнитьЗначенияСвойств(Адрес, ВариантыАдреса);
Если ЕстьРаботаСАдресамиКлиентСервер Тогда Если ЕстьРаботаСАдресамиКлиентСервер Тогда
МодульРаботаСАдресамиКлиентСервер = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресамиКлиентСервер"); МодульРаботаСАдресамиКлиентСервер = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресамиКлиентСервер");
Если МодульРаботаСАдресамиКлиентСервер <> Неопределено Тогда
МодульРаботаСАдресамиКлиентСервер.ОбновитьПредставлениеАдреса(Адрес, Ложь); МодульРаботаСАдресамиКлиентСервер.ОбновитьПредставлениеАдреса(Адрес, Ложь);
КонецЕсли;
Иначе Иначе
ОбновитьПредставлениеАдреса(Адрес, Ложь); ОбновитьПредставлениеАдреса(Адрес, Ложь);
КонецЕсли; КонецЕсли;
@@ -1138,7 +1143,6 @@
Иначе Иначе
Если ЕстьРаботаСАдресамиКлиентСервер Тогда Если ЕстьРаботаСАдресамиКлиентСервер Тогда
МодульРаботаСАдресамиКлиентСервер = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресамиКлиентСервер");
ТипАдреса = ?(УправлениеКонтактнойИнформацией.ЭтоСтранаУчастникЕАЭС(Адрес.Country), ТипАдреса = ?(УправлениеКонтактнойИнформацией.ЭтоСтранаУчастникЕАЭС(Адрес.Country),
УправлениеКонтактнойИнформациейКлиентСервер.АдресЕАЭС(), УправлениеКонтактнойИнформациейКлиентСервер.АдресЕАЭС(),
УправлениеКонтактнойИнформациейКлиентСервер.ИностранныйАдрес()); УправлениеКонтактнойИнформациейКлиентСервер.ИностранныйАдрес());
@@ -1460,10 +1464,9 @@
Возврат ""; Возврат "";
КонецЕсли; КонецЕсли;
Вид = Неопределено;
Если УправлениеКонтактнойИнформациейКлиентСервер.ЭтоКонтактнаяИнформацияВJSON(КонтактнаяИнформация) Тогда Если УправлениеКонтактнойИнформациейКлиентСервер.ЭтоКонтактнаяИнформацияВJSON(КонтактнаяИнформация) Тогда
КонтактнаяИнформация = СтрокуJSONВСтруктуру(КонтактнаяИнформация); КонтактнаяИнформация = JSONВКонтактнуюИнформациюПоПолям(КонтактнаяИнформация, Неопределено);
ИначеЕсли ТипЗнч(КонтактнаяИнформация) = Тип("Структура") Тогда ИначеЕсли ТипЗнч(КонтактнаяИнформация) = Тип("Структура") Тогда
@@ -1482,7 +1485,7 @@
КонецЕсли; КонецЕсли;
Если ПустаяСтрока(КонтактнаяИнформация.Value) Тогда Если ПустаяСтрока(КонтактнаяИнформация.Value) Тогда
СформироватьПредставлениеКонтактнойИнформации(КонтактнаяИнформация, Вид); СформироватьПредставлениеКонтактнойИнформации(КонтактнаяИнформация, Неопределено);
КонецЕсли; КонецЕсли;
Возврат КонтактнаяИнформация.Value Возврат КонтактнаяИнформация.Value
@@ -4517,6 +4520,13 @@
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
Если КонтактнаяИнформацияПоПолям.Свойство("area") И Метаданные.ОбщиеМодули.Найти("РаботаСАдресами") <> Неопределено Тогда
МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами");
МодульРаботаСАдресами.УстановкаТипаОбластьКемеровскойОбласти(КонтактнаяИнформацияПоПолям);
КонецЕсли;
ЗаписатьJSON(ЗаписьJSON, КонтактнаяИнформацияПоПолям,, "АдаптацияПолейКонтактнойИнформации", УправлениеКонтактнойИнформациейСлужебный); ЗаписатьJSON(ЗаписьJSON, КонтактнаяИнформацияПоПолям,, "АдаптацияПолейКонтактнойИнформации", УправлениеКонтактнойИнформациейСлужебный);
Возврат ЗаписьJSON.Закрыть(); Возврат ЗаписьJSON.Закрыть();
@@ -4591,6 +4601,13 @@
ЧтениеJSON.Закрыть(); ЧтениеJSON.Закрыть();
Если Результат.Свойство("area") И Метаданные.ОбщиеМодули.Найти("РаботаСАдресами") <> Неопределено Тогда
МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами");
МодульРаботаСАдресами.УстановкаТипаКузбассКемеровскойОбласти(Результат);
КонецЕсли;
Возврат Результат; Возврат Результат;
КонецФункции КонецФункции
@@ -15,7 +15,12 @@
// * Имя - Строка - имя набора свойств. Формируется из полного имени объекта // * Имя - Строка - имя набора свойств. Формируется из полного имени объекта
// метаданных заменой символа "." на "_". // метаданных заменой символа "." на "_".
// Например, "Документ_ЗаказПокупателя". // Например, "Документ_ЗаказПокупателя".
// * Идентификатор - УникальныйИдентификатор - идентификатор ссылки предопределенного элемента. // * Идентификатор - УникальныйИдентификатор - уникальный идентификатор предопределенного набора свойств.
// Не должен повторяться в других наборах свойств.
// Формат идентификатора Random UUID (Version 4).
// Чтобы получить идентификатор, нужно в режиме 1С:Предприятие вычислить значение
// конструктора платформы "Новый УникальныйИдентификатор" или воспользоваться online-генератором,
// например, https://www.uuidgenerator.net/version4.
// * Используется - Неопределено // * Используется - Неопределено
// - Булево - признак того, что набор свойств используется. // - Булево - признак того, что набор свойств используется.
// Например, можно использовать для скрытия набора по функциональным опциям. // Например, можно использовать для скрытия набора по функциональным опциям.
@@ -821,7 +821,7 @@
МассивИдентификаторовПорцииДляЗагрузки.Добавить(ИдЗагружать.Получить(Инд)); МассивИдентификаторовПорцииДляЗагрузки.Добавить(ИдЗагружать.Получить(Инд));
КоличествоВПорции = КоличествоВПорции + 1; КоличествоВПорции = КоличествоВПорции + 1;
Если КоличествоВПорции = 10 Тогда Если КоличествоВПорции = 5 Тогда
Прервать; Прервать;
КонецЕсли; КонецЕсли;
@@ -82,6 +82,7 @@
ДополнительныеПараметры.Вставить("ЭлементСписок", ЭлементСписок); ДополнительныеПараметры.Вставить("ЭлементСписок", ЭлементСписок);
ДополнительныеПараметры.Вставить("НавигационнаяСсылка", Неопределено); ДополнительныеПараметры.Вставить("НавигационнаяСсылка", Неопределено);
ДополнительныеПараметры.Вставить("Форма", Форма); ДополнительныеПараметры.Вставить("Форма", Форма);
ДополнительныеПараметры.Вставить("ВыводитьПрогресс", ВыводитьПрогресс);
Если Форма.Окно <> Неопределено Тогда Если Форма.Окно <> Неопределено Тогда
ДополнительныеПараметры.НавигационнаяСсылка = Форма.Окно.ПолучитьНавигационнуюСсылку(); ДополнительныеПараметры.НавигационнаяСсылка = Форма.Окно.ПолучитьНавигационнуюСсылку();
КонецЕсли; КонецЕсли;
@@ -131,6 +132,8 @@
ДополнительныеПараметры.Форма.ДатаПредыдущегоПолученияОтправкиПочты = ОбщегоНазначенияКлиент.ДатаСеанса(); ДополнительныеПараметры.Форма.ДатаПредыдущегоПолученияОтправкиПочты = ОбщегоНазначенияКлиент.ДатаСеанса();
Если ДополнительныеПараметры.ВыводитьПрогресс Тогда
Заголовок = НСтр("ru = 'Отправка и получение почты'"); Заголовок = НСтр("ru = 'Отправка и получение почты'");
РезультатВыполнения = ПолучитьИзВременногоХранилища(Результат.АдресРезультата); РезультатВыполнения = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
Если РезультатВыполнения.ЕстьОшибки Тогда Если РезультатВыполнения.ЕстьОшибки Тогда
@@ -142,6 +145,8 @@
РезультатОтправкиПолученияПисем(РезультатВыполнения)); РезультатОтправкиПолученияПисем(РезультатВыполнения));
КонецЕсли; КонецЕсли;
КонецЕсли;
Оповестить("ВыполненаОтправкаПолучениеПисем"); Оповестить("ВыполненаОтправкаПолучениеПисем");
КонецЕсли; КонецЕсли;
@@ -590,6 +590,10 @@
// //
Процедура УстановитьНовоеСостояниеОригинала(ДанныеЗаписи, ИмяСостояния, Изменено = Ложь) Экспорт Процедура УстановитьНовоеСостояниеОригинала(ДанныеЗаписи, ИмяСостояния, Изменено = Ложь) Экспорт
Если ПолучитьФункциональнуюОпцию("ИспользоватьУчетОригиналовПервичныхДокументов") = Ложь Тогда
Возврат;
КонецЕсли;
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
Если ТипЗнч(ДанныеЗаписи) = Тип("Массив") Тогда Если ТипЗнч(ДанныеЗаписи) = Тип("Массив") Тогда
@@ -207,8 +207,7 @@
// //
Процедура ОбработчикОповещенияФормаДокумента(ИмяСобытия, Форма) Экспорт Процедура ОбработчикОповещенияФормаДокумента(ИмяСобытия, Форма) Экспорт
Если ИмяСобытия = "ИзменениеСостоянияОригиналаПервичногоДокумента" Если ИмяСобытия = "ИзменениеСостоянияОригиналаПервичногоДокумента" Тогда
Или ИмяСобытия = "ТабличныеДокументыНапечатаны" Тогда
СформироватьНадписьТекущегоСостоянияОригинала(Форма); СформироватьНадписьТекущегоСостоянияОригинала(Форма);
ИначеЕсли ИмяСобытия = "ДобавлениеУдалениеСостоянияОригиналаПервичногоДокумента" Тогда ИначеЕсли ИмяСобытия = "ДобавлениеУдалениеСостоянияОригиналаПервичногоДокумента" Тогда
Форма.ОбновитьОтображениеДанных(); Форма.ОбновитьОтображениеДанных();
@@ -383,6 +382,7 @@
// //
Процедура СформироватьНадписьТекущегоСостоянияОригинала(Форма) Процедура СформироватьНадписьТекущегоСостоянияОригинала(Форма)
Если Не Форма.Элементы.Найти("ДекорацияСостояниеОригинала") = Неопределено Тогда
Если ЗначениеЗаполнено(Форма.Объект.Ссылка) Тогда Если ЗначениеЗаполнено(Форма.Объект.Ссылка) Тогда
ТекущиеСостояниеОригинала = УчетОригиналовПервичныхДокументовВызовСервера.СведенияОСостоянииОригиналаПоСсылке(Форма.Объект.Ссылка); ТекущиеСостояниеОригинала = УчетОригиналовПервичныхДокументовВызовСервера.СведенияОСостоянииОригиналаПоСсылке(Форма.Объект.Ссылка);
Если ПустаяСтрока(ТекущиеСостояниеОригинала) Тогда Если ПустаяСтрока(ТекущиеСостояниеОригинала) Тогда
@@ -397,6 +397,7 @@
КонецЕсли; КонецЕсли;
Форма.Элементы.ДекорацияСостояниеОригинала.Заголовок = ТекущиеСостояниеОригинала; Форма.Элементы.ДекорацияСостояниеОригинала.Заголовок = ТекущиеСостояниеОригинала;
КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -1527,7 +1527,7 @@
КонецЕсли; КонецЕсли;
Реквизиты.Вставить(ОписаниеРеквизита.Имя, Истина); Реквизиты.Вставить(ОписаниеРеквизита.Имя, Истина);
СписокРеквизитов = СписокРеквизитов + ", " + Префикс + ОписаниеРеквизита.Имя + " КАК " + СтрЗаменить(Префикс + ОписаниеРеквизита.Имя, ".", "_"); СписокРеквизитов = СписокРеквизитов + ", " + Префикс + ОписаниеРеквизита.Имя;
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
@@ -1662,9 +1662,6 @@
Процедура УстановитьПараметрыИзЗапроса(Параметры, Результат, Знач Префикс = "") Процедура УстановитьПараметрыИзЗапроса(Параметры, Результат, Знач Префикс = "")
Если ЗначениеЗаполнено(Префикс) Тогда
Префикс = Префикс + "_";
КонецЕсли;
Для каждого ЗначениеПараметра Из Параметры Цикл Для каждого ЗначениеПараметра Из Параметры Цикл
Если ТипЗнч(Параметры[ЗначениеПараметра.Ключ]) = Тип("Соответствие") Тогда Если ТипЗнч(Параметры[ЗначениеПараметра.Ключ]) = Тип("Соответствие") Тогда
УстановитьПараметрыИзЗапроса(Параметры[ЗначениеПараметра.Ключ], Результат, Префикс + ЗначениеПараметра.Ключ); УстановитьПараметрыИзЗапроса(Параметры[ЗначениеПараметра.Ключ], Результат, Префикс + ЗначениеПараметра.Ключ);
@@ -1690,6 +1687,7 @@
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
Функция ПреобразоватьСтрокиКТипу(Значение, Тип) Функция ПреобразоватьСтрокиКТипу(Значение, Тип)
@@ -1812,25 +1810,13 @@
СписокРеквизитов = Сред(СписокПараметров(ПараметрыОснования), 3); СписокРеквизитов = Сред(СписокПараметров(ПараметрыОснования), 3);
Если ЗначениеЗаполнено(СписокРеквизитов) Тогда Если ЗначениеЗаполнено(СписокРеквизитов) Тогда
Запрос = Новый Запрос;
ЗапросТекст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| %1
|ИЗ
| %2 КАК %3
|ГДЕ
| %3.Ссылка = &Ссылка";
ЗапросТекст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ЗапросТекст, СписокРеквизитов, МетаданныеОбъекта.ПолноеИмя(), МетаданныеОбъекта.Имя); ЗначенияРеквизитов = Новый Соответствие;
Для Каждого ЗначениеРеквизита Из ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Предмет, СписокРеквизитов, Истина) Цикл
ЗначенияРеквизитов.Вставить(ЗначениеРеквизита.Ключ,ЗначениеРеквизита.Значение);
КонецЦикла;
УстановитьПараметрыИзЗапроса(Реквизиты, ЗначенияРеквизитов);
Запрос.УстановитьПараметр("Ссылка", Предмет);
Запрос.Текст = ЗапросТекст;
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
Если РезультатЗапроса.Количество() > 0 Тогда
РезультатЗапроса = СтрокаТаблицыЗначенийВСоответствие(РезультатЗапроса[0]);
УстановитьПараметрыИзЗапроса(Реквизиты, РезультатЗапроса);
КонецЕсли;
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -394,6 +394,8 @@
// программы из справочника для которой удалось его создать. // программы из справочника для которой удалось его создать.
// - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования - программа // - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования - программа
// для которой нужно создать и вернуть менеджер криптографии. // для которой нужно создать и вернуть менеджер криптографии.
// - Структура - см. ЭлектроннаяПодпись.НовоеОписаниеПрограммы
//
// * АлгоритмПодписи - Строка - если параметр заполнен, возвращает программу с указанным алгоритмом подписи. // * АлгоритмПодписи - Строка - если параметр заполнен, возвращает программу с указанным алгоритмом подписи.
// //
Функция ПараметрыСозданияМенеджераКриптографии() Экспорт Функция ПараметрыСозданияМенеджераКриптографии() Экспорт
@@ -2298,8 +2300,11 @@
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
ИдентификаторПутиКПрограмме = ?(ЗначениеЗаполнено(ОписаниеПрограммы.Ссылка),
ОписаниеПрограммы.Ссылка, ОписаниеПрограммы.Идентификатор);
СвойстваПрограммы = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииСвойстваПрограммы( СвойстваПрограммы = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииСвойстваПрограммы(
ОписаниеПрограммы, ЭтоLinux, Ошибки, Истина, ПутьКПрограмме(ОписаниеПрограммы.Ссылка)); ОписаниеПрограммы, ЭтоLinux, Ошибки, Истина, ПутьКПрограмме(ИдентификаторПутиКПрограмме));
Если СвойстваПрограммы = Неопределено Тогда Если СвойстваПрограммы = Неопределено Тогда
Продолжить; Продолжить;
@@ -2376,7 +2381,7 @@
КонецФункции КонецФункции
Функция ПутьКПрограмме(ПрограммаСсылка) Экспорт Функция ПутьКПрограмме(ПрограммаСсылка)
Результат = Новый Структура("ПутьКПрограмме, Существует", "", Ложь); Результат = Новый Структура("ПутьКПрограмме, Существует", "", Ложь);
@@ -379,142 +379,40 @@
КонецФункции КонецФункции
Процедура НайтиУстановленныеПрограммы(Контекст) Экспорт Функция НайтиУстановленныеПрограммы(ОписаниеПрограмм, ПроверятьНаСервере) Экспорт
Контекст.Вставить("Индекс", -1); Если ПроверятьНаСервере = Неопределено Тогда
ПроверятьНаСервере = ЭлектроннаяПодпись.ПроверятьЭлектронныеПодписиНаСервере()
НайтиУстановленныеПрограммыНаСервереЦиклНачало(Контекст); Или ЭлектроннаяПодпись.СоздаватьЭлектронныеПодписиНаСервере();
КонецПроцедуры
// См. также Контекст в ЭлектроннаяПодписьСлужебныйКлиент.КонтекстПоискаУстановленныхПрограмм
//
// Параметры:
// Контекст - Структура:
// * Программы - см. ЭлектроннаяПодписьСлужебныйВызовСервера.ЗаполнитьСписокПрограммДляПоиска
// * Индекс - Число
//
Процедура НайтиУстановленныеПрограммыНаСервереЦиклНачало(Контекст)
Если Контекст.Программы.Количество() <= Контекст.Индекс + 1 Тогда
// После цикла.
Возврат;
КонецЕсли;
Контекст.Индекс = Контекст.Индекс + 1;
ОписаниеПрограммы = Контекст.Программы.Получить(Контекст.Индекс);
Контекст.Вставить("ОписаниеПрограммы", ОписаниеПрограммы);
ОписанияПрограмм = Новый Массив;
ОписанияПрограмм.Добавить(Контекст.ОписаниеПрограммы);
ОписаниеОшибок = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовоеОписаниеОшибок();
ПараметрыВыполнения = Новый Структура;
ПараметрыВыполнения.Вставить("ОписанияПрограмм", ОписанияПрограмм);
ПараметрыВыполнения.Вставить("Индекс", -1);
ПараметрыВыполнения.Вставить("ПоказатьОшибку", Ложь);
ПараметрыВыполнения.Вставить("ОписаниеОшибок", ОписаниеОшибок);
ПараметрыВыполнения.Вставить("ЭтоLinux", ЭлектроннаяПодписьСлужебный.ТребуетсяПутьКПрограмме());
ПараметрыВыполнения.Вставить("Менеджер", Неопределено);
Контекст.Вставить("ПараметрыВыполнения", ПараметрыВыполнения);
СоздатьМенеджерКриптографииЦиклНачало(ПараметрыВыполнения, Контекст);
КонецПроцедуры
Процедура СоздатьМенеджерКриптографииЦиклНачало(Контекст, ПараметрыВыполнения)
ОписаниеПрограммы = Контекст.ОписанияПрограмм[0]; // см. ЭлектроннаяПодписьСлужебныйПовтИсп.ОписаниеПрограммы
Контекст.Вставить("ОписаниеПрограммы", ОписаниеПрограммы);
СвойстваПрограммы = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииСвойстваПрограммы(
Контекст.ОписаниеПрограммы,
Контекст.ЭтоLinux,
Контекст.ОписаниеОшибок.Ошибки,
Ложь,
ЭлектроннаяПодписьСлужебный.ПутьКПрограмме(Контекст.ОписаниеПрограммы.Ссылка));
Если СвойстваПрограммы = Неопределено Тогда
НайтиУстановленныеПрограммыНаСервереЦиклНачало(ПараметрыВыполнения);
Возврат;
КонецЕсли; КонецЕсли;
Попытка Программы = ЗаполнитьСписокПрограммДляПоиска(ОписаниеПрограмм);
ИнформацияМодуля = СредстваКриптографии.ПолучитьИнформациюМодуляКриптографии(
СвойстваПрограммы.ИмяПрограммы,
СвойстваПрограммы.ПутьКПрограмме,
СвойстваПрограммы.ТипПрограммы);
Исключение
ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииДобавитьОшибку(Контекст.ОписаниеОшибок.Ошибки,
Неопределено, КраткоеПредставлениеОшибки(ИнформацияОбОшибке()),
Истина, Истина, Истина);
СвойстваОшибки = Контекст.ОписаниеОшибок.Ошибки[0]; // см. ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеСвойстваОшибки
ТекстОшибки = НСтр("ru = 'Не установлена на сервере.'") + " " + СвойстваОшибки.Описание;
ОбновитьЗначение(Контекст.ОписаниеПрограммы.РезультатПроверкиНаСервере, ТекстОшибки);
НайтиУстановленныеПрограммыНаСервереЦиклНачало(ПараметрыВыполнения);
Возврат;
КонецПопытки;
Если ИнформацияМодуля = Неопределено Тогда Если Не ПроверятьНаСервере Тогда
ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииПрограммаНеНайдена( Возврат Программы;
Контекст.ОписаниеПрограммы, Контекст.Ошибки, Истина);
Менеджер = Неопределено;
НайтиУстановленныеПрограммыНаСервереЦиклНачало(ПараметрыВыполнения);
Возврат;
КонецЕсли; КонецЕсли;
Если Не Контекст.ЭтоLinux Тогда Для Каждого Программа Из Программы Цикл
ИмяПрограммыПолученное = ИнформацияМодуля.Имя; ПараметрыСоздания = ЭлектроннаяПодписьСлужебный.ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.Программа = Программа;
ИмяПрограммыСовпадает = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииИмяПрограммыСовпадает( ПараметрыСоздания.ОписаниеОшибки = Новый Структура;
Контекст.ОписаниеПрограммы, ИмяПрограммыПолученное, Контекст.ОписаниеОшибок.Ошибки, Истина); Менеджер = ЭлектроннаяПодписьСлужебный.МенеджерКриптографии("", ПараметрыСоздания);
Если Менеджер = Неопределено Тогда
Если Не ИмяПрограммыСовпадает Тогда Программа.РезультатПроверкиНаСервере =
Менеджер = Неопределено; ЭлектроннаяПодписьСлужебныйКлиентСервер.ТекстОшибкиПоискаПрограммы(
НайтиУстановленныеПрограммыНаСервереЦиклНачало(ПараметрыВыполнения); НСтр("ru = 'Не установлена на сервере %1.'"), ПараметрыСоздания.ОписаниеОшибки);
Возврат; Иначе
КонецЕсли; Программа.РезультатПроверкиНаСервере = "";
Программа.Установлена = Истина;
КонецЕсли; КонецЕсли;
КонецЦикла;
Попытка Возврат Программы;
Менеджер = Новый МенеджерКриптографии(
СвойстваПрограммы.ИмяПрограммы,
СвойстваПрограммы.ПутьКПрограмме,
СвойстваПрограммы.ТипПрограммы);
Исключение
ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииДобавитьОшибку(Контекст.ОписаниеОшибок.Ошибки,
Неопределено, КраткоеПредставлениеОшибки(ИнформацияОбОшибке()),
Истина, Истина, Истина);
НайтиУстановленныеПрограммыНаСервереЦиклНачало(ПараметрыВыполнения);
Возврат;
КонецПопытки;
АлгоритмыУстановлены = ЭлектроннаяПодписьСлужебныйКлиентСервер.МенеджерКриптографииАлгоритмыУстановлены( КонецФункции
Контекст.ОписаниеПрограммы, Менеджер, Контекст.ОписаниеОшибок.Ошибки);
Если Не АлгоритмыУстановлены Тогда
НайтиУстановленныеПрограммыНаСервереЦиклНачало(ПараметрыВыполнения);
Возврат;
КонецЕсли;
ОбновитьЗначение(Контекст.ОписаниеПрограммы.РезультатПроверкиНаСервере, "");
ОбновитьЗначение(Контекст.ОписаниеПрограммы.Установлена, Истина);
НайтиУстановленныеПрограммыНаСервереЦиклНачало(ПараметрыВыполнения);
КонецПроцедуры
Процедура ОбновитьЗначение(СтароеЗначение, НовоеЗначение)
Если СтароеЗначение <> НовоеЗначение Тогда
СтароеЗначение = НовоеЗначение;
КонецЕсли;
КонецПроцедуры
// Для процедуры НайтиУстановленныеПрограммы. // Для процедуры НайтиУстановленныеПрограммы.
Функция ЗаполнитьСписокПрограммДляПоиска(ОписаниеПрограмм) Экспорт Функция ЗаполнитьСписокПрограммДляПоиска(ОписаниеПрограмм)
ПоставляемыеНастройки = Справочники.ПрограммыЭлектроннойПодписиИШифрования.ПоставляемыеНастройкиПрограмм(); ПоставляемыеНастройки = Справочники.ПрограммыЭлектроннойПодписиИШифрования.ПоставляемыеНастройкиПрограмм();
@@ -523,6 +421,7 @@
МассивИсключений = Новый Массив; МассивИсключений = Новый Массив;
МассивИсключений.Добавить("Установлена"); МассивИсключений.Добавить("Установлена");
МассивИсключений.Добавить("Ссылка"); МассивИсключений.Добавить("Ссылка");
МассивИсключений.Добавить("Идентификатор");
МассивИсключений.Добавить("РезультатПроверкиНаКлиенте"); МассивИсключений.Добавить("РезультатПроверкиНаКлиенте");
МассивИсключений.Добавить("РезультатПроверкиНаСервере"); МассивИсключений.Добавить("РезультатПроверкиНаСервере");
@@ -542,7 +441,7 @@
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
Если КлючИЗначение.Значение <> Неопределено Тогда Если КлючИЗначение.Значение <> Неопределено Тогда
ОбновитьЗначение(Строки[0][КлючИЗначение.Ключ], КлючИЗначение.Значение); Строки[0][КлючИЗначение.Ключ] = КлючИЗначение.Значение;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
КонецЕсли; КонецЕсли;
@@ -573,6 +472,7 @@
ОписаниеПрограммы = ЭлектроннаяПодпись.НовоеОписаниеПрограммы(); ОписаниеПрограммы = ЭлектроннаяПодпись.НовоеОписаниеПрограммы();
ОписаниеПрограммы.Вставить("Ссылка", Неопределено); ОписаниеПрограммы.Вставить("Ссылка", Неопределено);
ОписаниеПрограммы.Вставить("Идентификатор", Неопределено);
ОписаниеПрограммы.Вставить("Установлена", Ложь); ОписаниеПрограммы.Вставить("Установлена", Ложь);
ОписаниеПрограммы.Вставить("РезультатПроверкиНаКлиенте", ""); ОписаниеПрограммы.Вставить("РезультатПроверкиНаКлиенте", "");
ОписаниеПрограммы.Вставить("РезультатПроверкиНаСервере", Неопределено); ОписаниеПрограммы.Вставить("РезультатПроверкиНаСервере", Неопределено);
@@ -191,15 +191,20 @@
КонецЕсли; КонецЕсли;
ОбщиеНастройки = ЭлектроннаяПодписьКлиент.ОбщиеНастройки(); ОбщиеНастройки = ЭлектроннаяПодписьКлиент.ОбщиеНастройки();
Если ТипЗнч(ПрограммаСсылка) = Тип("Строка") Тогда
ИдентификаторПрограммы = ПрограммаСсылка;
Иначе
ОписаниеПрограммы = ОбщиеНастройки.ОписанияПрограммПоСсылке.Получить(ПрограммаСсылка); // см. ЭлектроннаяПодписьСлужебныйПовтИсп.ОписаниеПрограммы ОписаниеПрограммы = ОбщиеНастройки.ОписанияПрограммПоСсылке.Получить(ПрограммаСсылка); // см. ЭлектроннаяПодписьСлужебныйПовтИсп.ОписаниеПрограммы
Если ОписаниеПрограммы = Неопределено Тогда Если ОписаниеПрограммы = Неопределено Тогда
ВыполнитьОбработкуОповещения(ОбработкаЗавершения, Результат); ВыполнитьОбработкуОповещения(ОбработкаЗавершения, Результат);
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ИдентификаторПрограммы = ОписаниеПрограммы.Идентификатор;
КонецЕсли;
ПутиНайдены = Ложь; ПутиНайдены = Ложь;
Для Каждого ПутиКМодулямПрограмм Из ОбщиеНастройки.ПоставляемыеПутиКМодулямПрограмм Цикл Для Каждого ПутиКМодулямПрограмм Из ОбщиеНастройки.ПоставляемыеПутиКМодулямПрограмм Цикл
Если СтрНачинаетсяС(ОписаниеПрограммы.Идентификатор, ПутиКМодулямПрограмм.Ключ) Тогда Если СтрНачинаетсяС(ИдентификаторПрограммы, ПутиКМодулямПрограмм.Ключ) Тогда
ПутиНайдены = Истина; ПутиНайдены = Истина;
Прервать; Прервать;
КонецЕсли; КонецЕсли;
@@ -332,33 +337,21 @@
// Продолжение процедуры НайтиУстановленныеПрограммы. // Продолжение процедуры НайтиУстановленныеПрограммы.
Процедура НайтиУстановленныеПрограммы(Оповещение, ОписаниеПрограмм, ПроверятьНаСервере) Экспорт Процедура НайтиУстановленныеПрограммы(Оповещение, ОписаниеПрограмм, ПроверятьНаСервере) Экспорт
ПараметрыОповещения = Новый Структура; Программы = ЭлектроннаяПодписьСлужебныйВызовСервера.НайтиУстановленныеПрограммы(
ПараметрыОповещения.Вставить("Программы", ЭлектроннаяПодписьСлужебныйВызовСервера.ЗаполнитьСписокПрограммДляПоиска(ОписаниеПрограмм)); ОписаниеПрограмм, ПроверятьНаСервере);
ПараметрыОповещения.Вставить("ОповещениеОЗавершении", Оповещение);
Если ПроверятьНаСервере = Неопределено Тогда
ПроверятьНаСервере = ЭлектроннаяПодписьКлиент.ПроверятьЭлектронныеПодписиНаСервере()
Или ЭлектроннаяПодписьКлиент.СоздаватьЭлектронныеПодписиНаСервере();
КонецЕсли;
ПараметрыОповещения.Вставить("ПроверятьНаСервере", ПроверятьНаСервере);
Оповещение = Новый ОписаниеОповещения("НайтиУстановленныеПрограммыПослеПодключенияРасширения", ЭтотОбъект, ПараметрыОповещения); Контекст = КонтекстПоискаУстановленныхПрограмм();
Контекст.Индекс = -1;
Контекст.Программы = Программы;
Контекст.ОповещениеОЗавершении = Оповещение;
Оповещение = Новый ОписаниеОповещения("НайтиУстановленныеПрограммыПослеПодключенияРасширения", ЭтотОбъект, Контекст);
ЭлектроннаяПодписьКлиент.УстановитьРасширение(Истина, Оповещение); ЭлектроннаяПодписьКлиент.УстановитьРасширение(Истина, Оповещение);
КонецПроцедуры КонецПроцедуры
// Продолжение процедуры НайтиУстановленныеПрограммы. // Продолжение процедуры НайтиУстановленныеПрограммы.
Процедура НайтиУстановленныеПрограммыПослеПодключенияРасширения(Подключено, ДополнительныеПараметры) Экспорт Процедура НайтиУстановленныеПрограммыПослеПодключенияРасширения(Подключено, Контекст) Экспорт
Если Не Подключено Тогда
Возврат;
КонецЕсли;
Контекст = КонтекстПоискаУстановленныхПрограмм();
Контекст.Индекс = -1;
Контекст.Программы = ДополнительныеПараметры.Программы;
Контекст.ПроверятьНаСервере = ДополнительныеПараметры.ПроверятьНаСервере;
Контекст.ОповещениеОЗавершении = ДополнительныеПараметры.ОповещениеОЗавершении;
НайтиУстановленныеПрограммыЦиклНачало(Контекст); НайтиУстановленныеПрограммыЦиклНачало(Контекст);
@@ -368,78 +361,48 @@
Процедура НайтиУстановленныеПрограммыЦиклНачало(Контекст) Процедура НайтиУстановленныеПрограммыЦиклНачало(Контекст)
Если Контекст.Программы.Количество() <= Контекст.Индекс + 1 Тогда Если Контекст.Программы.Количество() <= Контекст.Индекс + 1 Тогда
// После цикла. НайтиУстановленныеПрограммыПослеЦикла(Контекст);
ОповещениеОЗавершении = Контекст.ОповещениеОЗавершении;
Если Контекст.ПроверятьНаСервере Тогда
Контекст.Вставить("ОповещениеОЗавершении", Неопределено);
ЭлектроннаяПодписьСлужебныйВызовСервера.НайтиУстановленныеПрограммы(Контекст);
КонецЕсли;
ВыполнитьОбработкуОповещения(ОповещениеОЗавершении, Контекст.Программы);
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Контекст = Контекст; // см. КонтекстПоискаУстановленныхПрограмм
Контекст.Индекс = Контекст.Индекс + 1; Контекст.Индекс = Контекст.Индекс + 1;
ОписаниеПрограммы = Контекст.Программы.Получить(Контекст.Индекс);
Контекст.Вставить("ОписаниеПрограммы", ОписаниеПрограммы); ПараметрыСоздания = ПараметрыСозданияМенеджераКриптографии();
ПараметрыСоздания.Программа = Контекст.Программы.Получить(Контекст.Индекс);
ПараметрыСоздания.ПоказатьОшибку = Неопределено;
ОписанияПрограмм = Новый Массив; Оповещение = Новый ОписаниеОповещения("НайтиУстановленныеПрограммыЦиклПродолжение", ЭтотОбъект, Контекст);
ОписанияПрограмм.Добавить(Контекст.ОписаниеПрограммы); СоздатьМенеджерКриптографии(Оповещение, "", ПараметрыСоздания);
ОписаниеОшибок = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовоеОписаниеОшибок();
ПараметрыВыполнения = Новый Структура;
ПараметрыВыполнения.Вставить("ОписанияПрограмм", ОписанияПрограмм);
ПараметрыВыполнения.Вставить("Индекс", -1);
ПараметрыВыполнения.Вставить("ПоказатьОшибку", Ложь);
ПараметрыВыполнения.Вставить("ОписаниеОшибок", ОписаниеОшибок);
ПараметрыВыполнения.Вставить("АлгоритмПодписи", "");
ПараметрыВыполнения.Вставить("ЭтоLinux", ТребуетсяПутьКПрограмме());
ПараметрыВыполнения.Вставить("Менеджер", Неопределено);
ПараметрыВыполнения.Вставить("ИнтерактивныйРежим", Ложь);
ПараметрыВыполнения.Вставить("Оповещение", Новый ОписаниеОповещения(
"НайтиУстановленныеПрограммыЦиклПродолжение", ЭтотОбъект, Контекст));
Контекст.Вставить("ПараметрыВыполнения", Новый Структура("ОписаниеОшибок", ОписаниеОшибок));
СоздатьМенеджерКриптографииЦиклНачало(ПараметрыВыполнения);
КонецПроцедуры КонецПроцедуры
// Продолжение процедуры НайтиУстановленныеПрограммы. // Продолжение процедуры НайтиУстановленныеПрограммы.
Процедура НайтиУстановленныеПрограммыЦиклПродолжение(Менеджер, Контекст) Экспорт Процедура НайтиУстановленныеПрограммыЦиклПродолжение(Результат, Контекст) Экспорт
ОписаниеПрограммы = Контекст.ОписаниеПрограммы; Контекст = Контекст; // см. КонтекстПоискаУстановленныхПрограмм
Ошибки = Контекст.ПараметрыВыполнения.ОписаниеОшибок.Ошибки; // Массив Из см. ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеСвойстваОшибки ОписаниеПрограммы = Контекст.Программы.Получить(Контекст.Индекс);
Если Менеджер <> Неопределено Тогда Если ТипЗнч(Результат) = Тип("МенеджерКриптографии") Тогда
ОбновитьЗначение(ОписаниеПрограммы.РезультатПроверкиНаКлиенте, ""); ОписаниеПрограммы.РезультатПроверкиНаКлиенте = "";
ОбновитьЗначение(ОписаниеПрограммы.Установлена, Истина); ОписаниеПрограммы.Установлена = Истина;
НайтиУстановленныеПрограммыЦиклНачало(Контекст);
Возврат;
КонецЕсли;
Для Каждого Ошибка Из Ошибки Цикл
Прервать;
КонецЦикла;
Если Ошибка.НеУказанПуть Тогда
ОбновитьЗначение(ОписаниеПрограммы.РезультатПроверкиНаКлиенте, НСтр("ru = 'Не указан путь к программе.'"));
Иначе Иначе
ТекстОшибки = НСтр("ru = 'Не установлена на компьютере.'") + " " + Ошибка.Описание; ОписаниеПрограммы.РезультатПроверкиНаКлиенте =
ОбновитьЗначение(ОписаниеПрограммы.РезультатПроверкиНаКлиенте, ТекстОшибки); ЭлектроннаяПодписьСлужебныйКлиентСервер.ТекстОшибкиПоискаПрограммы(
НСтр("ru = 'Не установлена на компьютере.'"), Результат);
КонецЕсли; КонецЕсли;
ОбновитьЗначение(ОписаниеПрограммы.Установлена, Ложь);
НайтиУстановленныеПрограммыЦиклНачало(Контекст); НайтиУстановленныеПрограммыЦиклНачало(Контекст);
КонецПроцедуры КонецПроцедуры
// Для процедуры НайтиУстановленныеПрограммы. // Продолжение процедуры НайтиУстановленныеПрограммы.
Процедура ОбновитьЗначение(СтароеЗначение, НовоеЗначение) Процедура НайтиУстановленныеПрограммыПослеЦикла(Контекст)
Если СтароеЗначение <> НовоеЗначение Тогда Для Каждого Программа Из Контекст.Программы Цикл
СтароеЗначение = НовоеЗначение; Программа.Удалить("Идентификатор");
КонецЕсли; КонецЦикла;
ВыполнитьОбработкуОповещения(Контекст.ОповещениеОЗавершении, Контекст.Программы);
КонецПроцедуры КонецПроцедуры
@@ -1541,9 +1504,12 @@
// программы из справочника для которой удалось его создать. // программы из справочника для которой удалось его создать.
// - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования - программа // - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования - программа
// для которой нужно создать и вернуть менеджер криптографии. // для которой нужно создать и вернуть менеджер криптографии.
// - Структура - см. ЭлектроннаяПодпись.НовоеОписаниеПрограммы
//
// * ИнтерактивныйРежим - Булево - если Истина, тогда менеджер криптографии будет создан // * ИнтерактивныйРежим - Булево - если Истина, тогда менеджер криптографии будет создан
// в режиме использования интерактивного режима криптографии // в режиме использования интерактивного режима криптографии
// (установка свойства ПарольДоступаКЗакрытомуКлючу будет запрещена). // (установка свойства ПарольДоступаКЗакрытомуКлючу будет запрещена).
//
// * АлгоритмПодписи - Строка - если параметр заполнен, возвращает программу с указанным алгоритмом подписи. // * АлгоритмПодписи - Строка - если параметр заполнен, возвращает программу с указанным алгоритмом подписи.
// //
Функция ПараметрыСозданияМенеджераКриптографии() Экспорт Функция ПараметрыСозданияМенеджераКриптографии() Экспорт
@@ -1605,6 +1571,7 @@
// * ОписаниеПрограмм - Массив из см. ЭлектроннаяПодписьСлужебныйПовтИсп.ОписаниеПрограммы // * ОписаниеПрограмм - Массив из см. ЭлектроннаяПодписьСлужебныйПовтИсп.ОписаниеПрограммы
// * СвойстваОшибки - Массив из Структура: // * СвойстваОшибки - Массив из Структура:
// ** Описание - Строка // ** Описание - Строка
// * Индекс - Число
// //
Функция КонтекстСоздатьМенеджерКриптографии() Функция КонтекстСоздатьМенеджерКриптографии()
@@ -1726,6 +1693,17 @@
СоздатьМенеджерКриптографииПослеЦикла(Контекст); СоздатьМенеджерКриптографииПослеЦикла(Контекст);
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Поток = Новый ПотокВПамяти;
Поток.НачатьПолучениеРазмера(Новый ОписаниеОповещения(
"СоздатьМенеджерКриптографииЦиклНачалоПродолжение", ЭтотОбъект, Контекст));
КонецПроцедуры
// Продолжение процедуры СоздатьМенеджерКриптографии.
Процедура СоздатьМенеджерКриптографииЦиклНачалоПродолжение(Результат, Контекст) Экспорт
Контекст = Контекст; // см. КонтекстСоздатьМенеджерКриптографии
Контекст.Индекс = Контекст.Индекс + 1; Контекст.Индекс = Контекст.Индекс + 1;
ОписаниеПрограммы = Контекст.ОписанияПрограмм[Контекст.Индекс]; // см. ЭлектроннаяПодписьСлужебныйПовтИсп.ОписаниеПрограммы ОписаниеПрограммы = Контекст.ОписанияПрограмм[Контекст.Индекс]; // см. ЭлектроннаяПодписьСлужебныйПовтИсп.ОписаниеПрограммы
Контекст.Вставить("ОписаниеПрограммы", ОписаниеПрограммы); Контекст.Вставить("ОписаниеПрограммы", ОписаниеПрограммы);
@@ -1747,8 +1725,11 @@
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
ИдентификаторПутиКПрограмме = ?(ЗначениеЗаполнено(ОписаниеПрограммы.Ссылка),
ОписаниеПрограммы.Ссылка, ОписаниеПрограммы.Идентификатор);
ПолучитьПутьКПрограмме(Новый ОписаниеОповещения("СоздатьМенеджерКриптографииЦиклПослеПолученияПутиКПрограмме", ПолучитьПутьКПрограмме(Новый ОписаниеОповещения("СоздатьМенеджерКриптографииЦиклПослеПолученияПутиКПрограмме",
ЭтотОбъект, Контекст), ОписаниеПрограммы.Ссылка); ЭтотОбъект, Контекст), ИдентификаторПутиКПрограмме);
КонецПроцедуры КонецПроцедуры
@@ -5986,19 +5967,18 @@
// Возвращаемое значение: // Возвращаемое значение:
// Структура: // Структура:
// * ОповещениеОЗавершении - ОписаниеОповещения // * ОповещениеОЗавершении - ОписаниеОповещения
// * ПроверятьНаСервере - Булево
// * Программы - см. ЭлектроннаяПодписьСлужебныйВызовСервера.ЗаполнитьСписокПрограммДляПоиска // * Программы - см. ЭлектроннаяПодписьСлужебныйВызовСервера.ЗаполнитьСписокПрограммДляПоиска
// * Индекс - Число // * Индекс - Число
// //
Функция КонтекстПоискаУстановленныхПрограмм() Функция КонтекстПоискаУстановленныхПрограмм()
Контекст = Новый Структура;
Контекст = Новый Структура;
Контекст.Вставить("Индекс"); Контекст.Вставить("Индекс");
Контекст.Вставить("Программы"); Контекст.Вставить("Программы");
Контекст.Вставить("ПроверятьНаСервере");
Контекст.Вставить("ОповещениеОЗавершении"); Контекст.Вставить("ОповещениеОЗавершении");
Возврат Контекст; Возврат Контекст;
КонецФункции КонецФункции
#КонецОбласти #КонецОбласти
@@ -129,7 +129,13 @@
// //
Функция МенеджерКриптографииОписанияПрограмм(Программа, Ошибки, Знач ОписанияПрограмм) Экспорт Функция МенеджерКриптографииОписанияПрограмм(Программа, Ошибки, Знач ОписанияПрограмм) Экспорт
Если Программа <> Неопределено Тогда Если ТипЗнч(Программа) = Тип("Структура") Тогда
ОписанияПрограмм = Новый Массив;
ОписанияПрограмм.Добавить(Программа);
Возврат ОписанияПрограмм;
ИначеЕсли Программа <> Неопределено Тогда
ПрограммаНайдена = Ложь; ПрограммаНайдена = Ложь;
Для Каждого ОписаниеПрограммы Из ОписанияПрограмм Цикл Для Каждого ОписаниеПрограммы Из ОписанияПрограмм Цикл
@@ -513,6 +519,21 @@
КонецПроцедуры КонецПроцедуры
// Параметры:
// ЗаголовокОшибки - Строка
// ОписаниеОшибок - см. НовоеОписаниеОшибок
//
Функция ТекстОшибкиПоискаПрограммы(Знач ЗаголовокОшибки, ОписаниеОшибок) Экспорт
Для Каждого Ошибка Из ОписаниеОшибок.Ошибки Цикл
Прервать;
КонецЦикла;
ЗаголовокОшибки = СтрЗаменить(ЗаголовокОшибки, "%1", ОписаниеОшибок.ИмяКомпьютера);
Возврат ЗаголовокОшибки + " " + Ошибка.Описание;
КонецФункции
// Только для внутреннего использования. // Только для внутреннего использования.
// //
// Параметры: // Параметры:
@@ -59,7 +59,7 @@
Запрос.Текст = Запрос.Текст =
"ВЫБРАТЬ "ВЫБРАТЬ
| Программы.Ссылка КАК Ссылка, | Программы.Ссылка КАК Ссылка,
| Программы.Наименование КАК Наименование, | Программы.Наименование КАК Представление,
| Программы.ИмяПрограммы КАК ИмяПрограммы, | Программы.ИмяПрограммы КАК ИмяПрограммы,
| Программы.ТипПрограммы КАК ТипПрограммы, | Программы.ТипПрограммы КАК ТипПрограммы,
| Программы.АлгоритмПодписи КАК АлгоритмПодписи, | Программы.АлгоритмПодписи КАК АлгоритмПодписи,
@@ -122,7 +122,7 @@
// Возвращаемое значение: // Возвращаемое значение:
// Структура: // Структура:
// * Ссылка - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования // * Ссылка - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования
// * Наименование - Строка // * Представление - Строка
// * ИмяПрограммы - Строка // * ИмяПрограммы - Строка
// * ТипПрограммы - Число // * ТипПрограммы - Число
// * АлгоритмПодписи - Строка // * АлгоритмПодписи - Строка
@@ -134,7 +134,7 @@
Описание = Новый Структура; Описание = Новый Структура;
Описание.Вставить("Ссылка"); Описание.Вставить("Ссылка");
Описание.Вставить("Наименование"); Описание.Вставить("Представление");
Описание.Вставить("ИмяПрограммы"); Описание.Вставить("ИмяПрограммы");
Описание.Вставить("ТипПрограммы"); Описание.Вставить("ТипПрограммы");
Описание.Вставить("АлгоритмПодписи"); Описание.Вставить("АлгоритмПодписи");
@@ -208,10 +208,43 @@
Для Каждого ОписаниеПрограммы Из ОбщиеНастройки.ОписанияПрограмм Цикл Для Каждого ОписаниеПрограммы Из ОбщиеНастройки.ОписанияПрограмм Цикл
Если ПутиКПрограммамНаСерверахLinux.Получить(ОписаниеПрограммы.Ссылка) <> Неопределено Тогда Если ПутиКПрограммамНаСерверахLinux.Получить(ОписаниеПрограммы.Ссылка) <> Неопределено Тогда
Если ЗначениеЗаполнено(ОписаниеПрограммы.Идентификатор) Тогда
ПутиКПрограммамНаСерверахLinux.Вставить(ОписаниеПрограммы.Идентификатор,
ПутиКПрограммамНаСерверахLinux.Получить(ОписаниеПрограммы.Ссылка));
КонецЕсли;
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
Для Каждого ПутиКМодулямПрограмм Из ОбщиеНастройки.ПоставляемыеПутиКМодулямПрограмм Цикл ОписаниеПути = ОписаниеПутиПоИдентификаторуПрограммы(ОписаниеПрограммы.Идентификатор,
Если Не СтрНачинаетсяС(ОписаниеПрограммы.Идентификатор, ПутиКМодулямПрограмм.Ключ) Тогда ОбщиеНастройки.ПоставляемыеПутиКМодулямПрограмм, ТипПлатформыСтрокой);
Если ОписаниеПути <> Неопределено Тогда
ПутиКПрограммамНаСерверахLinux.Вставить(ОписаниеПрограммы.Ссылка, ОписаниеПути);
ПутиКПрограммамНаСерверахLinux.Вставить(ОписаниеПрограммы.Идентификатор, ОписаниеПути);
КонецЕсли;
КонецЦикла;
ПоставляемыеНастройки = Справочники.ПрограммыЭлектроннойПодписиИШифрования.ПоставляемыеНастройкиПрограмм();
Для Каждого ПоставляемаяНастройка Из ПоставляемыеНастройки Цикл
Если ПутиКПрограммамНаСерверахLinux.Получить(ПоставляемаяНастройка.Идентификатор) <> Неопределено Тогда
Продолжить;
КонецЕсли;
ОписаниеПути = ОписаниеПутиПоИдентификаторуПрограммы(ПоставляемаяНастройка.Идентификатор,
ОбщиеНастройки.ПоставляемыеПутиКМодулямПрограмм, ТипПлатформыСтрокой);
Если ОписаниеПути <> Неопределено Тогда
ПутиКПрограммамНаСерверахLinux.Вставить(ПоставляемаяНастройка.Идентификатор, ОписаниеПути);
КонецЕсли;
КонецЦикла;
Возврат Новый ФиксированноеСоответствие(ПутиКПрограммамНаСерверахLinux);
КонецФункции
Функция ОписаниеПутиПоИдентификаторуПрограммы(Идентификатор,
ПоставляемыеПутиКМодулямПрограмм, ТипПлатформыСтрокой)
ОписаниеПути = Неопределено;
Для Каждого ПутиКМодулямПрограмм Из ПоставляемыеПутиКМодулямПрограмм Цикл
Если Не СтрНачинаетсяС(Идентификатор, ПутиКМодулямПрограмм.Ключ) Тогда
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
ПутиКМодулямПрограммы = ПутиКМодулямПрограмм.Значение.Получить(ТипПлатформыСтрокой); ПутиКМодулямПрограммы = ПутиКМодулямПрограмм.Значение.Получить(ТипПлатформыСтрокой);
@@ -219,7 +252,6 @@
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
ОписаниеПути = Новый Структура("ПутьКПрограмме, Существует", ПутиКМодулямПрограммы[0], Ложь); ОписаниеПути = Новый Структура("ПутьКПрограмме, Существует", ПутиКМодулямПрограммы[0], Ложь);
ПутиКПрограммамНаСерверахLinux.Вставить(ОписаниеПрограммы.Ссылка, ОписаниеПути);
Для Каждого ПутиКМодулям Из ПутиКМодулямПрограммы Цикл Для Каждого ПутиКМодулям Из ПутиКМодулямПрограммы Цикл
Если Не ОдинИзМодулейСуществует(ПутиКМодулям) Тогда Если Не ОдинИзМодулейСуществует(ПутиКМодулям) Тогда
Продолжить; Продолжить;
@@ -228,10 +260,10 @@
ОписаниеПути.Существует = Истина; ОписаниеПути.Существует = Истина;
Прервать; Прервать;
КонецЦикла; КонецЦикла;
КонецЦикла; Прервать;
КонецЦикла; КонецЦикла;
Возврат Новый ФиксированноеСоответствие(ПутиКПрограммамНаСерверахLinux); Возврат ОписаниеПути;
КонецФункции КонецФункции
+9 -9
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="1e2f928c-e6b6-11ea-9290-0242ac110002"> <mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="adb66684-eec6-11ea-d79f-0242ac110002">
<name>БиблиотекаСтандартныхПодсистем</name> <name>БиблиотекаСтандартныхПодсистем</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value> <value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym> </synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="1e2f928d-e6b6-11ea-9290-0242ac110002"/> <containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="adb66685-eec6-11ea-d79f-0242ac110002"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="1e2f92be-e6b6-11ea-9290-0242ac110002"/> <containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="adb666b6-eec6-11ea-d79f-0242ac110002"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="1e2f92bf-e6b6-11ea-9290-0242ac110002"/> <containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="adb666b7-eec6-11ea-d79f-0242ac110002"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="1e2f92c8-e6b6-11ea-9290-0242ac110002"/> <containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="adb666c0-eec6-11ea-d79f-0242ac110002"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="1e2f92c9-e6b6-11ea-9290-0242ac110002"/> <containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="adb666c1-eec6-11ea-d79f-0242ac110002"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="1e2f92d2-e6b6-11ea-9290-0242ac110002"/> <containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="adb666c2-eec6-11ea-d79f-0242ac110002"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="dbc9ff47-da7a-452c-a80b-54deba3778a9"/> <containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="a6fd9351-b8d4-4af7-b1a8-426e28edb6c1"/>
<defaultRunMode>ManagedApplication</defaultRunMode> <defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes> <usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant> <scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles> <defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles> <defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor> <vendor>Фирма &quot;1С&quot;</vendor>
<version>3.1.3.250</version> <version>3.1.3.264</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress> <updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents> <includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities> <usedMobileApplicationFunctionalities>
@@ -1 +1 @@
{6,1,1,634d1ef2-e6b6-11ea-7c96-0242ac110002,1,56a04cf6-e6b6-11ea-0686-0242ac110002,"3.1.3.250","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6172,1,0,1e2f928c-e6b6-11ea-9290-0242ac110002,1e2f928c-e6b6-11ea-9290-0242ac110002,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,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,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,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-4558-8a28-7079ccf28b89,1,0,2009c673-c1a5-45fc-8da2-a36c435085a6,2009c673-c1a5Line truncated {6,1,1,f22c9bd0-eec6-11ea-f19b-0242ac110002,1,e682fe50-eec6-11ea-299e-0242ac110002,"3.1.3.264","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6172,1,0,adb66684-eec6-11ea-d79f-0242ac110002,adb66684-eec6-11ea-d79f-0242ac110002,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,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,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,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-4558-8a28-7079ccf28b89,1,0,2009c673-c1a5-45fc-8da2-a36c435085a6,2009c673-c1a5Line truncated
@@ -574,6 +574,10 @@
СтандартнаяОбработка = Ложь; СтандартнаяОбработка = Ложь;
Если Не Доступность Тогда
Возврат;
КонецЕсли;
Если ДокументыПечатались И Не Модифицированность Тогда Если ДокументыПечатались И Не Модифицированность Тогда
ПечатьЗаявленияПослеСозданияКлючаИЗапросаНаСертификат(Истина, Неопределено); ПечатьЗаявленияПослеСозданияКлючаИЗапросаНаСертификат(Истина, Неопределено);
Возврат; Возврат;
@@ -729,7 +733,9 @@
Если Ответ = КодВозвратаДиалога.Нет Тогда Если Ответ = КодВозвратаДиалога.Нет Тогда
РазблокироватьОбъект(); РазблокироватьОбъект();
Модифицированность = Ложь; Модифицированность = Ложь;
Если Открыта() Тогда
Закрыть(); Закрыть();
КонецЕсли;
ИначеЕсли Ответ = КодВозвратаДиалога.Да Тогда ИначеЕсли Ответ = КодВозвратаДиалога.Да Тогда
ЗаписатьИРазблокироватьОбъект(); ЗаписатьИРазблокироватьОбъект();
ПослеЗаписи(); ПослеЗаписи();
@@ -770,7 +776,9 @@
ВозвращаемоеЗначение = Новый Структура; ВозвращаемоеЗначение = Новый Структура;
ВозвращаемоеЗначение.Вставить("Ссылка", Объект.Ссылка); ВозвращаемоеЗначение.Вставить("Ссылка", Объект.Ссылка);
ВозвращаемоеЗначение.Вставить("Добавлен", ЗаявлениеИсполнено()); ВозвращаемоеЗначение.Вставить("Добавлен", ЗаявлениеИсполнено());
Если Открыта() Тогда
Закрыть(ВозвращаемоеЗначение); Закрыть(ВозвращаемоеЗначение);
КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -438,7 +438,9 @@
ДополнительныеПараметры = Новый Структура("НомерСборкиДляОбработчиков", Истина); ДополнительныеПараметры = Новый Структура("НомерСборкиДляОбработчиков", Истина);
ОбработчикОтвета = Новый ОписаниеОповещения("ЗавершениеВводаНомераСборки", ЭтотОбъект, ДополнительныеПараметры); ОбработчикОтвета = Новый ОписаниеОповещения("ЗавершениеВводаНомераСборки", ЭтотОбъект, ДополнительныеПараметры);
НомераВерсии = СтрРазделить(ВерсияКонфигурации,"."); НомераВерсии = СтрРазделить(ВерсияКонфигурации,".");
ПоказатьВводЧисла(ОбработчикОтвета, Число(НомераВерсии[3]), НСтр("ru = 'Укажите новый номер сборки'")); ТекстПодсказки = НСтр("ru = 'Текущая версия: %1; Укажите новый номер сборки:'");
ТекстПодсказки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстПодсказки, ВерсияКонфигурации);
ПоказатьВводЧисла(ОбработчикОтвета, Число(НомераВерсии[3]) + 1, ТекстПодсказки);
КонецПроцедуры КонецПроцедуры
@@ -3872,7 +3874,6 @@
Если СтрЧислоВхождений(Обработчик.Версия, ".") = 3 Тогда Если СтрЧислоВхождений(Обработчик.Версия, ".") = 3 Тогда
НомераВерсии = СтрРазделить(Обработчик.Версия, "."); НомераВерсии = СтрРазделить(Обработчик.Версия, ".");
ТекущийНомерСборки = Формат(НомераВерсии[3], "ЧН=0; ЧГ=0");
НомераВерсии[3] = Формат(НовыйНомерСборки, "ЧН=0; ЧГ=0"); НомераВерсии[3] = Формат(НовыйНомерСборки, "ЧН=0; ЧГ=0");
Обработчик.Версия = СтрСоединить(НомераВерсии, "."); Обработчик.Версия = СтрСоединить(НомераВерсии, ".");
@@ -1431,11 +1431,10 @@
ТекстЗапросаВТ = ТекстЗапросаВТ =
"ВЫБРАТЬ "ВЫБРАТЬ
|%Поля |&Поля
|ПОМЕСТИТЬ %ИмяПриемника |ПОМЕСТИТЬ ИмяПриемника
|ИЗ |ИЗ
| &Таблица КАК Т | &Таблица КАК Т";
|%Индексы";
МассивПолей = Новый Массив; МассивПолей = Новый Массив;
Для Каждого Колонка Из НоваяТаблица.Колонки Цикл Для Каждого Колонка Из НоваяТаблица.Колонки Цикл
@@ -1445,9 +1444,9 @@
ТекстПоляТаблицы = СтрСоединить(МассивПолей, "," + Символы.ПС); ТекстПоляТаблицы = СтрСоединить(МассивПолей, "," + Символы.ПС);
ТекстПоляИндексирования = ?(ПоляИндексирования = "", "", "ИНДЕКСИРОВАТЬ ПО " + ПоляИндексирования); ТекстПоляИндексирования = ?(ПоляИндексирования = "", "", "ИНДЕКСИРОВАТЬ ПО " + ПоляИндексирования);
ТекстЗапросаВТ = СтрЗаменить(ТекстЗапросаВТ, "%Поля", ТекстПоляТаблицы); ТекстЗапросаВТ = СтрЗаменить(ТекстЗапросаВТ, "&Поля", ТекстПоляТаблицы);
ТекстЗапросаВТ = СтрЗаменить(ТекстЗапросаВТ, "%ИмяПриемника", ИмяТаблицы); ТекстЗапросаВТ = СтрЗаменить(ТекстЗапросаВТ, "ИмяПриемника", ИмяТаблицы);
ТекстЗапросаВТ = СтрЗаменить(ТекстЗапросаВТ, "%Индексы", ТекстПоляИндексирования); ТекстЗапросаВТ = ТекстЗапросаВТ + Символы.ПС + ТекстПоляИндексирования;
Запрос.Текст = ТекстЗапросаУничтожитьВТ + ТекстЗапросаВТ; Запрос.Текст = ТекстЗапросаУничтожитьВТ + ТекстЗапросаВТ;
Запрос.УстановитьПараметр("Таблица", НоваяТаблица); Запрос.УстановитьПараметр("Таблица", НоваяТаблица);
@@ -153,8 +153,10 @@
Результат = КонструкторРезультатаВыбора(); Результат = КонструкторРезультатаВыбора();
РегионЗагружен = Ложь;
Если Данные <> Неопределено Тогда Если Данные <> Неопределено Тогда
ЗаполнитьЗначенияСвойств(Результат, Данные); ЗаполнитьЗначенияСвойств(Результат, Данные);
РегионЗагружен = Данные.РегионЗагружен;
Иначе Иначе
Результат.Отказ = Истина; Результат.Отказ = Истина;
Результат.Уровень = Уровень; Результат.Уровень = Уровень;
@@ -166,7 +168,7 @@
КонецЕсли; КонецЕсли;
Результат.Муниципальный = РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(ТипАдреса); Результат.Муниципальный = РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(ТипАдреса);
Результат.ЗагруженныеДанные = Уровень = 1; Результат.ЗагруженныеДанные = (Уровень = 1 Или РегионЗагружен);
ОповеститьОВыборе(Результат); ОповеститьОВыборе(Результат);
@@ -1588,8 +1588,14 @@
Для Каждого ВыбранныйФайл Из ВыбранныеФайлы Цикл Для Каждого ВыбранныйФайл Из ВыбранныеФайлы Цикл
НоваяСтрока = Вложения.Добавить(); НоваяСтрока = Вложения.Добавить();
#Если ВебКлиент Тогда
НоваяСтрока.Расположение = 4;
НоваяСтрока.ИмяФайлаНаКомпьютере = ПоместитьВоВременноеХранилище(ПолучитьИзВременногоХранилища(ВыбранныйФайл.Хранение));
#Иначе
НоваяСтрока.Расположение = 2; НоваяСтрока.Расположение = 2;
НоваяСтрока.ИмяФайлаНаКомпьютере = ВыбранныйФайл.ПолноеИмя; НоваяСтрока.ИмяФайлаНаКомпьютере = ВыбранныйФайл.ПолноеИмя;
#КонецЕсли
ИмяФайла = ИмяФайлаБезКаталога(ВыбранныйФайл.ПолноеИмя); ИмяФайла = ИмяФайлаБезКаталога(ВыбранныйФайл.ПолноеИмя);
НоваяСтрока.ИмяФайла = ИмяФайла; НоваяСтрока.ИмяФайла = ИмяФайла;
@@ -36,14 +36,47 @@
МассивСсылок = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"); МассивСсылок = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, МассивСсылок); ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, МассивСсылок);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДвоичныеДанныеФайлов.Файл КАК Ссылка
|ИЗ
| РегистрСведений.ДвоичныеДанныеФайлов КАК ДвоичныеДанныеФайлов
|ГДЕ
| ТИПЗНАЧЕНИЯ(ДвоичныеДанныеФайлов.Файл.Ссылка) = &ТипФайла";
Запрос.УстановитьПараметр("ТипФайла", ТипЗнч(Справочники.Файлы.ПустаяСсылка()));
МассивСсылок = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, МассивСсылок);
КонецПроцедуры КонецПроцедуры
// Обновить записи регистра. // Обновить записи регистра.
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
ОбработкаЗавершена = Истина;
Выборка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.ВерсииФайлов"); Выборка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.ВерсииФайлов");
Если Выборка.Количество() > 0 Тогда
ПеренестиДвоичныеДанныеФайловВРегистрСведенийДвоичныеДанныеФайлов(Выборка);
КонецЕсли;
Выборка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.Файлы");
Если Выборка.Количество() > 0 Тогда
СоздатьНедостающиеВерсииФайлов(Выборка);
КонецЕсли;
ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.ВерсииФайлов")
И ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.Файлы");
Параметры.ОбработкаЗавершена = ОбработкаЗавершена;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Процедура ПеренестиДвоичныеДанныеФайловВРегистрСведенийДвоичныеДанныеФайлов(Выборка)
ОбъектовОбработано = 0; ОбъектовОбработано = 0;
ПроблемныхОбъектов = 0; ПроблемныхОбъектов = 0;
@@ -91,10 +124,6 @@
КонецЦикла; КонецЦикла;
Если Не ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.ВерсииФайлов") Тогда
ОбработкаЗавершена = Ложь;
КонецЕсли;
Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Процедуре ПеренестиДвоичныеДанныеФайловВРегистрСведенийДвоичныеДанныеФайлов не удалось обработать некоторые версии файлов (пропущены): %1'"), НСтр("ru = 'Процедуре ПеренестиДвоичныеДанныеФайловВРегистрСведенийДвоичныеДанныеФайлов не удалось обработать некоторые версии файлов (пропущены): %1'"),
@@ -108,10 +137,90 @@
ОбъектовОбработано)); ОбъектовОбработано));
КонецЕсли; КонецЕсли;
Параметры.ОбработкаЗавершена = ОбработкаЗавершена; КонецПроцедуры
Процедура СоздатьНедостающиеВерсииФайлов(Выборка)
ОбъектовОбработано = 0;
ПроблемныхОбъектов = 0;
Пока Выборка.Следующий() Цикл
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Справочник.Файлы");
ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка);
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ДвоичныеДанныеФайлов");
ЭлементБлокировки.УстановитьЗначение("Файл", Выборка.Ссылка);
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
ФайлОбъект = Выборка.Ссылка.ПолучитьОбъект(); // СправочникОбъект.Файлы
Если ФайлОбъект <> Неопределено Тогда
Версия = Справочники.ВерсииФайлов.СоздатьЭлемент();
Версия.УстановитьНовыйКод();
НаборСвойств = "Автор,Владелец,ДатаМодификацииУниверсальная,ДатаСоздания,ИндексКартинки,
|Наименование,ПометкаУдаления, ПутьКФайлу,Размер,Расширение,СтатусИзвлеченияТекста, ТекстХранилище, ТипХраненияФайла, Том";
ЗаполнитьЗначенияСвойств(Версия, ФайлОбъект, НаборСвойств);
Версия.НомерВерсии = 1;
Версия.ПолноеНаименование = ФайлОбъект.Наименование;
Версия.Владелец = Выборка.Ссылка;
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(Версия);
ФайлОбъект.ТекущаяВерсия = Версия.Ссылка;
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ФайлОбъект);
ДвоичныеДанныеФайлов = РегистрыСведений.ДвоичныеДанныеФайлов.СоздатьМенеджерЗаписи();
ДвоичныеДанныеФайлов.Файл = Выборка.Ссылка;
ДвоичныеДанныеФайлов.Прочитать();
ДвоичныеДанныеФайлов.Файл = Версия.Ссылка;
ДвоичныеДанныеФайлов.Записать();
КонецЕсли;
ОбъектовОбработано = ОбъектовОбработано + 1;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
// Если не удалось обработать какой-либо файл, повторяем попытку снова.
ПроблемныхОбъектов = ПроблемныхОбъектов + 1;
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось обработать файл: %1 по причине:
|%2'"),
Выборка.Ссылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение,
Выборка.Ссылка.Метаданные(), Выборка.Ссылка, ТекстСообщения);
КонецПопытки;
КонецЦикла;
Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Процедуре СоздатьНедостающиеВерсииФайлов не удалось обработать некоторые файлы (пропущены): %1'"),
ПроблемныхОбъектов);
ВызватьИсключение ТекстСообщения;
Иначе
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация,
Метаданные.НайтиПоПолномуИмени("Справочник.ВерсииФайлов"),,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Процедура СоздатьНедостающиеВерсииФайлов обработала очередную порцию файлов: %1'"),
ОбъектовОбработано));
КонецЕсли;
КонецПроцедуры КонецПроцедуры
#КонецОбласти #КонецОбласти
#КонецЕсли #КонецЕсли
@@ -11,6 +11,7 @@
#Область ОписаниеПеременных #Область ОписаниеПеременных
Перем ОшибкаРасчетаКурсаПоФормуле; Перем ОшибкаРасчетаКурсаПоФормуле;
Перем КодыВалют;
#КонецОбласти #КонецОбласти
@@ -118,12 +119,27 @@
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
Если ЗаписьКурсовВалют.Курс = 0 Тогда
Возврат;
КонецЕсли;
НаборЗаписей.ДополнительныеСвойства.Вставить("ОтключитьКонтрольПодчиненныхВалют"); НаборЗаписей.ДополнительныеСвойства.Вставить("ОтключитьКонтрольПодчиненныхВалют");
НаборЗаписей.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения"); НаборЗаписей.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения");
Если ЗаписьКурсовВалют.Курс > 0 Тогда Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.КурсыВалют");
ЭлементБлокировки.УстановитьЗначение("Валюта", ЗаписьКурсовВалют.Валюта);
ЭлементБлокировки.УстановитьЗначение("Период", ЗаписьКурсовВалют.Период);
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
НаборЗаписей.Записать(); НаборЗаписей.Записать();
КонецЕсли; ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры КонецПроцедуры
@@ -158,25 +174,39 @@
НаборЗаписей.Записать(); НаборЗаписей.Записать();
КонецПроцедуры КонецПроцедуры
Функция КурсВалютыПоФормуле(Знач Валюта, Знач Формула, Знач Период) Функция КурсВалютыПоФормуле(Валюта, Формула, Период)
Если КодыВалют = Неопределено Тогда
КодыВалют = КодыВалют();
КонецЕсли;
ТекстЗапроса = ТекстЗапроса =
"ВЫБРАТЬ "ВЫБРАТЬ
| Валюты.Наименование КАК СимвольныйКод, | Валюты.Ссылка КАК Ссылка,
| Валюты.СимвольныйКод КАК СимвольныйКод
|ПОМЕСТИТЬ Валюты
|ИЗ
| &КодыВалют КАК Валюты
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Валюты.СимвольныйКод КАК СимвольныйКод,
| ЕСТЬNULL(КурсыВалютСрезПоследних.Курс, 1) / ЕСТЬNULL(КурсыВалютСрезПоследних.Кратность, 1) КАК Курс | ЕСТЬNULL(КурсыВалютСрезПоследних.Курс, 1) / ЕСТЬNULL(КурсыВалютСрезПоследних.Кратность, 1) КАК Курс
|ИЗ |ИЗ
| Справочник.Валюты КАК Валюты | Валюты КАК Валюты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&Период, ) КАК КурсыВалютСрезПоследних | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&Период, ) КАК КурсыВалютСрезПоследних
| ПО КурсыВалютСрезПоследних.Валюта = Валюты.Ссылка | ПО (КурсыВалютСрезПоследних.Валюта = Валюты.Ссылка)";
|ГДЕ
| Валюты.СпособУстановкиКурса <> ЗНАЧЕНИЕ(Перечисление.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты)
| И Валюты.СпособУстановкиКурса <> ЗНАЧЕНИЕ(Перечисление.СпособыУстановкиКурсаВалюты.РасчетПоФормуле)";
Запрос = Новый Запрос(ТекстЗапроса); Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("КодыВалют", КодыВалют);
Запрос.УстановитьПараметр("Период", Период); Запрос.УстановитьПараметр("Период", Период);
Выражение = Формула; Выражение = Формула;
Если СтрНайти(Выражение, ".") = 0 Тогда Если СтрНайти(Выражение, ".") = 0 Тогда
Выражение = СтрЗаменить(Выражение, ",", "."); Выражение = СтрЗаменить(Выражение, ",", ".");
КонецЕсли; КонецЕсли;
Выборка = Запрос.Выполнить().Выбрать(); Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл Пока Выборка.Следующий() Цикл
Выражение = СтрЗаменить(Выражение, Выборка.СимвольныйКод, Формат(Выборка.Курс, "ЧРД=.; ЧГ=0")); Выражение = СтрЗаменить(Выражение, Выборка.СимвольныйКод, Формат(Выборка.Курс, "ЧРД=.; ЧГ=0"));
@@ -192,8 +222,8 @@
ОшибкаРасчетаКурсаПоФормуле.Вставить(Валюта, Истина); ОшибкаРасчетаКурсаПоФормуле.Вставить(Валюта, Истина);
ИнформацияОбОшибке = ИнформацияОбОшибке(); ИнформацияОбОшибке = ИнформацияОбОшибке();
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Расчет курса валюты ""%1"" по формуле ""%2"" не выполнен:'", ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Расчет курса валюты ""%1"" по формуле ""%2"" за период ""%3""не выполнен:'",
ОбщегоНазначения.КодОсновногоЯзыка()), Валюта, Формула); ОбщегоНазначения.КодОсновногоЯзыка()), Валюта, Формула, Период);
ОбщегоНазначения.СообщитьПользователю(ТекстОшибки + Символы.ПС + КраткоеПредставлениеОшибки(ИнформацияОбОшибке), ОбщегоНазначения.СообщитьПользователю(ТекстОшибки + Символы.ПС + КраткоеПредставлениеОшибки(ИнформацияОбОшибке),
Валюта, "Объект.ФормулаРасчетаКурса"); Валюта, "Объект.ФормулаРасчетаКурса");
@@ -212,6 +242,31 @@
Возврат Результат; Возврат Результат;
КонецФункции КонецФункции
Функция КодыВалют()
КодыВалют = Неопределено;
ДополнительныеСвойства.Свойство("КодыВалют", КодыВалют);
Если КодыВалют = Неопределено Тогда
КодыВалют = Справочники.Валюты.КодыВалют();
КонецЕсли;
Результат = Новый ТаблицаЗначений;
Результат.Колонки.Добавить("Ссылка", Новый ОписаниеТипов("СправочникСсылка.Валюты"));
Результат.Колонки.Добавить("СимвольныйКод", Новый ОписаниеТипов("Строка", , , , Новый КвалификаторыСтроки(Метаданные.Справочники.Валюты.ДлинаНаименования, ДопустимаяДлина.Переменная)));
Для Каждого ОписаниеВалюты Из КодыВалют Цикл
// Валюта участвует в формуле, если символьный код содержит буквы.
Если ЗначениеЗаполнено(СтрСоединить(СтрРазделить(ОписаниеВалюты.СимвольныйКод, "0123456789", Ложь), "")) Тогда
ЗаполнитьЗначенияСвойств(Результат.Добавить(), ОписаниеВалюты);
КонецЕсли;
КонецЦикла;
Результат.Индексы.Добавить("Ссылка");
Возврат Результат;
КонецФункции
#КонецОбласти #КонецОбласти
#Иначе #Иначе
@@ -281,8 +281,10 @@
ИначеЕсли ОбщегоНазначения.РазделениеВключено() ИначеЕсли ОбщегоНазначения.РазделениеВключено()
И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных()
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда
МодульНастройкиТранспорта = ОбщегоНазначения.ОбщийМодуль("РегистрыСведений.НастройкиТранспортаОбменаОбластиДанных");
Возврат МодульНастройкиТранспорта.НастройкиТранспорта(Корреспондент); МодульНастройкиТранспортаОбменаОбластиДанных = ОбщегоНазначения.ОбщийМодуль("РегистрыСведений.НастройкиТранспортаОбменаОбластиДанных");
Возврат МодульНастройкиТранспортаОбменаОбластиДанных.НастройкиТранспорта(Корреспондент);
КонецЕсли; КонецЕсли;
Возврат НастройкиТранспортаОбмена(Корреспондент, ВидТранспортаОбмена); Возврат НастройкиТранспортаОбмена(Корреспондент, ВидТранспортаОбмена);
@@ -314,8 +316,10 @@
И ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.РазделениеВключено()
И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных()
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда
МодульНастройкиТранспортаОбмена = ОбщегоНазначения.ОбщийМодуль("РегистрыСведений.НастройкиТранспортаОбменаОбластейДанных");
ВидТранспортаСообщений = МодульНастройкиТранспортаОбмена.ВидТранспортаСообщенийОбменаПоУмолчанию(Корреспондент); МодульНастройкиТранспортаОбменаОбластейДанных = ОбщегоНазначения.ОбщийМодуль("РегистрыСведений.НастройкиТранспортаОбменаОбластейДанных");
ВидТранспортаСообщений = МодульНастройкиТранспортаОбменаОбластейДанных.ВидТранспортаСообщенийОбменаПоУмолчанию(Корреспондент);
КонецЕсли; КонецЕсли;
Возврат ВидТранспортаСообщений; Возврат ВидТранспортаСообщений;
@@ -144,17 +144,11 @@
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(НовыеНастройкиКД.Отбор, "ОбъектМетаданных", ОбъектМетаданных, ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(НовыеНастройкиКД.Отбор, "ОбъектМетаданных", ОбъектМетаданных,
ВидСравненияКомпоновкиДанных.Равно, , Истина); ВидСравненияКомпоновкиДанных.Равно, , Истина);
КонецЕсли; КонецЕсли;
ИначеЕсли КлючВарианта = "ПраваПользователейНаТаблицы" Тогда ИначеЕсли КлючВарианта = "ПраваПользователейНаТаблицы" Или КлючВарианта = "ПраваПользователяНаТаблицы" Тогда
СписокПользователей = Новый СписокЗначений;
СписокПользователей.ЗагрузитьЗначения(Контекст.Параметры.ПараметрКоманды);
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(НовыеНастройкиКД.Отбор, "Пользователь", СписокПользователей,
ВидСравненияКомпоновкиДанных.ВСписке, , Истина);
ИначеЕсли КлючВарианта = "ПраваПользователяНаТаблицы" Тогда
Если Контекст.Параметры.Свойство("ПараметрКоманды") Тогда Если Контекст.Параметры.Свойство("ПараметрКоманды") Тогда
СписокПользователей = Новый СписокЗначений; СписокПользователей = Новый СписокЗначений;
СписокПользователей.ЗагрузитьЗначения(Контекст.Параметры.ПараметрКоманды); СписокПользователей.ЗагрузитьЗначения(Контекст.Параметры.ПараметрКоманды);
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(НовыеНастройкиКД.Отбор, "Пользователь", СписокПользователей, УстановитьОтборПоПользователям(НовыеНастройкиКД, СписокПользователей);
ВидСравненияКомпоновкиДанных.ВСписке, , Истина);
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
@@ -867,6 +861,20 @@
КонецФункции КонецФункции
Процедура УстановитьОтборПоПользователям(НовыеНастройкиКД, СписокПользователей)
ИмяПараметра = "Пользователь";
Параметр = НовыеНастройкиКД.ПараметрыДанных.Элементы.Найти(ИмяПараметра);
Если Параметр = Неопределено Тогда
НовыеНастройкиКД = КомпоновщикНастроек.Настройки;
Параметр = НовыеНастройкиКД.ПараметрыДанных.Элементы.Найти(ИмяПараметра);
КонецЕсли;
Параметр.Использование = Истина;
Параметр.Значение = СписокПользователей;
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Иначе #Иначе
@@ -683,93 +683,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>Constant.СпособХраненияФайлов</name> <name>Constant.СпособХраненияФайлов</name>
<right> <right>
@@ -3467,6 +3380,93 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>Constant.СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы</name> <name>Constant.СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы</name>
<right> <right>
@@ -14,37 +14,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>Output</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Catalog.РассылкиОтчетов.Command.СобытияРассылки</name> <name>Catalog.РассылкиОтчетов.Command.СобытияРассылки</name>
<right> <right>
@@ -107,6 +76,37 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<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>Output</name>
<value>true</value>
</right>
</object>
<restrictionTemplate> <restrictionTemplate>
<name>ДляОбъекта(ПолеОбъекта)</name> <name>ДляОбъекта(ПолеОбъекта)</name>
<condition>// ДляОбъекта(ПолеОбъекта = "") <condition>// ДляОбъекта(ПолеОбъекта = "")
@@ -1057,45 +1057,6 @@
<value>false</value> <value>false</value>
</right> </right>
</object> </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> <object>
<name>Constant.СпособХраненияФайлов</name> <name>Constant.СпособХраненияФайлов</name>
<right> <right>
@@ -4850,6 +4811,45 @@
<value>false</value> <value>false</value>
</right> </right>
</object> </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> <object>
<name>Constant.СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы</name> <name>Constant.СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы</name>
<right> <right>