3_0_1_252

This commit is contained in:
Компания 1С committed 2018-08-31 11:49:00 +03:00
1 parent 76b2ac4e52
commit 9a68c7350b
43 files changed
+754 -367

No files matched your search

@@ -8,15 +8,19 @@
Возврат;
КонецЕсли;
Если Не ПустаяСтрока(Параметры.ТекстПояснения) Тогда
Элементы.ДекорацияПояснение.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1
|
|Компонента не загружена в программу.
|Загрузить?'"),
Параметры.ТекстПояснения);
Если ПустаяСтрока(Параметры.ТекстПояснения) Тогда
ТекстПояснения = ВнешниеКомпонентыСлужебный.ПредставлениеКомпоненты(Параметры.Идентификатор, Параметры.Версия);
Иначе
ТекстПояснения = Параметры.ТекстПояснения;
КонецЕсли;
Элементы.ДекорацияПояснение.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1
|
|Компонента не загружена в программу.
|Загрузить?'"),
ТекстПояснения);
ДанныеАутентификацииПорталаСохранены = ДанныеАутентификацииПорталаСохранены();
ДоступнаЗагрузкаСПортала = ВнешниеКомпонентыСлужебный.ДоступнаЗагрузкаСПортала();
@@ -85,6 +85,10 @@
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:CatalogFormExtInfo">
<handlers>
<event>OnReadAtServer</event>
<name>ПриЧтенииНаСервере</name>
</handlers>
<useForFoldersAndItems>Folders</useForFoldersAndItems>
</extInfo>
</form:Form>
@@ -26,4 +26,16 @@
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры
#КонецОбласти
@@ -551,5 +551,10 @@
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:CatalogFormExtInfo"/>
<extInfo xsi:type="form:CatalogFormExtInfo">
<handlers>
<event>OnReadAtServer</event>
<name>ПриЧтенииНаСервере</name>
</handlers>
</extInfo>
</form:Form>
@@ -34,4 +34,16 @@
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры
#КонецОбласти
@@ -35,7 +35,7 @@
</li><li>Если выбран <strong>Свой отчет для каждого получателя</strong>, то доставка также выполняется только по электронной почте, но уже не одному, а нескольким получателям.
</li><li>Если выбраны <strong>Отчеты указанным получателям</strong>, то кроме доставки по почте появляется возможность сохранить (опубликовать) готовые отчеты. Для этого включите флажок <a name="Публиковать"><strong>Публикова</strong><strong>ть</strong></a> - признак необходимости публикации рассылки. Выберите соответствующее значение:
<ul><li><a name="ВПапку"><strong>В папку</strong></a> - отчеты будут сохранены в указанную <a href="Catalog.ПапкиФайлов.Form.ФормаЭлемента/Help">папку</a> подсистемы "Работа с файлами". С помощью этого способа доставки можно организовать регулярную архивацию отчетов в папку файлов (при этом отключив отправку по электронной почте);
</li><li><a name="ВПапкуНаДиске"><strong>В сетевой каталог</strong></a> - отчеты будут сохранены в выбранный сетевой каталог. Запись производится с сервера, поэтому рекомендуется указывать сетевой путь в формате UNC, например: <a href="file://\\server\folder\">\\server\folder\</a>. Укажите адрес этого каталога в поле Windows (если вы работаете на компьютере под управлением этой операционной системы) или в поле Linux (если вы работаете на компьютере под управлением Linux).
</li><li><a name="ВПапкуНаДиске"><strong>В сетевой каталог</strong></a> - отчеты будут сохранены в выбранный сетевой каталог. Запись производится с сервера, поэтому рекомендуется указывать сетевой путь в формате UNC, например: <a href="file://\\server\folder\">\\server\folder\</a>. Укажите адрес этого каталога в поле Windows (если вы работаете на компьютере под управлением этой операционной системы) или в поле Linux (если вы работаете на компьютере под управлением Linux). <strong>Внимание!</strong> Данный способ доставки отчетов недоступен в приложении в Интернете;
</li><li><a name="НаFTP"><strong>На FTP ресурс</strong></a> - отчеты будут сохранены на ftp-сервере. Заполните необходимые <a href="Catalog.РассылкиОтчетов.Form.ПараметрыFTP/Help">параметры</a>.</li></ul></li><li><a name="Проверить"><strong>Проверить</strong></a> - проверка публикации путем записи и удаления тестового файла. Тест считается успешным, если ошибок не возникло.
</li><li><a name="ОтправлятьПоЭлектроннойПочте"><strong>Отправлять по электронной почте</strong></a> - признак использования электронной почты для отправки отчетов (или уведомлений).
</li><li><a name="ВключитьВРассылку"><strong>Укажите</strong></a><strong> получателей</strong> - перейдите по ссылке, для того чтобы заполнить <a href="Catalog.РассылкиОтчетов.Form.ПолучателиРассылки/Help">список получателей</a> и исключений из получателей рассылки. Можно выбирать элементы или группы получателей. После заполнения ссылка принимает вид списка получателей: указывается первый получатель списка.
@@ -36,7 +36,7 @@
Ограничение.ТекстДляВнешнихПользователей =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЧтениеОбъектаРазрешено(ВЫРАЗИТЬ(Автор КАК Справочник.ВнешниеПользователи))";
| ЗначениеРазрешено(ВЫРАЗИТЬ(Автор КАК Справочник.ВнешниеПользователи))";
Ограничение.ПоВладельцуБезЗаписиКлючейДоступаДляВнешнихПользователей = Ложь;
КонецПроцедуры
@@ -1734,36 +1734,68 @@
Возврат;
КонецЕсли;
НастройкиШаблоновСообщений = ШаблоныСообщенийСлужебныйПовтИсп.ПриОпределенииНастроек();
СтруктураДанныхВнешнейОбработки = ВнешнийОбъект.СтруктураДанныхДляОтображенияВШаблоне();
МетаданныеОбъекта = Метаданные.НайтиПоПолномуИмени(СтруктураДанныхВнешнейОбработки.ПолноеИмяТипаПараметраВводаНаОсновании);
Если МетаданныеОбъекта <> Неопределено Тогда
ЭлементНазначения = Элементы.ПолноеИмяТипаПараметраВводаНаОсновании.СписокВыбора.НайтиПоЗначению(СтруктураДанныхВнешнейОбработки.ПолноеИмяТипаПараметраВводаНаОсновании);
Если ЭлементНазначения = Неопределено Тогда
ВнешняяОбработка = Неопределено;
ОписаниеОшибки = НСтр("ru = 'Предмет %1 определенный в внешней обработке не найдено. Внешняя обработка не может быть подключена.'");
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеОшибки, СтруктураДанныхВнешнейОбработки.ПолноеИмяТипаПараметраВводаНаОсновании);
Возврат
КонецЕсли;
Объект.ШаблонПоВнешнейОбработке = Истина;
Объект.ПолноеИмяТипаПараметраВводаНаОсновании = ЭлементНазначения.Значение;
Объект.Назначение = ЭлементНазначения.Представление;
Объект.ПредназначенДляВводаНаОсновании = Истина;
ПредметШаблона = ОпределитьПредметШаблонаСообщений(СтруктураДанныхВнешнейОбработки.ПолноеИмяТипаПараметраВводаНаОсновании, НастройкиШаблоновСообщений);
Если ПредметШаблона <> Неопределено Тогда
Объект.ПолноеИмяТипаПараметраВводаНаОсновании = ПредметШаблона.Имя;
Объект.Назначение = ПредметШаблона.Представление;
Иначе
ВнешняяОбработка = Неопределено;
ОписаниеОшибки = НСтр("ru = 'Предмет %1 определенный в внешней обработке не найдено. Внешняя обработка не может быть подключена.'");
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеОшибки, СтруктураДанныхВнешнейОбработки.ПолноеИмяТипаПараметраВводаНаОсновании);
КонецЕсли;
// Определить тип html
Объект.ТемаПисьма = СтруктураДанныхВнешнейОбработки.ТемаПисьма;
Если СтруктураДанныхВнешнейОбработки.ТипТекстаПисьма = Перечисления.СпособыРедактированияЭлектронныхПисем.HTML Тогда
УстановитьЭлектронноеПисьмоHTML(Истина);
СтруктураВложения = Новый Структура;
ТелоПисьмаВHTML.УстановитьHTML(СтруктураДанныхВнешнейОбработки.ТекстШаблонаПисьмаHTML, СтруктураВложения);
Объект.ШаблонПоВнешнейОбработке = Истина;
Объект.ПредназначенДляВводаНаОсновании = Истина;
Если СтруктураДанныхВнешнейОбработки.ПредназначенДляSMS Тогда
ТелоСообщенияОбычныйТекст.УстановитьТекст(СтруктураДанныхВнешнейОбработки.ТекстШаблонаSMS);
Объект.ПредназначенДляSMS = Истина;
Объект.ПредназначенДляЭлектронныхПисем = Ложь;
Иначе
УстановитьЭлектронноеПисьмоОбычныйТекст(Истина);
ТелоСообщенияОбычныйТекст.УстановитьТекст(СтруктураДанныхВнешнейОбработки.ТекстШаблонаПисьмаHTML);
КонецЕсли;
Объект.ТемаПисьма = СтруктураДанныхВнешнейОбработки.ТемаПисьма;
Если СтруктураДанныхВнешнейОбработки.ТипТекстаПисьма = Перечисления.СпособыРедактированияЭлектронныхПисем.HTML Тогда
УстановитьЭлектронноеПисьмоHTML(Истина);
СтруктураВложения = Новый Структура;
ТелоПисьмаВHTML.УстановитьHTML(СтруктураДанныхВнешнейОбработки.ТекстШаблонаПисьмаHTML, СтруктураВложения);
Иначе
УстановитьЭлектронноеПисьмоОбычныйТекст(Истина);
ТелоСообщенияОбычныйТекст.УстановитьТекст(СтруктураДанныхВнешнейОбработки.ТекстШаблонаПисьмаHTML);
КонецЕсли;
Объект.ПредназначенДляЭлектронныхПисем = Истина;
Объект.ПредназначенДляSMS = Ложь;
КонецЕсли
КонецЕсли
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция ОпределитьПредметШаблонаСообщений(ИмяВНазначение, Знач НастройкиШаблоновСообщений)
Перем НазначениеШаблона;
НазначениеШаблона = НастройкиШаблоновСообщений.ПредметыШаблонов.Найти(ИмяВНазначение, "Представление");
Если НазначениеШаблона = Неопределено Тогда
НазначениеШаблона = НастройкиШаблоновСообщений.ПредметыШаблонов.Найти(ИмяВНазначение, "Имя");
КонецЕсли;
Возврат НазначениеШаблона;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Процедура ОчиститьШаблон(Форма)
@@ -114,6 +114,11 @@
ИЛИ НЕ Метаданные.ПланыОбмена.Содержит(ОбъектМетаданных) Тогда
Возврат;
КонецЕсли;
Если Не ПравоДоступа("Чтение", ОбъектМетаданных) Тогда
Возврат;
КонецЕсли;
ПланОбмена = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ОбъектМетаданных.ПолноеИмя()).ПустаяСсылка();
// Заполнение узлов используемых планов обмена.
@@ -978,14 +978,25 @@
Функция ИмяФайлаПечатнойФормыПоУмолчанию(ОбъектПечати, НазваниеПечатнойФормы)
Если ОбщегоНазначения.ЭтоДокумент(Метаданные.НайтиПоТипу(ТипЗнч(ОбъектПечати))) Тогда
ПараметрыДляВставки = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ОбъектПечати, "Дата,Номер");
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПрефиксацияОбъектов") Тогда
ДокументСодержитНомер = ОбъектПечати.Метаданные().ДлинаНомера > 0;
Если ДокументСодержитНомер Тогда
СписокРеквизитов = "Дата,Номер";
Шаблон = НСтр("ru = '[НазваниеПечатнойФормы] № [Номер] от [Дата]'");
Иначе
СписокРеквизитов = "Дата";
Шаблон = НСтр("ru = '[НазваниеПечатнойФормы] от [Дата]'");
КонецЕсли;
ПараметрыДляВставки = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ОбъектПечати, СписокРеквизитов);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПрефиксацияОбъектов") И ДокументСодержитНомер Тогда
МодульПрефиксацияОбъектовКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ПрефиксацияОбъектовКлиентСервер");
ПараметрыДляВставки.Номер = МодульПрефиксацияОбъектовКлиентСервер.НомерНаПечать(ПараметрыДляВставки.Номер);
КонецЕсли;
ПараметрыДляВставки.Дата = Формат(ПараметрыДляВставки.Дата, "ДЛФ=D");
ПараметрыДляВставки.Вставить("НазваниеПечатнойФормы", НазваниеПечатнойФормы);
Шаблон = НСтр("ru = '[НазваниеПечатнойФормы] № [Номер] от [Дата]'");
Иначе
ПараметрыДляВставки = Новый Структура;
ПараметрыДляВставки.Вставить("НазваниеПечатнойФормы",НазваниеПечатнойФормы);
@@ -501,39 +501,39 @@
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:Button">
<name>ОткрытьРезультатыСинхронизацииДанных</name>
<id>367</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ОткрытьРезультатыСинхронизацииДанныхExtendedTooltip</name>
<id>461</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Hyperlink</type>
<commandName>Form.Command.ОткрытьРезультатыСинхронизацииДанных</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:FormGroup">
<name>ПанельСписокПриложений</name>
<id>701</id>
<items xsi:type="form:FormGroup">
<name>СтраницаСписокПриложений</name>
<id>703</id>
<items xsi:type="form:Button">
<name>ОткрытьРезультатыСинхронизацииДанных</name>
<id>367</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ОткрытьРезультатыСинхронизацииДанныхExtendedTooltip</name>
<id>461</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Hyperlink</type>
<commandName>Form.Command.ОткрытьРезультатыСинхронизацииДанных</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:FormGroup">
<name>КоманднаяПанель</name>
<id>145</id>
@@ -402,7 +402,7 @@
&НаКлиенте
Процедура НачальнаяВыгрузкаДанныхЗавершение(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
ПодключитьОбработчикОжидания("ОбновитьДанныеМонитораИнтерактивно", 0.1, Истина);
ПодключитьОбработчикОжидания("ОбновитьДанныеМонитораВФоне", 0.1, Истина);
КонецПроцедуры
@@ -443,7 +443,7 @@
&НаКлиенте
Процедура ОткрытьФормуНастройкиПараметровСинхронизацииЗавершение(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
ПодключитьОбработчикОжидания("ОбновитьДанныеМонитораИнтерактивно", 0.1, Истина);
ПодключитьОбработчикОжидания("ОбновитьДанныеМонитораВФоне", 0.1, Истина);
КонецПроцедуры
@@ -392,17 +392,31 @@
СтруктураОписанияОшибкиПоставщика(Результат);
ЗагруженныеАдресныеСведения = АдресныйКлассификаторПовтИсп.СведенияОЗагрузкеСубъектовРФ();
ПредлагатьЗагрузкуСведений = (Уровень = 1 И ЗагруженныеАдресныеСведения.Получить("КлассификаторДоступен") = Ложь);
Если ЗначениеЗаполнено(СтрокаПоиска) Тогда
ПреобразоватьВводАдреса(СтрокаПоиска);
КонецЕсли;
Если ЗагруженныеАдресныеСведения["ИспользоватьЗагруженные"] Или Уровень = 1 Тогда
Если ЗагруженныеАдресныеСведения.Получить("ИспользоватьЗагруженные") Или Уровень = 1 Тогда
ДополнительныеПараметры = Новый Структура("СтрокаПоиска", СтрокаПоиска);
ЗаполнитьАдресаДляИнтерактивногоВыбораВнутр(Результат, Родитель, Уровень, ТипАдреса, ДополнительныеПараметры);
Для каждого СведенияОбАдресе Из Результат.Данные Цикл
ДанныеВыбора.Данные.Добавить(СведенияОбАдресе.Идентификатор, СведенияОбАдресе.Представление);
Сведения = Новый Структура();
Сведения.Вставить("Идентификатор", СведенияОбАдресе.Идентификатор);
Сведения.Вставить("Представление", СведенияОбАдресе.Представление);
Сведения.Вставить("Отказ", Ложь);
Если ПредлагатьЗагрузкуСведений Тогда
Сведения.Вставить("ПредлагатьЗагрузкуКлассификатора",
Не СведенияОбАдресе.РегионЗагружен);
Иначе
Сведения.Вставить("ПредлагатьЗагрузкуКлассификатора", Ложь);
КонецЕсли;
ДанныеВыбора.Данные.Добавить(Сведения, СведенияОбАдресе.Представление);
КонецЦикла;
КонецЕсли;
@@ -478,7 +492,7 @@
ЗагруженныеАдресныеСведения = АдресныйКлассификаторПовтИсп.СведенияОЗагрузкеСубъектовРФ();
Если Не ТолькоВебСервис И ЗагруженныеАдресныеСведения["ИспользоватьЗагруженные"] Тогда
ЗаполнитьСписокАвтоподбораЧастиАдресаВнутр(Результат, КешПредставлений, Текст, ДополнительныеПараметры);
ЗаполнитьСписокАвтоподбораЧастиАдресаВнутр(Результат, КешПредставлений, Текст, ДополнительныеПараметры, ЗагруженныеАдресныеСведения);
Если Результат.Количество() >= 20 Тогда
Возврат Результат;
КонецЕсли;
@@ -2801,7 +2815,7 @@
// Заполнение данных для автоподбора из загруженных данных.
//
Процедура ЗаполнитьСписокАвтоподбораЧастиАдресаВнутр(Результат, КешПредставлений, Знач Текст, ДополнительныеПараметры)
Процедура ЗаполнитьСписокАвтоподбораЧастиАдресаВнутр(Результат, КешПредставлений, Знач Текст, ДополнительныеПараметры, ЗагруженныеАдресныеСведения)
ПреобразоватьВводАдреса(Текст);
ТекстПоиска = ЗамаскироватьСпецсимволыПодобия(Текст);
@@ -2838,7 +2852,19 @@
ПочтовыйИндекс = ?(ЗначениеЗаполнено(Строка.ПочтовыйИндекс), " (" + Формат(Строка.ПочтовыйИндекс,"ЧГ=0") + ")", "");
Представление = Строка.Представление + ПочтовыйИндекс;
ДобавитьВариантАдреса(Результат, КешПредставлений, Представление, Строка.Идентификатор, Строка.Муниципальный, Истина);
ПредлагатьЗагрузкуКлассификатора = Ложь;
Если Строка.Уровень = 10 И Не ЗагруженныеАдресныеСведения.Получить("КлассификаторДоступен") Тогда
КодРегиона = АдресныйКлассификатор.КодРегионаПоНаименованию(Строка.Представление);
Если ЗагруженныеАдресныеСведения.Получить(КодРегиона).ИспользоватьЗагруженные = Ложь Тогда
ПредлагатьЗагрузкуКлассификатора = Истина;
КонецЕсли;
КонецЕсли;
Сведения = СведенияОПодбираемомАдресе(Представление, Строка.Идентификатор, Строка.Муниципальный, Истина,, ПредлагатьЗагрузкуКлассификатора);
ДобавитьВариантАдреса(Результат, КешПредставлений, Сведения);
КонецЦикла;
@@ -3219,11 +3245,14 @@
| АдресныеОбъекты.Идентификатор КАК Идентификатор,
| АдресныеОбъекты.ДополнительныеАдресныеСведения КАК ДополнительныеАдресныеСведения,
| ДополнительныеСведения.ПочтовыйИндекс КАК ПочтовыйИндекс,
| ИСТИНА КАК Муниципальный
| ИСТИНА КАК Муниципальный,
| ЗагруженныеВерсииАдресныхСведений.ДатаВерсии > ДатаВремя(1,1,1,0,0,0) КАК РегионЗагружен
|ИЗ
| РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеАдресныеСведения КАК ДополнительныеСведения
| ПО АдресныеОбъекты.ДополнительныеАдресныеСведения = ДополнительныеСведения.Идентификатор
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗагруженныеВерсииАдресныхСведений КАК ЗагруженныеВерсииАдресныхСведений
| ПО (АдресныеОбъекты.КодСубъектаРФ = ЗагруженныеВерсииАдресныхСведений.КодСубъектаРФ)
|ГДЕ
| АдресныеОбъекты.Уровень = &Уровень
| &ОтборПоИдентификатору &ОтборПоСтроке
@@ -3273,6 +3302,7 @@
КонецЕсли;
Данные = Результат.Данные;
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Возврат;
@@ -3606,41 +3636,39 @@
ДанныеМуниципальный = АдресДляСохраненияВБазе(Данные);
ДобавитьВариантАдреса(
ВариантыАдреса,
КешПредставлений,
ПредставлениеМуниципальное,
Данные.id,
Истина, // Муниципальный
Ложь, // ЗагруженныеДанные
СтруктураВСтрокуJSON(ДанныеМуниципальный));
Сведения = СведенияОПодбираемомАдресе(ПредставлениеМуниципальное, Данные.id, Истина, Ложь, СтруктураВСтрокуJSON(ДанныеМуниципальный));
ДобавитьВариантАдреса(ВариантыАдреса, КешПредставлений, Сведения);
Если СтрСравнить(ПредставлениеТерриториальное, ПредставлениеМуниципальное) <> 0 Тогда
ДанныеТерриториальный = АдресДляСохраненияВБазе(Данные, Ложь);
ДобавитьВариантАдреса(
ВариантыАдреса,
КешПредставлений,
ПредставлениеТерриториальное,
Данные.id,
Ложь, // Муниципальный
Ложь, // ЗагруженныеДанные
СтруктураВСтрокуJSON(ДанныеТерриториальный));
Сведения = СведенияОПодбираемомАдресе(ПредставлениеТерриториальное, Данные.id, Ложь, Ложь, СтруктураВСтрокуJSON(ДанныеТерриториальный));
ДобавитьВариантАдреса(ВариантыАдреса, КешПредставлений, Сведения);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ДобавитьВариантАдреса(ВариантыАдреса, КешПредставлений, Представление, Идентификатор, Муниципальный, ЗагруженныеДанные,
Данные = "")
Процедура ДобавитьВариантАдреса(ВариантыАдреса, КешПредставлений, Сведения)
// Такой адрес уже есть в списке выбора.
Если КешПредставлений[ВРег(Представление)] <> Неопределено Тогда
Если КешПредставлений[ВРег(Сведения.Представление)] <> Неопределено Тогда
Возврат;
КонецЕсли;
КешПредставлений[ВРег(Представление)] = Истина;
КешПредставлений[ВРег(Сведения.Представление)] = Истина;
Если Не Сведения.Муниципальный Тогда
Сведения.Представление = Новый ФорматированнаяСтрока(Сведения.Представление,, ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
КонецЕсли;
ВариантыАдреса.Добавить(Сведения, Сведения.Представление);
КонецПроцедуры
Функция СведенияОПодбираемомАдресе(Знач Представление, Знач Идентификатор,
Знач Муниципальный, Знач ЗагруженныеДанные, Знач Данные = "",ПредлагатьЗагрузкуКлассификатора = Ложь)
Сведения = Новый Структура();
Сведения.Вставить("Отказ", Ложь);
@@ -3649,14 +3677,10 @@
Сведения.Вставить("Представление", Представление);
Сведения.Вставить("Муниципальный", Муниципальный);
Сведения.Вставить("ЗагруженныеДанные", ЗагруженныеДанные);
Сведения.Вставить("ПредлагатьЗагрузкуКлассификатора", ПредлагатьЗагрузкуКлассификатора);
Возврат Сведения;
Если Не Муниципальный Тогда
Представление = Новый ФорматированнаяСтрока(Представление,, ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
КонецЕсли;
ВариантыАдреса.Добавить(Сведения, Представление);
КонецПроцедуры
КонецФункции
// Заполнение актуальных данных адресного объекта или ориентира по данным сервиса 1С.
// Пример: GET /selectByCode?code=111111&codeType=ID.
@@ -294,30 +294,41 @@
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ВнешниеКомпонентыВМоделиСервиса") Тогда
МодульСправочникиОбщиеВнешниеКомпоненты = ОбщегоНазначения.ОбщийМодуль("Справочники.ОбщиеВнешниеКомпоненты");
СсылкаИзОбщегоХранилища = МодульСправочникиОбщиеВнешниеКомпоненты.НайтиПоИдентификатору(Идентификатор, Версия);
Если СсылкаИзХранилища.Пустая() И СсылкаИзОбщегоХранилища.Пустая() Тогда
Результат.Состояние = "НеНайдена";
ИначеЕсли СсылкаИзХранилища.Пустая() Тогда
Результат.Состояние = "НайденаВОбщемХранилище";
Результат.Ссылка = СсылкаИзОбщегоХранилища;
Иначе
Если Не ЗначениеЗаполнено(Версия) Тогда
ВерсияХранилища = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СсылкаИзХранилища, "ДатаВерсии");
ВерсияОбщегоХранилища = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СсылкаИзОбщегоХранилища, "ДатаВерсии");
Если ВерсияОбщегоХранилища > ВерсияХранилища Тогда
Результат.Состояние = "НайденаВОбщемХранилище";
Результат.Ссылка = СсылкаИзОбщегоХранилища;
Иначе
Результат.Состояние = "НайденаВХранилище";
Результат.Ссылка = СсылкаИзХранилища;
КонецЕсли;
Если СсылкаИзХранилища.Пустая() Тогда
Если СсылкаИзОбщегоХранилища.Пустая() Тогда
Результат.Состояние = "НеНайдена";
Иначе
Результат.Состояние = "НайденаВОбщемХранилище";
Результат.Ссылка = СсылкаИзОбщегоХранилища;
КонецЕсли;
Иначе
Если СсылкаИзОбщегоХранилища.Пустая() Тогда
Результат.Состояние = "НайденаВХранилище";
Результат.Ссылка = СсылкаИзХранилища;
Иначе
Если ЗначениеЗаполнено(Версия) Тогда
// Особый случай: компонента есть и в общем хранилище и в хранилище области,
// При этом одной и той же версии. Приоритет компоненте области.
Результат.Состояние = "НайденаВХранилище";
Результат.Ссылка = СсылкаИзХранилища;
Иначе
ВерсияХранилища = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СсылкаИзХранилища, "ДатаВерсии");
ВерсияОбщегоХранилища = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СсылкаИзОбщегоХранилища, "ДатаВерсии");
Если ВерсияОбщегоХранилища > ВерсияХранилища Тогда
Результат.Состояние = "НайденаВОбщемХранилище";
Результат.Ссылка = СсылкаИзОбщегоХранилища;
Иначе
// Особый случай: компонента есть и в общем хранилище и в хранилище области,
// При этом если они оказались одной и той же версии. Приоритет компоненте области.
Результат.Состояние = "НайденаВХранилище";
Результат.Ссылка = СсылкаИзХранилища;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли
КонецЕсли;
Иначе
@@ -2843,7 +2843,7 @@
КонецПроцедуры
Функция ПакетныйЗапускКонфигуратора(Параметры, КомандаЗапуска)
Функция ПакетныйЗапускКонфигуратора(Параметры, ПереданныеКомандыЗапуска)
Результат = Новый Структура("Успех, Кратко, Подробно", Ложь, "", "");
ОбразецПараметров = Новый Структура("РабочийКаталог, Пользователь, Пароль, КаталогBIN, ПутьККонфигурации, КаталогКопии1CD");
ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(Параметры, ОбразецПараметров, Ложь);
@@ -2884,7 +2884,7 @@
КомандаЗапуска.Добавить(Параметры.Пользователь);
КомандаЗапуска.Добавить("/P");
КомандаЗапуска.Добавить(Параметры.Пароль);
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(КомандаЗапуска, КомандаЗапуска);
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(КомандаЗапуска, ПереданныеКомандыЗапуска);
КомандаЗапуска.Добавить("/Out");
КомандаЗапуска.Добавить(ИмяФайлаСообщений);
КомандаЗапуска.Добавить("/DisableStartupMessages");
@@ -507,14 +507,7 @@
КонецЦикла;
ДополнительныеДанные = Новый Структура;
// {Обработчик: ПолучитьДополнительныеДанныеДляКорреспондента} Начало
ОписаниеВариантаНастройки = ОбменДаннымиПовтИсп.ОписаниеВариантаНастройки(ИмяПланаОбмена, "","","");
ДополнительныеДанные = ОписаниеВариантаНастройки.ДополнительныеДанныеДляКорреспондента;
// {Обработчик: ПолучитьДополнительныеДанныеДляКорреспондента} Окончание
Результат.Вставить("{ДополнительныеДанные}", ДополнительныеДанные);
Результат.Вставить("{ДополнительныеДанные}", Новый Структура); // Для обратной совместимости с 2.4.x
Возврат Результат;
@@ -12527,11 +12520,15 @@
Возврат;
КонецЕсли;
ПланыОбменаБСП = ОбменДаннымиПовтИсп.ПланыОбменаБСП();
ТаблицаМонитора = ТаблицаМонитораОбменаДанными(ПланыОбменаБСП);
ПланыОбменаБСП = ОбменДаннымиПовтИсп.ПланыОбменаБСП();
Если ПланыОбменаБСП.Количество() > 0 Тогда
ТаблицаМонитора = ТаблицаМонитораОбменаДанными(ПланыОбменаБСП);
КоличествоНерассмотренныхПроблем = КоличествоНерассмотренныхПроблем(
ТаблицаМонитора.ВыгрузитьКолонку("УзелИнформационнойБазы"));
КоличествоНерассмотренныхПроблем = КоличествоНерассмотренныхПроблем(
ТаблицаМонитора.ВыгрузитьКолонку("УзелИнформационнойБазы"));
Иначе
КоличествоНерассмотренныхПроблем = 0;
КонецЕсли;
// Процедура вызывается только при наличии подсистемы "Текущие дела", поэтому здесь
// не делается проверка существования подсистемы.
@@ -32,7 +32,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.0.1.245";
Описание.Версия = "3.0.1.252";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -2071,14 +2071,17 @@
Обработчики = ОбработчикиПереходаСДругойПрограммы(ПредыдущееИмяКонфигурации);
ПодсистемаСуществует = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом");
// Выполняем все обработчики перехода.
Для Каждого Обработчик Из Обработчики Цикл
ТранзакцияАктивнаНаНачалоВыполнения = ТранзакцияАктивна();
ОтключитьОбновлениеКлючейДоступа(Истина, ПодсистемаСуществует);
Попытка
ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.Процедура);
ОтключитьОбновлениеКлючейДоступа(Ложь, ПодсистемаСуществует);
Исключение
ОтключитьОбновлениеКлючейДоступа(Ложь, ПодсистемаСуществует);
ИмяОбработчика = Обработчик.Процедура;
ЗаписатьОшибку(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'При вызове обработчика перехода с другой программы
@@ -2780,6 +2783,8 @@
ПараметрыСеанса.ПараметрыОбработчикаОбновления = КонтекстОбработчика.ПараметрыОбработчикаОбновления;
ПодсистемаСуществует = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом");
ОтключитьОбновлениеКлючейДоступа(Истина, ПодсистемаСуществует);
Попытка
ПараметрыВызова = Новый Массив;
ПараметрыВызова.Добавить(КонтекстОбработчика.Параметры);
@@ -2788,7 +2793,6 @@
Результат = НовыйРезультатВыполненияОтложенногоОбработчика();
Результат.Параметры = КонтекстОбработчика.Параметры;
Результат.ПараметрыОбработчикаОбновления = ПараметрыСеанса.ПараметрыОбработчикаОбновления;
Попытка
ПроверитьВложеннуюТранзакцию(КонтекстОбработчика.ТранзакцияАктивнаНаНачалоВыполнения,
КонтекстОбработчика.ИмяОбработчика);
@@ -2802,8 +2806,10 @@
КонецПопытки;
ПоместитьВоВременноеХранилище(Результат, АдресРезультата);
ОтключитьОбновлениеКлючейДоступа(Ложь, ПодсистемаСуществует);
ПараметрыСеанса.ПараметрыОбработчикаОбновления = Новый ФиксированнаяСтруктура(НовыеПараметрыОбработчикаОбновления());
Исключение
ОтключитьОбновлениеКлючейДоступа(Ложь, ПодсистемаСуществует);
ПараметрыСеанса.ПараметрыОбработчикаОбновления = Новый ФиксированнаяСтруктура(НовыеПараметрыОбработчикаОбновления());
ВызватьИсключение;
КонецПопытки;
@@ -3422,6 +3428,13 @@
////////////////////////////////////////////////////////////////////////////////
// Общего назначения
Процедура ОтключитьОбновлениеКлючейДоступа(Значение, ПодсистемаСуществует)
Если ПодсистемаСуществует Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ОтключитьОбновлениеКлючейДоступа(Значение);
КонецЕсли;
КонецПроцедуры
Функция РежимОбновленияДанныхВЛокальномРежимеРаботы()
УстановитьПривилегированныйРежим(Истина);
@@ -3713,12 +3726,16 @@
ТранзакцияАктивнаНаНачалоВыполнения = ТранзакцияАктивна();
ПодсистемаСуществует = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом");
ОтключитьОбновлениеКлючейДоступа(Истина, ПодсистемаСуществует);
Попытка
УстановитьПараметрыОбработчикаОбновления(Обработчик);
ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.Процедура, ПараметрыОбработчика);
УстановитьПараметрыОбработчикаОбновления(Неопределено);
ОтключитьОбновлениеКлючейДоступа(Ложь, ПодсистемаСуществует);
Исключение
ОтключитьОбновлениеКлючейДоступа(Ложь, ПодсистемаСуществует);
Если ДополнительныеПараметры.ЗаписыватьВЖурнал Тогда
ЗаписатьДетальнуюИнформациюОХодеОбновления(ОписаниеОбработчика);
КонецЕсли;
@@ -607,10 +607,19 @@
Модуль = Вычислить(Имя);
#Если Не ВебКлиент Тогда
// В веб-клиенте не проверяется
// т.к. при обращении к модулям с вызовом сервера типа такого модуля в веб-клиенте не существует.
Если ТипЗнч(Модуль) <> Тип("ОбщийМодуль") Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Общий модуль ""%1"" не найден.'"), Имя);
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Общий модуль ""%1"" не найден.'"),
Имя);
КонецЕсли;
#КонецЕсли
Возврат Модуль;
КонецФункции
@@ -781,6 +781,8 @@
// См. СтандартныеПодсистемыВызовСервера.ПриВыполненииСтандартныхПериодическихПроверокНаСервере.
Процедура ПриВыполненииСтандартныхПериодическихПроверокНаСервере(Параметры) Экспорт
Параметры.Вставить("ВходВПрограммуЗапрещен", Ложь);
Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
Возврат;
КонецЕсли;
@@ -796,8 +798,6 @@
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(
ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор);
Параметры.Вставить("ВходВПрограммуЗапрещен", Ложь);
Если ПользовательИБ = Неопределено Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда
@@ -1592,7 +1592,10 @@
КонецЕсли;
Адрес = УправлениеКонтактнойИнформациейСлужебный.СтрокаJSONВСтруктуру(АдресСтрокой);
ПолученныйАдрес = УправлениеКонтактнойИнформациейСлужебный.СтрокаJSONВСтруктуру(АдресСтрокой);
Адрес = РаботаСАдресамиКлиентСервер.ОписаниеНовойКонтактнойИнформации(Перечисления.ТипыКонтактнойИнформации.Адрес);
ЗаполнитьЗначенияСвойств(Адрес, ПолученныйАдрес);
Адрес.type = УправлениеКонтактнойИнформациейКлиентСервер.ТипКонтактнойИнформацииВСтроку(Перечисления.ТипыКонтактнойИнформации.Адрес);
Если ПустаяСтрока(Адрес.ID) И (Параметры.КодыАдреса Или Параметры.КодыКЛАДР) Тогда
@@ -826,13 +826,14 @@
Функция КонструкторРезультатаВыбора() Экспорт
Результат = Новый Структура();
Результат.Вставить("РегионЗагружен", Неопределено);
Результат.Вставить("Идентификатор", "");
Результат.Вставить("Представление", "");
Результат.Вставить("КраткоеПредставлениеОшибки", "");
Результат.Вставить("Отказ", Ложь);
Результат.Вставить("Уровень", 0);
Результат.Вставить("Муниципальный", Неопределено);
Результат.Вставить("РегионЗагружен", Неопределено);
Результат.Вставить("Идентификатор", "");
Результат.Вставить("Представление", "");
Результат.Вставить("КраткоеПредставлениеОшибки", "");
Результат.Вставить("Отказ", Ложь);
Результат.Вставить("Уровень", 0);
Результат.Вставить("Муниципальный", Неопределено);
Результат.Вставить("ПредлагатьЗагрузкуКлассификатора", Ложь);
Возврат Результат;
КонецФункции
@@ -619,6 +619,19 @@
ПрисоединенныйФайл.Заполнить(Неопределено);
ПрисоединенныйФайл.Записать();
Если РаботаСФайламиСлужебныйВызовСервера.ЭтоСправочникФайлы(ВладелецФайлов) Тогда
СведенияОФайле = РаботаСФайламиКлиентСервер.СведенияОФайле("ФайлСВерсией");
СведенияОФайле.АдресВременногоХранилищаФайла = АдресФайлаВоВременномХранилище;
СведенияОФайле.АдресВременногоХранилищаТекста = АдресВременногоХранилищаТекста;
СведенияОФайле.ЗаписатьВИсторию = Истина;
СведенияОФайле.ИмяБезРасширения = ИмяБезРасширения;
СведенияОФайле.РасширениеБезТочки = ПрисоединенныйФайл.Расширение;
Версия = РаботаСФайламиСлужебный.СоздатьВерсию(ПрисоединенныйФайл.Ссылка, СведенияОФайле);
РаботаСФайламиСлужебный.ОбновитьВерсиюВФайле(ПрисоединенныйФайл.Ссылка, Версия, АдресВременногоХранилищаТекста);
КонецЕсли;
Исключение
ИнформацияОбОшибке = ИнформацияОбОшибке();
@@ -1946,7 +1946,8 @@
//
Процедура ОтключитьОбновлениеКлючейДоступа(Отключить, ПланироватьОбновление = Истина) Экспорт
Если Не УправлениеДоступомСлужебный.ОграничиватьДоступНаУровнеЗаписейУниверсально() Тогда
Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных()
Или Не УправлениеДоступомСлужебный.ОграничиватьДоступНаУровнеЗаписейУниверсально() Тогда
Возврат;
КонецЕсли;
@@ -578,7 +578,9 @@
ИдентификаторТранзакции = Новый УникальныйИдентификатор;
Если ДействующиеПараметры = Неопределено Тогда
ДействующиеПараметры = ДействующиеПараметрыОграниченияДоступа(ИдентификаторТранзакции,, Истина);
ОбщийКонтекст = ОбщийКонтекстРасчетаПараметровОграничения(Истина);
НовыеХранимыеПараметры = ХранимыеПараметрыОграниченияДоступа(ОбщийКонтекст);
ДействующиеПараметры = Новый Структура(НовыеХранимыеПараметры.ДляЗаписиОбъектовИПроверкиПрав.Получить());
КонецЕсли;
Для Каждого ОписаниеВерсии Из ДействующиеПараметры.ВерсииОграниченийСписков Цикл
@@ -742,7 +744,7 @@
Если Списки = Неопределено Тогда
Если ПараметрыПланирования.ВерсииОграниченийСписков = Неопределено Тогда
ДействующиеПараметры = ДействующиеПараметрыОграниченияДоступа(Неопределено);
ДействующиеПараметры = ДействующиеПараметрыОграниченияДоступа(Неопределено, Неопределено);
ВерсииОграниченийСписков = Новый Соответствие(ДействующиеПараметры.ВерсииОграниченийСписков);
Иначе
ВерсииОграниченийСписков = ПараметрыПланирования.ВерсииОграниченийСписков;
@@ -2009,7 +2011,7 @@
#Область УниверсальноеОграничение
Если УниверсальноеОграничение Тогда
ДействующиеПараметрыОграниченияДоступа(Неопределено, Истина);
ДействующиеПараметрыОграниченияДоступа(Неопределено, Неопределено, Истина);
Возврат;
КонецЕсли;
#КонецОбласти
@@ -8366,7 +8368,7 @@
Процедура ЗапланироватьОбновлениеПользователейКлючейДоступаДляВидаПользователей(Контекст, ДляВнешнихПользователей)
Если ЗначениеЗаполнено(Контекст.ПолноеИмя) Тогда
ДействующиеПараметры = ДействующиеПараметрыОграниченияДоступа(Контекст.ИдентификаторТранзакции);
ДействующиеПараметры = ДействующиеПараметрыОграниченияДоступа(Контекст.ИдентификаторТранзакции, Неопределено);
Если ДляВнешнихПользователей Тогда
ДополнительныйКонтекст = ДействующиеПараметры.ДополнительныйКонтекст.ДляВнешнихПользователей;
Иначе
@@ -8837,7 +8839,7 @@
ДатаПоследнегоЗаполненияВсехПараметровРаботыРасширений =
РегистрыСведений.ПараметрыРаботыВерсийРасширений.ДатаПоследнегоЗаполненияВсехПараметровРаботыРасширений();
ДействующиеПараметрыОграниченияДоступа(Неопределено);
ДействующиеПараметрыОграниченияДоступа(Неопределено, Неопределено);
ДатаСозданияПараметровОграниченияДоступа = ПараметрыСеанса.ПараметрыОграниченияДоступа.ДатаСоздания;
ИмяПараметра = "СтандартныеПодсистемы.УправлениеДоступом.ДатаПроверкиПараметровОграниченияДоступа";
@@ -8859,7 +8861,7 @@
Или ДатаОбновленияВсехПараметровРаботыПрограммы > ДатаАктуальностиПараметровОграниченияДоступа
Или ДатаПоследнегоЗаполненияВсехПараметровРаботыРасширений > ДатаАктуальностиПараметровОграниченияДоступа Тогда
ДействующиеПараметрыОграниченияДоступа(Неопределено, Ложь, Истина);
ДействующиеПараметрыОграниченияДоступа(Неопределено, Неопределено, Ложь, Истина);
КонецЕсли;
КонецПроцедуры
@@ -9195,7 +9197,7 @@
КонецЕсли;
КонецЕсли;
ДействующиеПараметры = ДействующиеПараметрыОграниченияДоступа(Неопределено);
ДействующиеПараметры = ДействующиеПараметрыОграниченияДоступа(Неопределено, Неопределено);
Для Каждого Строка Из Выгрузка Цикл
Если Не ЗначениеЗаполнено(Строка.ПоследняяДата) Тогда
Строка.ПоследняяДата = МаксимальнаяДата - 1;
@@ -13417,7 +13419,7 @@
ПраваНаСпискиВедущихКлючейДоступа = Новый Соответствие;
ПраваНаВедущиеКлючиДоступа = Новый Соответствие;
Если ПараметрыОбновления.ЕстьВедущиеКлючиДоступа Тогда
ДействующиеПараметры = ДействующиеПараметрыОграниченияДоступа(ПараметрыОбновления.ИдентификаторТранзакции);
ДействующиеПараметры = ДействующиеПараметрыОграниченияДоступа(ПараметрыОбновления.ИдентификаторТранзакции, Неопределено);
Если ПараметрыОбновления.ДляВнешнихПользователей Тогда
ДополнительныйКонтекст = ДействующиеПараметры.ДополнительныйКонтекст.ДляВнешнихПользователей;
Иначе
@@ -14907,7 +14909,7 @@
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
ДействующиеПараметры = ДействующиеПараметрыОграниченияДоступа(ИдентификаторТранзакции);
ДействующиеПараметры = ДействующиеПараметрыОграниченияДоступа(ИдентификаторТранзакции, Неопределено);
ХранимыеСвойстваСпискаКакВедущего = ДействующиеПараметры.ВедущиеСписки.Получить(ПолноеИмя);
Если ХранимыеСвойстваСпискаКакВедущего = Неопределено Тогда
@@ -15052,13 +15054,13 @@
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
ДействующиеПараметрыОграниченияДоступа(ИдентификаторТранзакции);
ДействующиеПараметрыОграниченияДоступа(ИдентификаторТранзакции, Неопределено);
Параметры = КэшПараметровОграничения().ОграниченияСписков.Получить(ПолноеИмя);
Если Параметры = Неопределено Тогда
ЗаполнитьПараметрыОграничения(ПолноеИмя, ИдентификаторТранзакции);
ЗаполнитьПараметрыОграничения(ПолноеИмя, ИдентификаторТранзакции, Ложь);
ДействующиеПараметрыОграниченияДоступа(ИдентификаторТранзакции);
ДействующиеПараметрыОграниченияДоступа(ИдентификаторТранзакции, Неопределено);
Параметры = КэшПараметровОграничения().ОграниченияСписков.Получить(ПолноеИмя);
КонецЕсли;
@@ -15075,8 +15077,8 @@
КонецФункции
// Для функций СвойстваСпискаКакВедущего, ПараметрыОграничения.
Процедура ЗаполнитьПараметрыОграничения(ПолноеИмя, ИдентификаторТранзакции, ДействующиеПараметрыОбновлены = Ложь,
ДобавляемыеОграниченияСписков = Неопределено, ОбщийКонтекст = Неопределено)
Процедура ЗаполнитьПараметрыОграничения(ПолноеИмя, ИдентификаторТранзакции, ДействующиеПараметрыОбновлены,
ДобавляемыеОграниченияСписков = Неопределено, ОбщийКонтекст = Неопределено, ПовторныйВызов = Ложь)
Если ОбщийКонтекст = Неопределено Тогда
ОбщийКонтекст = ОбщийКонтекстРасчетаПараметровОграничения();
@@ -15084,7 +15086,8 @@
КонецЕсли;
ПараметрыОграниченияСписков = Новый Соответствие;
ДействующиеПараметры = ДействующиеПараметрыОграниченияДоступа(ИдентификаторТранзакции);
ДействующиеПараметры = ДействующиеПараметрыОграниченияДоступа(ИдентификаторТранзакции, ОбщийКонтекст);
ПолноеИмяПриЗацикливании = "";
Если ТипЗнч(ПолноеИмя) = Тип("Массив") Тогда
Для Каждого ТекущееПолноеИмя Из ПолноеИмя Цикл
@@ -15092,8 +15095,12 @@
ДействующиеПараметры, ДействующиеПараметрыОбновлены, ИдентификаторТранзакции, ОбщийКонтекст);
Если ДействующиеПараметрыОбновлены Тогда
Если ПовторныйВызов Тогда
ПолноеИмяПриЗацикливании = ТекущееПолноеИмя;
Прервать;
КонецЕсли;
ЗаполнитьПараметрыОграничения(ПолноеИмя,
ИдентификаторТранзакции, Ложь, ДобавляемыеОграниченияСписков, ОбщийКонтекст);
ИдентификаторТранзакции, Ложь, ДобавляемыеОграниченияСписков, ОбщийКонтекст, Истина);
Возврат;
КонецЕсли;
КонецЦикла;
@@ -15102,12 +15109,23 @@
ДействующиеПараметры, ДействующиеПараметрыОбновлены, ИдентификаторТранзакции, ОбщийКонтекст);
Если ДействующиеПараметрыОбновлены Тогда
ЗаполнитьПараметрыОграничения(ПолноеИмя,
ИдентификаторТранзакции, Ложь, ДобавляемыеОграниченияСписков, ОбщийКонтекст);
Возврат;
Если ПовторныйВызов Тогда
ПолноеИмяПриЗацикливании = ПолноеИмя;
Иначе
ЗаполнитьПараметрыОграничения(ПолноеИмя,
ИдентификаторТранзакции, Ложь, ДобавляемыеОграниченияСписков, ОбщийКонтекст, Истина);
Возврат;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(ПолноеИмяПриЗацикливании) Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось обновить параметры ограничения доступа списка ""%1""
|из-за нестабильной строки свойств версии параметров для вычисления хеш-суммы.'"),
ПолноеИмяПриЗацикливании);
КонецЕсли;
Если ПараметрыОграниченияСписков.Количество() = 0 Тогда
Возврат;
КонецЕсли;
@@ -15183,7 +15201,7 @@
РассчитанныеПараметры = РассчитанныеПараметрыОграничения(ПолноеИмя, ОбщийКонтекст, ДействующиеПараметры);
Если ВерсияОграничений <> РассчитанныеПараметры.Версия Тогда
ДействующиеПараметры = ДействующиеПараметрыОграниченияДоступа(ИдентификаторТранзакции, , Истина);
ДействующиеПараметры = ДействующиеПараметрыОграниченияДоступа(ИдентификаторТранзакции, ОбщийКонтекст, , Истина);
ДействующиеПараметрыОбновлены = Истина;
Возврат;
КонецЕсли;
@@ -15478,7 +15496,7 @@
ОбщийКонтекст.Вставить("СпециальноеПолноеИмя", ПолноеИмя);
ОбщийКонтекст.Вставить("СпециальноеОписаниеОграничения", ОписаниеОграничения);
ОбщийКонтекст.Вставить("СпискиСОграничением", Новый ФиксированноеСоответствие(СпискиСОграничением));
НовыеХранимыеПараметры = ХранимыеПараметрыОграниченияДоступа(, ОбщийКонтекст);
НовыеХранимыеПараметры = ХранимыеПараметрыОграниченияДоступа(ОбщийКонтекст);
ДействующиеПараметры = Новый Структура(НовыеХранимыеПараметры.ДляЗаписиОбъектовИПроверкиПрав.Получить());
Если ДействующиеПараметры.ВерсииОграниченийСписков.Получить(ПолноеИмя) = Неопределено Тогда
Контекст.ВерсииОграниченийСписков.Вставить(ПолноеИмя, Истина);
@@ -15905,12 +15923,12 @@
// Для функций СвойстваСпискаКакВедущего, ПараметрыОграничения и процедур УстановкаПараметровСеанса,
// ЗаполнитьПараметрыОграничения, ДобавитьПараметрыОграниченияСписка.
//
Функция ДействующиеПараметрыОграниченияДоступа(ИдентификаторТранзакции,
Функция ДействующиеПараметрыОграниченияДоступа(ИдентификаторТранзакции, ОбщийКонтекст,
УстановкаПараметровСеансаДляШаблонов = Ложь, Обновить = Ложь, ЕстьИзменения = Ложь) Экспорт
Если Обновить Тогда
ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа(ЕстьИзменения);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции);
ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст, ЕстьИзменения);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст);
Возврат ПараметрыСеанса.ПараметрыОграниченияДоступа.Параметры;
КонецЕсли;
@@ -15973,10 +15991,10 @@
Если ЗначениеЗаполнено(ОписаниеВерсии.Версия) Тогда
ВерсияПараметров = ВерсияПараметров(ОписаниеВерсии.Версия, УстановкаПараметровСеансаДляШаблонов);
Иначе
ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа();
ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст);
КонецЕсли;
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст);
Возврат ПараметрыСеанса.ПараметрыОграниченияДоступа.Параметры;
@@ -16040,10 +16058,10 @@
КонецФункции
// Для функции ДействующиеПараметрыОграниченияДоступа.
Функция НоваяВерсияПараметровОграниченияДоступа(ЕстьИзменения = Ложь)
Функция НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст, ЕстьИзменения = Ложь)
ВерсииОграниченийСписков = Новый Соответствие;
ХранимыеПараметры = ХранимыеПараметрыОграниченияДоступа(ВерсииОграниченийСписков);
ХранимыеПараметры = ХранимыеПараметрыОграниченияДоступа(ОбщийКонтекст, ВерсииОграниченийСписков);
ВерсииОграниченийСписков.Вставить("Справочник.НаборыГруппДоступа", "1");
НаборЗаписей = СлужебныйНаборЗаписей(РегистрыСведений.ПараметрыОграниченияДоступа);
@@ -16222,7 +16240,7 @@
КонецПроцедуры
// Для функции ДействующиеПараметрыОграниченияДоступа.
Процедура УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ПовторныйВызов = Ложь)
Процедура УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст, ПовторныйВызов = Ложь)
Если Не ПовторныйВызов Тогда
ОбновитьПовторноИспользуемыеЗначения();
@@ -16240,8 +16258,8 @@
Или Не ДляЗаписиОбъектовИПроверкиПрав.Свойство("ВерсияСтруктурыКэша")
Или ДляЗаписиОбъектовИПроверкиПрав.ВерсияСтруктурыКэша <> ВерсияСтруктурыКэша() Тогда
ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа();
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, Истина);
ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст, Истина);
Возврат;
КонецЕсли;
Иначе
@@ -16257,8 +16275,8 @@
ХранилищеДляШаблоновОграниченияДоступа.Получить());
Если ДляШаблоновОграниченияДоступа.ВерсияСтруктурыКэша <> ВерсияСтруктурыКэша() Тогда
ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа();
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, Истина);
ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст, Истина);
Возврат;
КонецЕсли;
Иначе
@@ -16377,11 +16395,12 @@
КонецПроцедуры
// Для функции НоваяВерсияПараметровОграниченияДоступа.
Функция ХранимыеПараметрыОграниченияДоступа(ВерсииОграниченийСписков = Неопределено, ОбщийКонтекст = Неопределено)
Функция ХранимыеПараметрыОграниченияДоступа(ОбщийКонтекст, ВерсииОграниченийСписков = Неопределено)
Если ОбщийКонтекст = Неопределено Тогда
ОбщийКонтекст = ОбщийКонтекстРасчетаПараметровОграничения();
Иначе
ИначеЕсли ОбщийКонтекст.Свойство("СпециальноеПолноеИмя") Тогда
СпециальноеПолноеИмя = ОбщийКонтекст.СпециальноеПолноеИмя;
СпециальноеОписаниеОграничения = ОбщийКонтекст.СпециальноеОписаниеОграничения;
КонецЕсли;
@@ -16680,6 +16699,8 @@
СвойстваСписковПоУровням.Добавить(СвойстваСписков);
КонецЦикла;
ОбщийКонтекстСпискиСОграничением = Контекст.ОбщийКонтекст.СпискиСОграничением;
Для Каждого СвойстваСписков Из СвойстваСписковПоУровням Цикл
Для Каждого СвойстваСписка Из СвойстваСписков Цикл
@@ -16705,7 +16726,7 @@
ВсеВедущиеСпискиСОграничением = Истина;
Для Каждого Ведущий Из СвойстваСписка.Ведущие Цикл
Если СпискиСОграничением.Получить(Ведущий) = Неопределено
Если ОбщийКонтекстСпискиСОграничением.Получить(Ведущий) = Неопределено
Или СпискиСОтключеннымОграничением.Получить(Ведущий) <> Неопределено Тогда
ВсеВедущиеСпискиСОграничением = Ложь;
Прервать;
@@ -16912,6 +16933,9 @@
Для Каждого ВедущийСписок Из СвойстваЗависимогоСписка.Ведущие Цикл
СвойстваВедущегоСписка = СвойстваСписков.Получить(ВедущийСписок);
Если СвойстваВедущегоСписка.Параметры.ДоступЗапрещен Тогда
Продолжить;
КонецЕсли;
Если Не СвойстваВедущегоСписка.Зависимый Тогда
Если ЗависимыйСписокСОптимизацией Тогда
СвойстваВедущегоСписка.ЕстьЗависимыеСпискиБезЗаписиКлючейДоступа = Истина;
@@ -19135,6 +19159,14 @@
Продолжить;
КонецЕсли;
Если Родитель.Узел = "ЧтениеСпискаРазрешено"
Или Родитель.Узел = "ИзменениеСпискаРазрешено" Тогда
Свойства.ТипыСохраненияТипов.Добавить(Тип);
Свойства.ЕстьТипВедущегоСписка = Истина;
Продолжить;
КонецЕсли;
Если Контекст.СпискиСЗаписьюКлючейДляЗависимыхСписковБезКлючей <> Неопределено
И Не Контекст.ИспользуетсяОграничениеПоВладельцу
И ( Контекст.СпискиСОграничением.Получить(ИмяТипа) = Неопределено
@@ -19158,15 +19190,8 @@
Продолжить;
КонецЕсли;
Если Родитель.Узел = "ЧтениеСпискаРазрешено"
Или Родитель.Узел = "ИзменениеСпискаРазрешено" Тогда
Свойства.ТипыСохраненияТипов.Добавить(Тип);
Свойства.ЕстьТипВедущегоСписка = Истина;
Иначе
Свойства.ТипыСохраненияКлючейДоступа.Добавить(Тип);
Контекст.ВедущиеСпискиПоКлючамДоступа.Вставить(ИмяТипа, Истина);
КонецЕсли;
Свойства.ТипыСохраненияКлючейДоступа.Добавить(Тип);
Контекст.ВедущиеСпискиПоКлючамДоступа.Вставить(ИмяТипа, Истина);
КонецЦикла;
Возврат;
@@ -27949,7 +27974,7 @@
Функция ИдентификаторыСписковСОграничением(ДействующиеПараметры)
ДействующиеПараметры = ДействующиеПараметрыОграниченияДоступа(Неопределено);
ДействующиеПараметры = ДействующиеПараметрыОграниченияДоступа(Неопределено, Неопределено);
Списки = Новый Массив;
Для Каждого ОписаниеВерсии Из ДействующиеПараметры.ВерсииОграниченийСписков Цикл
@@ -266,7 +266,7 @@
#Область СлужебныеПроцедурыИФункции
Функция ТипКонтактнойИнформацииВСтроку(Знач ТипКонтактнойИнформации)
Функция ТипКонтактнойИнформацииВСтроку(Знач ТипКонтактнойИнформации) Экспорт
Результат = Новый Соответствие;
Результат.Вставить(ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Адрес"), "Адрес");
Результат.Вставить(ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Телефон"), "Телефон");
@@ -18,6 +18,12 @@
И ПараметрыОтправки.ДополнительныеПараметры.Свойство("ВидСообщения") Тогда
ПараметрыШаблона.ТипШаблона = ПараметрыОтправки.ДополнительныеПараметры.ВидСообщения;
КонецЕсли;
Иначе
Если ПараметрыОтправки.Шаблон.ПредназначенДляSMS Тогда
ПараметрыОтправки.ДополнительныеПараметры.Вставить("ВидСообщения", "СообщениеSMS");
Иначе
ПараметрыОтправки.ДополнительныеПараметры.Вставить("ВидСообщения", "ЭлектроннаяПочта");
КонецЕсли;
КонецЕсли;
МенеджерОбъекта = Неопределено;
@@ -472,12 +478,16 @@
КонецЦикла;
Сообщение = ВнешнийОбъект.СформироватьСообщениеПоШаблону(Значения);
СтандартнаяОбработка = Ложь;
Получатели = ВнешнийОбъект.СтруктураДанныхПолучатели(Значения, СтандартнаяОбработка);
Если ТипЗнч(Сообщение) = Тип("Структура") И Сообщение.Свойство("СтруктураВложений") Тогда
// Обратная совместимость
Если ТипЗнч(Сообщение) = Тип("Структура") И ПараметрыОтправки.ДополнительныеПараметры.ВидСообщения = "СообщениеSMS" Тогда
СформированноеСообщение.Текст = Сообщение.ТекстСообщенияSMS;
ИначеЕсли ТипЗнч(Сообщение) = Тип("Структура") И Сообщение.Свойство("СтруктураВложений") Тогда
СформированноеСообщение.Текст = Сообщение.ТекстПисьмаHTML;
СформированноеСообщение.Тема = Сообщение.ТемаПисьма;
СформированноеСообщение.Тема = Сообщение.ТемаПисьма;
Для каждого Вложение Из Сообщение.СтруктураВложений Цикл
НовоеВложение = СформированноеСообщение.Вложения.Добавить();
НовоеВложение.АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(Вложение.Значение.ПолучитьДвоичныеДанные(), ПараметрыОтправки.УникальныйИдентификатор);
@@ -485,14 +495,17 @@
НовоеВложение.Представление = Вложение.Ключ;
КонецЦикла;
Для каждого Получатель Из Получатели Цикл
СформированноеСообщение.Получатель.Добавить(Получатель.Адрес, Получатель.Представление);
КонецЦикла;
КонецЕсли;
СтандартнаяОбработка = Ложь;
Получатели = ВнешнийОбъект.СтруктураДанныхПолучатели(Значения, СтандартнаяОбработка);
Для каждого Получатель Из Получатели Цикл
СформированноеСообщение.Получатель.Добавить(Получатель.Адрес, Получатель.Представление);
КонецЦикла;
Возврат СформированноеСообщение;
КонецЕсли
КонецЕсли;
КонецФункции
+9 -9
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="32d0eafc-e2e1-4248-b37a-f2c4dae50c8b">
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="5c788dd0-9a2e-48d8-a522-48929a8c2833">
<name>БиблиотекаСтандартныхПодсистем</name>
<synonym>
<key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.0</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="56874753-aff1-49c2-85ef-b31e4bc3804b"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="37621782-1ef3-438c-917b-ff326a3bf621"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="c864a4a8-a326-4ec2-bf30-b659467f43af"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="c0e188f8-bf96-42e5-8f4f-fc7f39e28e4b"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="61480384-2ff3-498e-a1ff-bcaa4d7c316a"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="587bd6d4-0bcd-4474-b2ef-5f7f370f55d8"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="42b1a529-de56-4901-aad2-a7dc463deeb3"/>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="b2488d95-36ad-49ac-9a12-b4762dd38d75"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="eb5f3315-cf47-4ad3-9d1e-14ebcdc54b50"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="24802fe8-ef4c-4f57-8116-4ec5e39020a9"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="e0e84b49-cc85-476f-ab3d-bdedcbc1f95d"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="e579b7a0-5910-427f-bbde-51ca50cda951"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="88bdade3-62c4-4611-b2b0-cec65e65b648"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="fafba2bf-c8c4-4fff-b0c7-c2217370f3cb"/>
<defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor>
<version>3.0.1.245</version>
<version>3.0.1.252</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities>
@@ -1 +1 @@
{6,1,1,fed11e9f-25c5-445d-b505-f120870eab1b,1,325806fa-df5c-47a2-b377-86f48fe39b5a,"3.0.1.245","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5875,1,0,32d0eafc-e2e1-4248-b37a-f2c4dae50c8b,32d0eafc-e2e1-4248-b37a-f2c4dae50c8b,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,c27472ee-879a-4746-9d21-122738ec80b7,c27472ee-879a-4746-9d21-122738ec80b7,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,83192b3e-e7a9-4595-8887-24cda84457a9,83192b3e-e7a9-4595-8887-24cda84457a9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,1,0,08eeb8f1-944f-4450-83f6-ef20aaab7d86,08eeb8f1-944f-4450-83f6-ef20aaab7d86,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,1,0,2fd12dba-5311-4f31-949c-f6b15decc0cc,2fd12dba-5311-4f31-949c-f6b15decc0cc,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,35895e12-52b6-49a1-acdf-6d828a948af0,35895e12-52b6-49a1-acdf-6d828a948af0,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8Line truncated
{6,1,1,29fff4d4-99ba-4e21-a500-13cc03c4d804,1,a182fa1e-c54d-407f-808c-c5505f7e82a4,"3.0.1.252","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5875,1,0,5c788dd0-9a2e-48d8-a522-48929a8c2833,5c788dd0-9a2e-48d8-a522-48929a8c2833,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,c27472ee-879a-4746-9d21-122738ec80b7,c27472ee-879a-4746-9d21-122738ec80b7,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,83192b3e-e7a9-4595-8887-24cda84457a9,83192b3e-e7a9-4595-8887-24cda84457a9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,1,0,08eeb8f1-944f-4450-83f6-ef20aaab7d86,08eeb8f1-944f-4450-83f6-ef20aaab7d86,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,1,0,2fd12dba-5311-4f31-949c-f6b15decc0cc,2fd12dba-5311-4f31-949c-f6b15decc0cc,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,35895e12-52b6-49a1-acdf-6d828a948af0,35895e12-52b6-49a1-acdf-6d828a948af0,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8Line truncated
@@ -161,6 +161,7 @@
КомпонентыОбмена.XMLСхема = ОбменДаннымиXDTOСервер.ФорматОбмена(ИмяПланаОбмена, КомпонентыОбмена.ВерсияФорматаОбмена);
Если Не КомпонентыОбмена.ТолькоНастройкиXDTO Тогда
КомпонентыОбмена.МенеджерОбмена = ОбменДаннымиXDTOСервер.МенеджерОбменаВерсииФормата(
КомпонентыОбмена.ВерсияФорматаОбмена, КомпонентыОбмена.УзелКорреспондента);
@@ -173,6 +174,10 @@
ОбменДаннымиXDTOСервер.ЗаполнитьСтруктуруНастроекXDTO(КомпонентыОбмена);
ОбменДаннымиXDTOСервер.ЗаполнитьПоддерживаемыеОбъектыXDTO(КомпонентыОбмена);
Иначе
ОбменДаннымиXDTOСервер.ЗаполнитьСтруктуруНастроекXDTO(КомпонентыОбмена);
КонецЕсли;
#КонецОбласти
@@ -22,6 +22,7 @@
ТаблицаНастройки.Колонки.Добавить("КраткаяИнформацияПоОбмену", Новый ОписаниеТипов("Строка"));
ТаблицаНастройки.Колонки.Добавить("ЭтоПланОбменаРаспределеннойИнформационнойБазы", Новый ОписаниеТипов("Булево"));
ТаблицаНастройки.Колонки.Добавить("ЭтоПланОбменаXDTO", Новый ОписаниеТипов("Булево"));
ТаблицаНастройки.Колонки.Добавить("ИмяПланаОбменаДляПереходаНаНовыйОбмен", Новый ОписаниеТипов("Строка"));
СписокПлановОбмена = Новый Массив;
@@ -45,9 +46,10 @@
Продолжить;
КонецЕсли;
ВозможныеНастройкиОбмена = ОбменДаннымиСервер.ЗначениеНастройкиПланаОбмена(ИмяПланаОбмена, "ВариантыНастроекОбмена");
НастройкиОбмена = ОбменДаннымиСервер.ЗначениеНастройкиПланаОбмена(ИмяПланаОбмена,
"ВариантыНастроекОбмена, ИмяПланаОбменаДляПереходаНаНовыйОбмен");
Для Каждого ВариантНастройки Из ВозможныеНастройкиОбмена Цикл
Для Каждого ВариантНастройки Из НастройкиОбмена.ВариантыНастроекОбмена Цикл
ПредопределеннаяНастройка = ВариантНастройки.ИдентификаторНастройки;
ЗначенияНастроекДляВарианта = ОбменДаннымиСервер.ЗначениеНастройкиПланаОбмена(ИмяПланаОбмена,
@@ -71,11 +73,54 @@
СтрокаНастройки.ЭтоПланОбменаРаспределеннойИнформационнойБазы =
ОбменДаннымиПовтИсп.ЭтоПланОбменаРаспределеннойИнформационнойБазы(ИмяПланаОбмена);
СтрокаНастройки.ЭтоПланОбменаXDTO = ОбменДаннымиПовтИсп.ЭтоПланОбменаXDTO(ИмяПланаОбмена);
СтрокаНастройки.ИмяПланаОбменаДляПереходаНаНовыйОбмен = НастройкиОбмена.ИмяПланаОбменаДляПереходаНаНовыйОбмен;
КонецЦикла;
КонецЦикла;
// Удаляем устаревшие варианты настройки обмена.
Если МодельСервиса Тогда
ПланыОбменаXDTO = Новый Массив;
УстаревшиеНастройки = Новый Массив;
Для Каждого СтрокаНастройки Из ТаблицаНастройки Цикл
Если СтрокаНастройки.ЭтоПланОбменаXDTO Тогда
Если ПланыОбменаXDTO.Найти(СтрокаНастройки.ИмяПланаОбмена) = Неопределено Тогда
ПланыОбменаXDTO.Добавить(СтрокаНастройки.ИмяПланаОбмена);
КонецЕсли;
Продолжить;
КонецЕсли;
Если Не ЗначениеЗаполнено(СтрокаНастройки.ИмяПланаОбменаДляПереходаНаНовыйОбмен) Тогда
Продолжить;
КонецЕсли;
УстаревшиеНастройки.Добавить(СтрокаНастройки);
КонецЦикла;
ТаблицаНастройкиXDTO = ТаблицаНастройки.Скопировать(Новый Структура("ЭтоПланОбменаXDTO", Истина));
НастройкиДляУдаления = Новый Массив;
Для Каждого СтрокаНастройки Из УстаревшиеНастройки Цикл
Для Каждого ПланОбменаXDTO Из ПланыОбменаXDTO Цикл
ВариантНастройки = ОбменДаннымиСервер.ВариантНастройкиОбменаДляКорреспондента(
ПланОбменаXDTO, СтрокаНастройки.ИмяКонфигурацииКорреспондента);
Если Не ЗначениеЗаполнено(ВариантНастройки) Тогда
Продолжить;
КонецЕсли;
НастройкиXDTO = ТаблицаНастройкиXDTO.НайтиСтроки(Новый Структура("ИдентификаторНастройки", ВариантНастройки));
Если НастройкиXDTO.Количество() > 0 Тогда
НастройкиДляУдаления.Добавить(СтрокаНастройки);
Прервать;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Для Сч = 1 По НастройкиДляУдаления.Количество() Цикл
ТаблицаНастройки.Удалить(НастройкиДляУдаления[Сч - 1]);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
// Для внутреннего использования.
@@ -608,7 +608,14 @@
Модифицированность = Истина;
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
НаселенныйПунктУстановитьПоляАдреса(НаселенныйПунктДетально, ВыбранноеЗначение);
Если ЕстьПравоЗагружатьКлассификатор И ВыбранноеЗначение.ПредлагатьЗагрузкуКлассификатора = Истина Тогда
// Предлагаем загрузить классификатор.
ПредложениеЗагрузкиКлассификатора(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Данные для ""%1"" не загружены.'"), ВыбранноеЗначение.Представление),
ВыбранноеЗначение.Представление);
Иначе
НаселенныйПунктУстановитьПоляАдреса(НаселенныйПунктДетально, ВыбранноеЗначение);
КонецЕсли;
КонецЕсли;
ОбработкаИзмененияАдреса();
@@ -3144,12 +3151,14 @@
ТипПомещения = НаселенныйПунктДетально.Apartments[0].Type;
КонецЕсли;
Помещение = НаселенныйПунктДетально.Apartments[0].Number;
Помещение = НаселенныйПунктДетально.Apartments[0].Number;
Иначе
Помещение = "";
КонецЕсли;
ОтобразитьДополнительныеЗдания();
Если ЗначениеЗаполнено(Комментарий) Тогда
Элементы.ОсновныеСтраницы.ОтображениеСтраниц = ОтображениеСтраницФормы.ЗакладкиСверху;
Элементы.СтраницаКомментарий.Картинка = ОбщегоНазначенияКлиентСервер.КартинкаКомментария(Комментарий);
@@ -705,10 +705,6 @@
</attributes>
<attributes>
<name>Регион</name>
<title>
<key>ru</key>
<value>Субъект РФ</value>
</title>
<id>7</id>
<valueType>
<types>String</types>
@@ -904,6 +900,40 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ЕстьПравоЗагружатьКлассификатор</name>
<title>
<key>ru</key>
<value>Есть право загружать классификатор</value>
</title>
<id>19</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>КлассификаторДоступен</name>
<title>
<key>ru</key>
<value>Классификатор доступен</value>
</title>
<id>20</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>КомандаОК</name>
<title>
@@ -52,6 +52,10 @@
ТипАдреса = "Муниципальный";
КонецЕсли;
ЕстьПравоЗагружатьКлассификатор = Обработки.РасширенныйВводКонтактнойИнформации.ЕстьВозможностьИзмененияАдресногоКлассификатора();
СведенияОАдресномКлассификаторе = УправлениеКонтактнойИнформациейСлужебныйПовтИсп.СведенияОДоступностиАдресногоКлассификатора();
КлассификаторДоступен = СведенияОАдресномКлассификаторе["КлассификаторДоступен"];
Если ОбщегоНазначенияКлиентСервер.ЭтоМобильныйКлиент() Тогда // Временное решение для работы в мобильном клиенте, будет удалено в следующих версиях
ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Авто;
@@ -434,23 +438,76 @@
СведенияОбАдресе = Новый Структура();
СведенияОбАдресе.Вставить("Муниципальный", РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(ТипАдреса));
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
Если ВыбранноеЗначение.Отказ Или ПустаяСтрока(ВыбранноеЗначение.Идентификатор) Тогда
Возврат;
КонецЕсли;
Идентификатор = ВыбранноеЗначение.Идентификатор;
Иначе
Идентификатор = ВыбранноеЗначение;
КонецЕсли;
СведенияОбАдресе.Вставить("Идентификатор", Идентификатор);
СведенияОбАдресе.Вставить("Идентификатор", ВыбранноеЗначение.Идентификатор);
СтандартнаяОбработка = Ложь;
НаселенныйПунктДетально = НаселенныйПунктДетальноПоИдентификатору(СведенияОбАдресе);
ОпределитьПоляАдреса();
Элемент.ОбновитьТекстРедактирования();
Если ЕстьПравоЗагружатьКлассификатор И Не КлассификаторДоступен И ВыбранноеЗначение.ПредлагатьЗагрузкуКлассификатора Тогда
// Предлагаем загрузить классификатор.
ПредложениеЗагрузкиКлассификатора(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Данные для ""%1"" не загружены.'"), ВыбранноеЗначение.Представление),
ВыбранноеЗначение.Представление);
КонецЕсли;
КонецПроцедуры
// Предлагает загрузить адресный классификатор.
//
// Параметры:
// Текст - Строка - Дополнительный текст предложения.
// Регион - Число, Строка - Код или название региона для загрузки.
//
&НаКлиенте
Процедура ПредложениеЗагрузкиКлассификатора(Знач Текст = "", Знач Регион = Неопределено)
Если Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
Возврат;
КонецЕсли;
НеЗагружатьАдресныйКлассификатор = ПараметрыПриложения.Получить("АдресныйКлассификатор.НеЗагружатьКлассификатор");
Если НеЗагружатьАдресныйКлассификатор = Неопределено ИЛИ НеЗагружатьАдресныйКлассификатор = Ложь Тогда
ТипПараметраРегиона = ТипЗнч(Регион);
ПараметрыФормы = Новый Структура;
ПараметрыЗагрузки = Новый Структура;
ПараметрыФормы.Вставить("ТекстПредупреждения", Текст);
Если ТипПараметраРегиона = Тип("Число") Тогда
ПараметрыЗагрузки.Вставить("КодРегионаДляЗагрузки", Регион);
ИначеЕсли ТипПараметраРегиона = Тип("Строка") Тогда
ПараметрыЗагрузки.Вставить("НазваниеРегиона", Регион);
ПараметрыФормы.Вставить("НазваниеРегиона", Регион);
КонецЕсли;
Оповещение = Новый ОписаниеОповещения("ПредложениеЗагрузкиКлассификатораЗавершение", ЭтотОбъект, ПараметрыЗагрузки);
ОткрытьФорму("Обработка.РасширенныйВводКонтактнойИнформации.Форма.ЗагрузкаАдресногоКлассификатора", ПараметрыФормы, ЭтотОбъект,,,, Оповещение, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПредложениеЗагрузкиКлассификатораЗавершение(Знач РезультатВопроса, Знач ДополнительныеПараметры) Экспорт
Если РезультатВопроса <> КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
ЗагрузитьАдресныйКлассификатор(ДополнительныеПараметры);
КонецПроцедуры
// Загружает адресный классификатор.
//
&НаКлиенте
Процедура ЗагрузитьАдресныйКлассификатор(Знач ДополнительныеПараметры = Неопределено)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
МодульАдресныйКлассификаторКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("АдресныйКлассификаторКлиент");
МодульАдресныйКлассификаторКлиент.ЗагрузитьАдресныйКлассификатор(ДополнительныеПараметры);
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
@@ -47,6 +47,13 @@
КонецЕсли;
// Конец СтандартныеПодсистемы.ДатыЗапретаИзменения
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры
&НаКлиенте
@@ -60,6 +60,14 @@
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом
КонецПроцедуры
&НаКлиенте
@@ -2367,6 +2367,10 @@
<event>OnOpen</event>
<name>ПриОткрытии</name>
</handlers>
<handlers>
<event>OnReopen</event>
<name>ПриПовторномОткрытии</name>
</handlers>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
@@ -3081,6 +3085,18 @@
<currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<parameters>
<name>ПоказатьПрогрессПоОтдельнымСпискам</name>
<valueType>
<types>Boolean</types>
</valueType>
</parameters>
<parameters>
<name>ВыключитьАвтообновлениеПрогресса</name>
<valueType>
<types>Boolean</types>
</valueType>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
@@ -18,7 +18,7 @@
НавигационнаяСсылка = "e1cib/app/РегистрСведений.ОбновлениеКлючейДоступаКДанным.Форма.ОбновлениеДоступаНаУровнеЗаписей";
ПериодОбновленияПрогресса = 3;
АвтообновлениеПрогресса = Истина;
АвтообновлениеПрогресса = Не Параметры.ВыключитьАвтообновлениеПрогресса;
ПоляСортировки.Добавить("Список", "Возр");
Если Не УправлениеДоступом.ОграничиватьДоступНаУровнеЗаписей() Тогда
@@ -31,15 +31,26 @@
Элементы.ВключитьРегламентноеЗадание.Доступность = Ложь;
КонецЕсли;
Если Параметры.ПоказатьПрогрессПоОтдельнымСпискам Тогда
Элементы.КраткоПодробно.Показать();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПриПовторномОткрытии();
КонецПроцедуры
&НаКлиенте
Процедура ПриПовторномОткрытии()
ОбновитьСостояниеЗаданияОбновленияДоступа();
ОбновитьСостояниеЗаданияОбновленияДоступаЧерезТриСекунды();
НачатьОбновлениеПрогресса();
НачатьОбновлениеПрогресса(Истина);
КонецПроцедуры
@@ -11,7 +11,7 @@
Если Не СтандартныеПодсистемыСервер.ВерсияПрограммыОбновленаДинамически() Тогда
СпискиСОграничением = УправлениеДоступомСлужебныйПовтИсп.СпискиСОграничением();
Иначе
СпискиСОграничением = УправлениеДоступомСлужебный.ДействующиеПараметрыОграниченияДоступа(Неопределено);
СпискиСОграничением = УправлениеДоступомСлужебный.ДействующиеПараметрыОграниченияДоступа(Неопределено, Неопределено);
КонецЕсли;
Списки = Новый Массив;
@@ -15,7 +15,7 @@
КонецЕсли;
УправлениеДоступомСлужебный.ДействующиеПараметрыОграниченияДоступа(Неопределено,
Ложь, Истина, ЕстьИзменения);
Неопределено, Ложь, Истина, ЕстьИзменения);
КонецПроцедуры
@@ -1247,93 +1247,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>Constant.РежимИспользованияИнформационнойБазы</name>
<right>
@@ -2462,6 +2375,93 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>InformationRegister.НастройкиОтправителя</name>
<right>
@@ -14,6 +14,13 @@
<value>true</value>
</right>
</object>
<object>
<name>Catalog.РассылкиОтчетов.Command.СобытияРассылки</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
@@ -45,13 +52,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Catalog.РассылкиОтчетов.Command.СобытияРассылки</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Catalog.РассылкиОтчетов.Command.ВыполнитьСейчас</name>
<right>
@@ -1672,45 +1672,6 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>Constant.РежимИспользованияИнформационнойБазы</name>
<right>
@@ -3252,6 +3213,45 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>InformationRegister.НастройкиОтправителя</name>
<right>