2_4_2_164

This commit is contained in:
Компания 1С committed 2017-11-23 00:19:00 +03:00
1 parent 5a5e75c7ad
commit ea835989f1
341 files changed
+4695 -71298

No files matched your search

@@ -8,6 +8,8 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Элементы.Валюты.РежимВыбора = Параметры.РежимВыбора;
ДатаКурса = НачалоДня(ТекущаяДатаСеанса()); ДатаКурса = НачалоДня(ТекущаяДатаСеанса());
Список.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("ДатаКурса", ДатаКурса); Список.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("ДатаКурса", ДатаКурса);
@@ -23,16 +25,18 @@
Элементы.ФормаЗагрузитьКурсыВалют.Видимость = Ложь; Элементы.ФормаЗагрузитьКурсыВалют.Видимость = Ложь;
КонецЕсли; КонецЕсли;
ДоступнаЗагрузкаКурсов = Метаданные.Обработки.Найти("ЗагрузкаКурсовВалют") <> Неопределено; ДоступноИзменениеВалют = ПравоДоступа("Изменение", Метаданные.РегистрыСведений.КурсыВалют);
ДоступнаЗагрузкаКурсов = Метаданные.Обработки.Найти("ЗагрузкаКурсовВалют") <> Неопределено И ДоступноИзменениеВалют;
Элементы.ФормаПодборИзКлассификатора.Видимость = ДоступнаЗагрузкаКурсов; Элементы.ФормаПодборИзКлассификатора.Видимость = ДоступнаЗагрузкаКурсов;
Элементы.ФормаЗагрузитьКурсыВалют.Видимость = ДоступнаЗагрузкаКурсов;
Если Не ДоступнаЗагрузкаКурсов Тогда Если Не ДоступнаЗагрузкаКурсов Тогда
Если ДоступноИзменениеВалют Тогда
Элементы.СоздатьВалюту.Заголовок = НСтр("ru = 'Создать'"); Элементы.СоздатьВалюту.Заголовок = НСтр("ru = 'Создать'");
КонецЕсли;
Элементы.Создать.Вид = ВидГруппыФормы.ГруппаКнопок; Элементы.Создать.Вид = ВидГруппыФормы.ГруппаКнопок;
КонецЕсли; КонецЕсли;
Элементы.ФормаЗагрузитьКурсыВалют.Видимость = ДоступнаЗагрузкаКурсов;
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
@@ -122,6 +122,7 @@
ОписаниеОповещения = Новый ОписаниеОповещения("ПриИзмененииПараметровПрописиВалюты", ЭтотОбъект); ОписаниеОповещения = Новый ОписаниеОповещения("ПриИзмененииПараметровПрописиВалюты", ЭтотОбъект);
Если ЕстьФормаПрописей Тогда Если ЕстьФормаПрописей Тогда
ПараметрыОткрытия = Новый Структура; ПараметрыОткрытия = Новый Структура;
ПараметрыОткрытия.Вставить("ТолькоПросмотр", ТолькоПросмотр);
ПараметрыОткрытия.Вставить("ПараметрыПрописи", Объект.ПараметрыПрописи); ПараметрыОткрытия.Вставить("ПараметрыПрописи", Объект.ПараметрыПрописи);
ИмяФормыРедактированияПрописей = "Обработка.ЗагрузкаКурсовВалют.Форма.ПараметрыПрописиВалюты"; ИмяФормыРедактированияПрописей = "Обработка.ЗагрузкаКурсовВалют.Форма.ПараметрыПрописиВалюты";
ОткрытьФорму(ИмяФормыРедактированияПрописей, ПараметрыОткрытия, ЭтотОбъект, , , , ОписаниеОповещения); ОткрытьФорму(ИмяФормыРедактированияПрописей, ПараметрыОткрытия, ЭтотОбъект, , , , ОписаниеОповещения);
@@ -44,7 +44,7 @@
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь; СтандартнаяОбработка = Ложь;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(ВыбраннаяСтрока.Владелец, ВыбраннаяСтрока, УникальныйИдентификатор); ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(ВладелецФайла(ВыбраннаяСтрока), ВыбраннаяСтрока, УникальныйИдентификатор);
РаботаСФайламиСлужебныйКлиент.ОткрытьВерсиюФайла(Неопределено, ДанныеФайла, УникальныйИдентификатор); РаботаСФайламиСлужебныйКлиент.ОткрытьВерсиюФайла(Неопределено, ДанныеФайла, УникальныйИдентификатор);
КонецПроцедуры КонецПроцедуры
@@ -68,3 +68,12 @@
КонецПроцедуры КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервереБезКонтекста
Функция ВладелецФайла(ВыбраннаяСтрока)
Возврат ВыбраннаяСтрока.Владелец;
КонецФункции
#КонецОбласти
@@ -1077,6 +1077,23 @@
</edit> </edit>
<savedData>true</savedData> <savedData>true</savedData>
</attributes> </attributes>
<attributes>
<name>ДоступныДополнительныеНастройкиАдреса</name>
<title>
<key>ru</key>
<value>Доступны дополнительные настройки адреса</value>
</title>
<id>3</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands> <formCommands>
<name>ДополнительныеНастройкиАдреса</name> <name>ДополнительныеНастройкиАдреса</name>
<title> <title>
@@ -37,11 +37,11 @@
Элементы.ХранитьИсториюИзменений.Доступность = Ложь; Элементы.ХранитьИсториюИзменений.Доступность = Ложь;
КонецЕсли; КонецЕсли;
Если Объект.Тип <> Перечисления.ТипыКонтактнойИнформации.Адрес
ИЛИ СсылкаРодителя.Пустая()
ИЛИ СсылкаРодителя.Уровень() > 0 Тогда
Элементы.ГруппаХранитьИсториюИзменений.Видимость = Ложь; Элементы.ГруппаХранитьИсториюИзменений.Видимость = Ложь;
Иначе
Если Объект.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес
ИЛИ НЕ СсылкаРодителя.Пустая()
ИЛИ СсылкаРодителя.Уровень() = 0 Тогда
ТабличнаяЧасть = Неопределено; ТабличнаяЧасть = Неопределено;
Если СтрНачинаетсяС(СсылкаРодителя.ИмяПредопределенныхДанных, "Справочник") Тогда Если СтрНачинаетсяС(СсылкаРодителя.ИмяПредопределенныхДанных, "Справочник") Тогда
ИмяОбъекта = Сред(СсылкаРодителя.ИмяПредопределенныхДанных, 11); ИмяОбъекта = Сред(СсылкаРодителя.ИмяПредопределенныхДанных, 11);
@@ -69,6 +69,9 @@
Элементы.ДополнительныеНастройкиАдреса.Видимость = Ложь; Элементы.ДополнительныеНастройкиАдреса.Видимость = Ложь;
КонецЕсли; КонецЕсли;
ДоступныДополнительныеНастройкиАдреса = (Метаданные.Обработки.Найти("РасширенныйВводКонтактнойИнформации") <> Неопределено
И Метаданные.Обработки["РасширенныйВводКонтактнойИнформации"].Формы.Найти("НастройкиАдреса") <> Неопределено);
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
@@ -192,7 +195,7 @@
Если Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Адрес") Тогда Если Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Адрес") Тогда
Элементы.Проверки.ТекущаяСтраница = Элементы.Проверки.ПодчиненныеЭлементы.Адрес; Элементы.Проверки.ТекущаяСтраница = Элементы.Проверки.ПодчиненныеЭлементы.Адрес;
Элементы.РедактированиеТолькоВДиалоге.Доступность = Объект.МожноИзменятьСпособРедактирования; Элементы.РедактированиеТолькоВДиалоге.Доступность = Объект.МожноИзменятьСпособРедактирования;
Элементы.ДополнительныеНастройкиАдреса.Видимость = Истина; Элементы.ДополнительныеНастройкиАдреса.Видимость = ДоступныДополнительныеНастройкиАдреса;
Иначе Иначе
Элементы.ДополнительныеНастройкиАдреса.Видимость = Ложь; Элементы.ДополнительныеНастройкиАдреса.Видимость = Ложь;
Если Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты") Тогда Если Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты") Тогда
@@ -219,17 +222,23 @@
&НаКлиенте &НаКлиенте
Процедура ИзменитьРеквизитыПриИзмененииТипа() Процедура ИзменитьРеквизитыПриИзмененииТипа()
Если Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Адрес") Тогда Если Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Адрес") Тогда
Элементы.ХранитьИсториюИзменений.Доступность = Истина;
Иначе
ИначеЕсли Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты") Тогда Объект.ХранитьИсториюИзменений = Ложь;
Элементы.ХранитьИсториюИзменений.Доступность = Ложь;
Если Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты") Тогда
Объект.РедактированиеТолькоВДиалоге = Ложь; Объект.РедактированиеТолькоВДиалоге = Ложь;
ИначеЕсли Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Телефон") ИначеЕсли Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Телефон")
Или Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Факс") Тогда Или Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Факс") Тогда
// Нет изменений // Нет изменений
Иначе Иначе
Объект.РедактированиеТолькоВДиалоге = Ложь; Объект.РедактированиеТолькоВДиалоге = Ложь;
КонецЕсли; КонецЕсли;
КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -124,11 +124,11 @@
Если Не ПользователиСлужебныйПовтИсп.Настройки().ОбщиеНастройкиВхода Тогда Если Не ПользователиСлужебныйПовтИсп.Настройки().ОбщиеНастройкиВхода Тогда
Элементы.ГруппаИзменитьОграничение.Видимость = Ложь; Элементы.ГруппаИзменитьОграничение.Видимость = Ложь;
Элементы.ПотребоватьСменуПароляПриВходе.Видимость = Ложь;
Иначе
Элементы.ПотребоватьСменуПароляПриВходе.РасширеннаяПодсказка.Заголовок = ПодсказкаПотребоватьСменуПароляПриВходе();
КонецЕсли; КонецЕсли;
Элементы.ПотребоватьСменуПароляПриВходе.РасширеннаяПодсказка.Заголовок =
ПользователиСлужебный.ПодсказкаПотребоватьСменуПароляПриВходе(Истина);
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
@@ -966,34 +966,6 @@
КонецПроцедуры КонецПроцедуры
&НаСервере
Функция ПодсказкаПотребоватьСменуПароляПриВходе()
ЭтоПолноправныйПользователь = Пользователи.ЭтоПолноправныйПользователь(, Ложь);
Подсказка = Новый Массив;
Подсказка.Добавить(НСтр("ru = 'Требования к длине и сложности пароля задаются отдельно.'"));
Подсказка.Добавить(Символы.ПС);
Подсказка.Добавить(НСтр("ru = 'См.'"));
Подсказка.Добавить(" ");
Ссылка = НСтр("ru = 'Настройки входа внешних пользователей'");
Если ЭтоПолноправныйПользователь Тогда
Ссылка = Новый ФорматированнаяСтрока(Ссылка,,,, "НастройкиВходаПользователей");
КонецЕсли;
Подсказка.Добавить(Ссылка);
Если ЭтоПолноправныйПользователь
И Метаданные.Подсистемы.Найти("Администрирование") <> Неопределено Тогда
Подсказка.Добавить(" ");
Подсказка.Добавить(НСтр("ru = 'в разделе Администрирование,
|пункт Настройки прав и пользователей.'"));
Иначе
Подсказка.Добавить(".");
КонецЕсли;
Возврат Новый ФорматированнаяСтрока(Подсказка);
КонецФункции
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Поддержка дополнительных реквизитов. // Поддержка дополнительных реквизитов.
@@ -1351,6 +1323,7 @@
Элементы.ПользовательИБАутентификацияOpenID.ТолькоПросмотр = Не УровеньДоступа.НастройкиДляВхода; Элементы.ПользовательИБАутентификацияOpenID.ТолькоПросмотр = Не УровеньДоступа.НастройкиДляВхода;
Элементы.УстановитьРолиНепосредственно.ТолькоПросмотр = Не УровеньДоступа.НастройкиДляВхода; Элементы.УстановитьРолиНепосредственно.ТолькоПросмотр = Не УровеньДоступа.НастройкиДляВхода;
Элементы.ПотребоватьСменуПароляПриВходе.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком;
Элементы.ПользовательИБЗапрещеноИзменятьПароль.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком; Элементы.ПользовательИБЗапрещеноИзменятьПароль.ТолькоПросмотр = Не УровеньДоступа.УправлениеСписком;
Элементы.СменитьПароль.Доступность = Элементы.СменитьПароль.Доступность =
@@ -59,11 +59,12 @@
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.Текст = Запрос.Текст =
"ВЫБРАТЬ "ВЫБРАТЬ
| ГруппыДоступа.Ссылка | ГруппыДоступа.Ссылка КАК Ссылка
|ИЗ |ИЗ
| Справочник.ГруппыДоступа КАК ГруппыДоступа | Справочник.ГруппыДоступа КАК ГруппыДоступа
|ГДЕ |ГДЕ
| ГруппыДоступа.Профиль.ПометкаУдаления | ГруппыДоступа.Профиль <> ЗНАЧЕНИЕ(Справочник.ПрофилиГруппДоступа.Администратор)
| И ГруппыДоступа.Профиль.ПометкаУдаления
| И НЕ ГруппыДоступа.ПометкаУдаления | И НЕ ГруппыДоступа.ПометкаУдаления
| И НЕ ГруппыДоступа.Предопределенный"; | И НЕ ГруппыДоступа.Предопределенный";
@@ -72,7 +73,11 @@
Пока Выборка.Следующий() Цикл Пока Выборка.Следующий() Цикл
ГруппаДоступаОбъект = Выборка.Ссылка.ПолучитьОбъект(); ГруппаДоступаОбъект = Выборка.Ссылка.ПолучитьОбъект();
ГруппаДоступаОбъект.ПометкаУдаления = Истина; ГруппаДоступаОбъект.ПометкаУдаления = Истина;
ГруппаДоступаОбъект.Записать(); ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ГруппаДоступаОбъект);
РегистрыСведений.ТаблицыГруппДоступа.ОбновитьДанныеРегистра(Выборка.Ссылка);
РегистрыСведений.ЗначенияГруппДоступа.ОбновитьДанныеРегистра(Выборка.Ссылка);
ПользователиДляОбновления = ПользователиДляОбновленияРолей(Неопределено, ГруппаДоступаОбъект);
УправлениеДоступом.ОбновитьРолиПользователей(ПользователиДляОбновления);
ЕстьИзменения = Истина; ЕстьИзменения = Истина;
КонецЦикла; КонецЦикла;
@@ -181,12 +186,16 @@
КонецЕсли; КонецЕсли;
Если ГруппаДоступа.Модифицированность() Тогда Если ГруппаДоступа.Модифицированность() Тогда
Если Не ОбновлениеИнформационнойБазы.ВыполняетсяОбновлениеИнформационнойБазы() Тогда
ЗаблокироватьДанныеДляРедактирования(ГруппаДоступа.Ссылка, ГруппаДоступа.ВерсияДанных); ЗаблокироватьДанныеДляРедактирования(ГруппаДоступа.Ссылка, ГруппаДоступа.ВерсияДанных);
КонецЕсли;
ГруппаДоступа.ДополнительныеСвойства.Вставить("НеОбновлятьРолиПользователей"); ГруппаДоступа.ДополнительныеСвойства.Вставить("НеОбновлятьРолиПользователей");
ГруппаДоступа.Записать(); ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ГруппаДоступа);
ГруппаДоступаОбновлена = Истина; ГруппаДоступаОбновлена = Истина;
Если Не ОбновлениеИнформационнойБазы.ВыполняетсяОбновлениеИнформационнойБазы() Тогда
РазблокироватьДанныеДляРедактирования(ГруппаДоступа.Ссылка); РазблокироватьДанныеДляРедактирования(ГруппаДоступа.Ссылка);
КонецЕсли; КонецЕсли;
КонецЕсли;
КонецЦикла; КонецЦикла;
Возврат ГруппаДоступаОбновлена; Возврат ГруппаДоступаОбновлена;
@@ -235,6 +244,232 @@
КонецФункции КонецФункции
Функция ИзменилисьВидыИлиЗначенияДоступа(СтарыеЗначения, ТекущийОбъект) Экспорт
Если СтарыеЗначения.Ссылка <> ТекущийОбъект.Ссылка Тогда
Возврат Истина;
КонецЕсли;
ВидыДоступа = СтарыеЗначения.ВидыДоступа.Выгрузить();
ЗначенияДоступа = СтарыеЗначения.ЗначенияДоступа.Выгрузить();
Если ВидыДоступа.Количество() <> ТекущийОбъект.ВидыДоступа.Количество()
Или ЗначенияДоступа.Количество() <> ТекущийОбъект.ЗначенияДоступа.Количество() Тогда
Возврат Истина;
КонецЕсли;
Отбор = Новый Структура("ВидДоступа, ВсеРазрешены");
Для Каждого Строка Из ТекущийОбъект.ВидыДоступа Цикл
ЗаполнитьЗначенияСвойств(Отбор, Строка);
Если ВидыДоступа.НайтиСтроки(Отбор).Количество() = 0 Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Отбор = Новый Структура("ВидДоступа, ЗначениеДоступа");
Для Каждого Строка Из ТекущийОбъект.ЗначенияДоступа Цикл
ЗаполнитьЗначенияСвойств(Отбор, Строка);
Если ЗначенияДоступа.НайтиСтроки(Отбор).Количество() = 0 Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецФункции
Функция ПользователиДляОбновленияРолей(СтарыеЗначения, ЭлементДанных) Экспорт
Если СтарыеЗначения = Неопределено Тогда
СтарыеЗначения = Новый Структура("Ссылка, Профиль, ПометкаУдаления")
КонецЕсли;
// Обновление ролей для добавленных, оставшихся и удаленных пользователей.
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("НовыеУчастники", ?(ТипЗнч(ЭлементДанных) <> Тип("УдалениеОбъекта"),
ЭлементДанных.Пользователи.ВыгрузитьКолонку("Пользователь"), Новый Массив));
Запрос.УстановитьПараметр("СтарыеУчастники", ?(ЭлементДанных.Ссылка = СтарыеЗначения.Ссылка,
СтарыеЗначения.Пользователи.Выгрузить().ВыгрузитьКолонку("Пользователь"), Новый Массив));
Если ТипЗнч(ЭлементДанных) = Тип("УдалениеОбъекта")
Или ЭлементДанных.Профиль <> СтарыеЗначения.Профиль
Или ЭлементДанных.ПометкаУдаления <> СтарыеЗначения.ПометкаУдаления Тогда
// Выбор всех новых и старых участников группы доступа.
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| СоставыГруппПользователей.Пользователь КАК Пользователь
|ИЗ
| РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
|ГДЕ
| (СоставыГруппПользователей.ГруппаПользователей В (&СтарыеУчастники)
| ИЛИ СоставыГруппПользователей.ГруппаПользователей В (&НовыеУчастники))";
Иначе
// Выбор изменений участников группы доступа.
Запрос.Текст =
"ВЫБРАТЬ
| Данные.Пользователь КАК Пользователь
|ИЗ
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| СоставыГруппПользователей.Пользователь КАК Пользователь,
| -1 КАК ВидИзмененияСтроки
| ИЗ
| РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
| ГДЕ
| СоставыГруппПользователей.ГруппаПользователей В(&СтарыеУчастники)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| СоставыГруппПользователей.Пользователь,
| 1
| ИЗ
| РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
| ГДЕ
| СоставыГруппПользователей.ГруппаПользователей В(&НовыеУчастники)) КАК Данные
|
|СГРУППИРОВАТЬ ПО
| Данные.Пользователь
|
|ИМЕЮЩИЕ
| СУММА(Данные.ВидИзмененияСтроки) <> 0";
КонецЕсли;
Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Пользователь");
КонецФункции
Функция ПользователиДляОбновленияРолейПоПрофилю(Профили) Экспорт
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Профили", Профили);
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| СоставыГруппПользователей.Пользователь КАК Пользователь
|ИЗ
| РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи
| ПО СоставыГруппПользователей.ГруппаПользователей = ГруппыДоступаПользователи.Пользователь
| И (ГруппыДоступаПользователи.Ссылка.Профиль В (&Профили))";
Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Пользователь");
КонецФункции
Функция ГруппыДоступаПрофиля(Профили) Экспорт
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Профили", Профили);
Запрос.Текст =
"ВЫБРАТЬ
| ГруппыДоступа.Ссылка КАК Ссылка
|ИЗ
| Справочник.ГруппыДоступа КАК ГруппыДоступа
|ГДЕ
| ГруппыДоступа.Профиль В(&Профили)
| И НЕ ГруппыДоступа.ЭтоГруппа";
РезультатЗапроса = Запрос.Выполнить();
Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
КонецФункции
Процедура ЗарегистрироватьСсылки(ВидСсылок, ДобавляемыеСсылки) Экспорт
Если ОбщегоНазначения.РазделениеВключено() Тогда
Возврат;
КонецЕсли;
СвойстваВидаСсылок = СвойстваВидаСсылок(ВидСсылок);
УстановитьПривилегированныйРежим(Истина);
Ссылки = СтандартныеПодсистемыСервер.ПараметрРаботыПрограммы(
СвойстваВидаСсылок.ИмяПараметраРаботыПрограммы);
УстановитьПривилегированныйРежим(Ложь);
Если ТипЗнч(Ссылки) <> Тип("Массив") Тогда
Ссылки = Новый Массив;
КонецЕсли;
ЕстьИзменения = Ложь;
Если ДобавляемыеСсылки = Null Тогда
Если Ссылки.Количество() > 0 Тогда
Ссылки = Новый Массив;
ЕстьИзменения = Истина;
КонецЕсли;
ИначеЕсли Ссылки.Количество() = 1
И Ссылки[0] = Неопределено Тогда
Возврат; // Ранее было добавлено более 300 ссылок.
Иначе
Если ТипЗнч(ДобавляемыеСсылки) <> Тип("Массив") Тогда
ДобавляемыеСсылки = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ДобавляемыеСсылки);
КонецЕсли;
Для Каждого ДобавляемаяСсылка Из ДобавляемыеСсылки Цикл
Если Ссылки.Найти(ДобавляемаяСсылка) <> Неопределено Тогда
Продолжить;
КонецЕсли;
Ссылки.Добавить(ДобавляемаяСсылка);
ЕстьИзменения = Истина;
КонецЦикла;
Если Ссылки.Количество() > 300 Тогда
Ссылки = Новый Массив;
Ссылки.Добавить(Неопределено);
ЕстьИзменения = Истина;
КонецЕсли;
КонецЕсли;
Если Не ЕстьИзменения Тогда
Возврат;
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыПрограммы(
СвойстваВидаСсылок.ИмяПараметраРаботыПрограммы, Ссылки);
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
Функция ЗарегистрированныеСсылки(ВидСсылок) Экспорт
Если ОбщегоНазначения.РазделениеВключено() Тогда
Возврат Новый Массив;
КонецЕсли;
СвойстваВидаСсылок = СвойстваВидаСсылок(ВидСсылок);
УстановитьПривилегированныйРежим(Истина);
Ссылки = СтандартныеПодсистемыСервер.ПараметрРаботыПрограммы(
СвойстваВидаСсылок.ИмяПараметраРаботыПрограммы);
УстановитьПривилегированныйРежим(Ложь);
Если ТипЗнч(Ссылки) <> Тип("Массив") Тогда
Ссылки = Новый Массив;
КонецЕсли;
Если Ссылки.Количество() = 1
И Ссылки[0] = Неопределено Тогда
Возврат Ссылки;
КонецЕсли;
ПроверенныеСсылки = Новый Массив;
Для Каждого Ссылка Из Ссылки Цикл
Если СвойстваВидаСсылок.ДопустимыеТипы.СодержитТип(ТипЗнч(Ссылка)) Тогда
ПроверенныеСсылки.Добавить(Ссылка);
КонецЕсли;
КонецЦикла;
Возврат ПроверенныеСсылки;
КонецФункции
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Процедуры и функции для поддержки обмена данными в РИБ. // Процедуры и функции для поддержки обмена данными в РИБ.
@@ -297,6 +532,174 @@
КонецПроцедуры КонецПроцедуры
// Только для внутреннего использования.
Процедура ЗарегистрироватьГруппуДоступаИзмененнуюПриЗагрузке(ЭлементДанных) Экспорт
СтарыеЗначения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЭлементДанных.Ссылка,
"Ссылка, Профиль, ПометкаУдаления, Пользователи, ВидыДоступа, ЗначенияДоступа");
ТребуетсяРегистрация = Ложь;
ГруппаДоступа = ЭлементДанных.Ссылка;
Если ТипЗнч(ЭлементДанных) = Тип("УдалениеОбъекта") Тогда
ТребуетсяРегистрация = Истина;
ИначеЕсли СтарыеЗначения.Ссылка <> ЭлементДанных.Ссылка Тогда
ТребуетсяРегистрация = Истина;
ГруппаДоступа = ПользователиСлужебный.СсылкаОбъекта(ЭлементДанных);
ИначеЕсли ЭлементДанных.ПометкаУдаления <> СтарыеЗначения.ПометкаУдаления
Или ЭлементДанных.Профиль <> СтарыеЗначения.Профиль Тогда
ТребуетсяРегистрация = Истина;
Иначе
НаличиеУчастников = ЭлементДанных.Пользователи.Количество() <> 0;
СтароеНаличиеУчастников = Не СтарыеЗначения.Пользователи.Пустой();
Если НаличиеУчастников <> СтароеНаличиеУчастников
Или ИзменилисьВидыИлиЗначенияДоступа(СтарыеЗначения, ЭлементДанных) Тогда
ТребуетсяРегистрация = Истина;
КонецЕсли;
КонецЕсли;
Если ТребуетсяРегистрация Тогда
ЗарегистрироватьСсылки("ГруппыДоступа", ГруппаДоступа);
КонецЕсли;
ПользователиДляОбновления = ПользователиДляОбновленияРолей(СтарыеЗначения, ЭлементДанных);
ЗарегистрироватьСсылки("Пользователи", ПользователиДляОбновления);
КонецПроцедуры
// Только для внутреннего использования.
Процедура ОбновитьВспомогательныеДанныеГруппДоступаИзмененныхПриЗагрузке() Экспорт
Если ОбщегоНазначения.РазделениеВключено() Тогда
// Изменения групп доступа в АРМ заблокированы и не загружаются в область данных.
Возврат;
КонецЕсли;
ИзмененныеГруппыДоступа = ЗарегистрированныеСсылки("ГруппыДоступа");
Если ИзмененныеГруппыДоступа.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Если ИзмененныеГруппыДоступа.Количество() = 1
И ИзмененныеГруппыДоступа[0] = Неопределено Тогда
РегистрыСведений.ТаблицыГруппДоступа.ОбновитьДанныеРегистра();
РегистрыСведений.ЗначенияГруппДоступа.ОбновитьДанныеРегистра();
Иначе
РегистрыСведений.ТаблицыГруппДоступа.ОбновитьДанныеРегистра(ИзмененныеГруппыДоступа);
РегистрыСведений.ЗначенияГруппДоступа.ОбновитьДанныеРегистра(ИзмененныеГруппыДоступа);
КонецЕсли;
ЗарегистрироватьСсылки("ГруппыДоступа", Null);
КонецПроцедуры
// Только для внутреннего использования.
Процедура ЗарегистрироватьПользователейГруппыПользователейИзмененнойПриЗагрузке(ЭлементДанных) Экспорт
СтарыеЗначения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЭлементДанных.Ссылка,
"Ссылка, ПометкаУдаления, Состав");
ИмяРеквизита = ?(ТипЗнч(ЭлементДанных.Ссылка) = Тип("СправочникСсылка.ГруппыВнешнихПользователей"),
"ВнешнийПользователь", "Пользователь");
Если СтарыеЗначения.Ссылка = ЭлементДанных.Ссылка Тогда
СтарыеПользователи = СтарыеЗначения.Состав.Выгрузить().ВыгрузитьКолонку(ИмяРеквизита);
Иначе
СтарыеПользователи = Новый Массив;
КонецЕсли;
Если ТипЗнч(ЭлементДанных) = Тип("УдалениеОбъекта") Тогда
ПользователиДляОбновления = СтарыеПользователи;
Иначе
НовыеПользователи = ЭлементДанных.Состав.ВыгрузитьКолонку(ИмяРеквизита);
Если СтарыеЗначения.Ссылка <> ЭлементДанных.Ссылка Тогда
ПользователиДляОбновления = НовыеПользователи;
Иначе
ПользователиДляОбновления = Новый Массив;
Все = ЭлементДанных.ПометкаУдаления <> СтарыеЗначения.ПометкаУдаления;
Для Каждого Пользователь Из СтарыеПользователи Цикл
Если Все Или НовыеПользователи.Найти(Пользователь) = Неопределено Тогда
ПользователиДляОбновления.Добавить(Пользователь);
КонецЕсли;
КонецЦикла;
Для Каждого Пользователь Из НовыеПользователи Цикл
Если Все Или СтарыеПользователи.Найти(Пользователь) = Неопределено Тогда
ПользователиДляОбновления.Добавить(Пользователь);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
ЗарегистрироватьСсылки("Пользователи", ПользователиДляОбновления);
КонецПроцедуры
// Только для внутреннего использования.
Процедура ЗарегистрироватьПользователяИзмененногоПриЗагрузке(ЭлементДанных) Экспорт
СтарыеЗначения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЭлементДанных.Ссылка,
"Ссылка, ПометкаУдаления, Недействителен");
ТребуетсяРегистрация = Ложь;
Пользователь = ЭлементДанных.Ссылка;
Если ТипЗнч(ЭлементДанных) = Тип("УдалениеОбъекта") Тогда
ТребуетсяРегистрация = Истина;
ИначеЕсли СтарыеЗначения.Ссылка <> ЭлементДанных.Ссылка Тогда
ТребуетсяРегистрация = Истина;
Пользователь = ПользователиСлужебный.СсылкаОбъекта(ЭлементДанных);
ИначеЕсли ЭлементДанных.Недействителен <> СтарыеЗначения.Недействителен
Или ЭлементДанных.ПометкаУдаления <> СтарыеЗначения.ПометкаУдаления Тогда
ТребуетсяРегистрация = Истина;
КонецЕсли;
Если Не ТребуетсяРегистрация Тогда
Возврат;
КонецЕсли;
ЗарегистрироватьСсылки("Пользователи", Пользователь);
КонецПроцедуры
// Только для внутреннего использования.
Процедура ОбновитьРолиПользователейИзмененныхПриЗагрузке() Экспорт
Если ОбщегоНазначения.РазделениеВключено() Тогда
// Изменения профилей в АРМ заблокированы и не загружаются в область данных.
Возврат;
КонецЕсли;
ИзмененныеПользователи = ЗарегистрированныеСсылки("Пользователи");
Если ИзмененныеПользователи.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Если ИзмененныеПользователи.Количество() = 1
И ИзмененныеПользователи[0] = Неопределено Тогда
УправлениеДоступом.ОбновитьРолиПользователей();
Иначе
УправлениеДоступом.ОбновитьРолиПользователей(ИзмененныеПользователи);
КонецЕсли;
ЗарегистрироватьСсылки("Пользователи", Null);
КонецПроцедуры
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Обновление информационной базы. // Обновление информационной базы.
@@ -310,6 +713,118 @@
КонецПроцедуры КонецПроцедуры
Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ГруппыДоступа.Ссылка КАК Ссылка
|ИЗ
| Справочник.ГруппыДоступа КАК ГруппыДоступа";
ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры,
Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
КонецПроцедуры
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
ОбработкаЗавершена = Истина;
Выборка = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.ГруппыДоступа");
ОбъектовОбработано = 0;
ПроблемныхОбъектов = 0;
Пока Выборка.Следующий() Цикл
Попытка
РегистрыСведений.ТаблицыГруппДоступа.ОбновитьДанныеРегистра(Выборка.Ссылка);
Исключение
ПроблемныхОбъектов = ПроблемныхОбъектов + 1;
ИнформацияОбОшибке = ИнформацияОбОшибке();
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось обновить таблицы группы доступа ""%1"" по причине:
|%2'"),
Строка(Выборка.Ссылка),
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Предупреждение, , , ТекстСообщения);
Продолжить;
КонецПопытки;
Попытка
РегистрыСведений.ЗначенияГруппДоступа.ОбновитьДанныеРегистра(Выборка.Ссылка);
Исключение
ПроблемныхОбъектов = ПроблемныхОбъектов + 1;
ИнформацияОбОшибке = ИнформацияОбОшибке();
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось обновить значения доступа группы доступа ""%1"" по причине:
|%2'"),
Строка(Выборка.Ссылка),
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Предупреждение, , , ТекстСообщения);
Продолжить;
КонецПопытки;
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Выборка.Ссылка);
ОбъектовОбработано = ОбъектовОбработано + 1;
КонецЦикла;
Если Не ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.ГруппыДоступа") Тогда
ОбработкаЗавершена = Ложь;
КонецЕсли;
Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Процедуре Справочники.ГруппыДоступа.ОбработатьДанныеДляПереходаНаНовуюВерсию не удалось
|обновить вспомогательные данные некоторых групп доступа (пропущены): %1'"),
ПроблемныхОбъектов);
ВызватьИсключение ТекстСообщения;
Иначе
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Информация,
Метаданные.НайтиПоПолномуИмени("Справочник.ГруппыДоступа"),,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Процедура Справочники.ГруппыДоступа.ОбработатьДанныеДляПереходаНаНовуюВерсию
|обработала очередную порцию групп доступа: %1'"),
ОбъектовОбработано));
КонецЕсли;
Параметры.ОбработкаЗавершена = ОбработкаЗавершена;
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
// Вспомогательные процедуры и функции.
// Для функции ЗарегистрированныеСсылки и процедуры ЗарегистрироватьСсылки.
Функция СвойстваВидаСсылок(ВидСсылок)
Если ВидСсылок = "Профили" Тогда
ДопустимыеТипы = Новый ОписаниеТипов("СправочникСсылка.ПрофилиГруппДоступа");
ИмяПараметраРаботыПрограммы = "СтандартныеПодсистемы.УправлениеДоступом.ПрофилиИзмененныеПриЗагрузке";
ИначеЕсли ВидСсылок = "ГруппыДоступа" Тогда
ДопустимыеТипы = Новый ОписаниеТипов("СправочникСсылка.ГруппыДоступа");
ИмяПараметраРаботыПрограммы = "СтандартныеПодсистемы.УправлениеДоступом.ГруппыДоступаИзмененныеПриЗагрузке";
ИначеЕсли ВидСсылок = "Пользователи" Тогда
ДопустимыеТипы = Новый ОписаниеТипов("СправочникСсылка.Пользователи,СправочникСсылка.ВнешниеПользователи");
ИмяПараметраРаботыПрограммы = "СтандартныеПодсистемы.УправлениеДоступом.ПользователиИзмененныеПриЗагрузке";
Иначе
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Недопустимое значение ""%1"" параметра ВидСсылок функции СвойстваВидаСсылок.'"),
ВидСсылок);
КонецЕсли;
Возврат Новый Структура("ДопустимыеТипы, ИмяПараметраРаботыПрограммы", ДопустимыеТипы, ИмяПараметраРаботыПрограммы);
КонецФункции
#КонецОбласти #КонецОбласти
#КонецЕсли #КонецЕсли
@@ -2,14 +2,8 @@
#Область ОписаниеПеременных #Область ОписаниеПеременных
Перем СтарыйПрофиль; // Профиль группы доступа до изменения Перем СтарыеЗначения; // Значения некоторых реквизитов и табличных частей группы доступа
// для использования в обработчике события ПриЗаписи. // до ее изменения для использования в обработчике события ПриЗаписи.
Перем СтараяПометкаУдаления; // Пометка удаления группы доступа до изменения
// для использования в обработчике события ПриЗаписи.
Перем СтарыеУчастники; // Участники группы доступа до изменения
// для использования в обработчике события ПриЗаписи.
#КонецОбласти #КонецОбласти
@@ -28,20 +22,8 @@
СтандартныеПодсистемыСервер.ПроверитьДинамическоеОбновлениеВерсииПрограммы(); СтандартныеПодсистемыСервер.ПроверитьДинамическоеОбновлениеВерсииПрограммы();
РегистрыСведений.ПраваРолей.ПроверитьДанныеРегистра(); РегистрыСведений.ПраваРолей.ПроверитьДанныеРегистра();
Если НЕ ДополнительныеСвойства.Свойство("НеОбновлятьРолиПользователей") Тогда СтарыеЗначения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка,
Если ЗначениеЗаполнено(Ссылка) Тогда "Ссылка, Профиль, ПометкаУдаления, Пользователи, ВидыДоступа, ЗначенияДоступа");
СтараяТаблицаПользователи = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Пользователи");
СтарыеУчастники = СтараяТаблицаПользователи.Выгрузить().ВыгрузитьКолонку("Пользователь");
Иначе
СтарыеУчастники = Новый Массив;
КонецЕсли;
КонецЕсли;
СтарыеЗначения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
Ссылка, "Профиль, ПометкаУдаления");
СтарыйПрофиль = СтарыеЗначения.Профиль;
СтараяПометкаУдаления = СтарыеЗначения.ПометкаУдаления;
Если Ссылка = Справочники.ГруппыДоступа.Администраторы Тогда Если Ссылка = Справочники.ГруппыДоступа.Администраторы Тогда
@@ -83,7 +65,7 @@
|у предопределенной группы доступа Администраторы.'"); |у предопределенной группы доступа Администраторы.'");
КонецЕсли; КонецЕсли;
Если НЕ ЭтоГруппа Тогда Если Не ЭтоГруппа Тогда
// Автоматическая установка реквизитов для персональной группы доступа. // Автоматическая установка реквизитов для персональной группы доступа.
Если ЗначениеЗаполнено(Пользователь) Тогда Если ЗначениеЗаполнено(Пользователь) Тогда
@@ -97,7 +79,7 @@
// При снятии пометки удаления с группы доступа выполняется // При снятии пометки удаления с группы доступа выполняется
// снятие пометки удаления с профиля этой группы доступа. // снятие пометки удаления с профиля этой группы доступа.
Если НЕ ПометкаУдаления И СтараяПометкаУдаления = Истина Тогда Если Не ПометкаУдаления И СтарыеЗначения.ПометкаУдаления = Истина Тогда
ПометкаУдаленияПрофиля = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Профиль, "ПометкаУдаления"); ПометкаУдаленияПрофиля = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Профиль, "ПометкаУдаления");
ПометкаУдаленияПрофиля = ?(ПометкаУдаленияПрофиля = Неопределено, Ложь, ПометкаУдаленияПрофиля); ПометкаУдаленияПрофиля = ?(ПометкаУдаленияПрофиля = Неопределено, Ложь, ПометкаУдаленияПрофиля);
Если ПометкаУдаленияПрофиля Тогда Если ПометкаУдаленияПрофиля Тогда
@@ -126,35 +108,30 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Если НЕ ДополнительныеСвойства.Свойство("НеОбновлятьРолиПользователей") Тогда Если Не ДополнительныеСвойства.Свойство("НеОбновлятьРолиПользователей") Тогда
ОбновитьРолиПользователейПриИзмененииГруппыДоступа();
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
СеансЗапущенБезРазделителей = МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей();
Иначе
СеансЗапущенБезРазделителей = Истина;
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.РазделениеВключено() НаличиеУчастников = Пользователи.Количество() <> 0;
И Ссылка = Справочники.ГруппыДоступа.Администраторы СтароеНаличиеУчастников = СтарыеЗначения.Ссылка = Ссылка И Не СтарыеЗначения.Пользователи.Пустой();
И НЕ СеансЗапущенБезРазделителей
И ДополнительныеСвойства.Свойство("ПарольПользователяСервиса") Тогда
ПарольПользователяСервиса = ДополнительныеСвойства.ПарольПользователяСервиса; Если Профиль <> СтарыеЗначения.Профиль
Иначе Или ПометкаУдаления <> СтарыеЗначения.ПометкаУдаления
ПарольПользователяСервиса = Неопределено; Или НаличиеУчастников <> СтароеНаличиеУчастников Тогда
КонецЕсли;
ОбновитьРолиПользователейПриИзмененииГруппыДоступа(ПарольПользователяСервиса);
КонецЕсли;
Если Профиль <> СтарыйПрофиль
ИЛИ ПометкаУдаления <> СтараяПометкаУдаления Тогда
РегистрыСведений.ТаблицыГруппДоступа.ОбновитьДанныеРегистра(Ссылка); РегистрыСведений.ТаблицыГруппДоступа.ОбновитьДанныеРегистра(Ссылка);
КонецЕсли; КонецЕсли;
Если Справочники.ГруппыДоступа.ИзменилисьВидыИлиЗначенияДоступа(СтарыеЗначения, ЭтотОбъект)
Или ПометкаУдаления <> СтарыеЗначения.ПометкаУдаления
Или НаличиеУчастников <> СтароеНаличиеУчастников Тогда
РегистрыСведений.ЗначенияГруппДоступа.ОбновитьДанныеРегистра(Ссылка); РегистрыСведений.ЗначенияГруппДоступа.ОбновитьДанныеРегистра(Ссылка);
КонецЕсли;
Справочники.ПрофилиГруппДоступа.ОбновитьВспомогательныеДанныеПрофилейИзмененныхПриЗагрузке();
Справочники.ГруппыДоступа.ОбновитьВспомогательныеДанныеГруппДоступаИзмененныхПриЗагрузке();
Справочники.ГруппыДоступа.ОбновитьРолиПользователейИзмененныхПриЗагрузке();
КонецПроцедуры КонецПроцедуры
@@ -167,79 +144,38 @@
КонецПроцедуры КонецПроцедуры
//////////////////////////////////////////////////////////////////////////////// #КонецОбласти
// Вспомогательные процедуры и функции.
Процедура ОбновитьРолиПользователейПриИзмененииГруппыДоступа(ПарольПользователяСервиса) #Область СлужебныеПроцедурыИФункции
Процедура ОбновитьРолиПользователейПриИзмененииГруппыДоступа()
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
СеансЗапущенБезРазделителей = МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей();
Иначе
СеансЗапущенБезРазделителей = Истина;
КонецЕсли;
Если ОбщегоНазначения.РазделениеВключено()
И Ссылка = Справочники.ГруппыДоступа.Администраторы
И Не СеансЗапущенБезРазделителей
И ДополнительныеСвойства.Свойство("ПарольПользователяСервиса") Тогда
ПарольПользователяСервиса = ДополнительныеСвойства.ПарольПользователяСервиса;
Иначе
ПарольПользователяСервиса = Неопределено;
КонецЕсли;
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
// Обновление ролей для добавленных, оставшихся и удаленных пользователей. ПользователиДляОбновления =
Запрос = Новый Запрос; Справочники.ГруппыДоступа.ПользователиДляОбновленияРолей(СтарыеЗначения, ЭтотОбъект);
Запрос.УстановитьПараметр("ГруппаДоступа", Ссылка);
Запрос.УстановитьПараметр("СтарыеУчастники", СтарыеУчастники);
Если Профиль <> СтарыйПрофиль
ИЛИ ПометкаУдаления <> СтараяПометкаУдаления Тогда
// Выбор всех новых и старых участников группы доступа.
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| Данные.Пользователь
|ИЗ
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| СоставыГруппПользователей.Пользователь КАК Пользователь
| ИЗ
| РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
| ГДЕ
| СоставыГруппПользователей.ГруппаПользователей В(&СтарыеУчастники)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| СоставыГруппПользователей.Пользователь
| ИЗ
| Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
| ПО ГруппыДоступаПользователи.Пользователь = СоставыГруппПользователей.ГруппаПользователей
| И (ГруппыДоступаПользователи.Ссылка = &ГруппаДоступа)) КАК Данные";
Иначе
// Выбор изменений участников группы доступа.
Запрос.Текст =
"ВЫБРАТЬ
| Данные.Пользователь
|ИЗ
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| СоставыГруппПользователей.Пользователь КАК Пользователь,
| -1 КАК ВидИзмененияСтроки
| ИЗ
| РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
| ГДЕ
| СоставыГруппПользователей.ГруппаПользователей В(&СтарыеУчастники)
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| СоставыГруппПользователей.Пользователь,
| 1
| ИЗ
| Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
| ПО ГруппыДоступаПользователи.Пользователь = СоставыГруппПользователей.ГруппаПользователей
| И (ГруппыДоступаПользователи.Ссылка = &ГруппаДоступа)) КАК Данные
|
|СГРУППИРОВАТЬ ПО
| Данные.Пользователь
|
|ИМЕЮЩИЕ
| СУММА(Данные.ВидИзмененияСтроки) <> 0";
КонецЕсли;
ПользователиДляОбновления = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Пользователь");
Если Ссылка = Справочники.ГруппыДоступа.Администраторы Тогда Если Ссылка = Справочники.ГруппыДоступа.Администраторы Тогда
// Добавление пользователей, связанных с пользователямиИБ, имеющих роль ПолныеПрава. // Добавление пользователей, связанных с пользователямиИБ, имеющих роль ПолныеПрава.
Для каждого ПользовательИБ Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл Для Каждого ПользовательИБ Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл
Если ПользовательИБ.Роли.Содержит(Метаданные.Роли.ПолныеПрава) Тогда Если ПользовательИБ.Роли.Содержит(Метаданные.Роли.ПолныеПрава) Тогда
НайденныйПользователь = Справочники.Пользователи.НайтиПоРеквизиту( НайденныйПользователь = Справочники.Пользователи.НайтиПоРеквизиту(
@@ -203,6 +203,10 @@
<horizontalAlign>Left</horizontalAlign> <horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill> <autoFill>true</autoFill>
</autoCommandBar> </autoCommandBar>
<handlers>
<event>BeforeAddRow</event>
<name>СписокПередНачаломДобавления</name>
</handlers>
<searchStringAddition> <searchStringAddition>
<name>СписокSearchString</name> <name>СписокSearchString</name>
<id>48</id> <id>48</id>
@@ -48,6 +48,19 @@
#КонецОбласти #КонецОбласти
#Область ОбработчикиСобытийТаблицыСписок
&НаКлиенте
Процедура СписокПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
Если Не Копирование Тогда
Отказ = Истина;
ПараметрыФормы = Новый Структура("Предмет", Предмет);
ОткрытьФорму("Справочник.Заметки.ФормаОбъекта", ПараметрыФормы);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
&НаСервере &НаСервере
@@ -560,19 +560,15 @@
ЗаменитьДублиПодчиненногоУзлаНайденныеПриЗагрузке(ТолькоПроверка, ЕстьТекущиеИзменения); ЗаменитьДублиПодчиненногоУзлаНайденныеПриЗагрузке(ТолькоПроверка, ЕстьТекущиеИзменения);
КонецЕсли; КонецЕсли;
Если Не ОбъектыРасширений
Или Не ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() Тогда
ОбновитьДанные(ЕстьТекущиеИзменения, ЕстьУдаленные, ТолькоПроверка, ОбновитьДанные(ЕстьТекущиеИзменения, ЕстьУдаленные, ТолькоПроверка,
ЕстьКритичныеИзменения, СписокКритичныхИзменений, ОбъектыРасширений); ЕстьКритичныеИзменения, СписокКритичныхИзменений, ОбъектыРасширений);
Если ЕстьТекущиеИзменения Тогда Если ЕстьТекущиеИзменения Тогда
ЕстьИзменения = Истина; ЕстьИзменения = Истина;
КонецЕсли; КонецЕсли;
КонецЕсли;
Если Не ОбъектыРасширений Тогда Если Не ОбъектыРасширений Тогда
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыПрограммы( СтандартныеПодсистемыСервер.ОбновитьПараметрРаботыПрограммы(
"СтандартныеПодсистемы.ИдентификаторыОбъектовМетаданных", Истина); "СтандартныеПодсистемы.ИдентификаторыОбъектовМетаданных", Истина);
КонецЕсли; КонецЕсли;
@@ -3064,7 +3060,7 @@
Блокировка = Новый БлокировкаДанных; Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Справочник.ИдентификаторыОбъектовМетаданных"); ЭлементБлокировки = Блокировка.Добавить("Справочник.ИдентификаторыОбъектовМетаданных");
Для Каждого ЗаменяемаяСсылка Из ЗаменяемыеСсылки Цикл Для Каждого ЗаменяемаяСсылка Из ЗаменяемыеСсылки Цикл
ЭлементБлокировки.УстановитьЗначение(ЗаменяемаяСсылка); ЭлементБлокировки.УстановитьЗначение("Ссылка", ЗаменяемаяСсылка);
КонецЦикла; КонецЦикла;
НачатьТранзакцию(); НачатьТранзакцию();
Попытка Попытка
@@ -27,7 +27,6 @@
<div style="MARGIN-LEFT: 0px">Банки в списке сгруппированы по регионам, при входе в список видны только регионы банков. Выберите нужный регион для просмотра банков этого региона. </div> <div style="MARGIN-LEFT: 0px">Банки в списке сгруппированы по регионам, при входе в список видны только регионы банков. Выберите нужный регион для просмотра банков этого региона. </div>
</li><li> </li><li>
<div style="MARGIN-LEFT: 0px">Также можно внутри регионов ввести свою группировку. Для этого нажмите <strong>Создать группу</strong>, введите наименование группы и перетащите в группу нужные банки с помощью мыши. </div></li></ul><h3 style="MARGIN-LEFT: 0px">Загрузка классификатора банков</h3> <div style="MARGIN-LEFT: 0px">Также можно внутри регионов ввести свою группировку. Для этого нажмите <strong>Создать группу</strong>, введите наименование группы и перетащите в группу нужные банки с помощью мыши. </div></li></ul><h3 style="MARGIN-LEFT: 0px">Загрузка классификатора банков</h3>
<p style="MARGIN-LEFT: 0px">Программа поставляется с загруженным классификатором банков.</p>
<ul><li> <ul><li>
<div style="MARGIN-LEFT: 0px">После запуска программы производится проверка актуальности классификатора банков и в случае неактуальности (если классификатор не обновлялся в течение тридцати дней) выводится сообщение с предложением обновить классификатор банков. Перейдите по ссылке <strong>Обновить классификатор банков</strong>.</div> <div style="MARGIN-LEFT: 0px">После запуска программы производится проверка актуальности классификатора банков и в случае неактуальности (если классификатор не обновлялся в течение тридцати дней) выводится сообщение с предложением обновить классификатор банков. Перейдите по ссылке <strong>Обновить классификатор банков</strong>.</div>
</li><li> </li><li>
@@ -159,11 +159,11 @@
Если Не ПользователиСлужебныйПовтИсп.Настройки().ОбщиеНастройкиВхода Тогда Если Не ПользователиСлужебныйПовтИсп.Настройки().ОбщиеНастройкиВхода Тогда
Элементы.ГруппаИзменитьОграничение.Видимость = Ложь; Элементы.ГруппаИзменитьОграничение.Видимость = Ложь;
Элементы.ПотребоватьСменуПароляПриВходе.Видимость = Ложь;
Иначе
Элементы.ПотребоватьСменуПароляПриВходе.РасширеннаяПодсказка.Заголовок = ПодсказкаПотребоватьСменуПароляПриВходе();
КонецЕсли; КонецЕсли;
Элементы.ПотребоватьСменуПароляПриВходе.РасширеннаяПодсказка.Заголовок =
ПользователиСлужебный.ПодсказкаПотребоватьСменуПароляПриВходе(Ложь);
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
@@ -1503,34 +1503,6 @@
КонецПроцедуры КонецПроцедуры
&НаСервере
Функция ПодсказкаПотребоватьСменуПароляПриВходе()
ЭтоПолноправныйПользователь = Пользователи.ЭтоПолноправныйПользователь(, Ложь);
Подсказка = Новый Массив;
Подсказка.Добавить(НСтр("ru = 'Требования к длине и сложности пароля задаются отдельно.'"));
Подсказка.Добавить(Символы.ПС);
Подсказка.Добавить(НСтр("ru = 'См.'"));
Подсказка.Добавить(" ");
Ссылка = НСтр("ru = 'Настройки входа пользователей'");
Если ЭтоПолноправныйПользователь Тогда
Ссылка = Новый ФорматированнаяСтрока(Ссылка,,,, "НастройкиВходаПользователей");
КонецЕсли;
Подсказка.Добавить(Ссылка);
Если ЭтоПолноправныйПользователь
И Метаданные.Подсистемы.Найти("Администрирование") <> Неопределено Тогда
Подсказка.Добавить(" ");
Подсказка.Добавить(НСтр("ru = 'в разделе Администрирование,
|пункт Настройки прав и пользователей.'"));
Иначе
Подсказка.Добавить(".");
КонецЕсли;
Возврат Новый ФорматированнаяСтрока(Подсказка);
КонецФункции
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Поддержка контактной информации. // Поддержка контактной информации.
@@ -206,7 +206,7 @@
Если СтрокаТекущегоПрофиля = Неопределено Тогда Если СтрокаТекущегоПрофиля = Неопределено Тогда
// Создание нового поставляемого профиля. // Создание нового поставляемого профиля.
Если ОбновитьПрофильГруппДоступа(СвойстваПрофиля) Тогда Если ОбновитьПрофильГруппДоступа(СвойстваПрофиля, Истина) Тогда
ЕстьИзменения = Истина; ЕстьИзменения = Истина;
КонецЕсли; КонецЕсли;
Профиль = ПоставляемыйПрофильПоИдентификатору(СвойстваПрофиля.Идентификатор); Профиль = ПоставляемыйПрофильПоИдентификатору(СвойстваПрофиля.Идентификатор);
@@ -247,24 +247,33 @@
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
ПрофильОбъект.ПометкаУдаления = Истина; ПрофильОбъект.ПометкаУдаления = Истина;
ПрофильОбъект.Записать(); ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ПрофильОбъект);
ОбновленныеПрофили.Добавить(ПрофильОбъект.Ссылка);
ЕстьИзменения = Истина; ЕстьИзменения = Истина;
КонецЦикла; КонецЦикла;
// Обновление ролей пользователей. ОбновитьВспомогательныеДанныеПрофилей(ОбновленныеПрофили, ЕстьИзменения);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| СоставыГруппПользователей.Пользователь
|ИЗ
| РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи
| ПО СоставыГруппПользователей.ГруппаПользователей = ГруппыДоступаПользователи.Пользователь
| И (ГруппыДоступаПользователи.Ссылка.Профиль В (&Профили))";
Запрос.УстановитьПараметр("Профили", ОбновленныеПрофили);
ПользователиДляОбновления = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Пользователь");
УправлениеДоступом.ОбновитьРолиПользователей(ПользователиДляОбновления); КонецПроцедуры
Процедура ОбновитьВспомогательныеДанныеПрофилей(Профили = Неопределено, ЕстьИзменения = Ложь) Экспорт
Если Профили = Неопределено Тогда
РегистрыСведений.ТаблицыГруппДоступа.ОбновитьДанныеРегистра( , , ЕстьИзменения);
РегистрыСведений.ЗначенияГруппДоступа.ОбновитьДанныеРегистра( , ЕстьИзменения);
УправлениеДоступомСлужебный.ОбновитьРолиПользователей( , , ЕстьИзменения);
ИначеЕсли Профили.Количество() > 0 Тогда
ГруппыДоступаПрофилей = Справочники.ГруппыДоступа.ГруппыДоступаПрофиля(Профили);
РегистрыСведений.ТаблицыГруппДоступа.ОбновитьДанныеРегистра(ГруппыДоступаПрофилей, , ЕстьИзменения);
РегистрыСведений.ЗначенияГруппДоступа.ОбновитьДанныеРегистра(ГруппыДоступаПрофилей, ЕстьИзменения);
// Обновление ролей пользователей.
ПользователиДляОбновления =
Справочники.ГруппыДоступа.ПользователиДляОбновленияРолейПоПрофилю(Профили);
УправлениеДоступомСлужебный.ОбновитьРолиПользователей(ПользователиДляОбновления, , ЕстьИзменения);
КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -674,6 +683,51 @@
КонецФункции КонецФункции
Функция ИзменилисьВидыИлиЗначенияДоступаИлиНазначение(СтарыеЗначения, ТекущийОбъект) Экспорт
Если СтарыеЗначения.Ссылка <> ТекущийОбъект.Ссылка Тогда
Возврат Истина;
КонецЕсли;
ВидыДоступа = СтарыеЗначения.ВидыДоступа.Выгрузить();
ЗначенияДоступа = СтарыеЗначения.ЗначенияДоступа.Выгрузить();
Назначение = СтарыеЗначения.Назначение.Выгрузить();
Если ВидыДоступа.Количество() <> ТекущийОбъект.ВидыДоступа.Количество()
Или ЗначенияДоступа.Количество() <> ТекущийОбъект.ЗначенияДоступа.Количество()
Или Назначение.Количество() <> ТекущийОбъект.Назначение.Количество() Тогда
Возврат Истина;
КонецЕсли;
Отбор = Новый Структура("ВидДоступа, Предустановленный, ВсеРазрешены");
Для Каждого Строка Из ТекущийОбъект.ВидыДоступа Цикл
ЗаполнитьЗначенияСвойств(Отбор, Строка);
Если ВидыДоступа.НайтиСтроки(Отбор).Количество() = 0 Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Отбор = Новый Структура("ВидДоступа, ЗначениеДоступа");
Для Каждого Строка Из ТекущийОбъект.ЗначенияДоступа Цикл
ЗаполнитьЗначенияСвойств(Отбор, Строка);
Если ЗначенияДоступа.НайтиСтроки(Отбор).Количество() = 0 Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Отбор = Новый Структура("ТипПользователей");
Для Каждого Строка Из ТекущийОбъект.Назначение Цикл
ЗаполнитьЗначенияСвойств(Отбор, Строка);
Если Назначение.НайтиСтроки(Отбор).Количество() = 0 Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецФункции
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Процедуры и функции для поддержки обмена данными в РИБ. // Процедуры и функции для поддержки обмена данными в РИБ.
@@ -691,47 +745,10 @@
| Справочник.ПрофилиГруппДоступа.Роли КАК РолиПрофилей | Справочник.ПрофилиГруппДоступа.Роли КАК РолиПрофилей
|ГДЕ |ГДЕ
| РолиПрофилей.Ссылка = &Профиль | РолиПрофилей.Ссылка = &Профиль
| И ТИПЗНАЧЕНИЯ(РолиПрофилей.Роль) = ТИП(Справочник.ИдентификаторыОбъектовМетаданных)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| РолиПрофилей.Роль КАК Роль
|ИЗ
| Справочник.ПрофилиГруппДоступа.Роли КАК РолиПрофилей
|ГДЕ
| РолиПрофилей.Ссылка = &Профиль
| И ТИПЗНАЧЕНИЯ(РолиПрофилей.Роль) = ТИП(Справочник.ИдентификаторыОбъектовРасширений)"; | И ТИПЗНАЧЕНИЯ(РолиПрофилей.Роль) = ТИП(Справочник.ИдентификаторыОбъектовРасширений)";
РезультатыЗапроса = Запрос.ВыполнитьПакет();
// Регистрация профилей для групп доступа которых нужно обновить регистр сведений ТаблицыГруппДоступа.
РолиИзменены = Ложь;
СтарыеРоли = РезультатыЗапроса[0].Выгрузить();
Если СтарыеРоли.Количество() <> ЭлементДанных.Роли.Количество() Тогда
РолиИзменены = Истина;
Иначе
Для Каждого Роль Из ЭлементДанных.Роли Цикл
Если СтарыеРоли.Найти(Роль, "Роль") = Неопределено Тогда
РолиИзменены = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если РолиИзменены Тогда
ПрофилиСИзмененнымСоставомРолейПриЗагрузке = ПрофилиСИзмененнымСоставомРолейПриЗагрузке();
Если ПрофилиСИзмененнымСоставомРолейПриЗагрузке.Найти(ЭлементДанных.Ссылка) = Неопределено Тогда
ПрофилиСИзмененнымСоставомРолейПриЗагрузке.Добавить(ЭлементДанных.Ссылка);
УстановитьПривилегированныйРежим(Истина);
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыПрограммы(
"СтандартныеПодсистемы.УправлениеДоступом.ПрофилиСИзмененнымСоставомРолейПриЗагрузке",
ПрофилиСИзмененнымСоставомРолейПриЗагрузке);
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
КонецЕсли;
// Добавление ролей расширений к новому состав ролей конфигурации. // Добавление ролей расширений к новому состав ролей конфигурации.
Выборка = РезультатыЗапроса[1].Выбрать(); Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл Пока Выборка.Следующий() Цикл
ЭлементДанных.Роли.Добавить().Роль = Выборка.Роль; ЭлементДанных.Роли.Добавить().Роль = Выборка.Роль;
КонецЦикла; КонецЦикла;
@@ -782,37 +799,73 @@
КонецПроцедуры КонецПроцедуры
// Только для внутреннего использования. // Только для внутреннего использования.
Процедура ОбновитьТаблицыГруппДоступаПрофилейСИзмененнымСоставомРолейПриЗагрузке() Экспорт Процедура ЗарегистрироватьПрофильИзмененныйПриЗагрузке(ЭлементДанных) Экспорт
// Регистрация профилей, для групп доступа которых нужно обновить регистры сведений
// ТаблицыГруппДоступа, ЗначенияГруппДоступа и ЗначенияГруппДоступаПоУмолчанию и роли пользователей.
СтарыеЗначения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЭлементДанных.Ссылка,
"Ссылка, ПометкаУдаления, Роли, Назначение, ВидыДоступа, ЗначенияДоступа");
ТребуетсяРегистрация = Ложь;
Профиль = ЭлементДанных.Ссылка;
Если ТипЗнч(ЭлементДанных) = Тип("УдалениеОбъекта") Тогда
ТребуетсяРегистрация = Истина;
ИначеЕсли СтарыеЗначения.Ссылка <> ЭлементДанных.Ссылка Тогда
ТребуетсяРегистрация = Истина;
Профиль = ПользователиСлужебный.СсылкаОбъекта(ЭлементДанных);
ИначеЕсли СтарыеЗначения.ПометкаУдаления <> ЭлементДанных.ПометкаУдаления
Или ИзменилисьВидыИлиЗначенияДоступаИлиНазначение(СтарыеЗначения, ЭлементДанных) Тогда
ТребуетсяРегистрация = Истина;
Иначе
СтарыеРоли = СтарыеЗначения.Роли.Выгрузить();
Если СтарыеРоли.Количество() <> ЭлементДанных.Роли.Количество() Тогда
ТребуетсяРегистрация = Истина;
Иначе
Для Каждого Строка Из ЭлементДанных.Роли Цикл
Если СтарыеРоли.Найти(Строка.Роль, "Роль") = Неопределено Тогда
ТребуетсяРегистрация = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
Если Не ТребуетсяРегистрация Тогда
Возврат;
КонецЕсли;
Справочники.ГруппыДоступа.ЗарегистрироватьСсылки("Профили", Профиль);
КонецПроцедуры
// Только для внутреннего использования.
Процедура ОбновитьВспомогательныеДанныеПрофилейИзмененныхПриЗагрузке() Экспорт
Если ОбщегоНазначения.РазделениеВключено() Тогда Если ОбщегоНазначения.РазделениеВключено() Тогда
// Изменения профилей в АРМ заблокированы и не загружаются в область данных. // Изменения профилей в АРМ заблокированы и не загружаются в область данных.
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ПрофилиСИзмененнымСоставомРолейПриЗагрузке = ПрофилиСИзмененнымСоставомРолейПриЗагрузке(); ИзмененныеПрофили = Справочники.ГруппыДоступа.ЗарегистрированныеСсылки("Профили");
Если ПрофилиСИзмененнымСоставомРолейПриЗагрузке.Количество() = 0 Тогда
Если ИзмененныеПрофили.Количество() = 0 Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Запрос = Новый Запрос; Если ИзмененныеПрофили.Количество() = 1
Запрос.УстановитьПараметр("Профиль", ПрофилиСИзмененнымСоставомРолейПриЗагрузке); И ИзмененныеПрофили[0] = Неопределено Тогда
Запрос.Текст =
"ВЫБРАТЬ
| ГруппыДоступа.Ссылка КАК Ссылка
|ИЗ
| Справочник.ГруппыДоступа КАК ГруппыДоступа
|ГДЕ
| ГруппыДоступа.Профиль В(&Профиль)";
ГруппыДоступаПрофилей = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"); ОбновитьВспомогательныеДанныеПрофилей();
Иначе
ОбновитьВспомогательныеДанныеПрофилей(ИзмененныеПрофили);
КонецЕсли;
РегистрыСведений.ТаблицыГруппДоступа.ОбновитьДанныеРегистра(ГруппыДоступаПрофилей); Справочники.ГруппыДоступа.ЗарегистрироватьСсылки("Профили", Null);
УстановитьПривилегированныйРежим(Истина);
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыПрограммы(
"СтандартныеПодсистемы.УправлениеДоступом.ПрофилиСИзмененнымСоставомРолейПриЗагрузке",
Неопределено);
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры КонецПроцедуры
@@ -1045,6 +1098,7 @@
КонецЕсли; КонецЕсли;
Для Каждого Тип Из Типы Цикл Для Каждого Тип Из Типы Цикл
Если ТипЗнч(Тип) <> Тип("Тип") Если ТипЗнч(Тип) <> Тип("Тип")
Или Не ОбщегоНазначения.ЭтоСсылка(Тип)
Или Не Метаданные.ОпределяемыеТипы.Пользователь.Тип.СодержитТип(Тип) Или Не Метаданные.ОпределяемыеТипы.Пользователь.Тип.СодержитТип(Тип)
Или Тип <> Тип("СправочникСсылка.Пользователи") Или Тип <> Тип("СправочникСсылка.Пользователи")
И Не Метаданные.ОпределяемыеТипы.ВнешнийПользователь.Тип.СодержитТип(Тип) Тогда И Не Метаданные.ОпределяемыеТипы.ВнешнийПользователь.Тип.СодержитТип(Тип) Тогда
@@ -1376,8 +1430,9 @@
КонецЕсли; КонецЕсли;
Если ПрофильИзменен Тогда Если ПрофильИзменен Тогда
Если Не ОбновлениеИнформационнойБазы.ВыполняетсяОбновлениеИнформационнойБазы() Тогда
ЗаблокироватьДанныеДляРедактирования(ПрофильОбъект.Ссылка, ПрофильОбъект.ВерсияДанных); ЗаблокироватьДанныеДляРедактирования(ПрофильОбъект.Ссылка, ПрофильОбъект.ВерсияДанных);
КонецЕсли;
ПрофильОбъект.Наименование = СвойстваПрофиля.Наименование; ПрофильОбъект.Наименование = СвойстваПрофиля.Наименование;
ПрофильОбъект.Роли.Очистить(); ПрофильОбъект.Роли.Очистить();
@@ -1421,9 +1476,13 @@
Если НеОбновлятьРолиПользователей Тогда Если НеОбновлятьРолиПользователей Тогда
ПрофильОбъект.ДополнительныеСвойства.Вставить("НеОбновлятьРолиПользователей"); ПрофильОбъект.ДополнительныеСвойства.Вставить("НеОбновлятьРолиПользователей");
КонецЕсли; КонецЕсли;
ПрофильОбъект.Записать();
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ПрофильОбъект);
Если Не ОбновлениеИнформационнойБазы.ВыполняетсяОбновлениеИнформационнойБазы() Тогда
РазблокироватьДанныеДляРедактирования(ПрофильОбъект.Ссылка); РазблокироватьДанныеДляРедактирования(ПрофильОбъект.Ссылка);
КонецЕсли; КонецЕсли;
КонецЕсли;
Возврат ПрофильИзменен; Возврат ПрофильИзменен;
@@ -1465,21 +1524,6 @@
КонецФункции КонецФункции
Функция ПрофилиСИзмененнымСоставомРолейПриЗагрузке()
УстановитьПривилегированныйРежим(Истина);
ПрофилиСИзмененнымСоставомРолейПриЗагрузке = СтандартныеПодсистемыСервер.ПараметрРаботыПрограммы(
"СтандартныеПодсистемы.УправлениеДоступом.ПрофилиСИзмененнымСоставомРолейПриЗагрузке");
Если ТипЗнч(ПрофилиСИзмененнымСоставомРолейПриЗагрузке) <> Тип("Массив") Тогда
ПрофилиСИзмененнымСоставомРолейПриЗагрузке = Новый Массив;
КонецЕсли;
Возврат ПрофилиСИзмененнымСоставомРолейПриЗагрузке;
КонецФункции
#КонецОбласти #КонецОбласти
#КонецЕсли #КонецЕсли
@@ -2,11 +2,8 @@
#Область ОписаниеПеременных #Область ОписаниеПеременных
Перем СтарыеРолиПрофиля; // Роли профиля до изменения для использования Перем СтарыеЗначения; // Значения некоторых реквизитов и табличных частей профиля
// в обработчике события ПриЗаписи. // до его изменения для использования в обработчике события ПриЗаписи.
Перем СтараяПометкаУдаления; // Пометка удаления профиля групп доступа до изменения
// для использования в обработчике события ПриЗаписи.
#КонецОбласти #КонецОбласти
@@ -25,20 +22,10 @@
СтандартныеПодсистемыСервер.ПроверитьДинамическоеОбновлениеВерсииПрограммы(); СтандартныеПодсистемыСервер.ПроверитьДинамическоеОбновлениеВерсииПрограммы();
РегистрыСведений.ПраваРолей.ПроверитьДанныеРегистра(); РегистрыСведений.ПраваРолей.ПроверитьДанныеРегистра();
// Получение старых ролей профиля. СтарыеЗначения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка,
РезультатЗапроса = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Роли"); "Ссылка, ПометкаУдаления, Роли, Назначение, ВидыДоступа, ЗначенияДоступа");
Если ТипЗнч(РезультатЗапроса) = Тип("РезультатЗапроса") Тогда
СтарыеРолиПрофиля = РезультатЗапроса.Выгрузить();
Иначе
СтарыеРолиПрофиля = Роли.Выгрузить(Новый Массив);
КонецЕсли;
СтараяПометкаУдаления = ОбщегоНазначения.ЗначениеРеквизитаОбъекта( Если Ссылка <> Справочники.ПрофилиГруппДоступа.Администратор Тогда
Ссылка, "ПометкаУдаления");
Если Ссылка = Справочники.ПрофилиГруппДоступа.Администратор Тогда
Пользователь = Неопределено;
Иначе
// Проверка ролей. // Проверка ролей.
НомерСтроки = Роли.Количество() - 1; НомерСтроки = Роли.Количество() - 1;
РолиАдминистратора = Новый Массив; РолиАдминистратора = Новый Массив;
@@ -105,10 +92,8 @@
ПроверитьОднозначностьПоставляемыхДанных(); ПроверитьОднозначностьПоставляемыхДанных();
ОбъектыМетаданных = ОбновитьРолиПользователейПриИзмененииРолейПрофиля();
// При установке пометки удаления нужно установить пометку удаления у групп доступа профиля. // При установке пометки удаления нужно установить пометку удаления у групп доступа профиля.
Если ПометкаУдаления И СтараяПометкаУдаления = Ложь Тогда Если ПометкаУдаления И СтарыеЗначения.ПометкаУдаления = Ложь Тогда
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Профиль", Ссылка); Запрос.УстановитьПараметр("Профиль", Ссылка);
Запрос.Текст = Запрос.Текст =
@@ -132,31 +117,26 @@
Справочники.ГруппыДоступа.ОбновитьГруппыДоступаПрофиля(Ссылка, Истина); Справочники.ГруппыДоступа.ОбновитьГруппыДоступаПрофиля(Ссылка, Истина);
КонецЕсли; КонецЕсли;
// Обновление таблиц и значений групп доступа. ИзмененияСоставаТаблицПриИзмененииРолей = ОбновитьРолиПользователейПриИзмененииРолейПрофиля();
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Профиль", Ссылка);
Запрос.Текст =
"ВЫБРАТЬ
| ГруппыДоступа.Ссылка КАК Ссылка
|ИЗ
| Справочник.ГруппыДоступа КАК ГруппыДоступа
|ГДЕ
| ГруппыДоступа.Профиль = &Профиль
| И (НЕ ГруппыДоступа.ЭтоГруппа)";
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда Если ИзмененияСоставаТаблицПриИзмененииРолей.Количество() > 0 Тогда
ГруппыДоступаПрофиля = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"); ГруппыДоступаПрофиля = Справочники.ГруппыДоступа.ГруппыДоступаПрофиля(Ссылка);
РегистрыСведений.ТаблицыГруппДоступа.ОбновитьДанныеРегистра(ГруппыДоступаПрофиля,
ИзмененияСоставаТаблицПриИзмененииРолей);
КонецЕсли;
Если Справочники.ПрофилиГруппДоступа.ИзменилисьВидыИлиЗначенияДоступаИлиНазначение(СтарыеЗначения, ЭтотОбъект)
Или ПометкаУдаления <> СтарыеЗначения.ПометкаУдаления Тогда
Если ГруппыДоступаПрофиля = Неопределено Тогда
ГруппыДоступаПрофиля = Справочники.ГруппыДоступа.ГруппыДоступаПрофиля(Ссылка);
КонецЕсли;
РегистрыСведений.ЗначенияГруппДоступа.ОбновитьДанныеРегистра(ГруппыДоступаПрофиля); РегистрыСведений.ЗначенияГруппДоступа.ОбновитьДанныеРегистра(ГруппыДоступаПрофиля);
Если ОбъектыМетаданных.Количество() > 0 Тогда
РегистрыСведений.ТаблицыГруппДоступа.ОбновитьДанныеРегистра(
ГруппыДоступаПрофиля, ОбъектыМетаданных);
КонецЕсли;
КонецЕсли; КонецЕсли;
Справочники.ПрофилиГруппДоступа.ОбновитьТаблицыГруппДоступаПрофилейСИзмененнымСоставомРолейПриЗагрузке(); Справочники.ПрофилиГруппДоступа.ОбновитьВспомогательныеДанныеПрофилейИзмененныхПриЗагрузке();
Справочники.ГруппыДоступа.ОбновитьВспомогательныеДанныеГруппДоступаИзмененныхПриЗагрузке();
Справочники.ГруппыДоступа.ОбновитьРолиПользователейИзмененныхПриЗагрузке();
КонецПроцедуры КонецПроцедуры
@@ -189,6 +169,10 @@
КонецПроцедуры КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Вспомогательные процедуры и функции. // Вспомогательные процедуры и функции.
@@ -196,7 +180,9 @@
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Профиль", Ссылка); Запрос.УстановитьПараметр("Профиль", Ссылка);
Запрос.УстановитьПараметр("СтарыеРолиПрофиля", СтарыеРолиПрофиля); Запрос.УстановитьПараметр("СтарыеРолиПрофиля", ?(Ссылка = СтарыеЗначения.Ссылка,
СтарыеЗначения.Роли.Выгрузить(), Роли.Выгрузить(Новый Массив)));
Запрос.Текст = Запрос.Текст =
"ВЫБРАТЬ "ВЫБРАТЬ
| СтарыеРолиПрофиля.Роль | СтарыеРолиПрофиля.Роль
@@ -313,18 +299,7 @@
Если НЕ ДополнительныеСвойства.Свойство("НеОбновлятьРолиПользователей") Если НЕ ДополнительныеСвойства.Свойство("НеОбновлятьРолиПользователей")
И НЕ РезультатыЗапросов[1].Пустой() Тогда И НЕ РезультатыЗапросов[1].Пустой() Тогда
Запрос.Текст = ПользователиДляОбновленияРолей = Справочники.ГруппыДоступа.ПользователиДляОбновленияРолейПоПрофилю(Ссылка);
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| СоставыГруппПользователей.Пользователь
|ИЗ
| РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи
| ПО СоставыГруппПользователей.ГруппаПользователей = ГруппыДоступаПользователи.Пользователь
| И (ГруппыДоступаПользователи.Ссылка.Профиль = &Профиль)";
ПользователиДляОбновленияРолей =
Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Пользователь");
УправлениеДоступом.ОбновитьРолиПользователей(ПользователиДляОбновленияРолей); УправлениеДоступом.ОбновитьРолиПользователей(ПользователиДляОбновленияРолей);
КонецЕсли; КонецЕсли;
@@ -348,14 +348,7 @@
&НаКлиенте &НаКлиенте
Процедура ДобавитьФайл(Команда) Процедура ДобавитьФайл(Команда)
ПараметрыВыполнения = Новый Структура; РаботаСФайламиСлужебныйКлиент.ДобавитьФайлИзФайловойСистемы(Элементы.Папки.ТекущаяСтрока, ЭтотОбъект);
ПараметрыВыполнения.Вставить("ОбработчикРезультата", Неопределено);
ПараметрыВыполнения.Вставить("ВладелецФайла", Элементы.Папки.ТекущаяСтрока);
ПараметрыВыполнения.Вставить("ФормаВладелец", ЭтотОбъект);
ПараметрыВыполнения.Вставить("НеОткрыватьКарточкуПослеСозданияИзФайла", Истина);
ПараметрыВыполнения.Вставить("ЭтоФайл", Истина);
РаботаСФайламиСлужебныйКлиент.ДобавитьПослеВыбораРежимаСоздания(2, ПараметрыВыполнения);
КонецПроцедуры КонецПроцедуры
@@ -1436,11 +1429,25 @@
ТекущиеДанные = Элементы.Список.ТекущиеДанные; ТекущиеДанные = Элементы.Список.ТекущиеДанные;
Если ТекущиеДанные <> Неопределено И РасширенияПоддерживающиеПредпросмотр.НайтиПоЗначению(ТекущиеДанные.Расширение) <> Неопределено Тогда Если ТекущиеДанные <> Неопределено И РасширенияПоддерживающиеПредпросмотр.НайтиПоЗначению(ТекущиеДанные.Расширение) <> Неопределено Тогда
Попытка
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(ТекущиеДанные.Ссылка, Неопределено, УникальныйИдентификатор); ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(ТекущиеДанные.Ссылка, Неопределено, УникальныйИдентификатор);
АдресДанныхФайла = ДанныеФайла.НавигационнаяСсылкаТекущейВерсии; АдресДанныхФайла = ДанныеФайла.СсылкаНаДвоичныеДанныеФайла;
Иначе Исключение
// Если файла не существует, то будет вызвано исключение.
АдресДанныхФайла = Неопределено; АдресДанныхФайла = Неопределено;
Элементы.АдресДанныхФайла.ТекстНевыбраннойКартинки = НСтр("ru = 'Нет данных для предварительного просмотра'"); ТекстНевыбраннойКартинки = НСтр("ru = 'Предварительный просмотр недоступен по причине:'") + Символы.ПС + КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
КонецПопытки;
Иначе
АдресДанныхФайла = Неопределено;
ТекстНевыбраннойКартинки = НСтр("ru = 'Нет данных для предварительного просмотра'");
КонецЕсли;
Если НЕ ЗначениеЗаполнено(АдресДанныхФайла) Тогда
Элементы.АдресДанныхФайла.ТекстНевыбраннойКартинки = ТекстНевыбраннойКартинки;
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -1322,6 +1322,23 @@
<getInvisibleFieldPresentations>true</getInvisibleFieldPresentations> <getInvisibleFieldPresentations>true</getInvisibleFieldPresentations>
</extInfo> </extInfo>
</attributes> </attributes>
<attributes>
<name>РежимВыбораШаблона</name>
<title>
<key>ru</key>
<value>Режим выбора шаблона</value>
</title>
<id>3</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands> <formCommands>
<name>ДобавитьФайл</name> <name>ДобавитьФайл</name>
<title> <title>
@@ -22,6 +22,8 @@
Иначе Иначе
Если Параметры.ВыборШаблона Тогда Если Параметры.ВыборШаблона Тогда
РежимВыбораШаблона = Параметры.ВыборШаблона;
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка( ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Папки, "Ссылка", Справочники.ПапкиФайлов.Шаблоны, Папки, "Ссылка", Справочники.ПапкиФайлов.Шаблоны,
ВидСравненияКомпоновкиДанных.ВИерархии, , Истина); ВидСравненияКомпоновкиДанных.ВИерархии, , Истина);
@@ -61,6 +63,8 @@
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
Элементы.Список.Обновить();
КонецЕсли; КонецЕсли;
Если ВРег(ИмяСобытия) = ВРег("Запись_НаборКонстант") Если ВРег(ИмяСобытия) = ВРег("Запись_НаборКонстант")
@@ -87,6 +91,13 @@
&НаКлиенте &НаКлиенте
Процедура ДобавитьФайл(Команда) Процедура ДобавитьФайл(Команда)
Если РежимВыбораШаблона Тогда
РаботаСФайламиСлужебныйКлиент.ДобавитьФайлИзФайловойСистемы(Элементы.Папки.ТекущаяСтрока, ЭтотОбъект);
Иначе
ЗначениеПараметраКД = Список.Параметры.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Владелец")); ЗначениеПараметраКД = Список.Параметры.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Владелец"));
Если ЗначениеПараметраКД = Неопределено Тогда Если ЗначениеПараметраКД = Неопределено Тогда
ВладелецФайла = Неопределено; ВладелецФайла = Неопределено;
@@ -94,6 +105,9 @@
ВладелецФайла = ЗначениеПараметраКД.Значение; ВладелецФайла = ЗначениеПараметраКД.Значение;
КонецЕсли; КонецЕсли;
РаботаСФайламиСлужебныйКлиент.ДобавитьФайл(Неопределено, ВладелецФайла, ЭтотОбъект); РаботаСФайламиСлужебныйКлиент.ДобавитьФайл(Неопределено, ВладелецФайла, ЭтотОбъект);
КонецЕсли;
КонецПроцедуры КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -286,7 +286,14 @@
Процедура СтандартнаяЗаписатьИЗакрыть(Команда) Процедура СтандартнаяЗаписатьИЗакрыть(Команда)
Если ОбработатьКомандуЗаписиФайла() Тогда Если ОбработатьКомандуЗаписиФайла() Тогда
Закрыть();
Результат = Новый Структура();
Результат.Вставить("ТекстОшибки", "");
Результат.Вставить("ФайлДобавлен", Истина);
Результат.Вставить("ФайлСсылка", ЭтотОбъект.Объект.Ссылка);
Закрыть(Результат);
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -7,6 +7,10 @@
ВидСообщения = Параметры.ВидСообщения; ВидСообщения = Параметры.ВидСообщения;
РежимВыбора = Параметры.РежимВыбора; РежимВыбора = Параметры.РежимВыбора;
Если ЗначениеЗаполнено(Предмет) Тогда
ПолноеИмяТипаОснования = Предмет.Метаданные().ПолноеИмя();
КонецЕсли;
Если ВидСообщения = "СообщениеSMS" Тогда Если ВидСообщения = "СообщениеSMS" Тогда
ПредназначенДляSMS = Истина; ПредназначенДляSMS = Истина;
ПредназначенДляЭлектронныхПисем = Ложь; ПредназначенДляЭлектронныхПисем = Ложь;
@@ -174,7 +178,7 @@
Результат = ПолучитьИзВременногоХранилища(АдресРезультата); Результат = ПолучитьИзВременногоХранилища(АдресРезультата);
Если ПараметрыОтправки.ДополнительныеПараметры.ОтправитьСразу Тогда Если ПараметрыОтправки.ДополнительныеПараметры.ОтправитьСразу Тогда
ПослеФормированияИОтправкиСообщения(Результат, ПараметрыОтправки.ДополнительныеПараметры); ПослеФормированияИОтправкиСообщения(Результат, ПараметрыОтправки);
Иначе Иначе
Если РежимВыбора Тогда Если РежимВыбора Тогда
Закрыть(Результат); Закрыть(Результат);
@@ -766,15 +766,22 @@
ИначеЕсли Параметры.ПараметрыВыбора.Количество() > 0 Тогда ИначеЕсли Параметры.ПараметрыВыбора.Количество() > 0 Тогда
Если Параметры.ПараметрыВыбора.Свойство("Назначение") Тогда ИмяВНазначение = ?(Параметры.ПараметрыВыбора.Свойство("Назначение"), Параметры.ПараметрыВыбора.Назначение, "");
НазначениеШаблона = НастройкиШаблоновСообщений.ПредметыШаблонов.Найти(Параметры.ПараметрыВыбора.Назначение, "Представление");
Если Параметры.ПараметрыВыбора.Свойство("ПолноеИмяТипаПараметраВводаНаОсновании") Тогда
ИмяВНазначение = Параметры.ПараметрыВыбора.ПолноеИмяТипаПараметраВводаНаОсновании;
КонецЕсли;
Если ЗначениеЗаполнено(ИмяВНазначение) Тогда
НазначениеШаблона = НастройкиШаблоновСообщений.ПредметыШаблонов.Найти(ИмяВНазначение, "Представление");
Если НазначениеШаблона = Неопределено Тогда Если НазначениеШаблона = Неопределено Тогда
НазначениеШаблона = НастройкиШаблоновСообщений.ПредметыШаблонов.Найти(Параметры.ПараметрыВыбора.Назначение, "Имя"); НазначениеШаблона = НастройкиШаблоновСообщений.ПредметыШаблонов.Найти(ИмяВНазначение, "Имя");
КонецЕсли; КонецЕсли;
Если НазначениеШаблона <> Неопределено Тогда Если НазначениеШаблона <> Неопределено Тогда
Объект.ПолноеИмяТипаПараметраВводаНаОсновании = НазначениеШаблона.Имя; Объект.ПолноеИмяТипаПараметраВводаНаОсновании = НазначениеШаблона.Имя;
Объект.Назначение = НазначениеШаблона.Представление; Объект.Назначение = НазначениеШаблона.Представление;
Объект.ПредназначенДляВводаНаОсновании = Истина; Объект.ПредназначенДляВводаНаОсновании = Истина;
Элементы.ГруппаНазначение.Видимость = Ложь;
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
@@ -683,8 +683,9 @@
+ "." + "."
+ Сред(ИмяПредопределенныхДанных, ПозицияЗаменяемогоСимвола + 1); + Сред(ИмяПредопределенныхДанных, ПозицияЗаменяемогоСимвола + 1);
Менеджер = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмяОбъекта); Менеджер = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмяОбъекта);
СсылкаОбъекта = Менеджер.ПустаяСсылка();
НаборыОбъекта = УправлениеСвойствамиСлужебный.ПолучитьНаборыСвойствОбъекта(СсылкаОбъекта); НовыйОбъект = Менеджер.СоздатьЭлемент();
НаборыОбъекта = УправлениеСвойствамиСлужебный.ПолучитьНаборыСвойствОбъекта(НовыйОбъект);
ПараметрыОтбора = Новый Структура; ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("ОбщийНабор", Истина); ПараметрыОтбора.Вставить("ОбщийНабор", Истина);
@@ -44,10 +44,6 @@
<metadata>InformationRegister.ОчередьИзвлеченияТекста</metadata> <metadata>InformationRegister.ОчередьИзвлеченияТекста</metadata>
<use>Use</use> <use>Use</use>
</content> </content>
<content>
<metadata>InformationRegister.СостоянияКонтрагентов</metadata>
<use>Use</use>
</content>
<content> <content>
<metadata>Constant.ПрефиксОбластиДанных</metadata> <metadata>Constant.ПрефиксОбластиДанных</metadata>
<use>Use</use> <use>Use</use>
@@ -120,10 +120,6 @@
<metadata>Constant.ПрофильБезопасностиИнформационнойБазы</metadata> <metadata>Constant.ПрофильБезопасностиИнформационнойБазы</metadata>
<use>DontUse</use> <use>DontUse</use>
</content> </content>
<content>
<metadata>Constant.ИспользоватьПроверкуКонтрагентов</metadata>
<use>DontUse</use>
</content>
<content> <content>
<metadata>InformationRegister.УдалитьЗамерыВремениТехнологические</metadata> <metadata>InformationRegister.УдалитьЗамерыВремениТехнологические</metadata>
<use>DontUse</use> <use>DontUse</use>
@@ -340,10 +336,6 @@
<metadata>Catalog.ПроизводственныеКалендари</metadata> <metadata>Catalog.ПроизводственныеКалендари</metadata>
<use>DontUse</use> <use>DontUse</use>
</content> </content>
<content>
<metadata>InformationRegister.СостоянияКонтрагентов</metadata>
<use>DontUse</use>
</content>
<content> <content>
<metadata>ScheduledJob.ОбновлениеАгрегатов</metadata> <metadata>ScheduledJob.ОбновлениеАгрегатов</metadata>
<use>DontUse</use> <use>DontUse</use>
@@ -572,10 +564,6 @@
<metadata>Constant.ХранитьФайлыВТомахНаДиске</metadata> <metadata>Constant.ХранитьФайлыВТомахНаДиске</metadata>
<use>DontUse</use> <use>DontUse</use>
</content> </content>
<content>
<metadata>ScheduledJob.ПроверкаКонтрагентов</metadata>
<use>DontUse</use>
</content>
<content> <content>
<metadata>Constant.ИспользоватьСервисСклоненияMorpher</metadata> <metadata>Constant.ИспользоватьСервисСклоненияMorpher</metadata>
<use>DontUse</use> <use>DontUse</use>
@@ -1,10 +0,0 @@
#Область ОбработчикиСобытий
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ПроверкаКонтрагентовКлиент.ОткрытьНастройкиСервиса();
КонецПроцедуры
#КонецОбласти
@@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonCommand xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="36b080d5-a870-46fa-bf8d-0a06e3a9719f">
<name>НастройкиПроверкиКонтрагентов</name>
<synonym>
<key>ru</key>
<value>Настройки проверки контрагентов</value>
</synonym>
<group>ActionsPanelTools</group>
<representation>Auto</representation>
</mdclass:CommonCommand>
@@ -1,13 +0,0 @@
#Область ОбработчикиСобытий
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда
МодульПолучениеФайловИзИнтернетаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПолучениеФайловИзИнтернетаКлиент");
МодульПолучениеФайловИзИнтернетаКлиент.ОткрытьФормуПараметровПроксиСервера();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonCommand xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="f38069e7-6d69-4be9-8463-bc7a33158a1a">
<name>ПереходКНастройкамДоступаКВебСервису</name>
<synonym>
<key>ru</key>
<value>Переход к настройкам доступа к веб сервису</value>
</synonym>
<group>ActionsPanelTools</group>
<representation>Auto</representation>
</mdclass:CommonCommand>
@@ -1,9 +0,0 @@
#Область ОбработчикиСобытий
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ПроверкаКонтрагентовКлиент.ПроверитьДоступКСервису();
КонецПроцедуры
#КонецОбласти
@@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonCommand xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="c2e3f050-7465-4e5b-bc28-988a4d6bc1c2">
<name>ПроверитьДоступКСервису</name>
<synonym>
<key>ru</key>
<value>Проверить доступ к сервису</value>
</synonym>
<group>NavigationPanelOrdinary</group>
<representation>Auto</representation>
</mdclass:CommonCommand>
@@ -1,533 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
<title>
<key>ru</key>
<value>Проверка контрагентов</value>
</title>
<items xsi:type="form:FormGroup">
<name>ИнформацияОНеобходимостиОбратитьсяКАдминистратору</name>
<id>72</id>
<items xsi:type="form:Decoration">
<name>ИнформацияОСервисе</name>
<id>89</id>
<title>
<key>ru</key>
<value>В программе имеется возможность использовать веб-сервис ФНС для автоматической проверки регистрации контрагентов в ЕГРН (требуется доступ в Интернет).</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ИнформацияОСервисеРасширеннаяПодсказка</name>
<id>91</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ИнформацияОСервисеКонтекстноеМеню</name>
<id>90</id>
<autoFill>true</autoFill>
</contextMenu>
<formatted>true</formatted>
<type>Label</type>
<height>2</height>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>РежимыМедленнойРаботы</name>
<id>104</id>
<items xsi:type="form:FormGroup">
<name>НедостаточноПамяти</name>
<id>106</id>
<items xsi:type="form:Decoration">
<name>ТекстПроМедленноеОткрытие</name>
<id>101</id>
<title>
<key>ru</key>
<value>Включение автоматической проверки может замедлить открытие документов.
Рекомендуется увеличить количество памяти до 4 Гб или использовать ручную проверку по кнопке в подменю Еще.
&lt;link e1cib/app/Обработка.ИнструкцияПоИспользованиюПроверкиКонтрагента>Подробнее о проверке&lt;/></value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ТекстПроМедленноеОткрытиеРасширеннаяПодсказка</name>
<id>103</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ТекстПроМедленноеОткрытиеКонтекстноеМеню</name>
<id>102</id>
<autoFill>true</autoFill>
</contextMenu>
<formatted>true</formatted>
<type>Label</type>
<height>4</height>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Недостаточно памяти</value>
</title>
<extendedTooltip>
<name>НедостаточноПамятиРасширеннаяПодсказка</name>
<id>107</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo">
<group>Vertical</group>
<showTitle>auto</showTitle>
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>МедленноеСоединение</name>
<id>108</id>
<items xsi:type="form:Decoration">
<name>ТекстПроМедленноеСоединение</name>
<id>110</id>
<title>
<key>ru</key>
<value>Включение автоматической проверки может замедлить открытие документов.
Рекомендуется увеличить скорость интернета или использовать ручную проверку по кнопке в подменю Еще.
&lt;link e1cib/app/Обработка.ИнструкцияПоИспользованиюПроверкиКонтрагента>Подробн&lt;/>&lt;link e1cib/app/Обработка.ИнструкцияПоИспользованиюПроверкиКонтрагента>ее о проверке&lt;/></value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ТекстПроМедленноеСоединениеРасширеннаяПодсказка</name>
<id>112</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ТекстПроМедленноеСоединениеКонтекстноеМеню</name>
<id>111</id>
<autoFill>true</autoFill>
</contextMenu>
<formatted>true</formatted>
<type>Label</type>
<height>3</height>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Медленное соединение</value>
</title>
<extendedTooltip>
<name>МедленноеСоединениеРасширеннаяПодсказка</name>
<id>109</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo">
<group>Vertical</group>
<showTitle>auto</showTitle>
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Режимы медленной работы</value>
</title>
<extendedTooltip>
<name>РежимыМедленнойРаботыРасширеннаяПодсказка</name>
<id>105</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Pages</type>
<extInfo xsi:type="form:PagesGroupExtInfo">
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ТестовыйРежим</name>
<id>92</id>
<title>
<key>ru</key>
<value>&lt;Предупреждение про тестовый режим работы сервиса></value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ТестовыйРежимРасширеннаяПодсказка</name>
<id>94</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ТестовыйРежимКонтекстноеМеню</name>
<id>93</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>true</horizontalStretch>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
<backColor xsi:type="core:ColorRef">
<color>Style.ЦветФонаТестовогоРежимаСервисаФНС</color>
</backColor>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Для включения автоматической проверки обратитесь к администратору</value>
</title>
<extendedTooltip>
<name>ИнформацияОНеобходимостиОбратитьсяКАдминистраторуРасширеннаяПодсказка</name>
<id>73</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<behavior>Auto</behavior>
<representation>NormalSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<showTitle>auto</showTitle>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>Кнопки</name>
<id>65</id>
<items xsi:type="form:Button">
<name>ВключитьСервисСейчас</name>
<id>49</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ВключитьСервисСейчасРасширеннаяПодсказка</name>
<id>50</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ВключитьСервисСейчас</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>РучнаяПроверка</name>
<id>67</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>РучнаяПроверкаРасширеннаяПодсказка</name>
<id>68</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.РучнаяПроверка</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>НапомнитьПозже</name>
<id>53</id>
<title>
<key>ru</key>
<value>Напомнить позже</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>НапомнитьПозжеРасширеннаяПодсказка</name>
<id>54</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.НапомнитьПозже</commandName>
<buttonImportance>Normal</buttonImportance>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>БольшеНеПоказывать</name>
<id>113</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>БольшеНеПоказыватьРасширеннаяПодсказка</name>
<id>114</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.БольшеНеПоказывать</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Кнопки</value>
</title>
<extendedTooltip>
<name>КнопкиРасширеннаяПодсказка</name>
<id>66</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>CommandBar</type>
<extInfo xsi:type="form:CommandBarExtInfo">
<horizontalAlign>Right</horizontalAlign>
</extInfo>
</items>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<horizontalAlign>Left</horizontalAlign>
</autoCommandBar>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<width>70</width>
<windowOpeningMode>LockOwner</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>auto</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>ЕстьПравоНаРедактированиеНастроекСервиса</name>
<title>
<key>ru</key>
<value>Есть право на редактирование настроек сервиса</value>
</title>
<id>3</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ВключитьСервисСейчас</name>
<title>
<key>ru</key>
<value>Автоматическая проверка</value>
</title>
<id>1</id>
<toolTip>
<key>ru</key>
<value>Включить автоматическую проверку</value>
</toolTip>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ВключитьСервисСейчас</name>
</handler>
</action>
<currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<formCommands>
<name>РучнаяПроверка</name>
<title>
<key>ru</key>
<value>Ручная проверка</value>
</title>
<id>3</id>
<toolTip>
<key>ru</key>
<value>Ручная проверка</value>
</toolTip>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>РучнаяПроверка</name>
</handler>
</action>
<currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<formCommands>
<name>НапомнитьПозже</name>
<title>
<key>ru</key>
<value>Напомнить позже</value>
</title>
<id>2</id>
<toolTip>
<key>ru</key>
<value>Напомнить позже</value>
</toolTip>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>НапомнитьПозже</name>
</handler>
</action>
<currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<formCommands>
<name>БольшеНеПоказывать</name>
<title>
<key>ru</key>
<value>Больше не показывать</value>
</title>
<id>4</id>
<toolTip>
<key>ru</key>
<value>Больше не показывать</value>
</toolTip>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>БольшеНеПоказывать</name>
</handler>
</action>
<currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
</form:Form>
@@ -1,130 +0,0 @@
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест".
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ЕстьПравоНаРедактированиеНастроекСервиса = ПроверкаКонтрагентов.ЕстьПравоНаРедактированиеНастроек();
ПроверкаКонтрагентов.СохранитьДатуПоследнегоОтображенияПредложенияПодключиться();
УправлениеЭУ();
КонецПроцедуры
&НаКлиенте
Процедура НапомнитьПозже(Команда)
Закрыть();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ВключитьСервисСейчас(Команда)
ПроверкаКонтрагентовВызовСервера.ПриВключенииВыключенииПроверки(Истина);
Закрыть();
КонецПроцедуры
&НаКлиенте
Процедура РучнаяПроверка(Команда)
ПроверкаКонтрагентовВызовСервера.ЗапомнитьЧтоБольшеНеНужноПоказыватьПредложениеИспользоватьСервис();
Закрыть();
КонецПроцедуры
&НаКлиенте
Процедура БольшеНеПоказывать(Команда)
ПроверкаКонтрагентовВызовСервера.ЗапомнитьЧтоБольшеНеНужноПоказыватьПредложениеИспользоватьСервис();
Закрыть();
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура УправлениеЭУ()
ЭтоМедленныйРежимРаботы = ПроверкаКонтрагентов.ЭтоМедленныйРежимРаботы();
// В зависимости от наличия административных прав будут доступны разные элементы управления.
Элементы.ИнформацияОНеобходимостиОбратитьсяКАдминистратору.ОтображатьЗаголовок =
НЕ ЕстьПравоНаРедактированиеНастроекСервиса;
СтандартныеПодсистемыСервер.УстановитьОтображениеЗаголовковГрупп(ЭтотОбъект);
// Управление кнопками. Видимость.
Элементы.ВключитьСервисСейчас.Видимость = ЕстьПравоНаРедактированиеНастроекСервиса;
Элементы.РучнаяПроверка.Видимость = ЕстьПравоНаРедактированиеНастроекСервиса;
Элементы.БольшеНеПоказывать.Видимость = НЕ ЕстьПравоНаРедактированиеНастроекСервиса;
// Управление кнопками. Кнопка по умолчанию.
Если ЕстьПравоНаРедактированиеНастроекСервиса Тогда
Если ЭтоМедленныйРежимРаботы Тогда
Элементы.РучнаяПроверка.КнопкаПоУмолчанию = Истина;
Иначе
Элементы.ВключитьСервисСейчас.КнопкаПоУмолчанию = Истина;
КонецЕсли;
Иначе
Элементы.НапомнитьПозже.КнопкаПоУмолчанию = Истина;
КонецЕсли;
// Настройка в зависимости от медленности компьютера.
Элементы.РежимыМедленнойРаботы.Видимость = ЭтоМедленныйРежимРаботы;
Если ЭтоМедленныйРежимРаботы Тогда
УправлениеНадписьюДляМедленногоРежима();
Иначе
ПрисоединитьСсылкуНаИнструкцию(Элементы.ИнформацияОСервисе);
КонецЕсли;
// Сообщаем про тестовый режим.
ПроверкаКонтрагентов.УстановитьВидимостьИЗаголовокПредупрежденияПроТестовыйРежим(Элементы.ТестовыйРежим);
КонецПроцедуры
&НаСервере
Процедура УправлениеНадписьюДляМедленногоРежима()
СтрокаСоединенияИБ = ПараметрыСеанса.ПараметрыКлиентаНаСервере.Получить("СтрокаСоединенияИнформационнойБазы");
ИБФайловая = СтрНайти(ВРег(СтрокаСоединенияИБ), "FILE=") = 1;
Если ИБФайловая Тогда
Элементы.РежимыМедленнойРаботы.ТекущаяСтраница = Элементы.НедостаточноПамяти;
Иначе
Элементы.РежимыМедленнойРаботы.ТекущаяСтраница = Элементы.МедленноеСоединение;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПрисоединитьСсылкуНаИнструкцию(Элемент)
ПутьКИнструкции = Новый ФорматированнаяСтрока(
НСтр("ru = 'Подробнее о проверке'"),
,
,
,
ПроверкаКонтрагентовКлиентСервер.ПутьКИнструкции());
Элемент.Заголовок = Новый ФорматированнаяСтрока(
Элемент.Заголовок,
Символы.ПС,
ПутьКИнструкции);
Элемент.Высота = Элемент.Высота + 1;
КонецПроцедуры
#КонецОбласти
@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonForm xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="d67a1377-f69f-48d9-824d-2ede2594e630">
<name>ВключениеПроверкиКонтрагентов</name>
<synonym>
<key>ru</key>
<value>Включение проверки контрагентов</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
<useStandardCommands>true</useStandardCommands>
</mdclass:CommonForm>
@@ -1,10 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.18427"></meta></head><body>
<h1>Заполнение реквизитов контрагента </h1>
<p></p>
<p class="Usual">Форма предназначена для автоматического заполнения реквизитов контрагента на основании данных Единого государственного реестра юридических лиц (ЕГРЮЛ).</p>
<p class="Usual">Для поиска в ЕГРЮЛ необходимо указать одно или несколько слов из наименования контрагента или его ИНН и нажать <strong>"Найти"</strong>. </p>
<p class="Usual">Для более точного поиска по наименованию можно задать регион местонахождения контрагента, а также ввести город или улицу (одно или несколько слов) из юридического адреса.</p>
<p class="Usual"><strong>Внимание!</strong> Для поиска необходимо вводить целые слова, поиск по части слов не производится.</p>
<p class="Usual">Реквизиты найденных контрагентов, подходящих под условия поиска, выводятся в таблицу.</p>
<p class="Usual">Заполнение реквизитов контрагента производится по двойному щелчку мышью на нужной строке таблицы или по кнопке <strong>"Выбрать"</strong>.</p>
<p class="Usual">Для автоматического заполнения реквизитов необходим доступ в интернет и действующий договор ИТС.</p></body></html>
@@ -1,293 +0,0 @@
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
Если НЕ ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей") Тогда
ТекстИсключения = НСтр("ru='Заполнение реквизитов в данной конфигурации невозможно.'");
ВызватьИсключение ТекстИсключения;
КонецЕсли;
СтрокаПоиска = Параметры.СтрокаПоиска;
Если НЕ ПустаяСтрока(Параметры.Заголовок) Тогда
Заголовок = Параметры.Заголовок;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
МодульАдресныйКлассификатор = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификатор");
ТаблицаРегионов = МодульАдресныйКлассификатор.СубъектыРФ();
Элементы.Регион.СписокВыбора.Очистить();
Для каждого СтрокаТаблицы Из ТаблицаРегионов Цикл
Элементы.Регион.СписокВыбора.Добавить(
Формат(СтрокаТаблицы.КодСубъектаРФ, "ЧЦ=2; ЧДЦ=; ЧВН="),
СтрокаТаблицы.Наименование + " " + СтрокаТаблицы.Сокращение);
КонецЦикла;
Элементы.Регион.СписокВыбора.СортироватьПоПредставлению();
КонецЕсли;
Элементы.Регион.СписокВыбора.Вставить(0, "", НСтр("ru='Все регионы'"));
Регион = "";
УправлениеФормой(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если ЗначениеЗаполнено(СтрокаПоиска) Тогда
ПодключитьОбработчикОжидания("ВыполнитьПоискКонтрагентов", 0.1, Истина);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки)
Регион = Настройки["Регион"];
Если Элементы.Регион.СписокВыбора.НайтиПоЗначению(Регион) = Неопределено Тогда
Регион = "";
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура СтрокаПоискаПриИзменении(Элемент)
Если ЭтоИНН(СтрокаПоиска) Тогда
Адрес = "";
ВыполнитьПоискКонтрагентов();
КонецЕсли;
УправлениеФормой(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура РегионПриИзменении(Элемент)
Если Элементы.Регион.СписокВыбора.НайтиПоЗначению(Регион) = Неопределено Тогда
Регион = "";
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыКонтрагенты
&НаКлиенте
Процедура КонтрагентыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ВыполнитьВыборКонтрагента();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура НайтиКонтрагентов(Команда)
ВыполнитьПоискКонтрагентов();
КонецПроцедуры
&НаКлиенте
Процедура ВыбратьКонтрагента(Команда)
ВыполнитьВыборКонтрагента();
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиентеНаСервереБезКонтекста
Функция ЭтоИНН(СтрокаПоиска)
Результат = ЗначениеЗаполнено(СтрокаПоиска)
И (СтрДлина(СтрокаПоиска) = 10 ИЛИ СтрДлина(СтрокаПоиска) = 12)
И СтроковыеФункцииКлиентСервер.ТолькоЦифрыВСтроке(СтрокаПоиска);
Возврат Результат;
КонецФункции
&НаКлиенте
Процедура ВыполнитьПоискКонтрагентов() Экспорт
ОписаниеОшибки = "";
НайтиРеквизитыНаСервере(ОписаниеОшибки);
// Обработка ошибок
Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда
Если ОписаниеОшибки = "НеУказаныПараметрыАутентификации" Тогда
ТекстВопроса = НСтр("ru='Для автоматического заполнения реквизитов контрагентов
|необходимо подключиться к интернет-поддержке пользователей.
|Подключиться сейчас?'");
ОписаниеОповещения = Новый ОписаниеОповещения("ПодключитьИнтернетПоддержку", ЭтотОбъект);
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ДаНет);
ИначеЕсли ОписаниеОшибки = "НеУказанПароль" Тогда
ТекстВопроса = НСтр("ru='Необходимо указать пароль к Интернет-поддержке пользователей
|и установить флажок ""Запомнить пароль"".
|Указать сейчас?'");
ОписаниеОповещения = Новый ОписаниеОповещения("ПодключитьИнтернетПоддержку", ЭтотОбъект);
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ДаНет);
ИначеЕсли ОписаниеОшибки = "Сервис1СКонтрагентНеПодключен" Тогда
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ИдентификаторМестаВызова", "zapolnenie_rekvizitov");
ОткрытьФорму("ОбщаяФорма.Сервис1СКонтрагентНеПодключен", ПараметрыФормы, ЭтотОбъект);
Иначе
ПоказатьПредупреждение(, ОписаниеОшибки);
КонецЕсли;
ИначеЕсли КоличествоНайденных > 20 Тогда
ТекстПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Найдено слишком много похожих контрагентов (%1). Уточните реквизиты для поиска.'"),
КоличествоНайденных);
ПоказатьПредупреждение(, ТекстПредупреждения);
ИначеЕсли НЕ ПустаяСтрока(СтрокаПоиска) И КоличествоНайденных = 0 Тогда
ПоказатьПредупреждение(, НСтр("ru='Ничего не найдено. Уточните реквизиты для поиска.'"));
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьВыборКонтрагента()
ТекДанные = Элементы.Контрагенты.ТекущиеДанные;
Если ТекДанные = Неопределено Тогда
Если Контрагенты.Количество() = 0 Тогда
ТекстПредупреждения = НСтр("ru='Ничего не найдено. Уточните реквизиты и нажмите ""Найти"".'");
ПоказатьПредупреждение(, ТекстПредупреждения);
КонецЕсли;
Возврат;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ТекДанные.ИНН) Тогда
ТекстПредупреждения = НСтр("ru='Выберите контрагента, у которого указан ИНН.'");
ПоказатьПредупреждение(, ТекстПредупреждения);
Возврат;
КонецЕсли;
ОповеститьОВыборе(ТекДанные.ИНН);
КонецПроцедуры
&НаСервере
Процедура НайтиРеквизитыНаСервере(ОписаниеОшибки)
Если НЕ ПроверитьЗаполнение() Тогда
Возврат;
КонецЕсли;
Информация = "";
Контрагенты.Очистить();
КоличествоНайденных = 0;
ПоискПоИНН = ЭтоИНН(СтрокаПоиска);
ПоискЮридическогоЛица = (ПоискПоИНН И СтрДлина(СтрокаПоиска) = 10)
ИЛИ НЕ ПоискПоИНН;
Если ПоискПоИНН Тогда
Если ПоискЮридическогоЛица Тогда
НайденныеРеквизиты = ДанныеЕдиныхГосРеестров.РеквизитыЮридическогоЛицаПоИНН(СтрокаПоиска);
Иначе
НайденныеРеквизиты = ДанныеЕдиныхГосРеестров.РеквизитыПредпринимателяПоИНН(СтрокаПоиска);
КонецЕсли;
Иначе
НайденныеРеквизиты = ДанныеЕдиныхГосРеестров.РеквизитыЮридическихЛицПоНаименованию(СтрокаПоиска, Регион, Адрес);
КонецЕсли;
Если ЗначениеЗаполнено(НайденныеРеквизиты.ОписаниеОшибки) Тогда
ОписаниеОшибки = НайденныеРеквизиты.ОписаниеОшибки;
Возврат;
КонецЕсли;
Если ПоискПоИНН Тогда
НоваяСтрока = Контрагенты.Добавить();
НоваяСтрока.ИНН = НайденныеРеквизиты.ИНН;
Если ПоискЮридическогоЛица Тогда
НоваяСтрока.Наименование = НайденныеРеквизиты.НаименованиеПолное;
Если НайденныеРеквизиты.ЮридическийАдрес <> Неопределено Тогда
НоваяСтрока.ЮридическийАдрес = НайденныеРеквизиты.ЮридическийАдрес.Представление;
КонецЕсли;
Если НайденныеРеквизиты.Руководитель <> Неопределено Тогда
НоваяСтрока.Руководитель = НайденныеРеквизиты.Руководитель.Представление;
КонецЕсли;
Иначе
НоваяСтрока.Наименование = НайденныеРеквизиты.Наименование;
КонецЕсли;
КоличествоНайденных = 1;
Иначе
Для каждого РеквизитыОрганизации Из НайденныеРеквизиты.РеквизитыОрганизаций Цикл
НоваяСтрока = Контрагенты.Добавить();
НоваяСтрока.ИНН = РеквизитыОрганизации.ИНН;
НоваяСтрока.Наименование = РеквизитыОрганизации.НаименованиеПолное;
Если РеквизитыОрганизации.ЮридическийАдрес <> Неопределено Тогда
НоваяСтрока.ЮридическийАдрес = РеквизитыОрганизации.ЮридическийАдрес.Представление;
КонецЕсли;
Если РеквизитыОрганизации.Руководитель <> Неопределено Тогда
НоваяСтрока.Руководитель = РеквизитыОрганизации.Руководитель.Фамилия
+ " " + РеквизитыОрганизации.Руководитель.Имя
+ " " + РеквизитыОрганизации.Руководитель.Отчество;
КонецЕсли;
КонецЦикла;
КоличествоНайденных = НайденныеРеквизиты.КоличествоНайденных;
КонецЕсли;
Если КоличествоНайденных > 20 Тогда
ТекущийЭлемент = Элементы.СтрокаПоиска;
Информация = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Показаны первые 20 контрагентов из %1 найденных. Уточните реквизиты для поиска.'"),
КоличествоНайденных);
ИначеЕсли КоличествоНайденных > 0 Тогда
ТекущийЭлемент = Элементы.Контрагенты;
Элементы.Контрагенты.ТекущаяСтрока = Контрагенты[0].ПолучитьИдентификатор();
Иначе
ТекущийЭлемент = Элементы.СтрокаПоиска;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПодключитьИнтернетПоддержку(Ответ, ДопПараметры) Экспорт
Если Ответ = КодВозвратаДиалога.Да
И ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей") Тогда
ОписаниеОповещения = Новый ОписаниеОповещения("ПодключитьИнтернетПоддержкуЗавершение", ЭтотОбъект, ДопПараметры);
МодульИнтернетПоддержкаПользователейКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль(
"ИнтернетПоддержкаПользователейКлиент");
МодульИнтернетПоддержкаПользователейКлиент.ПодключитьИнтернетПоддержкуПользователей(ОписаниеОповещения, ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПодключитьИнтернетПоддержкуЗавершение(Результат, ДопПараметры) Экспорт
Если Результат <> Неопределено Тогда
ВыполнитьПоискКонтрагентов();
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УправлениеФормой(Форма)
ЭтоИНН = ЭтоИНН(Форма.СтрокаПоиска);
Форма.Элементы.Регион.Доступность = НЕ ЭтоИНН;
Форма.Элементы.Адрес.Доступность = НЕ ЭтоИНН;
КонецПроцедуры
#КонецОбласти
@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonForm xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="30a87c95-4d55-4b68-877f-1055e1c1afa7">
<name>ЗаполнениеРеквизитовКонтрагента</name>
<synonym>
<key>ru</key>
<value>Заполнение реквизитов контрагента</value>
</synonym>
<help>
<pages>
<lang>ru</lang>
</pages>
</help>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
<useStandardCommands>true</useStandardCommands>
</mdclass:CommonForm>
@@ -159,6 +159,18 @@
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<groupHorizontalAlign>Right</groupHorizontalAlign> <groupHorizontalAlign>Right</groupHorizontalAlign>
<placementArea>UserCmds</placementArea> <placementArea>UserCmds</placementArea>
<backColor xsi:type="core:ColorDef">
<red>255</red>
<green>229</green>
<blue>38</blue>
</backColor>
<font xsi:type="core:FontRef">
<font>Style.NormalTextFont</font>
<bold>true</bold>
<italic>false</italic>
<underline>false</underline>
<strikeout>false</strikeout>
</font>
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
</items> </items>
<items xsi:type="form:Button"> <items xsi:type="form:Button">
@@ -888,6 +900,18 @@
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea> <placementArea>UserCmds</placementArea>
<backColor xsi:type="core:ColorDef">
<red>255</red>
<green>230</green>
<blue>43</blue>
</backColor>
<font xsi:type="core:FontRef">
<font>Style.NormalTextFont</font>
<bold>true</bold>
<italic>false</italic>
<underline>false</underline>
<strikeout>false</strikeout>
</font>
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
</items> </items>
<visible>true</visible> <visible>true</visible>
@@ -147,10 +147,10 @@
&НаКлиенте &НаКлиенте
Процедура УправлениеДоступностьюКнопкиНавигацияРазделов() Процедура УправлениеДоступностьюКнопкиНавигацияРазделов()
Элементы.ПредыдущийРаздел.Доступность = (Элементы.ДеревоРазделов.ТекущаяСтрока <> 0); Элементы.ПредыдущийРаздел.Видимость = (Элементы.ДеревоРазделов.ТекущаяСтрока <> 0);
Элементы.ПредыдущийРазделПодвал.Доступность = (Элементы.ДеревоРазделов.ТекущаяСтрока > 0); Элементы.ПредыдущийРазделПодвал.Видимость = (Элементы.ДеревоРазделов.ТекущаяСтрока > 0);
Элементы.СледующийРаздел.Доступность = (ДеревоРазделов.НайтиПоИдентификатору(Элементы.ДеревоРазделов.ТекущаяСтрока + 1) <> Неопределено); Элементы.СледующийРаздел.Видимость = (ДеревоРазделов.НайтиПоИдентификатору(Элементы.ДеревоРазделов.ТекущаяСтрока + 1) <> Неопределено);
Элементы.СледующийРазделПодвал.Доступность = (ДеревоРазделов.НайтиПоИдентификатору(Элементы.ДеревоРазделов.ТекущаяСтрока + 1) <> Неопределено); Элементы.СледующийРазделПодвал.Видимость = (ДеревоРазделов.НайтиПоИдентификатору(Элементы.ДеревоРазделов.ТекущаяСтрока + 1) <> Неопределено);
КонецПроцедуры КонецПроцедуры
@@ -1,306 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
<title>
<key>ru</key>
<value>Настройки проверки контрагентов</value>
</title>
<items xsi:type="form:FormGroup">
<name>ПерваяГруппаНастроек</name>
<id>133</id>
<items xsi:type="form:FormGroup">
<name>ЛеваяКолонкаПервойГруппы</name>
<id>129</id>
<items xsi:type="form:FormField">
<name>ИспользоватьАвтоматическуюПроверкуКонтрагентов</name>
<id>156</id>
<title>
<key>ru</key>
<value>Автоматически проверять контрагентов по ЕГРН</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ПроверкаКонтрагентовВключена</segments>
</dataPath>
<titleLocation>Right</titleLocation>
<toolTipRepresentation>ShowBottom</toolTipRepresentation>
<handlers>
<event>OnChange</event>
<name>ИспользоватьАвтоматическуюПроверкуКонтрагентов</name>
</handlers>
<extendedTooltip>
<name>ИспользоватьАвтоматическуюПроверкуКонтрагентовРасширеннаяПодсказка</name>
<id>158</id>
<title>
<key>ru</key>
<value>&lt;color #807a59>Включение автоматической проверки может замедлить открытие документов на медленных компьютерах. Для таких компьютеров рекомендуется использовать ручную проверку по кнопке в подменю Еще.&lt;/>
&lt;link e1cib/app/Обработка.ИнструкцияПоИспользованиюПроверкиКонтрагента>Подробнее о сервисе&lt;/></value>
</title>
<formatted>true</formatted>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ИспользоватьАвтоматическуюПроверкуКонтрагентовКонтекстноеМеню</name>
<id>157</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Левая колонка первой группы</value>
</title>
<horizontalStretch>false</horizontalStretch>
<extendedTooltip>
<name>ЛеваяКолонкаПервойГруппыРасширеннаяПодсказка</name>
<id>130</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ПраваяКолонкаПервойГруппы</name>
<id>131</id>
<items xsi:type="form:Button">
<name>ПроверитьДоступКСервису</name>
<id>135</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ПроверитьДоступКСервисуРасширеннаяПодсказка</name>
<id>136</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualButton</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:Decoration">
<name>ПредупреждениеПроТестовыйРежимПроверкиКонтрагента</name>
<id>121</id>
<title>
<key>ru</key>
<value>&lt;Предупреждение про тестовый режим работы сервиса></value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ПредупреждениеПроТестовыйРежимПроверкиКонтрагентаРасширеннаяПодсказка</name>
<id>123</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПредупреждениеПроТестовыйРежимПроверкиКонтрагентаКонтекстноеМеню</name>
<id>122</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<width>43</width>
<autoMaxWidth>true</autoMaxWidth>
<height>1</height>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>false</horizontalStretch>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
<backColor xsi:type="core:ColorRef">
<color>Style.ЦветФонаТестовогоРежимаСервисаФНС</color>
</backColor>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Правая колонка первой группы</value>
</title>
<extendedTooltip>
<name>ПраваяКолонкаПервойГруппыРасширеннаяПодсказка</name>
<id>132</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Первая группа настроек</value>
</title>
<extendedTooltip>
<name>ПерваяГруппаНастроекРасширеннаяПодсказка</name>
<id>134</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:Button">
<name>ФормаИзменитьФорму</name>
<id>151</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаИзменитьФормуРасширеннаяПодсказка</name>
<id>152</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>0</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
</items>
<horizontalAlign>Left</horizontalAlign>
</autoCommandBar>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<windowOpeningMode>DontBlock</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<enabled>true</enabled>
<showTitle>auto</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>ПроверкаКонтрагентовВключена</name>
<title>
<key>ru</key>
<value>Проверять контрагентов с помощью веб-сервиса ФНС</value>
</title>
<id>2</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ПроверитьДоступКСервису</name>
<title>
<key>ru</key>
<value>Проверить доступ к веб-сервису</value>
</title>
<id>1</id>
<toolTip>
<key>ru</key>
<value>Проверить доступ к сервису</value>
</toolTip>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ПроверитьДоступКСервису</name>
</handler>
</action>
<currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
</form:Form>
@@ -1,40 +0,0 @@
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест".
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ПроверкаКонтрагентовВключена = ПроверкаКонтрагентов.ПроверкаКонтрагентовВключена();
ПроверкаКонтрагентов.УстановитьВидимостьИЗаголовокПредупрежденияПроТестовыйРежим(
Элементы.ПредупреждениеПроТестовыйРежимПроверкиКонтрагента);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ИспользоватьАвтоматическуюПроверкуКонтрагентов(Элемент)
ПроверкаКонтрагентовВызовСервера.ПриВключенииВыключенииПроверки(ПроверкаКонтрагентовВключена);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ПроверитьДоступКСервису(Команда)
ПроверкаКонтрагентовКлиент.ПроверитьДоступКСервису();
КонецПроцедуры
#КонецОбласти
@@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonForm xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="21c1b2d3-cd96-4cdd-9ccc-ada27b127969">
<name>НастройкиПроверкиКонтрагентов</name>
<synonym>
<key>ru</key>
<value>Настройки проверки контрагентов</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</mdclass:CommonForm>
@@ -170,6 +170,7 @@
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
&НаСервере
Функция ПроверитьЗаполнениеНаСервере() Функция ПроверитьЗаполнениеНаСервере()
Возврат ПроверитьЗаполнение(); Возврат ПроверитьЗаполнение();
@@ -892,7 +892,7 @@
КонецЕсли; КонецЕсли;
ТабличныйДокумент = ПечатнаяФорма.ПолучитьОбласть(Область.Верх, , Область.Низ); ТабличныйДокумент = ПечатнаяФорма.ПолучитьОбласть(Область.Верх, , Область.Низ);
ЗаполнитьЗначенияСвойств(ТабличныйДокумент, ПечатнаяФорма, ЗаполнитьЗначенияСвойств(ТабличныйДокумент, ПечатнаяФорма,
"АвтоМасштаб,Вывод,ВысотаСтраницы,ДвусторонняяПечать,Защита,ИмяПринтера,КодЯзыка,КоличествоЭкземпляров,МасштабПечати,ОриентацияСтраницы,ПолеСверху,ПолеСлева,ПолеСнизу,ПолеСправа,РазборПоКопиям,РазмерКолонтитулаСверху,РазмерКолонтитулаСнизу,РазмерСтраницы,ТочностьПечати,ЧерноБелаяПечать,ШиринаСтраницы,ЭкземпляровНаСтранице"); УправлениеПечатью.КопируемыеСвойстваТабличногоДокумента());
Результат.Вставить(ОбъектПечати.Значение, ТабличныйДокумент); Результат.Вставить(ОбъектПечати.Значение, ТабличныйДокумент);
КонецЦикла; КонецЦикла;
Возврат Результат; Возврат Результат;
@@ -1330,7 +1330,7 @@
ПечатнаяФорма = ЭтотОбъект[НастройкаПечатнойФормы.ИмяРеквизита]; ПечатнаяФорма = ЭтотОбъект[НастройкаПечатнойФормы.ИмяРеквизита];
ТабличныйДокумент = Новый ТабличныйДокумент; ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.Вывести(ПечатнаяФорма); ТабличныйДокумент.Вывести(ПечатнаяФорма);
ЗаполнитьЗначенияСвойств(ТабличныйДокумент, ПечатнаяФорма, "АвтоМасштаб,Вывод,ВысотаСтраницы,ДвусторонняяПечать,Защита,ИмяПринтера,КодЯзыка,КоличествоЭкземпляров,МасштабПечати,ОриентацияСтраницы,ПолеСверху,ПолеСлева,ПолеСнизу,ПолеСправа,РазборПоКопиям,РазмерКолонтитулаСверху,РазмерКолонтитулаСнизу,РазмерСтраницы,ТочностьПечати,ЧерноБелаяПечать,ШиринаСтраницы,ЭкземпляровНаСтранице"); ЗаполнитьЗначенияСвойств(ТабличныйДокумент, ПечатнаяФорма, УправлениеПечатью.КопируемыеСвойстваТабличногоДокумента());
ТабличныйДокумент.КоличествоЭкземпляров = НастройкаПечатнойФормы.Количество; ТабличныйДокумент.КоличествоЭкземпляров = НастройкаПечатнойФормы.Количество;
ТабличныеДокументы.Добавить(ТабличныйДокумент, НастройкаПечатнойФормы.Представление); ТабличныеДокументы.Добавить(ТабличныйДокумент, НастройкаПечатнойФормы.Представление);
КонецЕсли; КонецЕсли;
@@ -1,288 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
<title>
<key>ru</key>
<value>Сервис не подключен</value>
</title>
<items xsi:type="form:FormGroup">
<name>ГруппаКолонки</name>
<id>1</id>
<items xsi:type="form:FormGroup">
<name>ГруппаЛеваяКолонка</name>
<id>3</id>
<items xsi:type="form:Decoration">
<name>ДекорацияКартинка</name>
<id>5</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДекорацияКартинкаРасширеннаяПодсказка</name>
<id>7</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДекорацияКартинкаКонтекстноеМеню</name>
<id>6</id>
<autoFill>true</autoFill>
</contextMenu>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.Сервис1СКонтрагент</picture>
</picture>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>Декорация1СКонтрагент</name>
<id>8</id>
<title>
<key>ru</key>
<value>1С:Контрагент</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>Декорация1СКонтрагентРасширеннаяПодсказка</name>
<id>10</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>Декорация1СКонтрагентКонтекстноеМеню</name>
<id>9</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<font xsi:type="core:FontRef">
<font>Style.LargeTextFont</font>
</font>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ДекорацияПодробно</name>
<id>22</id>
<title>
<key>ru</key>
<value>&lt;fontstyle -31>&lt;link https://portal.1c.ru/applications/3>Подробная информация&lt;/>&lt;/></value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДекорацияПодробноРасширеннаяПодсказка</name>
<id>24</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДекорацияПодробноКонтекстноеМеню</name>
<id>23</id>
<autoFill>true</autoFill>
</contextMenu>
<formatted>true</formatted>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Левая колонка</value>
</title>
<extendedTooltip>
<name>ГруппаЛеваяКолонкаРасширеннаяПодсказка</name>
<id>4</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ДекорацияОписание</name>
<id>19</id>
<title>
<key>ru</key>
<value>&lt;fontstyle -31>&lt;b>Сервис 1С:Контрагент не подключен&lt;/>&lt;/>
&lt;fontstyle -31>&lt;b>Возможности сервиса:&lt;/>&lt;/>
&lt;fontstyle -31>• Автоматическое заполнение реквизитов контрагентов по ИНН и наименованию&lt;/>
&lt;fontstyle -31>• Досье контрагента: сведения для оценки надежности контрагента&lt;/>
&lt;fontstyle -31>• Автоматическое заполнение реквизитов собственной организации, ФНС, ФСС и ПФР&lt;/>
&lt;fontstyle -31>• Оперативная проверка платежных реквизитов ФНС, ФСС и ПФР&lt;/>
&lt;fontstyle -31>Стоимость сервиса – от 400 руб. в месяц.&lt;/>
&lt;fontstyle -31>Сервис также предоставляется по &lt;/>&lt;fontstyle -31>договору&lt;/>&lt;fontstyle -31> &lt;/>&lt;fontstyle -31>ИТС уровня ПРОФ.&lt;/>
&lt;fontstyle -31>Для приобретения сервиса &lt;/>&lt;fontstyle -31>&lt;b>1С:Контрагент&lt;/>&lt;/>&lt;fontstyle -31> обратитесь к обслуживающему Вас партнеру фирмы &quot;1С&quot;. &lt;/>
&lt;fontstyle -31>Если у Вас нет обслуживающего партнера, Вы можете выбрать его из &lt;/>&lt;fontstyle -31>&lt;link http://its.1c.ru/news/redirect?utm_medium=prog&amp;utm_source=configid&amp;utm_content=contentid&amp;url=http://its.1c.ru/partners>списка партнеров в Вашем регионе&lt;/>&lt;/>&lt;fontstyle -31>.&lt;/>
</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДекорацияОписаниеРасширеннаяПодсказка</name>
<id>21</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДекорацияОписаниеКонтекстноеМеню</name>
<id>20</id>
<autoFill>true</autoFill>
</contextMenu>
<formatted>true</formatted>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<handlers>
<event>URLProcessing</event>
<name>ДекорацияОписаниеОбработкаНавигационнойСсылки</name>
</handlers>
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Колонки</value>
</title>
<extendedTooltip>
<name>ГруппаКолонкиРасширеннаяПодсказка</name>
<id>2</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<commandBarLocation>Bottom</commandBarLocation>
<showCommandBar>true</showCommandBar>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:Button">
<name>ФормаЗакрыть</name>
<id>17</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<defaultItem>true</defaultItem>
<extendedTooltip>
<name>ФормаЗакрытьРасширеннаяПодсказка</name>
<id>18</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.StandardCommand.Close</commandName>
<buttonImportance>Normal</buttonImportance>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<horizontalAlign>Right</horizontalAlign>
</autoCommandBar>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<windowOpeningMode>LockOwner</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>auto</showTitle>
<showCloseButton>true</showCloseButton>
<parameters>
<name>ИдентификаторМестаВызова</name>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<keyParameter>true</keyParameter>
</parameters>
<parameters>
<name>ИдентификаторКонфигурации</name>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<keyParameter>true</keyParameter>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
</form:Form>
@@ -1,25 +0,0 @@
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
РаботаСКонтрагентамиПереопределяемый.ЗаполнитьИдентификаторКонфигурации(Параметры.ИдентификаторКонфигурации);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ДекорацияОписаниеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
НавигационнаяСсылкаФорматированнойСтроки = СтрЗаменить(НавигационнаяСсылкаФорматированнойСтроки,
"configid", Параметры.ИдентификаторКонфигурации);
НавигационнаяСсылкаФорматированнойСтроки = СтрЗаменить(НавигационнаяСсылкаФорматированнойСтроки,
"contentid", Параметры.ИдентификаторМестаВызова);
КонецПроцедуры
#КонецОбласти
@@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonForm xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="ef6250de-a4ef-48d8-94d6-f4029e63d7d2">
<name>Сервис1СКонтрагентНеПодключен</name>
<synonym>
<key>ru</key>
<value>Сервис 1С:Контрагент не подключен</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</mdclass:CommonForm>
@@ -4264,7 +4264,6 @@
</handlers> </handlers>
<windowOpeningMode>DontBlock</windowOpeningMode> <windowOpeningMode>DontBlock</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings> <saveWindowSettings>true</saveWindowSettings>
<autoUrl>true</autoUrl>
<group>Vertical</group> <group>Vertical</group>
<autoFillCheck>true</autoFillCheck> <autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize> <allowFormCustomize>true</allowFormCustomize>
@@ -8,6 +8,8 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
НавигационнаяСсылка = "e1cib/app/ОбщаяФорма.СинхронизацияДанных";
РольДоступнаДобавлениеИзменениеОбменовДанными = ОбменДаннымиСервер.ЕстьПраваНаАдминистрированиеОбменов(); РольДоступнаДобавлениеИзменениеОбменовДанными = ОбменДаннымиСервер.ЕстьПраваНаАдминистрированиеОбменов();
Если Не РольДоступнаДобавлениеИзменениеОбменовДанными Тогда Если Не РольДоступнаДобавлениеИзменениеОбменовДанными Тогда
Элементы.СписокСостоянияУзловИзменитьУзелИнформационнойБазы.Видимость = Ложь; Элементы.СписокСостоянияУзловИзменитьУзелИнформационнойБазы.Видимость = Ложь;
@@ -105,7 +105,7 @@
<event>StartChoice</event> <event>StartChoice</event>
<name>ПапкаДляСохраненияФайловНачалоВыбора</name> <name>ПапкаДляСохраненияФайловНачалоВыбора</name>
</handlers> </handlers>
<autoMaxWidth>true</autoMaxWidth> <width>40</width>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap> <wrap>true</wrap>
<choiceButton>true</choiceButton> <choiceButton>true</choiceButton>
@@ -509,7 +509,7 @@
ЯвляетсяДокументом = ОбщегоНазначения.ЭтоДокумент(МетаданныеРеквизита); ЯвляетсяДокументом = ОбщегоНазначения.ЭтоДокумент(МетаданныеРеквизита);
Если ЯвляетсяДокументом Тогда Если ЯвляетсяДокументом Тогда
СписокРеквизитов.Добавить(ЗначениеРеквизита,Формат(ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЗначениеРеквизита, "Дата"),"ДЛФ=DT")); СписокРеквизитов.Добавить(ЗначениеРеквизита,Формат(ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЗначениеРеквизита, "Дата", Истина),"ДЛФ=DT"));
Иначе Иначе
СписокРеквизитов.Добавить(ЗначениеРеквизита, Дата(1,1,1)); СписокРеквизитов.Добавить(ЗначениеРеквизита, Дата(1,1,1));
КонецЕсли; КонецЕсли;
@@ -573,7 +573,7 @@
ЯвляетсяДокументом = ОбщегоНазначения.ЭтоДокумент(МетаданныеЗначения); ЯвляетсяДокументом = ОбщегоНазначения.ЭтоДокумент(МетаданныеЗначения);
Если ЯвляетсяДокументом Тогда Если ЯвляетсяДокументом Тогда
СписокРеквизитов.Добавить(ЗначениеРеквизита,Формат(ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЗначениеРеквизита, "Дата"),"ДЛФ=DT")); СписокРеквизитов.Добавить(ЗначениеРеквизита,Формат(ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЗначениеРеквизита, "Дата", Истина),"ДЛФ=DT"));
Иначе Иначе
СписокРеквизитов.Добавить(ЗначениеРеквизита, Дата(1,1,1)); СписокРеквизитов.Добавить(ЗначениеРеквизита, Дата(1,1,1));
КонецЕсли; КонецЕсли;
@@ -5193,6 +5193,84 @@
<representation>Compact</representation> <representation>Compact</representation>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:FormGroup">
<name>КомандыОформления_Флажки</name>
<id>1120</id>
<items xsi:type="form:Button">
<name>Оформление_УстановитьФлажки</name>
<id>1122</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>Оформление_УстановитьФлажкиРасширеннаяПодсказка</name>
<id>1123</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.Оформление_УстановитьФлажки</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>Оформление_СнятьФлажки</name>
<id>1124</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>Оформление_СнятьФлажкиРасширеннаяПодсказка</name>
<id>1125</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.Оформление_СнятьФлажки</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Команды оформления флажки</value>
</title>
<extendedTooltip>
<name>КомандыОформления_ФлажкиРасширеннаяПодсказка</name>
<id>1121</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<extInfo xsi:type="form:ButtonGroupExtInfo">
<representation>Compact</representation>
</extInfo>
</items>
<horizontalAlign>Left</horizontalAlign> <horizontalAlign>Left</horizontalAlign>
</autoCommandBar> </autoCommandBar>
<handlers> <handlers>
@@ -10730,6 +10808,58 @@
<currentRowUse>DontUse</currentRowUse> <currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse> <selectedRowsUse>Auto</selectedRowsUse>
</formCommands> </formCommands>
<formCommands>
<name>Оформление_УстановитьФлажки</name>
<title>
<key>ru</key>
<value>Установить флажки</value>
</title>
<id>46</id>
<toolTip>
<key>ru</key>
<value>Оформление установить флажки</value>
</toolTip>
<use>
<common>true</common>
</use>
<picture xsi:type="core:PictureRef">
<picture>StdPicture.CheckAll</picture>
</picture>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>Оформление_УстановитьФлажки</name>
</handler>
</action>
<representation>Picture</representation>
<currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<formCommands>
<name>Оформление_СнятьФлажки</name>
<title>
<key>ru</key>
<value>Снять флажки</value>
</title>
<id>47</id>
<toolTip>
<key>ru</key>
<value>Оформление снять флажки</value>
</toolTip>
<use>
<common>true</common>
</use>
<picture xsi:type="core:PictureRef">
<picture>StdPicture.UncheckAll</picture>
</picture>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>Оформление_СнятьФлажки</name>
</handler>
</action>
<representation>Picture</representation>
<currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<commandInterface> <commandInterface>
<navigationPanel/> <navigationPanel/>
<commandBar/> <commandBar/>
@@ -2286,6 +2286,16 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура Оформление_УстановитьФлажки(Команда)
УстановитьФлажкиИспользованиеВоВсемДереве("Оформление", Истина);
КонецПроцедуры
&НаКлиенте
Процедура Оформление_СнятьФлажки(Команда)
УстановитьФлажкиИспользованиеВоВсемДереве("Оформление", Ложь);
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область ОбработчикиКомандФормы #Область ОбработчикиКомандФормы
@@ -3441,11 +3451,11 @@
&НаКлиенте &НаКлиенте
Процедура ИзменитьУзелВарианта(СтрокаТаблицы, ИмяСтраницы, ИспользоватьФормуВарианта) Процедура ИзменитьУзелВарианта(СтрокаТаблицы, ИмяСтраницы, ИспользоватьФормуВарианта)
Если СтрокаТаблицы = Неопределено Тогда Если СтрокаТаблицы = Неопределено Тогда
Элементы = СтруктураВарианта.ПолучитьЭлементы(); ЭлементыСтруктуры = СтруктураВарианта.ПолучитьЭлементы();
Если Элементы.Количество() = 0 Тогда Если ЭлементыСтруктуры.Количество() = 0 Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
СтрокаТаблицы = Элементы[0]; СтрокаТаблицы = ЭлементыСтруктуры[0];
КонецЕсли; КонецЕсли;
Если ИспользоватьФормуВарианта = Неопределено Тогда Если ИспользоватьФормуВарианта = Неопределено Тогда
ИспользоватьФормуВарианта = (СтрокаТаблицы.Тип = "Таблица" ИспользоватьФормуВарианта = (СтрокаТаблицы.Тип = "Таблица"
@@ -3909,7 +3919,8 @@
Если ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СтрокаДерева, "ВыводитьФлажок") <> Ложь Если ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СтрокаДерева, "ВыводитьФлажок") <> Ложь
И ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СтрокаДерева, "ЭтоРаздел") <> Истина Тогда И ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СтрокаДерева, "ЭтоРаздел") <> Истина Тогда
ЭлементКД = УзелКД.ПолучитьОбъектПоИдентификатору(СтрокаДерева.ИдентификаторКД); ЭлементКД = УзелКД.ПолучитьОбъектПоИдентификатору(СтрокаДерева.ИдентификаторКД);
Если ЭлементКД <> Неопределено Тогда Если ЭлементКД <> Неопределено И ТипЗнч(ЭлементКД) <> Тип("КоллекцияЭлементовСтруктурыТаблицыКомпоновкиДанных")
И ТипЗнч(ЭлементКД) <> Тип("КоллекцияЭлементовСтруктурыДиаграммыКомпоновкиДанных") Тогда
СтрокаДерева.Использование = Использование; СтрокаДерева.Использование = Использование;
ЭлементКД.Использование = Использование; ЭлементКД.Использование = Использование;
ПослеИзмененияФлажкаИспользование(ТаблицаИмя, СтрокаДерева, ЭлементКД); ПослеИзмененияФлажкаИспользование(ТаблицаИмя, СтрокаДерева, ЭлементКД);
@@ -51,7 +51,7 @@
// Предварительная инициализация компоновщика (если требуется). // Предварительная инициализация компоновщика (если требуется).
АдресСхемы = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "АдресСхемы"); АдресСхемы = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "АдресСхемы");
Если РежимРасшифровки Тогда Если РежимРасшифровки И ТипЗнч(Параметры.Расшифровка) = Тип("ОписаниеОбработкиРасшифровкиКомпоновкиДанных") Тогда
НовыеНастройкиКД = ПолучитьИзВременногоХранилища(Параметры.Расшифровка.Данные).Настройки; НовыеНастройкиКД = ПолучитьИзВременногоХранилища(Параметры.Расшифровка.Данные).Настройки;
АдресСхемы = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(НовыеНастройкиКД.ДополнительныеСвойства, "АдресСхемы"); АдресСхемы = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(НовыеНастройкиКД.ДополнительныеСвойства, "АдресСхемы");
КонецЕсли; КонецЕсли;
@@ -332,6 +332,19 @@
Возврат АдресныйКлассификаторСлужебный.ОпределитьИдентификаторыАдреса(Адрес); Возврат АдресныйКлассификаторСлужебный.ОпределитьИдентификаторыАдреса(Адрес);
КонецФункции КонецФункции
// Возвращает соответствие полных наименований адресных объектов и их сокращения.
//
// Параметры:
// НаименованияАдресныхОбъектов - Массив - Полные наименования адресных объектов. Если передан пустой массив,
// то будут возвращен полный список наименований и сокращений.
//
// Возвращаемое значение:
// Соответствие - Соответствие найденных полных наименований адресных объектов их сокращениям.
//
Функция СокращенияАдресныхОбъектов(НаименованияАдресныхОбъектов) Экспорт
Возврат АдресныйКлассификаторСлужебный.СокращенияАдресныхОбъектов(НаименованияАдресныхОбъектов);
КонецФункции
#Область УстаревшиеПроцедурыИФункции #Область УстаревшиеПроцедурыИФункции
// Устарела. Следует использовать АдресныйКлассификатор.АдресныйКлассификаторЗагружен. // Устарела. Следует использовать АдресныйКлассификатор.АдресныйКлассификаторЗагружен.
@@ -29,7 +29,10 @@
// //
Функция СервисКлассификатора1С() Экспорт Функция СервисКлассификатора1С() Экспорт
УстановитьПривилегированныйРежим(Истина);
Авторизация = АдресныйКлассификаторСлужебный.ПараметрыАутентификацииНаСайте(); Авторизация = АдресныйКлассификаторСлужебный.ПараметрыАутентификацииНаСайте();
УстановитьПривилегированныйРежим(Ложь);
Если Авторизация = Неопределено Тогда Если Авторизация = Неопределено Тогда
Логин = Неопределено; Логин = Неопределено;
Пароль = Неопределено; Пароль = Неопределено;
@@ -891,7 +891,7 @@
Если ТипЗнч(НаименованияАдресныхОбъектов) = Тип("Массив") И НаименованияАдресныхОбъектов.Количество() > 0 Тогда Если ТипЗнч(НаименованияАдресныхОбъектов) = Тип("Массив") И НаименованияАдресныхОбъектов.Количество() > 0 Тогда
Для каждого ПолноеНаименование Из НаименованияАдресныхОбъектов Цикл Для каждого ПолноеНаименование Из НаименованияАдресныхОбъектов Цикл
СтрокаТаблицы = ТаблицаАдресныхСокращений.Найти(ТРег(ПолноеНаименование), "Наименование"); СтрокаТаблицы = ТаблицаАдресныхСокращений.Найти(ПерваяБукваЗаглавная(ПолноеНаименование), "Наименование");
Если СтрокаТаблицы <> Неопределено Тогда Если СтрокаТаблицы <> Неопределено Тогда
Результат.Вставить(ВРег(СтрокаТаблицы.Наименование), СтрокаТаблицы.Сокращение); Результат.Вставить(ВРег(СтрокаТаблицы.Наименование), СтрокаТаблицы.Сокращение);
КонецЕсли; КонецЕсли;
@@ -3150,7 +3150,8 @@
|") + " |") + "
| |
|УПОРЯДОЧИТЬ ПО |УПОРЯДОЧИТЬ ПО
| Представление " + ТекстСортировкиПорции + " |
| Представление " + ТекстСортировкиПорции + ", АдресныйОбъект.Актуален УБЫВ
|"; |";
КонецЕсли; КонецЕсли;
@@ -4065,6 +4066,16 @@
?(ПроверятьРайон, "Район.Идентификатор", ?(ПроверятьРайон, "Район.Идентификатор",
?(ПроверятьОкруг, "Округ.Идентификатор", "СубъектРФ.Идентификатор")))))))); ?(ПроверятьОкруг, "Округ.Идентификатор", "СубъектРФ.Идентификатор"))))))));
ТекстУпорядочить = "УПОРЯДОЧИТЬ ПО СубъектРФ.Актуален УБЫВ";
ТекстОпциональныхПолейУпорядочиванияЗапросаПроверкиАдреса(ТекстУпорядочить, ПроверятьОкруг, "Округ");
ТекстОпциональныхПолейУпорядочиванияЗапросаПроверкиАдреса(ТекстУпорядочить, ПроверятьРайон, "Район");
ТекстОпциональныхПолейУпорядочиванияЗапросаПроверкиАдреса(ТекстУпорядочить, ПроверятьГород, "Город");
ТекстОпциональныхПолейУпорядочиванияЗапросаПроверкиАдреса(ТекстУпорядочить, ПроверятьВнутригородскойРайон, "ВнутригородскойРайон");
ТекстОпциональныхПолейУпорядочиванияЗапросаПроверкиАдреса(ТекстУпорядочить, ПроверятьНаселенныйПункт, "НаселенныйПункт");
ТекстОпциональныхПолейУпорядочиванияЗапросаПроверкиАдреса(ТекстУпорядочить, ПроверятьУлицу, "Улица");
ТекстОпциональныхПолейУпорядочиванияЗапросаПроверкиАдреса(ТекстУпорядочить, ПроверятьДополнительный, "Дополнительный");
ТекстОпциональныхПолейУпорядочиванияЗапросаПроверкиАдреса(ТекстУпорядочить, ПроверятьПодчиненный, "Подчиненный");
Запрос.Текст = "ВЫБРАТЬ Запрос.Текст = "ВЫБРАТЬ
| ИСТИНА КАК СубъектРФНайден, | ИСТИНА КАК СубъектРФНайден,
| СубъектРФ.Идентификатор КАК СубъектРФИдентификатор, | СубъектРФ.Идентификатор КАК СубъектРФИдентификатор,
@@ -4294,8 +4305,8 @@
| И СубъектРФ.КодНаселенногоПункта = 0 | И СубъектРФ.КодНаселенногоПункта = 0
| И СубъектРФ.КодУлицы = 0 | И СубъектРФ.КодУлицы = 0
| И СубъектРФ.КодДополнительногоЭлемента = 0 | И СубъектРФ.КодДополнительногоЭлемента = 0
| И СубъектРФ.КодПодчиненногоЭлемента = 0"; | И СубъектРФ.КодПодчиненногоЭлемента = 0
| " + ТекстУпорядочить;
Запрос.УстановитьПараметр("СубъектРФНаименование", СубъектРФ.Наименование); Запрос.УстановитьПараметр("СубъектРФНаименование", СубъектРФ.Наименование);
Запрос.УстановитьПараметр("СубъектРФСокращение", СубъектРФ.Сокращение); Запрос.УстановитьПараметр("СубъектРФСокращение", СубъектРФ.Сокращение);
@@ -4342,44 +4353,44 @@
Для Каждого Запись Из ЗаписиДомов Цикл; Для Каждого Запись Из ЗаписиДомов Цикл;
ЗаполнитьПочтовыйИндексИКодКЛАДРПоИерархииФИАС(ВариантАдреса, Запись); ЗаполнитьПочтовыйИндексИКодКЛАДРПоИерархииФИАС(ВариантАдреса, Запись);
Если ПроверятьОкруг И Не Запись.ОкругНайден Тогда Если ПроверятьОкруг И Не Запись.ОкругНайден И Запись.ОкругАктуален = Истина Тогда
ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "Округ", ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "Округ",
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Округ ""%1"" отсутствует в адресном классификаторе'"), Округ.Наименование + " " + Округ.Сокращение)); СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Округ ""%1"" отсутствует в адресном классификаторе'"), Округ.Наименование + " " + Округ.Сокращение));
КонецЕсли; КонецЕсли;
Если ПроверятьРайон И Не Запись.РайонНайден Тогда Если ПроверятьРайон И Не Запись.РайонНайден И Запись.РайонАктуален = Истина Тогда
ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "СвРайМО/Район", ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "СвРайМО/Район",
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Район ""%1"" отсутствует в адресном классификаторе'"), Район.Наименование + " " + Район.Сокращение)); СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Район ""%1"" отсутствует в адресном классификаторе'"), Район.Наименование + " " + Район.Сокращение));
КонецЕсли; КонецЕсли;
Если ПроверятьГород И Не Запись.ГородНайден Тогда Если ПроверятьГород И Не Запись.ГородНайден И Запись.ГородАктуален = Истина Тогда
ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "Город", ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "Город",
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Город ""%1"" отсутствует в адресном классификаторе'"), Город.Наименование + " " + Город.Сокращение)); СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Город ""%1"" отсутствует в адресном классификаторе'"), Город.Наименование + " " + Город.Сокращение));
КонецЕсли; КонецЕсли;
Если ПроверятьВнутригородскойРайон И Не Запись.ВнутригородскойРайонНайден Тогда Если ПроверятьВнутригородскойРайон И Не Запись.ВнутригородскойРайонНайден И Запись.ВнутригородскойРайонАктуален = Истина Тогда
ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "ВнутригРайон", ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "ВнутригРайон",
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Внутригородской район ""%1"" отсутствует в адресном классификаторе'"), СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Внутригородской район ""%1"" отсутствует в адресном классификаторе'"),
ВнутригородскойРайон.Наименование + " " + ВнутригородскойРайон.Сокращение)); ВнутригородскойРайон.Наименование + " " + ВнутригородскойРайон.Сокращение));
КонецЕсли; КонецЕсли;
Если ПроверятьНаселенныйПункт И Не Запись.НаселенныйПунктНайден Тогда Если ПроверятьНаселенныйПункт И Не Запись.НаселенныйПунктНайден И Запись.НаселенныйПунктАктуален = Истина Тогда
ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "НаселПункт", ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "НаселПункт",
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Населенный пункт ""%1"" отсутствует в адресном классификаторе'"), СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Населенный пункт ""%1"" отсутствует в адресном классификаторе'"),
НаселенныйПункт.Наименование + " " + НаселенныйПункт.Сокращение)); НаселенныйПункт.Наименование + " " + НаселенныйПункт.Сокращение));
КонецЕсли; КонецЕсли;
Если ПроверятьУлицу И Запись.УлицаНайден Тогда Если ПроверятьУлицу И Запись.УлицаНайден И Запись.УлицаАктуален = Истина Тогда
УлицаНайдена = Истина; УлицаНайдена = Истина;
КонецЕсли; КонецЕсли;
Если ПроверятьДополнительный И Не Запись.ДополнительныйНайден Тогда Если ПроверятьДополнительный И Не Запись.ДополнительныйНайден И Запись.ДополнительныйАктуален = Истина Тогда
ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "Дополнительный", ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "Дополнительный",
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Дополнительная территория ""%1""отсутствует в адресном классификаторе'"), СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Дополнительная территория ""%1""отсутствует в адресном классификаторе'"),
Дополнительный.Наименование + " " + Дополнительный.Сокращение)); Дополнительный.Наименование + " " + Дополнительный.Сокращение));
КонецЕсли; КонецЕсли;
Если ПроверятьПодчиненный И Не Запись.ПодчиненныйНайден Тогда Если ПроверятьПодчиненный И Не Запись.ПодчиненныйНайден И Запись.ПодчиненныйАктуален = Истина Тогда
ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "Подчиненный", ДобавитьОшибкуПроверкиАдресаПоКлассификатору(ОшибкиПроверки, "Подчиненный",
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Элемент дополнительной территории ""%1"" отсутствует в адресном классификаторе'"), СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Элемент дополнительной территории ""%1"" отсутствует в адресном классификаторе'"),
Подчиненный.Наименование + " " + Подчиненный.Сокращение)); Подчиненный.Наименование + " " + Подчиненный.Сокращение));
@@ -4720,11 +4731,18 @@
КонецФункции КонецФункции
Процедура ТекстОпциональныхПолейУпорядочиванияЗапросаПроверкиАдреса(ТекстЗапроса, Флаг, ИмяПоля)
Если Флаг Тогда
ТекстЗапроса = ТекстЗапроса + ", " + Символы.ПС + ИмяПоля + ".Актуален УБЫВ";
КонецЕсли;
КонецПроцедуры
Функция ТекстОпциональныхПолейЗапросаПроверкиАдреса(ФлагПроверки, ИмяПоля) Функция ТекстОпциональныхПолейЗапросаПроверкиАдреса(ФлагПроверки, ИмяПоля)
Если ФлагПроверки Тогда Если ФлагПроверки Тогда
Вариант = " Вариант = "
| ВЫБОР КОГДА [Поле].Идентификатор ЕСТЬ NULL ТОГДА ЛОЖЬ ИНАЧЕ ИСТИНА КОНЕЦ КАК [Поле]Найден, | ВЫБОР КОГДА [Поле].Идентификатор ЕСТЬ NULL ТОГДА ЛОЖЬ ИНАЧЕ ИСТИНА КОНЕЦ КАК [Поле]Найден,
| [Поле].Актуален КАК [Поле]Актуален,
| [Поле].Идентификатор КАК [Поле]Идентификатор, | [Поле].Идентификатор КАК [Поле]Идентификатор,
| [Поле].ПочтовыйИндекс КАК [Поле]ПочтовыйИндекс, | [Поле].ПочтовыйИндекс КАК [Поле]ПочтовыйИндекс,
| [Поле].КодКЛАДР КАК [Поле]КодКЛАДР, | [Поле].КодКЛАДР КАК [Поле]КодКЛАДР,
@@ -4739,6 +4757,7 @@
Иначе Иначе
Вариант = " Вариант = "
| NULL КАК [Поле]Найден, | NULL КАК [Поле]Найден,
| NULL КАК [Поле]Актуален,
| NULL КАК [Поле]Идентификатор, | NULL КАК [Поле]Идентификатор,
| NULL КАК [Поле]ПочтовыйИндекс, | NULL КАК [Поле]ПочтовыйИндекс,
| NULL КАК [Поле]КодКЛАДР, | NULL КАК [Поле]КодКЛАДР,
@@ -4812,6 +4831,7 @@
Функция ИдентификаторыАдресаПоКлассификатору(ПоляАдреса, ИскатьПоУлице, ВсеИдентификаторыАдреса = Ложь) Функция ИдентификаторыАдресаПоКлассификатору(ПоляАдреса, ИскатьПоУлице, ВсеИдентификаторыАдреса = Ложь)
ТекстСоединения = ""; ТекстСоединения = "";
ТекстУпорядочить = " УПОРЯДОЧИТЬ ПО АдресныйОбъектРегион.Актуален УБЫВ";
Если ВсеИдентификаторыАдреса Тогда Если ВсеИдентификаторыАдреса Тогда
ТекстВыбратьИдентификаторы = "АдресныйОбъектРегион.Идентификатор КАК ИдентификаторРегион, "; ТекстВыбратьИдентификаторы = "АдресныйОбъектРегион.Идентификатор КАК ИдентификаторРегион, ";
@@ -4834,6 +4854,7 @@
| И АдресныеОбъектыОкруг.КодДополнительногоЭлемента = 0 | И АдресныеОбъектыОкруг.КодДополнительногоЭлемента = 0
| И АдресныеОбъектыОкруг.КодПодчиненногоЭлемента = 0"; | И АдресныеОбъектыОкруг.КодПодчиненногоЭлемента = 0";
сОкруг = "АдресныеОбъектыОкруг.КодОкруга"; сОкруг = "АдресныеОбъектыОкруг.КодОкруга";
ТекстУпорядочить = ТекстУпорядочить + ", АдресныеОбъектыОкруг.Актуален УБЫВ";
Если ВсеИдентификаторыАдреса Тогда Если ВсеИдентификаторыАдреса Тогда
ТекстВыбратьИдентификаторы = ТекстВыбратьИдентификаторы + "АдресныеОбъектыОкруг.Идентификатор КАК ИдентификаторОкруг, "; ТекстВыбратьИдентификаторы = ТекстВыбратьИдентификаторы + "АдресныеОбъектыОкруг.Идентификатор КАК ИдентификаторОкруг, ";
Иначе Иначе
@@ -4856,6 +4877,7 @@
| И АдресныеОбъектыРайон.КодДополнительногоЭлемента = 0 | И АдресныеОбъектыРайон.КодДополнительногоЭлемента = 0
| И АдресныеОбъектыРайон.КодПодчиненногоЭлемента = 0"; | И АдресныеОбъектыРайон.КодПодчиненногоЭлемента = 0";
сРайон = "АдресныеОбъектыРайон.КодРайона"; сРайон = "АдресныеОбъектыРайон.КодРайона";
ТекстУпорядочить = ТекстУпорядочить + ", АдресныеОбъектыРайон.Актуален УБЫВ";
Если ВсеИдентификаторыАдреса Тогда Если ВсеИдентификаторыАдреса Тогда
ТекстВыбратьИдентификаторы = ТекстВыбратьИдентификаторы + "АдресныеОбъектыРайон.Идентификатор КАК ИдентификаторРайон, "; ТекстВыбратьИдентификаторы = ТекстВыбратьИдентификаторы + "АдресныеОбъектыРайон.Идентификатор КАК ИдентификаторРайон, ";
Иначе Иначе
@@ -4878,6 +4900,7 @@
| И АдресныеОбъектыГород.КодДополнительногоЭлемента = 0 | И АдресныеОбъектыГород.КодДополнительногоЭлемента = 0
| И АдресныеОбъектыГород.КодПодчиненногоЭлемента = 0"; | И АдресныеОбъектыГород.КодПодчиненногоЭлемента = 0";
сГород = "АдресныеОбъектыГород.КодГорода"; сГород = "АдресныеОбъектыГород.КодГорода";
ТекстУпорядочить = ТекстУпорядочить + ", АдресныеОбъектыГород.Актуален УБЫВ";
Если ВсеИдентификаторыАдреса Тогда Если ВсеИдентификаторыАдреса Тогда
ТекстВыбратьИдентификаторы = ТекстВыбратьИдентификаторы + "АдресныеОбъектыГород.Идентификатор КАК ИдентификаторГород, "; ТекстВыбратьИдентификаторы = ТекстВыбратьИдентификаторы + "АдресныеОбъектыГород.Идентификатор КАК ИдентификаторГород, ";
Иначе Иначе
@@ -4899,6 +4922,7 @@
| И АдресныеОбъектыВнутригородскойРайон.КодДополнительногоЭлемента = 0 | И АдресныеОбъектыВнутригородскойРайон.КодДополнительногоЭлемента = 0
| И АдресныеОбъектыВнутригородскойРайон.КодПодчиненногоЭлемента = 0"; | И АдресныеОбъектыВнутригородскойРайон.КодПодчиненногоЭлемента = 0";
сВнутригородскойРайон = "АдресныеОбъектыВнутригородскойРайон.КодВнутригородскогоРайона"; сВнутригородскойРайон = "АдресныеОбъектыВнутригородскойРайон.КодВнутригородскогоРайона";
ТекстУпорядочить = ТекстУпорядочить + ", АдресныеОбъектыВнутригородскойРайон.Актуален УБЫВ";
Если ВсеИдентификаторыАдреса Тогда Если ВсеИдентификаторыАдреса Тогда
ТекстВыбратьИдентификаторы = ТекстВыбратьИдентификаторы + "АдресныеОбъектыВнутригородскойРайон.Идентификатор КАК ИдентификаторВнутригРайон, "; ТекстВыбратьИдентификаторы = ТекстВыбратьИдентификаторы + "АдресныеОбъектыВнутригородскойРайон.Идентификатор КАК ИдентификаторВнутригРайон, ";
Иначе Иначе
@@ -4921,6 +4945,7 @@
| И АдресныеОбъектыНаселенныйПункт.КодДополнительногоЭлемента = 0 | И АдресныеОбъектыНаселенныйПункт.КодДополнительногоЭлемента = 0
| И АдресныеОбъектыНаселенныйПункт.КодПодчиненногоЭлемента = 0"; | И АдресныеОбъектыНаселенныйПункт.КодПодчиненногоЭлемента = 0";
сНаселенногоПункта = "АдресныеОбъектыНаселенныйПункт.КодНаселенногоПункта"; сНаселенногоПункта = "АдресныеОбъектыНаселенныйПункт.КодНаселенногоПункта";
ТекстУпорядочить = ТекстУпорядочить + ", АдресныеОбъектыНаселенныйПункт.Актуален УБЫВ";
Если ВсеИдентификаторыАдреса Тогда Если ВсеИдентификаторыАдреса Тогда
ТекстВыбратьИдентификаторы = ТекстВыбратьИдентификаторы + "АдресныеОбъектыНаселенныйПункт.Идентификатор КАК ИдентификаторНаселенныйПункт, "; ТекстВыбратьИдентификаторы = ТекстВыбратьИдентификаторы + "АдресныеОбъектыНаселенныйПункт.Идентификатор КАК ИдентификаторНаселенныйПункт, ";
Иначе Иначе
@@ -4940,6 +4965,7 @@
| И АдресныеОбъектыУлица.КодНаселенногоПункта = " + сНаселенногоПункта + " | И АдресныеОбъектыУлица.КодНаселенногоПункта = " + сНаселенногоПункта + "
| И АдресныеОбъектыУлица.КодДополнительногоЭлемента = 0 | И АдресныеОбъектыУлица.КодДополнительногоЭлемента = 0
| И АдресныеОбъектыУлица.КодПодчиненногоЭлемента = 0"; | И АдресныеОбъектыУлица.КодПодчиненногоЭлемента = 0";
ТекстУпорядочить = ТекстУпорядочить + ", АдресныеОбъектыУлица.Актуален УБЫВ";
Если ВсеИдентификаторыАдреса Тогда Если ВсеИдентификаторыАдреса Тогда
ТекстВыбратьИдентификаторы = ТекстВыбратьИдентификаторы + "АдресныеОбъектыУлица.Идентификатор КАК ИдентификаторУлица, "; ТекстВыбратьИдентификаторы = ТекстВыбратьИдентификаторы + "АдресныеОбъектыУлица.Идентификатор КАК ИдентификаторУлица, ";
Иначе Иначе
@@ -4970,7 +4996,8 @@
| И АдресныйОбъектРегион.КодУлицы = 0 | И АдресныйОбъектРегион.КодУлицы = 0
| И АдресныйОбъектРегион.КодДополнительногоЭлемента = 0 | И АдресныйОбъектРегион.КодДополнительногоЭлемента = 0
| И АдресныйОбъектРегион.КодПодчиненногоЭлемента = 0 | И АдресныйОбъектРегион.КодПодчиненногоЭлемента = 0
| И АдресныйОбъектРегион.Сокращение = &РегионСокращение"; | И АдресныйОбъектРегион.Сокращение = &РегионСокращение
| " + ТекстУпорядочить;
Запрос.УстановитьПараметр("Регион", ПоляАдреса["Регион"].Наименование); Запрос.УстановитьПараметр("Регион", ПоляАдреса["Регион"].Наименование);
Запрос.УстановитьПараметр("РегионСокращение", ПоляАдреса["Регион"].Сокращение); Запрос.УстановитьПараметр("РегионСокращение", ПоляАдреса["Регион"].Сокращение);
@@ -5250,24 +5277,47 @@
КонецЕсли; КонецЕсли;
ТекстXML = СтрЗаменить(ТекстXML, "xsi:type=""АдресРФ""", "xmlns:rf=""http://www.v8.1c.ru/ssl/contactinfo_ru"" xsi:type=""rf:АдресРФ"""); ТекстXML = СтрЗаменить(ТекстXML, "xsi:type=""АдресРФ""", "xmlns:rf=""http://www.v8.1c.ru/ssl/contactinfo_ru"" xsi:type=""rf:АдресРФ""");
ТекстXML = СтрЗаменить(ТекстXML, "СубъектРФ", "rf:СубъектРФ");
ТекстXML = СтрЗаменить(ТекстXML, "Округ", "rf:Округ"); ТекстXML = СтрЗаменить(ТекстXML, "<СубъектРФ", "<rf:СубъектРФ");
ТекстXML = СтрЗаменить(ТекстXML, "СвРайМО", "rf:СвРайМО"); ТекстXML = СтрЗаменить(ТекстXML, "/СубъектРФ>", "/rf:СубъектРФ>");
ТекстXML = СтрЗаменить(ТекстXML, "<Район>", "<rf:Район>"); ТекстXML = СтрЗаменить(ТекстXML, "<СубъектРФ/>", "<rf:СубъектРФ/>");
ТекстXML = СтрЗаменить(ТекстXML, "<Округ", "<rf:Округ");
ТекстXML = СтрЗаменить(ТекстXML, "/Округ>", "/rf:Округ>");
ТекстXML = СтрЗаменить(ТекстXML, "<Округ/>", "<rf:Округ/>");
ТекстXML = СтрЗаменить(ТекстXML, "<СвРайМО", "<rf:СвРайМО");
ТекстXML = СтрЗаменить(ТекстXML, "/СвРайМО>", "/rf:СвРайМО>");
ТекстXML = СтрЗаменить(ТекстXML, "<СвРайМО/>", "<rf:СвРайМО/>");
ТекстXML = СтрЗаменить(ТекстXML, "<Район", "<rf:Район");
ТекстXML = СтрЗаменить(ТекстXML, "/Район>", "/rf:Район>");
ТекстXML = СтрЗаменить(ТекстXML, "</Район>", "</rf:Район>"); ТекстXML = СтрЗаменить(ТекстXML, "</Район>", "</rf:Район>");
ТекстXML = СтрЗаменить(ТекстXML, "<Район/>", "<rf:Район/>");
ТекстXML = СтрЗаменить(ТекстXML, "Город>", "rf:Город>"); ТекстXML = СтрЗаменить(ТекстXML, "<Город", "<rf:Город");
ТекстXML = СтрЗаменить(ТекстXML, "/Город>", "/rf:Город>");
ТекстXML = СтрЗаменить(ТекстXML, "<Город/>", "<rf:Город/>"); ТекстXML = СтрЗаменить(ТекстXML, "<Город/>", "<rf:Город/>");
ТекстXML = СтрЗаменить(ТекстXML, "ВнутригРайон", "rf:ВнутригРайон"); ТекстXML = СтрЗаменить(ТекстXML, "ВнутригРайон", "rf:ВнутригРайон");
ТекстXML = СтрЗаменить(ТекстXML, "НаселПункт", "rf:НаселПункт"); ТекстXML = СтрЗаменить(ТекстXML, "НаселПункт", "rf:НаселПункт");
ТекстXML = СтрЗаменить(ТекстXML, "Улица>", "rf:Улица>"); ТекстXML = СтрЗаменить(ТекстXML, "<Улица", "<rf:Улица");
ТекстXML = СтрЗаменить(ТекстXML, "/Улица>", "/rf:Улица>");
ТекстXML = СтрЗаменить(ТекстXML, "<Улица/>", "<rf:Улица/>"); ТекстXML = СтрЗаменить(ТекстXML, "<Улица/>", "<rf:Улица/>");
ТекстXML = СтрЗаменить(ТекстXML, "ОКТМО", "rf:ОКТМО"); ТекстXML = СтрЗаменить(ТекстXML, "ОКТМО", "rf:ОКТМО");
ТекстXML = СтрЗаменить(ТекстXML, "ОКАТО", "rf:ОКАТО"); ТекстXML = СтрЗаменить(ТекстXML, "ОКАТО", "rf:ОКАТО");
ТекстXML = СтрЗаменить(ТекстXML, "ДопАдрЭл", "rf:ДопАдрЭл"); ТекстXML = СтрЗаменить(ТекстXML, "ДопАдрЭл", "rf:ДопАдрЭл");
ТекстXML = СтрЗаменить(ТекстXML, "<Номер", "<rf:Номер"); ТекстXML = СтрЗаменить(ТекстXML, "<Номер", "<rf:Номер");
ТекстXML = СтрЗаменить(ТекстXML, "Местоположение>", "rf:Местоположение>"); ТекстXML = СтрЗаменить(ТекстXML, "/Номер>", "/rf:Номер>");
ТекстXML = СтрЗаменить(ТекстXML, "<Номер/>", "<rf:Номер/>");
ТекстXML = СтрЗаменить(ТекстXML, "<Местоположение", "<rf:Местоположение");
ТекстXML = СтрЗаменить(ТекстXML, "/Местоположение>", "/rf:Местоположение>");
ТекстXML = СтрЗаменить(ТекстXML, "<Местоположение/>", "<rf:Местоположение/>");
Возврат ТекстXML; Возврат ТекстXML;
@@ -6270,6 +6320,10 @@
КонецФункции КонецФункции
Функция ПерваяБукваЗаглавная(Строка)
Возврат ВРег(Лев(Строка, 1)) + НРег(Сред(Строка, 2));
КонецФункции
#КонецОбласти #КонецОбласти
#Область ПереносУстаревшегоКлассификатора #Область ПереносУстаревшегоКлассификатора
@@ -7283,7 +7337,7 @@
ИЛИ ТипАдресногоОбъекта = НСтр("ru = 'ДОМОВЛАДЕНИЕ'") Тогда ИЛИ ТипАдресногоОбъекта = НСтр("ru = 'ДОМОВЛАДЕНИЕ'") Тогда
ОписаниеДома.Дом = СокрЛП(КлючЗначение[1]); ОписаниеДома.Дом = СокрЛП(КлючЗначение[1]);
ОписаниеДома.ДомЧислом = НомерДомаЧислом(КлючЗначение[1]); ОписаниеДома.ДомЧислом = НомерДомаЧислом(КлючЗначение[1]);
ОписаниеДома.НазваниеВладения = ТРег(ТипАдресногоОбъекта); ОписаниеДома.НазваниеВладения = ПерваяБукваЗаглавная(ТипАдресногоОбъекта);
ИначеЕсли ТипАдресногоОбъекта = "КОРПУС" Тогда ИначеЕсли ТипАдресногоОбъекта = "КОРПУС" Тогда
ОписаниеДома.Корпус = СокрЛП(КлючЗначение[1]); ОписаниеДома.Корпус = СокрЛП(КлючЗначение[1]);
ИначеЕсли ТипАдресногоОбъекта <> "ИНДЕКС" Тогда ИначеЕсли ТипАдресногоОбъекта <> "ИНДЕКС" Тогда
@@ -7459,11 +7513,9 @@
МодульПолучениеФайловИзИнтернета = ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернета"); МодульПолучениеФайловИзИнтернета = ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернета");
Если ИсходнаяАвторизация = Неопределено Тогда УстановитьПривилегированныйРежим(Истина);
Авторизация = ПараметрыАутентификацииНаСайте(); Авторизация = ПараметрыАутентификацииНаСайте();
Иначе УстановитьПривилегированныйРежим(Ложь);
Авторизация = ИсходнаяАвторизация;
КонецЕсли;
Если КодыСубъектовРФ = Неопределено Тогда Если КодыСубъектовРФ = Неопределено Тогда
ВсеРегионы = СведенияОЗагрузкеСубъектовРФ(); ВсеРегионы = СведенияОЗагрузкеСубъектовРФ();
@@ -7496,7 +7548,7 @@
ПутьДляСохранения = ВременныйКаталог + ВРег(ФайлРегиона.ИмяФайла); ПутьДляСохранения = ВременныйКаталог + ВРег(ФайлРегиона.ИмяФайла);
ПараметрыПолучения.Вставить("ПутьДляСохранения", ПутьДляСохранения); ПараметрыПолучения.Вставить("ПутьДляСохранения", ПутьДляСохранения);
ПараметрыПолучения.Вставить("Таймаут", 180); ПараметрыПолучения.Вставить("Таймаут", 240);
ЗагруженныйФайл = МодульПолучениеФайловИзИнтернета.СкачатьФайлНаСервере(ОписаниеРегиона.Адрес, ПараметрыПолучения); ЗагруженныйФайл = МодульПолучениеФайловИзИнтернета.СкачатьФайлНаСервере(ОписаниеРегиона.Адрес, ПараметрыПолучения);
Если Не ЗагруженныйФайл.Статус Тогда Если Не ЗагруженныйФайл.Статус Тогда
УдалитьВременныйФайл(ВременныйКаталог); УдалитьВременныйФайл(ВременныйКаталог);
@@ -1292,6 +1292,7 @@
Элемент.Заголовок = СтрокаКомплексногоВопроса.ЭлементарныйВопрос; Элемент.Заголовок = СтрокаКомплексногоВопроса.ЭлементарныйВопрос;
Элемент.АвтоМаксимальнаяШирина = Ложь; Элемент.АвтоМаксимальнаяШирина = Ложь;
Элемент.РастягиватьПоГоризонтали = Истина; Элемент.РастягиватьПоГоризонтали = Истина;
Элемент.Шрифт = Новый Шрифт(Элемент.Шрифт, , 8);
Если РеквизитыЭлементарногоВопроса.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Строка Тогда Если РеквизитыЭлементарногоВопроса.ТипОтвета = Перечисления.ТипыОтветовНаВопрос.Строка Тогда
@@ -1797,7 +1798,7 @@
НоваяСтрока.СоставКомплексногоВопроса.Загрузить(ВыборкаВопросыПоРазделуАнкеты.СоставКомплексногоВопроса.Выгрузить()); НоваяСтрока.СоставКомплексногоВопроса.Загрузить(ВыборкаВопросыПоРазделуАнкеты.СоставКомплексногоВопроса.Выгрузить());
НоваяСтрока.СоставКомплексногоВопроса.Сортировать("НомерСтроки Возр"); НоваяСтрока.СоставКомплексногоВопроса.Сортировать("НомерСтроки Возр");
НоваяСтрока.КлючСтроки = Новый УникальныйИдентификатор; НоваяСтрока.КлючСтроки = Новый УникальныйИдентификатор;
НоваяСтрока.ПолныйКод = ПолныйКодРаздела + Строка(СчетчикВопросов); НоваяСтрока.ПолныйКод = ПолныйКодРаздела + "." + Строка(СчетчикВопросов);
КонецЦикла; КонецЦикла;
@@ -79,7 +79,7 @@
Элемент.ПолныйКод = ПолныйКод; Элемент.ПолныйКод = ПолныйКод;
Если ПреобразовыватьФормулировку Тогда Если ПреобразовыватьФормулировку Тогда
Элемент.Формулировка = Элемент.ПолныйКод + Элемент.Формулировка; Элемент.Формулировка = Элемент.ПолныйКод + ". " + Элемент.Формулировка;
КонецЕсли; КонецЕсли;
ПодчиненныеЭлементыСтрокиДерева = Элемент.ПолучитьЭлементы(); ПодчиненныеЭлементыСтрокиДерева = Элемент.ПолучитьЭлементы();
@@ -134,7 +134,13 @@
// //
Процедура НастроитьОтчетВМодулеМенеджера(Настройки, ОтчетМетаданные) Экспорт Процедура НастроитьОтчетВМодулеМенеджера(Настройки, ОтчетМетаданные) Экспорт
НастройкиОтчета = ОписаниеОтчета(Настройки, ОтчетМетаданные); НастройкиОтчета = ОписаниеОтчета(Настройки, ОтчетМетаданные);
Попытка
Отчеты[ОтчетМетаданные.Имя].НастроитьВариантыОтчета(Настройки, НастройкиОтчета); Отчеты[ОтчетМетаданные.Имя].НастроитьВариантыОтчета(Настройки, НастройкиОтчета);
Исключение
ТекстОшибки = НСтр("ru = 'Не удалось настроить варианты отчета из модуля менеджера:'");
ТекстОшибки = ТекстОшибки + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ЗаписатьВЖурнал(УровеньЖурналаРегистрации.Ошибка, ТекстОшибки, ОтчетМетаданные);
КонецПопытки;
КонецПроцедуры КонецПроцедуры
// Возвращает настройки указанного отчета. Используется для настройки размещения и общих параметров отчета // Возвращает настройки указанного отчета. Используется для настройки размещения и общих параметров отчета
@@ -2607,8 +2613,15 @@
Возврат Результат; Возврат Результат;
КонецЕсли; КонецЕсли;
Результат.Имя = Результат.Метаданные.Имя; Результат.Имя = Результат.Метаданные.Имя;
Попытка
Результат.Объект = Отчеты[Результат.Имя].Создать(); Результат.Объект = Отчеты[Результат.Имя].Создать();
Результат.Успех = Истина; Результат.Успех = Истина;
Исключение
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не удалось подключить отчет %1:'"),
Результат.Метаданные);
ТекстОшибки = ТекстОшибки + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ЗаписатьВЖурнал(УровеньЖурналаРегистрации.Ошибка, ТекстОшибки, Результат.Метаданные);
КонецПопытки;
Иначе Иначе
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки") Тогда
МодульДополнительныеОтчетыИОбработки = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработки"); МодульДополнительныеОтчетыИОбработки = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработки");
@@ -576,6 +576,9 @@
Приоритет = Обработчик.ПриоритетыВыполнения.Добавить(); Приоритет = Обработчик.ПриоритетыВыполнения.Добавить();
Приоритет.Процедура = "Документы.ЭлектронноеПисьмоИсходящее.ЗаполнитьСписокКонтактовИсходящихЭлектронныхПисем"; Приоритет.Процедура = "Документы.ЭлектронноеПисьмоИсходящее.ЗаполнитьСписокКонтактовИсходящихЭлектронныхПисем";
Приоритет.Порядок = "До"; Приоритет.Порядок = "До";
Приоритет = Обработчик.ПриоритетыВыполнения.Добавить();
Приоритет.Процедура = "Документы.ЭлектронноеПисьмоИсходящее.ОбработатьДанныеДляПереходаНаНовуюВерсию";
Приоритет.Порядок = "Любой";
Обработчик.Комментарий = НСтр("ru = 'Выполняет дозаполнение реквизита ВзаимодействиеОснование для входящих писем, у которых письмо основание в ИБ есть, но оно не указано.'"); Обработчик.Комментарий = НСтр("ru = 'Выполняет дозаполнение реквизита ВзаимодействиеОснование для входящих писем, у которых письмо основание в ИБ есть, но оно не указано.'");
Обработчик = Обработчики.Добавить(); Обработчик = Обработчики.Добавить();
@@ -594,6 +597,9 @@
Приоритет = Обработчик.ПриоритетыВыполнения.Добавить(); Приоритет = Обработчик.ПриоритетыВыполнения.Добавить();
Приоритет.Процедура = "Документы.ЭлектронноеПисьмоИсходящее.ЗаполнитьСписокКонтактовИсходящихЭлектронныхПисем"; Приоритет.Процедура = "Документы.ЭлектронноеПисьмоИсходящее.ЗаполнитьСписокКонтактовИсходящихЭлектронныхПисем";
Приоритет.Порядок = "До"; Приоритет.Порядок = "До";
Приоритет = Обработчик.ПриоритетыВыполнения.Добавить();
Приоритет.Процедура = "Документы.ЭлектронноеПисьмоИсходящее.ОбработатьДанныеДляПереходаНаНовуюВерсию";
Приоритет.Порядок = "Любой";
Обработчик.Комментарий = НСтр("ru = 'Выполняет дозаполнение реквизита ВзаимодействиеОснование для исходящее писем, у которых письмо основание в ИБ есть, но оно не указано.'"); Обработчик.Комментарий = НСтр("ru = 'Выполняет дозаполнение реквизита ВзаимодействиеОснование для исходящее писем, у которых письмо основание в ИБ есть, но оно не указано.'");
Обработчик = Обработчики.Добавить(); Обработчик = Обработчики.Добавить();
@@ -613,6 +619,33 @@
Приоритет = Обработчик.ПриоритетыВыполнения.Добавить(); Приоритет = Обработчик.ПриоритетыВыполнения.Добавить();
Приоритет.Процедура = "Документы.ЭлектронноеПисьмоИсходящее.ЗаполнитьВзаимодействияОснованияУПодчиненныхПисем"; Приоритет.Процедура = "Документы.ЭлектронноеПисьмоИсходящее.ЗаполнитьВзаимодействияОснованияУПодчиненныхПисем";
Приоритет.Порядок = "После"; Приоритет.Порядок = "После";
Приоритет = Обработчик.ПриоритетыВыполнения.Добавить();
Приоритет.Процедура = "Документы.ЭлектронноеПисьмоИсходящее.ОбработатьДанныеДляПереходаНаНовуюВерсию";
Приоритет.Порядок = "Любой";
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "2.3.6.76";
Обработчик.Идентификатор = Новый УникальныйИдентификатор("35e85660-7125-4079-b5df-5a71dbb43a48");
Обработчик.Процедура = "Документы.ЭлектронноеПисьмоИсходящее.ОбработатьДанныеДляПереходаНаНовуюВерсию";
Обработчик.Комментарий =
НСтр("ru = 'Перенос данных из реквизита одного ИдентификаторСообщенияОтправкаIMAP в другой для предотвращения потери данных.
|при переходе на последующие релизы.'");
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.ОчередьОтложеннойОбработки = 3;
Обработчик.ПроцедураЗаполненияДанныхОбновления = "Документы.ЭлектронноеПисьмоИсходящее.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию";
Обработчик.ЧитаемыеОбъекты = "Документ.ЭлектронноеПисьмоИсходящее";
Обработчик.ИзменяемыеОбъекты = "Документ.ЭлектронноеПисьмоИсходящее";
Обработчик.ПриоритетыВыполнения = ОбновлениеИнформационнойБазы.ПриоритетыВыполненияОбработчика();
Приоритет = Обработчик.ПриоритетыВыполнения.Добавить();
Приоритет.Процедура = "Документы.ЭлектронноеПисьмоИсходящее.ЗаполнитьСписокКонтактовИсходящихЭлектронныхПисем";
Приоритет.Порядок = "Любой";
Приоритет = Обработчик.ПриоритетыВыполнения.Добавить();
Приоритет.Процедура = "Документы.ЭлектронноеПисьмоВходящее.ЗаполнитьВзаимодействияОснованияУПодчиненныхПисем";
Приоритет.Порядок = "Любой";
Приоритет = Обработчик.ПриоритетыВыполнения.Добавить();
Приоритет.Процедура = "Документы.ЭлектронноеПисьмоИсходящее.ЗаполнитьВзаимодействияОснованияУПодчиненныхПисем";
Приоритет.Порядок = "Любой";
Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена";
Обработчик = Обработчики.Добавить(); Обработчик = Обработчики.Добавить();
Обработчик.Версия = "2.4.1.1"; Обработчик.Версия = "2.4.1.1";
@@ -1990,7 +2023,14 @@
// //
Процедура УстановитьПредметПоДаннымЗаполнения(Параметры,Предмет) Экспорт Процедура УстановитьПредметПоДаннымЗаполнения(Параметры,Предмет) Экспорт
Если ВзаимодействияКлиентСервер.ЯвляетсяПредметом(Параметры.Основание) Тогда Если Параметры.Свойство("Предмет")
И ЗначениеЗаполнено(Параметры.Предмет)
И (ВзаимодействияКлиентСервер.ЯвляетсяПредметом(Параметры.Предмет)
Или ВзаимодействияКлиентСервер.ЯвляетсяВзаимодействием(Параметры.Основание)) Тогда
Предмет = Параметры.Предмет;
ИначеЕсли ВзаимодействияКлиентСервер.ЯвляетсяПредметом(Параметры.Основание) Тогда
Предмет = Параметры.Основание; Предмет = Параметры.Основание;
@@ -2611,7 +2651,7 @@
ИначеЕсли ПротоколПочты = "Все" Тогда ИначеЕсли ПротоколПочты = "Все" Тогда
ИдентификаторПисьма = РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(Объект.УчетнаяЗапись, ПараметрыПисьма ,Соединение, ""); ИдентификаторПисьма = РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(Объект.УчетнаяЗапись, ПараметрыПисьма ,Соединение, "");
ПараметрыПисьма.Вставить("ПротоколПочты","IMAP"); ПараметрыПисьма.Вставить("ПротоколПочты","IMAP");
РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(Объект.УчетнаяЗапись, ПараметрыПисьма ,Соединение, "IMAP"); Объект.ИдентификаторСообщенияОтправкаIMAP = РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(Объект.УчетнаяЗапись, ПараметрыПисьма ,Соединение, "IMAP");
КонецЕсли; КонецЕсли;
Возврат ИдентификаторПисьма; Возврат ИдентификаторПисьма;
@@ -4391,6 +4431,8 @@
ТекстHTML = "<html>" + ТекстHTML + "</html>" ТекстHTML = "<html>" + ТекстHTML + "</html>"
КонецЕсли; КонецЕсли;
ТекстHTML = СодержимоеТегаHTML(ТекстHTML, "html", Истина);
ТаблицаФайлов = ПолучитьВложенияПисьмаСНеПустымИД(Письмо); ТаблицаФайлов = ПолучитьВложенияПисьмаСНеПустымИД(Письмо);
Если ТаблицаФайлов.Количество() Тогда Если ТаблицаФайлов.Количество() Тогда
@@ -4413,6 +4455,49 @@
КонецФункции КонецФункции
// Находит в HTML содержимое? находящееся в теге.
//
// Параметры:
// Текст - Строка - текст XML, в котором выполняется поиск.
// ИмяТега - Строка - тег, содержимое которого необходимо найти.
// ВключатьОткрывающийЗакрывающийТег - Булево - признак того, что найденное включает открывающий и закрывающий тег, по умолчанию Ложь.
// НомерПоПорядку - Число - позиция, с которой начинается поиск, по умолчанию 1.
//
// Возвращаемое значение:
// Строка - строка, из которой удалены символы перевода строки и возврата каретки.
//
Функция СодержимоеТегаHTML(Текст, ИмяТега, ВключатьОткрывающийЗакрывающийТег = Ложь, НомерПоПорядку = 1)
Результат = Неопределено;
Начало = "<" + ИмяТега;
Окончание = "</" + ИмяТега + ">";
Содержимое = Сред(
Текст,
СтрНайти(Текст, Начало, НаправлениеПоиска.СНачала, 1, НомерПоПорядку),
СтрНайти(Текст, Окончание, НаправлениеПоиска.СНачала, 1, НомерПоПорядку) + СтрДлина(Окончание) - СтрНайти(Текст, Начало, НаправлениеПоиска.СНачала, 1, НомерПоПорядку));
Если ВключатьОткрывающийЗакрывающийТег Тогда
Результат = СокрЛП(Содержимое);
Иначе
ОткрывающийТег = Лев(Содержимое, СтрНайти(Содержимое, ">"));
Содержимое = СтрЗаменить(Содержимое, ОткрывающийТег, "");
ЗакрывающийТег = Прав(Содержимое, СтрДлина(Содержимое) - СтрНайти(Содержимое, "<", НаправлениеПоиска.СКонца) + 1);
Содержимое = СтрЗаменить(Содержимое, ЗакрывающийТег, "");
Результат = СокрЛП(Содержимое);
КонецЕсли;
Возврат Результат;
КонецФункции
// Возвращает формат исходящих писем по умолчанию для пользователя, // Возвращает формат исходящих писем по умолчанию для пользователя,
// исходя из настроек системы и формата последнего письма, отправленного пользователем. // исходя из настроек системы и формата последнего письма, отправленного пользователем.
// //
@@ -5459,22 +5544,10 @@
ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.ОтправкаSMS); ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.ОтправкаSMS);
Если НЕ ПолучитьФункциональнуюОпцию("ИспользоватьПочтовыйКлиент") Тогда
Возврат;
КонецЕсли;
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
Если Не ОтправкаSMS.НастройкаОтправкиSMSВыполнена() Тогда
Возврат;
КонецЕсли;
МетаданныеДокумента = Метаданные.Документы.СообщениеSMS; МетаданныеДокумента = Метаданные.Документы.СообщениеSMS;
ЗаписьЖурналаРегистрации(УправлениеЭлектроннойПочтой.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Информация, , ,
НСтр("ru = 'Начата регламентная отправка сообщений SMS'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()));
ТаблицаАдресатовСообщения = Новый ТаблицаЗначений; ТаблицаАдресатовСообщения = Новый ТаблицаЗначений;
ТаблицаАдресатовСообщения.Колонки.Добавить("НомерСтроки"); ТаблицаАдресатовСообщения.Колонки.Добавить("НомерСтроки");
ТаблицаАдресатовСообщения.Колонки.Добавить("НомерДляОтправки"); ТаблицаАдресатовСообщения.Колонки.Добавить("НомерДляОтправки");
@@ -5511,7 +5584,20 @@
| Ссылка"; | Ссылка";
Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДатаСеанса()); Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДатаСеанса());
ВыборкаДокументы = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Возврат;
КонецЕсли;
Если Не ОтправкаSMS.НастройкаОтправкиSMSВыполнена() Тогда
ЗаписьЖурналаРегистрации(УправлениеЭлектроннойПочтой.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Ошибка, , ,
НСтр("ru = 'Не выполнены настройки отправки SMS.'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()));
Возврат;
КонецЕсли;
ВыборкаДокументы = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаДокументы.Следующий() Цикл Пока ВыборкаДокументы.Следующий() Цикл
@@ -5590,16 +5676,8 @@
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
Если Не ОтправкаSMS.НастройкаОтправкиSMSВыполнена() Тогда
Возврат;
КонецЕсли;
МетаданныеДокумента = Метаданные.Документы.СообщениеSMS; МетаданныеДокумента = Метаданные.Документы.СообщениеSMS;
ЗаписьЖурналаРегистрации(УправлениеЭлектроннойПочтой.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Информация, , ,
НСтр("ru = 'Начато регламентное обновление состояний сообщений SMS'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()));
ТаблицаИзменившихсяСтатусов = Новый ТаблицаЗначений; ТаблицаИзменившихсяСтатусов = Новый ТаблицаЗначений;
ТаблицаИзменившихсяСтатусов.Колонки.Добавить("НомерСтроки"); ТаблицаИзменившихсяСтатусов.Колонки.Добавить("НомерСтроки");
ТаблицаИзменившихсяСтатусов.Колонки.Добавить("СостояниеСообщения"); ТаблицаИзменившихсяСтатусов.Колонки.Добавить("СостояниеСообщения");
@@ -5622,7 +5700,19 @@
|ИТОГИ ПО |ИТОГИ ПО
| Ссылка"; | Ссылка";
ВыборкаДокументы = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Возврат;
КонецЕсли;
Если Не ОтправкаSMS.НастройкаОтправкиSMSВыполнена() Тогда
ЗаписьЖурналаРегистрации(УправлениеЭлектроннойПочтой.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Ошибка, , ,
НСтр("ru = 'Не выполнены настройки отправки SMS.'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()));
Возврат;
КонецЕсли;
ВыборкаДокументы = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаДокументы.Следующий() Цикл Пока ВыборкаДокументы.Следующий() Цикл
@@ -5681,10 +5771,6 @@
КонецЦикла; КонецЦикла;
ЗаписьЖурналаРегистрации(УправлениеЭлектроннойПочтой.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Информация, , ,
НСтр("ru = 'Закончено регламентное обновление состояний сообщений SMS'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()));
КонецПроцедуры КонецПроцедуры
// Устанавливает состояние документа "Сообщение SMS" в зависимости от состояний отдельных сообщений различным контактам. // Устанавливает состояние документа "Сообщение SMS" в зависимости от состояний отдельных сообщений различным контактам.
@@ -9,6 +9,7 @@
// Контакт - Ссылка - контакт для которого получается информация. // Контакт - Ссылка - контакт для которого получается информация.
// Представление - Строка - в данный параметр будет помещено полученное представление. // Представление - Строка - в данный параметр будет помещено полученное представление.
// СтрокаКИ - Строка - в данный параметр будет помещено полученная контактная информация. // СтрокаКИ - Строка - в данный параметр будет помещено полученная контактная информация.
// ТипКонтактнойИнформации - Перечисления.ТипыКонтактнойИнформации - возможность установить отбор по типу получаемой контактной информации.
// //
Процедура ПредставлениеИВсяКонтактнаяИнформациюКонтакта(Контакт, Представление, СтрокаКИ,ТипКонтактнойИнформации = Неопределено) Экспорт Процедура ПредставлениеИВсяКонтактнаяИнформациюКонтакта(Контакт, Представление, СтрокаКИ,ТипКонтактнойИнформации = Неопределено) Экспорт
@@ -32,21 +33,11 @@
| Справочник." + ИмяТаблицы + " КАК СправочникКонтакт | Справочник." + ИмяТаблицы + " КАК СправочникКонтакт
|ГДЕ |ГДЕ
| СправочникКонтакт.Ссылка = &Контакт | СправочникКонтакт.Ссылка = &Контакт
|; |";
|
|////////////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СправочникКонтакт.Тип КАК Тип,
| СправочникКонтакт.Представление КАК Представление
|ИЗ
| Справочник." + ИмяТаблицы + ".КонтактнаяИнформация" + " КАК СправочникКонтакт
|ГДЕ
| СправочникКонтакт.Ссылка = &Контакт" + ?(ТипКонтактнойИнформации = Неопределено,""," И СправочникКонтакт.Тип = &ТипКонтактнойИнформации");
Запрос.УстановитьПараметр("Контакт", Контакт); Запрос.УстановитьПараметр("Контакт", Контакт);
Запрос.УстановитьПараметр("ТипКонтактнойИнформации", ТипКонтактнойИнформации); Запрос.УстановитьПараметр("ТипКонтактнойИнформации", ТипКонтактнойИнформации);
РезультатЗапроса = Запрос.ВыполнитьПакет(); Выборка = Запрос.Выполнить().Выбрать();
Выборка = РезультатЗапроса[0].Выбрать();
Если Не Выборка.Следующий() Тогда Если Не Выборка.Следующий() Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -57,13 +48,15 @@
Представление = Представление + " (" + Выборка.НаименованиеВладельца + ")"; Представление = Представление + " (" + Выборка.НаименованиеВладельца + ")";
КонецЕсли; КонецЕсли;
Для Каждого СтрокаТаблицы Из РезультатЗапроса[1].Выгрузить() Цикл МассивКонтактов = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Контакт);
ТаблицаКИ = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъектов(МассивКонтактов, ТипКонтактнойИнформации, Неопределено, ТекущаяДатаСеанса());
Для Каждого СтрокаТаблицы Из ТаблицаКИ Цикл
Если СтрокаТаблицы.Тип <> Перечисления.ТипыКонтактнойИнформации.Другое Тогда Если СтрокаТаблицы.Тип <> Перечисления.ТипыКонтактнойИнформации.Другое Тогда
СтрокаКИ = СтрокаКИ + ?(ПустаяСтрока(СтрокаКИ), "", "; ") + СтрокаТаблицы.Представление; СтрокаКИ = СтрокаКИ + ?(ПустаяСтрока(СтрокаКИ), "", "; ") + СтрокаТаблицы.Представление;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
// Получает наименование и адреса электронной почты контакта. // Получает наименование и адреса электронной почты контакта.
@@ -7,7 +7,9 @@
// * Кэшировать - Булево - (по умолчанию Истина) использовать механизм кэширования компонент на клиенте. // * Кэшировать - Булево - (по умолчанию Истина) использовать механизм кэширования компонент на клиенте.
// * ПредложитьУстановить - Булево - (по умолчанию Истина) предлагать устанавливать и обновлять компоненту. // * ПредложитьУстановить - Булево - (по умолчанию Истина) предлагать устанавливать и обновлять компоненту.
// * ТекстПояснения - Строка - для чего нужна компонента и что не будет работать, если ее не устанавливать // * ТекстПояснения - Строка - для чего нужна компонента и что не будет работать, если ее не устанавливать
// (только для веб клиента). // * ИдентификаторыСозданияОбъектов - Массив - идентификатор создания экземпляра модуля объекта,
// используется только для компонент, у которых есть несколько идентификаторов создания объектов,
// при задании параметр Идентификатор будет использоваться только для определения компоненты.
// //
// Пример: // Пример:
// //
@@ -21,6 +23,7 @@
Параметры.Вставить("Кэшировать" , Истина); Параметры.Вставить("Кэшировать" , Истина);
Параметры.Вставить("ПредложитьУстановить", Истина); Параметры.Вставить("ПредложитьУстановить", Истина);
Параметры.Вставить("ТекстПояснения" , ""); Параметры.Вставить("ТекстПояснения" , "");
Параметры.Вставить("ИдентификаторыСозданияОбъектов", Новый Массив);
Возврат Параметры; Возврат Параметры;
@@ -35,6 +38,9 @@
// * Результат - Структура - результат подключения компоненты: // * Результат - Структура - результат подключения компоненты:
// ** Подключено - Булево - признак подключения. // ** Подключено - Булево - признак подключения.
// ** ПодключаемыйМодуль - AddIn - экземпляр объекта внешней компоненты. // ** ПодключаемыйМодуль - AddIn - экземпляр объекта внешней компоненты.
// - ФиксированноеСоответствие - экземпляры объектов внешней компоненты,
// указанные в ПараметрыПодключения.ИдентификаторыСозданияОбъектов,
// Ключ - Идентификатор, Значение - экземпляр объекта.
// ** ОписаниеОшибки - Строка - краткое описание ошибки. При отмене пользователем пустая строка. // ** ОписаниеОшибки - Строка - краткое описание ошибки. При отмене пользователем пустая строка.
// * ДополнительныеПараметры - Структура - значение, которое было указано при создании объекта ОписаниеОповещения. // * ДополнительныеПараметры - Структура - значение, которое было указано при создании объекта ОписаниеОповещения.
// Идентификатор - Строка - идентификатор объекта внешней компоненты. // Идентификатор - Строка - идентификатор объекта внешней компоненты.
@@ -88,6 +94,7 @@
Контекст.Вставить("Кэшировать" , Параметры.Кэшировать); Контекст.Вставить("Кэшировать" , Параметры.Кэшировать);
Контекст.Вставить("ПредложитьУстановить", Параметры.ПредложитьУстановить); Контекст.Вставить("ПредложитьУстановить", Параметры.ПредложитьУстановить);
Контекст.Вставить("ТекстПояснения" , Параметры.ТекстПояснения); Контекст.Вставить("ТекстПояснения" , Параметры.ТекстПояснения);
Контекст.Вставить("ИдентификаторыСозданияОбъектов", Параметры.ИдентификаторыСозданияОбъектов);
ДлительнаяОперация = ВнешниеКомпонентыСлужебныйВызовСервера.НачатьПодготовкуКомпонентыКПодключению( ДлительнаяОперация = ВнешниеКомпонентыСлужебныйВызовСервера.НачатьПодготовкуКомпонентыКПодключению(
Идентификатор, Версия); Идентификатор, Версия);
@@ -1,6 +1,15 @@
#Область СлужебныйПрограммныйИнтерфейс #Область СлужебныйПрограммныйИнтерфейс
// Проверят доступна ли загрузка внешних компонент с сайта.
//
Функция ДоступнаЗагрузкаССайта() Экспорт
Возврат ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ВнешниеКомпоненты")
И Не ОбщегоНазначения.РазделениеВключено();
КонецФункции
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Обработчики событий подсистем конфигурации. // Обработчики событий подсистем конфигурации.
@@ -15,45 +24,75 @@
КонецПроцедуры КонецПроцедуры
// Обновление всех компонент регламентным заданием. // См. ГрупповоеИзменениеОбъектовПереопределяемый.ПриОпределенииОбъектовСРедактируемымиРеквизитами.
// Процедура ПриОпределенииОбъектовСРедактируемымиРеквизитами(Объекты) Экспорт
Процедура ОбновитьВсеКомпонентыССайта() Экспорт
ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(); Объекты.Вставить(Метаданные.Справочники.ВнешниеКомпоненты.ПолноеИмя(), "РеквизитыРедактируемыеВГрупповойОбработке");
Если ОбщегоНазначения.РазделениеВключено() Тогда
ВызватьИсключение НСтр("ru = 'Недопустимое использование регламентного задания:
|Нельзя использовать регламентное задание в разделенном режиме.'");
КонецЕсли;
Если Не ДоступнаЗагрузкаССайта() Тогда
ВызватьИсключение НСтр("ru = 'Недопустимое использование регламентного задания:
|Нельзя использовать регламентное задание в конфигурации
|без подсистемы Интернет Поддержки.'");
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВнешниеКомпоненты.Идентификатор КАК Идентификатор,
| НЕОПРЕДЕЛЕНО КАК Версия,
| ВнешниеКомпоненты.Версия КАК ТекущаяВерсия,
| ВнешниеКомпоненты.Ссылка КАК Ссылка
|ИЗ
| Справочник.ВнешниеКомпоненты КАК ВнешниеКомпоненты
|ГДЕ
| ВнешниеКомпоненты.ОбновлятьССайта";
ОбновитьКомпонентыССайтаПоЗапросу(Запрос);
КонецПроцедуры КонецПроцедуры
Функция ДоступнаЗагрузкаССайта() Экспорт // См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки.
Процедура ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы) Экспорт
Возврат ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ВнешниеКомпоненты") Типы.Добавить(Метаданные.Справочники.ВнешниеКомпоненты);
И Не ОбщегоНазначения.РазделениеВключено();
КонецФункции КонецПроцедуры
// См. СтандартныеПодсистемыСервер.ПриОтправкеДанныхГлавному.
Процедура ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента, Получатель) Экспорт
// Стандартная обработка не переопределяется.
Если ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать Тогда
Возврат;
КонецЕсли;
Если ТипЗнч(ЭлементДанных) = Тип("СправочникОбъект.ВнешниеКомпоненты") Тогда
ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать;
КонецЕсли;
КонецПроцедуры
// См. СтандартныеПодсистемыСервер.ПриОтправкеДанныхПодчиненному.
Процедура ПриОтправкеДанныхПодчиненному(ЭлементДанных, ОтправкаЭлемента, СозданиеНачальногоОбраза, Получатель) Экспорт
// Стандартная обработка не переопределяется.
Если ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать Тогда
Возврат;
КонецЕсли;
Если ТипЗнч(ЭлементДанных) = Тип("СправочникОбъект.ВнешниеКомпоненты") Тогда
ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать;
КонецЕсли;
КонецПроцедуры
// См. СтандартныеПодсистемыСервер.ПриПолученииДанныхОтГлавного.
Процедура ПриПолученииДанныхОтГлавного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель) Экспорт
// Стандартная обработка не переопределяется.
Если ПолучениеЭлемента = ПолучениеЭлементаДанных.Игнорировать Тогда
Возврат;
КонецЕсли;
Если ТипЗнч(ЭлементДанных) = Тип("СправочникОбъект.ВнешниеКомпоненты") Тогда
ПолучениеЭлемента = ПолучениеЭлементаДанных.Игнорировать;
КонецЕсли;
КонецПроцедуры
// См. СтандартныеПодсистемыСервер.ПриПолученииДанныхОтПодчиненного.
Процедура ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель) Экспорт
// Стандартная обработка не переопределяется.
Если ПолучениеЭлемента = ПолучениеЭлементаДанных.Игнорировать Тогда
Возврат;
КонецЕсли;
Если ТипЗнч(ЭлементДанных) = Тип("СправочникОбъект.ВнешниеКомпоненты") Тогда
ПолучениеЭлемента = ПолучениеЭлементаДанных.Игнорировать;
КонецЕсли;
КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -710,5 +749,41 @@
#КонецОбласти #КонецОбласти
////////////////////////////////////////////////////////////////////////////////
// Обработчики выполнения регламентный заданий.
// Обновление всех компонент регламентным заданием.
//
Процедура ОбновитьВсеКомпонентыССайта() Экспорт
ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.ОбновлениеВнешнихКомпонентССайта);
Если ОбщегоНазначения.РазделениеВключено() Тогда
ВызватьИсключение НСтр("ru = 'Недопустимое использование регламентного задания:
|Нельзя использовать регламентное задание в разделенном режиме.'");
КонецЕсли;
Если Не ДоступнаЗагрузкаССайта() Тогда
ВызватьИсключение НСтр("ru = 'Недопустимое использование регламентного задания:
|Нельзя использовать регламентное задание в конфигурации
|без подсистемы Интернет Поддержки.'");
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВнешниеКомпоненты.Идентификатор КАК Идентификатор,
| НЕОПРЕДЕЛЕНО КАК Версия,
| ВнешниеКомпоненты.Версия КАК ТекущаяВерсия,
| ВнешниеКомпоненты.Ссылка КАК Ссылка
|ИЗ
| Справочник.ВнешниеКомпоненты КАК ВнешниеКомпоненты
|ГДЕ
| ВнешниеКомпоненты.ОбновлятьССайта";
ОбновитьКомпонентыССайтаПоЗапросу(Запрос);
КонецПроцедуры
#КонецОбласти #КонецОбласти
File diff suppressed because it is too large. Load diff
@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="ef6ccd0d-73c6-4314-9912-efa7ff27c823">
<name>ДанныеЕдиныхГосРеестров</name>
<synonym>
<key>ru</key>
<value>Данные ЕГРЮЛ / ЕГРИП</value>
</synonym>
<server>true</server>
<externalConnection>true</externalConnection>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>
@@ -398,7 +398,7 @@
// Выполняется при условии: // Выполняется при условии:
// НЕ ИсточникРегистр И Источник.ЭтоНовый() // НЕ ИсточникРегистр И Источник.ЭтоНовый()
// ИЛИ ИсточникРегистр И НЕ Замещение // ИЛИ ИсточникРегистр И НЕ Замещение
// ИЛИ НЕ ИсточникРегистр И Удаление // ИЛИ НЕ ИсточникРегистр И Удаление.
Если ВерсияОбъекта <> "СтараяВерсия" Если ВерсияОбъекта <> "СтараяВерсия"
И ИзменениеЗапрещено( И ИзменениеЗапрещено(
Источник, Источник,
@@ -909,6 +909,8 @@
СвойстваРазделов = СвойстваРазделов(); СвойстваРазделов = СвойстваРазделов();
ПустойРаздел = ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.ПустаяСсылка(); ПустойРаздел = ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.ПустаяСсылка();
ИменаПредопределенных =
Метаданные.ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.ПолучитьИменаПредопределенных();
Блокировка = Новый БлокировкаДанных; Блокировка = Новый БлокировкаДанных;
Блокировка.Добавить("ПланВидовХарактеристик.РазделыДатЗапретаИзменения"); Блокировка.Добавить("ПланВидовХарактеристик.РазделыДатЗапретаИзменения");
@@ -935,30 +937,27 @@
Выборка = Запрос.Выполнить().Выбрать(); Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл Пока Выборка.Следующий() Цикл
Объект = Выборка.Ссылка.ПолучитьОбъект();
Если ИменаПредопределенных.Найти(Выборка.ИмяПредопределенныхДанных) <> Неопределено Тогда
Приставка = "Удалить"; Приставка = "Удалить";
Если Не СтрНачинаетсяС(Выборка.ИмяПредопределенныхДанных, Приставка) Тогда Если Не СтрНачинаетсяС(Выборка.ИмяПредопределенныхДанных, Приставка) Тогда
ВызватьИсключение ЗаголовокОшибки + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( Объект.ПометкаУдаления = Истина;
НСтр("ru = 'Предопределенное имя раздела дат запрета ""%1"" должно иметь приставку ""%2"".'"), Иначе
Выборка.ИмяПредопределенныхДанных, Приставка);
КонецЕсли;
ИскомоеИмя = Сред(Выборка.ИмяПредопределенныхДанных, СтрДлина(Приставка) + 1); ИскомоеИмя = Сред(Выборка.ИмяПредопределенныхДанных, СтрДлина(Приставка) + 1);
СвойстваРаздела = СвойстваРазделов.Разделы.Получить(ИскомоеИмя); СвойстваРаздела = СвойстваРазделов.Разделы.Получить(ИскомоеИмя);
Если СвойстваРаздела = Неопределено Тогда Если СвойстваРаздела = Неопределено Тогда
ВызватьИсключение ЗаголовокОшибки + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( Объект.ПометкаУдаления = Истина;
НСтр("ru = 'Имя раздела дат запрета ""%1"", полученное из имени предопределенного элемента ""%2"",
|не найдено в описании, указанном в процедуре ПриЗаполненииРазделовДатЗапретаИзменения ИначеЕсли Выборка.Ссылка <> СвойстваРаздела.Ссылка Тогда
|общего модуля ДатыЗапретаИзмененияПереопределяемый.
|
|Если раздел был переименован/удален в описании, следует переименовать/удалить
|соответствующий предопределенный элемент.'"),
ИскомоеИмя, Выборка.ИмяПредопределенныхДанных);
КонецЕсли;
Объект = Выборка.Ссылка.ПолучитьОбъект();
Объект.ИмяПредопределенныхДанных = "";
Если Выборка.Ссылка <> СвойстваРаздела.Ссылка Тогда
Объект.УдалитьНоваяСсылка = СвойстваРаздела.Ссылка; Объект.УдалитьНоваяСсылка = СвойстваРаздела.Ссылка;
Объект.Наименование = "(" + НСтр("ru = 'не используется'") + ") " + СвойстваРаздела.Представление; Объект.Наименование = "(" + НСтр("ru = 'не используется'") + ") " + СвойстваРаздела.Представление;
КонецЕсли; КонецЕсли;
КонецЕсли;
ИначеЕсли СвойстваРазделов.Разделы.Получить(Выборка.Ссылка) = Неопределено Тогда
Объект.ПометкаУдаления = Истина;
КонецЕсли;
Объект.ИмяПредопределенныхДанных = "";
ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект, Ложь); ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект, Ложь);
КонецЦикла; КонецЦикла;
ЗафиксироватьТранзакцию(); ЗафиксироватьТранзакцию();
@@ -506,6 +506,42 @@
ОбщегоНазначения.ВыполнитьМетодОбъекта(Отчет, Параметры.ИмяМетода, ПараметрыМетода); ОбщегоНазначения.ВыполнитьМетодОбъекта(Отчет, Параметры.ИмяМетода, ПараметрыМетода);
КонецПроцедуры КонецПроцедуры
// Получает сообщения пользователю, отфильтровывает служебные сообщения о состоянии длительной операции.
//
// Параметры:
// УдалятьПолученные - Булево - Признак необходимости удаления полученных сообщений.
// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор фонового задания.
//
// Возвращаемое значение:
//  Массив - ФиксированныйМассив - Массив объектов СообщениеПользователю, которые были сформированы в
// фоновом задании.
Функция СообщенияПользователю(УдалятьПолученные = Ложь, ИдентификаторЗадания = Неопределено) Экспорт
Если ЗначениеЗаполнено(ИдентификаторЗадания) Тогда
ФоновоеЗадание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторЗадания);
Если ФоновоеЗадание <> Неопределено Тогда
ВсеСообщения = ФоновоеЗадание.ПолучитьСообщенияПользователю(УдалятьПолученные);
КонецЕсли;
Иначе
ВсеСообщения = ПолучитьСообщенияПользователю(УдалятьПолученные);
КонецЕсли;
Результат = Новый Массив;
Для Каждого Сообщение Из ВсеСообщения Цикл
Если СтрНачинаетсяС(Сообщение.Текст, "{" + СообщениеПрогресса() + "}") Тогда
Если УдалятьПолученные Тогда
Сообщение.Сообщить();
КонецЕсли;
Иначе
Результат.Добавить(Сообщение);
КонецЕсли;
КонецЦикла;
Возврат Новый ФиксированныйМассив(Результат);
КонецФункции
#КонецОбласти #КонецОбласти
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
@@ -1177,16 +1177,23 @@
// См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту. // См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.
Процедура ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды) Экспорт Процедура ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды) Экспорт
Если Не ПравоДоступа("Чтение", Метаданные.РегистрыСведений.НазначениеДополнительныхОбработок) Тогда
Возврат;
КонецЕсли;
Если НастройкиФормы.ЭтоФормаОбъекта Тогда Если НастройкиФормы.ЭтоФормаОбъекта Тогда
ТипФормы = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипФормыОбъекта(); ТипФормы = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипФормыОбъекта();
Иначе Иначе
ТипФормы = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипФормыСписка(); ТипФормы = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипФормыСписка();
КонецЕсли; КонецЕсли;
УстанавливатьПараметрыФО = (Метаданные.ОбщиеКоманды.Найти("СозданиеСвязанныхОбъектов") <> Неопределено); УстанавливатьПараметрыФО = (Метаданные.ОбщиеКоманды.Найти("СозданиеСвязанныхОбъектов") <> Неопределено);
Если УстанавливатьПараметрыФО Тогда Если УстанавливатьПараметрыФО Тогда
НастройкиФормы.ФункциональныеОпции.Вставить("ДополнительныеОтчетыИОбработкиОбъектНазначения", Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка()); НастройкиФормы.ФункциональныеОпции.Вставить("ДополнительныеОтчетыИОбработкиОбъектНазначения", Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка());
НастройкиФормы.ФункциональныеОпции.Вставить("ДополнительныеОтчетыИОбработкиТипФормы", ТипФормы); НастройкиФормы.ФункциональныеОпции.Вставить("ДополнительныеОтчетыИОбработкиТипФормы", ТипФормы);
КонецЕсли; КонецЕсли;
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьДополнительныеОтчетыИОбработки") Тогда Если Не ПолучитьФункциональнуюОпцию("ИспользоватьДополнительныеОтчетыИОбработки") Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -266,10 +266,10 @@
КонецЕсли; КонецЕсли;
Если Не ПустаяСтрока(ШагСценария.СохранениеРезультата) Тогда Если Не ПустаяСтрока(ШагСценария.СохранениеРезультата) Тогда
Результат = Вычислить(ИсполняемыйФрагмент); Результат = ОбщегоНазначения.ВычислитьВБезопасномРежиме(ИсполняемыйФрагмент);
СохраняемыеПараметры.Вставить(ШагСценария.СохранениеРезультата, Результат); СохраняемыеПараметры.Вставить(ШагСценария.СохранениеРезультата, Результат);
Иначе Иначе
Выполнить(ИсполняемыйФрагмент); ОбщегоНазначения.ВыполнитьВБезопасномРежиме(ИсполняемыйФрагмент);
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
@@ -14,6 +14,8 @@
ОбъектыНазначения = Новый СписокЗначений; ОбъектыНазначения = Новый СписокЗначений;
Если ТипЗнч(ПараметрКоманды) = Тип("Массив") Тогда // назначаемая обработка Если ТипЗнч(ПараметрКоманды) = Тип("Массив") Тогда // назначаемая обработка
ОбъектыНазначения.ЗагрузитьЗначения(ПараметрКоманды); ОбъектыНазначения.ЗагрузитьЗначения(ПараметрКоманды);
ИначеЕсли ПараметрКоманды <> Неопределено Тогда
ОбъектыНазначения.Добавить(ПараметрКоманды);
КонецЕсли; КонецЕсли;
Параметры = Новый Структура("ОбъектыНазначения, Вид, ИмяРаздела, РежимОткрытияОкна"); Параметры = Новый Структура("ОбъектыНазначения, Вид, ИмяРаздела, РежимОткрытияОкна");
@@ -74,6 +74,11 @@
МодульВзаимодействия.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); МодульВзаимодействия.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы);
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВнешниеКомпоненты") Тогда
МодульВнешниеКомпонентыСлужебный = ОбщегоНазначения.ОбщийМодуль("ВнешниеКомпонентыСлужебный");
МодульВнешниеКомпонентыСлужебный.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РегламентныеЗадания") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РегламентныеЗадания") Тогда
МодульРегламентныеЗаданияСлужебный = ОбщегоНазначения.ОбщийМодуль("РегламентныеЗаданияСлужебный"); МодульРегламентныеЗаданияСлужебный = ОбщегоНазначения.ОбщийМодуль("РегламентныеЗаданияСлужебный");
МодульРегламентныеЗаданияСлужебный.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы); МодульРегламентныеЗаданияСлужебный.ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузки(Типы);
@@ -134,11 +139,6 @@
МодульРаботаВМоделиСервиса.ПослеЗагрузкиДанных(Контейнер); МодульРаботаВМоделиСервиса.ПослеЗагрузкиДанных(Контейнер);
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСКонтрагентами") Тогда
МодульПроверкаКонтрагентов = ОбщегоНазначения.ОбщийМодуль("ПроверкаКонтрагентов");
МодульПроверкаКонтрагентов.ПослеЗагрузкиДанных(Контейнер);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("РаботаВМоделиСервиса.ВалютыВМоделиСервиса") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("РаботаВМоделиСервиса.ВалютыВМоделиСервиса") Тогда
МодульКурсыВалютСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("КурсыВалютСлужебныйВМоделиСервиса"); МодульКурсыВалютСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("КурсыВалютСлужебныйВМоделиСервиса");
МодульКурсыВалютСлужебныйВМоделиСервиса.ПослеЗагрузкиДанных(Контейнер); МодульКурсыВалютСлужебныйВМоделиСервиса.ПослеЗагрузкиДанных(Контейнер);
@@ -738,6 +738,23 @@
#КонецОбласти #КонецОбласти
#Область РегламентныеЗадания
// См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий.
Процедура ПриОпределенииНастроекРегламентныхЗаданий(Настройки) Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда
МодульТехнологияСервиса = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервиса");
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(МодульТехнологияСервиса.ВерсияБиблиотеки(), "1.0.13.1") >= 0 Тогда
МодульТехнологияСервисаИнтеграцияСБСП = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервисаИнтеграцияСБСП");
МодульТехнологияСервисаИнтеграцияСБСП.ПриОпределенииНастроекРегламентныхЗаданий(Настройки);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область УправлениеДоступом #Область УправлениеДоступом
// Вызывается при обновлении ролей пользователя информационной базы. // Вызывается при обновлении ролей пользователя информационной базы.
@@ -143,11 +143,6 @@
МодульОбменДаннымиСервер.ПриДобавленииПереименованийОбъектовМетаданных(Итог); МодульОбменДаннымиСервер.ПриДобавленииПереименованийОбъектовМетаданных(Итог);
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСКонтрагентами") Тогда
МодульПроверкаКонтрагентов = ОбщегоНазначения.ОбщийМодуль("ПроверкаКонтрагентов");
МодульПроверкаКонтрагентов.ПриДобавленииПереименованийОбъектовМетаданных(Итог);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда
МодульРаботаСПочтовымиСообщениямиСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСПочтовымиСообщениямиСлужебный"); МодульРаботаСПочтовымиСообщениямиСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСПочтовымиСообщениямиСлужебный");
МодульРаботаСПочтовымиСообщениямиСлужебный.ПриДобавленииПереименованийОбъектовМетаданных(Итог); МодульРаботаСПочтовымиСообщениямиСлужебный.ПриДобавленииПереименованийОбъектовМетаданных(Итог);
@@ -213,6 +208,11 @@
МодульВерсионированиеОбъектов.ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента, Получатель); МодульВерсионированиеОбъектов.ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента, Получатель);
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВнешниеКомпоненты") Тогда
МодульВнешниеКомпонентыСлужебный = ОбщегоНазначения.ОбщийМодуль("ВнешниеКомпонентыСлужебный");
МодульВнешниеКомпонентыСлужебный.ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента, Получатель);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДатыЗапретаИзменения") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДатыЗапретаИзменения") Тогда
МодульДатыЗапретаИзмененияСлужебный = ОбщегоНазначения.ОбщийМодуль("ДатыЗапретаИзмененияСлужебный"); МодульДатыЗапретаИзмененияСлужебный = ОбщегоНазначения.ОбщийМодуль("ДатыЗапретаИзмененияСлужебный");
МодульДатыЗапретаИзмененияСлужебный.ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента, Получатель); МодульДатыЗапретаИзмененияСлужебный.ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента, Получатель);
@@ -243,6 +243,11 @@
МодульВерсионированиеОбъектов.ПриОтправкеДанныхПодчиненному(ЭлементДанных, ОтправкаЭлемента, СозданиеНачальногоОбраза, Получатель); МодульВерсионированиеОбъектов.ПриОтправкеДанныхПодчиненному(ЭлементДанных, ОтправкаЭлемента, СозданиеНачальногоОбраза, Получатель);
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВнешниеКомпоненты") Тогда
МодульВнешниеКомпонентыСлужебный = ОбщегоНазначения.ОбщийМодуль("ВнешниеКомпонентыСлужебный");
МодульВнешниеКомпонентыСлужебный.ПриОтправкеДанныхПодчиненному(ЭлементДанных, ОтправкаЭлемента, СозданиеНачальногоОбраза, Получатель);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДатыЗапретаИзменения") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДатыЗапретаИзменения") Тогда
МодульДатыЗапретаИзмененияСлужебный = ОбщегоНазначения.ОбщийМодуль("ДатыЗапретаИзмененияСлужебный"); МодульДатыЗапретаИзмененияСлужебный = ОбщегоНазначения.ОбщийМодуль("ДатыЗапретаИзмененияСлужебный");
МодульДатыЗапретаИзмененияСлужебный.ПриОтправкеДанныхПодчиненному(ЭлементДанных, ОтправкаЭлемента, СозданиеНачальногоОбраза, Получатель); МодульДатыЗапретаИзмененияСлужебный.ПриОтправкеДанныхПодчиненному(ЭлементДанных, ОтправкаЭлемента, СозданиеНачальногоОбраза, Получатель);
@@ -273,6 +278,11 @@
МодульВерсионированиеОбъектов.ПриПолученииДанныхОтГлавного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель); МодульВерсионированиеОбъектов.ПриПолученииДанныхОтГлавного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель);
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВнешниеКомпоненты") Тогда
МодульВнешниеКомпонентыСлужебный = ОбщегоНазначения.ОбщийМодуль("ВнешниеКомпонентыСлужебный");
МодульВнешниеКомпонентыСлужебный.ПриПолученииДанныхОтГлавного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДатыЗапретаИзменения") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДатыЗапретаИзменения") Тогда
МодульДатыЗапретаИзмененияСлужебный = ОбщегоНазначения.ОбщийМодуль("ДатыЗапретаИзмененияСлужебный"); МодульДатыЗапретаИзмененияСлужебный = ОбщегоНазначения.ОбщийМодуль("ДатыЗапретаИзмененияСлужебный");
МодульДатыЗапретаИзмененияСлужебный.ПриПолученииДанныхОтГлавного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель); МодульДатыЗапретаИзмененияСлужебный.ПриПолученииДанныхОтГлавного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель);
@@ -312,6 +322,11 @@
МодульВерсионированиеОбъектов.ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель); МодульВерсионированиеОбъектов.ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель);
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВнешниеКомпоненты") Тогда
МодульВнешниеКомпонентыСлужебный = ОбщегоНазначения.ОбщийМодуль("ВнешниеКомпонентыСлужебный");
МодульВнешниеКомпонентыСлужебный.ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДатыЗапретаИзменения") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДатыЗапретаИзменения") Тогда
МодульДатыЗапретаИзмененияСлужебный = ОбщегоНазначения.ОбщийМодуль("ДатыЗапретаИзмененияСлужебный"); МодульДатыЗапретаИзмененияСлужебный = ОбщегоНазначения.ОбщийМодуль("ДатыЗапретаИзмененияСлужебный");
МодульДатыЗапретаИзмененияСлужебный.ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель); МодульДатыЗапретаИзмененияСлужебный.ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад, Отправитель);
@@ -667,6 +682,11 @@
МодульВариантыОтчетов.ПриОпределенииОбъектовСРедактируемымиРеквизитами(Объекты); МодульВариантыОтчетов.ПриОпределенииОбъектовСРедактируемымиРеквизитами(Объекты);
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВнешниеКомпоненты") Тогда
МодульВнешниеКомпонентыСлужебный = ОбщегоНазначения.ОбщийМодуль("ВнешниеКомпонентыСлужебный");
МодульВнешниеКомпонентыСлужебный.ПриОпределенииОбъектовСРедактируемымиРеквизитами(Объекты);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки") Тогда
МодульДополнительныеОтчетыИОбработки = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработки"); МодульДополнительныеОтчетыИОбработки = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработки");
МодульДополнительныеОтчетыИОбработки.ПриОпределенииОбъектовСРедактируемымиРеквизитами(Объекты); МодульДополнительныеОтчетыИОбработки.ПриОпределенииОбъектовСРедактируемымиРеквизитами(Объекты);
@@ -1063,11 +1083,6 @@
МодульФайловыеФункцииСлужебныйВМоделиСервиса.ПриДобавленииОбработчиковОбновления(Обработчики); МодульФайловыеФункцииСлужебныйВМоделиСервиса.ПриДобавленииОбработчиковОбновления(Обработчики);
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСКонтрагентами") Тогда
МодульПроверкаКонтрагентов = ОбщегоНазначения.ОбщийМодуль("ПроверкаКонтрагентов");
МодульПроверкаКонтрагентов.ПриДобавленииОбработчиковОбновления(Обработчики);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда
МодульРаботаСПочтовымиСообщениямиСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСПочтовымиСообщениямиСлужебный"); МодульРаботаСПочтовымиСообщениямиСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСПочтовымиСообщениямиСлужебный");
МодульРаботаСПочтовымиСообщениямиСлужебный.ПриДобавленииОбработчиковОбновления(Обработчики); МодульРаботаСПочтовымиСообщениямиСлужебный.ПриДобавленииОбработчиковОбновления(Обработчики);
@@ -1149,6 +1164,12 @@
ВыполненныеОбработчики, ВыводитьОписаниеОбновлений, МонопольныйРежим); ВыполненныеОбработчики, ВыводитьОписаниеОбновлений, МонопольныйРежим);
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступомСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебный");
МодульУправлениеДоступомСлужебный.ПослеОбновленияИнформационнойБазы(ПредыдущаяВерсия, ТекущаяВерсия,
ВыполненныеОбработчики, ВыводитьОписаниеОбновлений, МонопольныйРежим);
КонецЕсли;
КонецПроцедуры КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -1844,11 +1865,6 @@
МодульОбновлениеПоставляемыеДанные.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); МодульОбновлениеПоставляемыеДанные.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСКонтрагентами") Тогда
МодульПроверкаКонтрагентов = ОбщегоНазначения.ОбщийМодуль("ПроверкаКонтрагентов");
МодульПроверкаКонтрагентов.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса") Тогда
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
МодульРаботаВМоделиСервиса.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам); МодульРаботаВМоделиСервиса.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
@@ -1979,6 +1995,8 @@
МодульВнешниеКомпонентыСлужебный.ПриОпределенииНастроекРегламентныхЗаданий(Настройки); МодульВнешниеКомпонентыСлужебный.ПриОпределенииНастроекРегламентныхЗаданий(Настройки);
КонецЕсли; КонецЕсли;
ИнтеграцияСТехнологиейСервиса.ПриОпределенииНастроекРегламентныхЗаданий(Настройки);
КонецПроцедуры КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -718,7 +718,6 @@
Обработчик = Обработчики.Добавить(); Обработчик = Обработчики.Добавить();
Обработчик.НачальноеЗаполнение = Истина; Обработчик.НачальноеЗаполнение = Истина;
Обработчик.Процедура = "КалендарныеГрафики.ОбновитьПроизводственныеКалендари"; Обработчик.Процедура = "КалендарныеГрафики.ОбновитьПроизводственныеКалендари";
Обработчик.Версия = "1.0.0.1";
Обработчик.ОбщиеДанные = Истина; Обработчик.ОбщиеДанные = Истина;
Обработчик = Обработчики.Добавить(); Обработчик = Обработчики.Добавить();
@@ -743,14 +742,14 @@
Обработчик.ОбщиеДанные = Истина; Обработчик.ОбщиеДанные = Истина;
Обработчик = Обработчики.Добавить(); Обработчик = Обработчики.Добавить();
Обработчик.Версия = "2.4.1.1"; Обработчик.Версия = "2.4.2.119";
Обработчик.Процедура = "КалендарныеГрафики.ОбновитьДанныеПроизводственныхКалендарей"; Обработчик.Процедура = "КалендарныеГрафики.ОбновитьДанныеПроизводственныхКалендарей";
Обработчик.РежимВыполнения = "Оперативно"; Обработчик.РежимВыполнения = "Оперативно";
Обработчик.ОбщиеДанные = Истина; Обработчик.ОбщиеДанные = Истина;
Если Не ОбщегоНазначения.РазделениеВключено() Тогда Если Не ОбщегоНазначения.РазделениеВключено() Тогда
Обработчик = Обработчики.Добавить(); Обработчик = Обработчики.Добавить();
Обработчик.Версия = "2.4.1.1"; Обработчик.Версия = "2.4.2.119";
Обработчик.Процедура = "КалендарныеГрафики.ОбновитьДанныеЗависимыеОтПроизводственныхКалендарей"; Обработчик.Процедура = "КалендарныеГрафики.ОбновитьДанныеЗависимыеОтПроизводственныхКалендарей";
Обработчик.ОчередьОтложеннойОбработки = 1; Обработчик.ОчередьОтложеннойОбработки = 1;
Обработчик.ПроцедураЗаполненияДанныхОбновления = "КалендарныеГрафики.ЗаполнитьДанныеОбновленияДанныхЗависимыхОтПроизводственныхКалендарей"; Обработчик.ПроцедураЗаполненияДанныхОбновления = "КалендарныеГрафики.ЗаполнитьДанныеОбновленияДанныхЗависимыхОтПроизводственныхКалендарей";
@@ -346,13 +346,7 @@
ТребуемыеОтборы.Добавить(Новый ПолеКомпоновкиДанных("Владелец")); ТребуемыеОтборы.Добавить(Новый ПолеКомпоновкиДанных("Владелец"));
ТребуемыеОтборы.Добавить(Новый ПолеКомпоновкиДанных("Owner")); ТребуемыеОтборы.Добавить(Новый ПолеКомпоновкиДанных("Owner"));
Для Каждого Отбор Из НастройкиКомпоновкиДанных.Отбор.Элементы Цикл Возврат ЕстьТребуемыйОтбор(НастройкиКомпоновкиДанных.Отбор, ТребуемыеОтборы);
Если ТребуемыеОтборы.Найти(Отбор.ЛевоеЗначение) <> Неопределено Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецФункции КонецФункции
@@ -362,8 +356,20 @@
ТребуемыеОтборы.Добавить(Новый ПолеКомпоновкиДанных("Родитель")); ТребуемыеОтборы.Добавить(Новый ПолеКомпоновкиДанных("Родитель"));
ТребуемыеОтборы.Добавить(Новый ПолеКомпоновкиДанных("Parent")); ТребуемыеОтборы.Добавить(Новый ПолеКомпоновкиДанных("Parent"));
Для Каждого Отбор Из НастройкиКомпоновкиДанных.Отбор.Элементы Цикл Возврат ЕстьТребуемыйОтбор(НастройкиКомпоновкиДанных.Отбор, ТребуемыеОтборы);
Если ТребуемыеОтборы.Найти(Отбор.ЛевоеЗначение) <> Неопределено Тогда
КонецФункции
Функция ЕстьТребуемыйОтбор(КоллекцияОтборов, ТребуемыеОтборы)
Для Каждого Отбор Из КоллекцияОтборов.Элементы Цикл
Если ТипЗнч(Отбор) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда
ОтборНайден = ЕстьТребуемыйОтбор(Отбор, ТребуемыеОтборы);
Иначе
ОтборНайден = ТребуемыеОтборы.Найти(Отбор.ЛевоеЗначение) <> Неопределено;
КонецЕсли;
Если ОтборНайден Тогда
Возврат Истина; Возврат Истина;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
@@ -289,8 +289,7 @@
КонецЕсли; КонецЕсли;
ЛитералПеревода = ?(ПустаяСтрока(КомпонентыОбмена.СтрокаСообщенияОбОшибке), "", Символы.ПС); КомпонентыОбмена.СтрокаСообщенияОбОшибке = Стр;
КомпонентыОбмена.СтрокаСообщенияОбОшибке = КомпонентыОбмена.СтрокаСообщенияОбОшибке + ЛитералПеревода + Стр;
Если ВзвестиФлагОшибок Тогда Если ВзвестиФлагОшибок Тогда
@@ -2311,8 +2310,9 @@
Если Не ЭтоРазделенныйОбъектМетаданных Тогда Если Не ЭтоРазделенныйОбъектМетаданных Тогда
СтрокаСообщенияОбОшибке = НСтр("ru = 'Попытка изменение неразделенных данных (%1) в разделенном режиме.'"); СтрокаСообщенияОбОшибке = НСтр("ru = 'Попытка изменения неразделенных данных (%1: %2) в разделенном режиме.'");
СтрокаСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщенияОбОшибке, Объект.Метаданные().ПолноеИмя()); СтрокаСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщенияОбОшибке,
Объект.Метаданные().ПолноеИмя(), Строка(Объект));
КомпонентыОбмена.СостояниеОбменаДанными.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.ВыполненоСПредупреждениями; КомпонентыОбмена.СостояниеОбменаДанными.РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.ВыполненоСПредупреждениями;
ЗаписатьВПротоколВыполнения(КомпонентыОбмена, СтрокаСообщенияОбОшибке,, Ложь); ЗаписатьВПротоколВыполнения(КомпонентыОбмена, СтрокаСообщенияОбОшибке,, Ложь);
@@ -3873,7 +3873,9 @@
КонецЕсли; КонецЕсли;
Если НомерЭтапа = 2 И ТЧ.ИспользуетсяАлгоритмКонвертации Если НомерЭтапа = 2 И ТЧ.ИспользуетсяАлгоритмКонвертации
И ЗначениеЗаполнено(ТЧ.ТЧКонфигурации)
И ПолученныеДанные.ДополнительныеСвойства.Свойство(ТЧ.ТЧКонфигурации) Тогда И ПолученныеДанные.ДополнительныеСвойства.Свойство(ТЧ.ТЧКонфигурации) Тогда
МассивСтруктурСДаннымиСтрок = ПолученныеДанные.ДополнительныеСвойства[ТЧ.ТЧКонфигурации]; МассивСтруктурСДаннымиСтрок = ПолученныеДанные.ДополнительныеСвойства[ТЧ.ТЧКонфигурации];
КоличествоСтрокТЧКонфигурации = ПолученныеДанные[ТЧ.ТЧКонфигурации].Количество(); КоличествоСтрокТЧКонфигурации = ПолученныеДанные[ТЧ.ТЧКонфигурации].Количество();
@@ -3906,6 +3908,7 @@
КонецЦикла; КонецЦикла;
КонецЦикла; КонецЦикла;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
@@ -384,7 +384,8 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Если Не ПараметрыРаботыКлиента.Свойство("ОткрытьПомощникСозданияОбменаДаннымиДляНастройкиПодчиненногоУзла") Если Не ПараметрыРаботыКлиента.ЭтоГлавныйУзел
И Не ПараметрыРаботыКлиента.Свойство("ОткрытьПомощникСозданияОбменаДаннымиДляНастройкиПодчиненногоУзла")
И ПараметрыРаботыКлиента.Свойство("ПроверитьНеобходимостьОбновленияКонфигурацииПодчиненногоУзла") Тогда И ПараметрыРаботыКлиента.Свойство("ПроверитьНеобходимостьОбновленияКонфигурацииПодчиненногоУзла") Тогда
ПодключитьОбработчикОжидания("ПроверитьНеобходимостьОбновленияКонфигурацииПодчиненногоУзлаПриЗапуске", 1, Истина); ПодключитьОбработчикОжидания("ПроверитьНеобходимостьОбновленияКонфигурацииПодчиненногоУзлаПриЗапуске", 1, Истина);
@@ -2726,15 +2726,12 @@
// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления. // См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления.
Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
Если ПолучитьФункциональнуюОпцию("ИспользоватьСинхронизациюДанных")
Или ОбщегоНазначения.РазделениеВключено() Тогда
Обработчик = Обработчики.Добавить(); Обработчик = Обработчики.Добавить();
Обработчик.Версия = "*"; Обработчик.Версия = "*";
Обработчик.Приоритет = 1; Обработчик.Приоритет = 1;
Обработчик.ОбщиеДанные = Истина; Обработчик.ОбщиеДанные = Истина;
Обработчик.МонопольныйРежим = Ложь; Обработчик.МонопольныйРежим = Ложь;
Обработчик.Процедура = "ОбменДаннымиСервер.ВыполнитьОбновлениеПравилДляОбменаДанными"; Обработчик.Процедура = "ОбменДаннымиСервер.ВыполнитьОбновлениеПравилДляОбменаДанными";
КонецЕсли;
Обработчик = Обработчики.Добавить(); Обработчик = Обработчики.Добавить();
Обработчик.Версия = "1.1.1.2"; Обработчик.Версия = "1.1.1.2";
@@ -2998,14 +2995,14 @@
// //
Процедура ВыполнитьОбновлениеПравилДляОбменаДанными() Экспорт Процедура ВыполнитьОбновлениеПравилДляОбменаДанными() Экспорт
Если Не Константы.ИспользоватьСинхронизациюДанных.Получить() // Для сценария, когда в конфигурации был удален или переименован план обмена.
УдалитьНеактуальныеЗаписиВРегистреПравилДляОбменаДанными();
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьСинхронизациюДанных")
И Не ОбщегоНазначения.РазделениеВключено() Тогда И Не ОбщегоНазначения.РазделениеВключено() Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
// Для сценария, когда в конфигурации был удален или переименован план обмена.
УдалитьНеактуальныеЗаписиВРегистреПравилДляОбменаДанными();
ПравилаОбменаЗагруженныеИзФайла = Новый Массив; ПравилаОбменаЗагруженныеИзФайла = Новый Массив;
ПравилаРегистрацииЗагруженныеИзФайла = Новый Массив; ПравилаРегистрацииЗагруженныеИзФайла = Новый Массив;
@@ -3313,7 +3310,7 @@
И ОбменДаннымиВызовСервера.ТребуетсяУстановкаОбновления(); И ОбменДаннымиВызовСервера.ТребуетсяУстановкаОбновления();
Пока Выборка.Следующий() Цикл Пока Выборка.Следующий() Цикл
ОтказПоСтрокеСценария = Ложь;
Если ЭтоПодчиненныйУзелРИБТребующийУстановкиОбновления Если ЭтоПодчиненныйУзелРИБТребующийУстановкиОбновления
И ОбменДаннымиПовтИсп.ЭтоУзелРаспределеннойИнформационнойБазы(Выборка.УзелИнформационнойБазы) Тогда И ОбменДаннымиПовтИсп.ЭтоУзелРаспределеннойИнформационнойБазы(Выборка.УзелИнформационнойБазы) Тогда
// Обмен по расписанию не выполняется. // Обмен по расписанию не выполняется.
@@ -3326,13 +3323,13 @@
КоличествоЭлементовВТранзакции = КоличествоЭлементовВТранзакцииВыполняемогоДействия(Выборка.ВыполняемоеДействие); КоличествоЭлементовВТранзакции = КоличествоЭлементовВТранзакцииВыполняемогоДействия(Выборка.ВыполняемоеДействие);
ВыполнитьДействиеОбменаДляУзлаИнформационнойБазыПоВнешнемуСоединению(Отказ, Выборка.УзелИнформационнойБазы, Выборка.ВыполняемоеДействие, КоличествоЭлементовВТранзакции); ВыполнитьДействиеОбменаДляУзлаИнформационнойБазыПоВнешнемуСоединению(ОтказПоСтрокеСценария, Выборка.УзелИнформационнойБазы, Выборка.ВыполняемоеДействие, КоличествоЭлементовВТранзакции);
ИначеЕсли Выборка.ОбменЧерезВебСервис Тогда ИначеЕсли Выборка.ОбменЧерезВебСервис Тогда
ПараметрыОбмена = ПараметрыОбмена(); ПараметрыОбмена = ПараметрыОбмена();
ВыполнитьДействиеОбменаДляУзлаИнформационнойБазыЧерезWebСервис(Выборка.УзелИнформационнойБазы, ВыполнитьДействиеОбменаДляУзлаИнформационнойБазыЧерезWebСервис(Выборка.УзелИнформационнойБазы,
Выборка.ВыполняемоеДействие, ПараметрыОбмена, Отказ); Выборка.ВыполняемоеДействие, ПараметрыОбмена, ОтказПоСтрокеСценария);
Иначе Иначе
@@ -3342,7 +3339,7 @@
// Если настройка содержит ошибки, то обмен не производим; статус "Отменено". // Если настройка содержит ошибки, то обмен не производим; статус "Отменено".
Если СтруктураНастроекОбмена.Отказ Тогда Если СтруктураНастроекОбмена.Отказ Тогда
Отказ = Истина; ОтказПоСтрокеСценария = Истина;
// Фиксируем в ЖР лог по обмену данными. // Фиксируем в ЖР лог по обмену данными.
ЗафиксироватьЗавершениеОбмена(СтруктураНастроекОбмена); ЗафиксироватьЗавершениеОбмена(СтруктураНастроекОбмена);
@@ -3365,12 +3362,14 @@
Если Не РезультатВыполненияОбменаВыполнено(СтруктураНастроекОбмена.РезультатВыполненияОбмена) Тогда Если Не РезультатВыполненияОбменаВыполнено(СтруктураНастроекОбмена.РезультатВыполненияОбмена) Тогда
ОтказПоСтрокеСценария = Истина;
КонецЕсли;
КонецЕсли;
Если ОтказПоСтрокеСценария Тогда
Отказ = Истина; Отказ = Истина;
КонецЕсли; КонецЕсли;
КонецЕсли;
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
@@ -5971,7 +5970,11 @@
Файл = Новый Файл(ИмяФайла); Файл = Новый Файл(ИмяФайла);
ИмяФайлаРезультата = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(КаталогВременныхФайлов(), Файл.Имя); ВременныйКаталог = ПолучитьИмяВременногоФайла();
СоздатьКаталог(ВременныйКаталог);
ИмяФайлаРезультата = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(ВременныйКаталог, Файл.Имя);
ПереместитьФайл(ИмяФайла, ИмяФайлаРезультата); ПереместитьФайл(ИмяФайла, ИмяФайлаРезультата);
Попытка Попытка
@@ -8197,7 +8200,7 @@
Функция КоличествоПроблемОбменаДанными(УзлыОбмена = Неопределено) Функция КоличествоПроблемОбменаДанными(УзлыОбмена = Неопределено)
Возврат РегистрыСведений.РезультатыОбменаДанными.КоличествоПроблем(УзлыОбмена); Возврат РегистрыСведений.РезультатыОбменаДанными.КоличествоПроблем(УзлыОбмена, Неопределено);
КонецФункции КонецФункции
@@ -12130,11 +12133,11 @@
КонецЕсли; КонецЕсли;
Для Каждого Движение Из МетаданныеДокумента.Движения Цикл Для Каждого Движение Из МетаданныеДокумента.Движения Цикл
// В запросе получаем имена регистров, по которым есть хотя бы одно движение // В запросе получаем имена регистров, по которым есть хотя бы одно движение.
// например, // Например,
// ВЫБРАТЬ Первые 1 «РегистрНакопления.ТоварыНаСкладах» // ВЫБРАТЬ ПЕРВЫЕ 1 "РегистрНакопления.ТоварыНаСкладах"
// ИЗ РегистрНакопления.ТоварыНаСкладах // ИЗ РегистрНакопления.ТоварыНаСкладах
// ГДЕ Регистратор = &Регистратор // ГДЕ Регистратор = &Регистратор.
// Имя регистра приводим к Строка(200), см. ниже. // Имя регистра приводим к Строка(200), см. ниже.
ТекстЗапроса = ТекстЗапроса + " ТекстЗапроса = ТекстЗапроса + "
@@ -986,7 +986,12 @@
Исключение Исключение
ЗаписьЖурналаРегистрации(НСтр("ru = 'Обмен данными.Правила регистрации объектов'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()), ЗаписьЖурналаРегистрации(НСтр("ru = 'Обмен данными.Правила регистрации объектов'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ОбработатьОшибкуПравилРегистрации(ИмяПланаОбмена);
ТекстСообщенияДляПользователя = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Ошибка в правилах регистрации объекта: %1. Подробнее см. в журнале регистрации.'"),
ИмяПланаОбмена);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщенияДляПользователя);
Отказ = Истина; Отказ = Истина;
КонецПопытки; КонецПопытки;
@@ -2856,16 +2861,6 @@
КонецФункции КонецФункции
Процедура ОбработатьОшибкуПравилРегистрации(ИмяПланаОбмена)
Если ОбновлениеИнформационнойБазы.ВыполняетсяОбновлениеИнформационнойБазы()
И РегистрыСведений.ПравилаДляОбменаДанными.ИспользуютсяПравилаИзФайла(ИмяПланаОбмена) Тогда
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("ОбменДанными=%1", ИмяПланаОбмена);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
КонецЕсли;
КонецПроцедуры
// Создает новый экземпляр объекта Структура, заполняет объект данными указанной структуры. // Создает новый экземпляр объекта Структура, заполняет объект данными указанной структуры.
// //
// Параметры: // Параметры:
@@ -1466,17 +1466,11 @@
|; |;
| |
|//////////////////////////////////////////////////////////////////////////////// |////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ |ВЫБРАТЬ ПЕРВЫЕ 500
| &ТекстВыборкиИзмерений | &ТекстВыборкиИзмерений
|ПОМЕСТИТЬ #ВТДляОбработкиИзмерения |ПОМЕСТИТЬ #ВТДляОбработкиИзмерения
|ИЗ |ИЗ
| ВТДляОбработкиИзмеренияПолная КАК ТаблицаИзменений | ВТДляОбработкиИзмеренияПолная КАК ТаблицаИзменений
|ГДЕ
| &ТекстУсловияОтбораПорции В
| (ВЫБРАТЬ ПЕРВЫЕ 500
| &ТекстВыборкиИзмерений
| ИЗ
| ВТДляОбработкиИзмеренияПолная КАК ТаблицаИзменений)
|; |;
| |
|//////////////////////////////////////////////////////////////////////////////// |////////////////////////////////////////////////////////////////////////////////
@@ -1505,7 +1499,6 @@
КонецЕсли; КонецЕсли;
ТекстВыборкиИзмерений = ""; ТекстВыборкиИзмерений = "";
ТекстУсловияСоединенияИзмерений = "ИСТИНА"; ТекстУсловияСоединенияИзмерений = "ИСТИНА";
ТекстУсловияОтбораПорции = "";
ПервоеИзмерение = Истина; ПервоеИзмерение = Истина;
РегистрПериодический = РегистрПериодический =
@@ -1519,9 +1512,6 @@
ТекстВыборкиИзмерений = ТекстВыборкиИзмерений + " ТекстВыборкиИзмерений = ТекстВыборкиИзмерений + "
| ТаблицаИзменений." + Измерение.Имя + " КАК " + Измерение.Имя + ","; | ТаблицаИзменений." + Измерение.Имя + " КАК " + Измерение.Имя + ",";
ТекстУсловияОтбораПорции = ТекстУсловияОтбораПорции + "
| ТаблицаИзменений." + Измерение.Имя + ",";
ТекстУсловияСоединенияИзмерений = ТекстУсловияСоединенияИзмерений + " ТекстУсловияСоединенияИзмерений = ТекстУсловияСоединенияИзмерений + "
| И ТаблицаИзменений." + Измерение.Имя + " = ВТЗаблокированоИзмерения." + Измерение.Имя + " | И ТаблицаИзменений." + Измерение.Имя + " = ВТЗаблокированоИзмерения." + Измерение.Имя + "
| ИЛИ ТаблицаИзменений." + Измерение.Имя + " = &ПустоеЗначениеИзмерения"+ Измерение.Имя + " | ИЛИ ТаблицаИзменений." + Измерение.Имя + " = &ПустоеЗначениеИзмерения"+ Измерение.Имя + "
@@ -1534,8 +1524,6 @@
Если РегистрПериодический Тогда Если РегистрПериодический Тогда
ТекстВыборкиИзмерений = ТекстВыборкиИзмерений + " ТекстВыборкиИзмерений = ТекстВыборкиИзмерений + "
| ТаблицаИзменений.Период КАК Период,"; | ТаблицаИзменений.Период КАК Период,";
ТекстУсловияОтбораПорции = ТекстУсловияОтбораПорции + "
| ТаблицаИзменений.Период,";
КонецЕсли; КонецЕсли;
ПервоеИзмерение = Ложь; ПервоеИзмерение = Ложь;
@@ -1543,8 +1531,6 @@
КонецЦикла; КонецЦикла;
ТекстВыборкиИзмерений = Лев(ТекстВыборкиИзмерений, СтрДлина(ТекстВыборкиИзмерений) - 1); ТекстВыборкиИзмерений = Лев(ТекстВыборкиИзмерений, СтрДлина(ТекстВыборкиИзмерений) - 1);
ТекстУсловияОтбораПорции = Лев(ТекстУсловияОтбораПорции, СтрДлина(ТекстУсловияОтбораПорции) - 1);
ТекстУсловияОтбораПорции = "("+ТекстУсловияОтбораПорции+")";
Если ПустаяСтрока(ДополнительныеПараметры.ИмяВременнойТаблицы) Тогда Если ПустаяСтрока(ДополнительныеПараметры.ИмяВременнойТаблицы) Тогда
ИмяВременнойТаблицы = "ВТДляОбработки" + ИмяОбъекта; ИмяВременнойТаблицы = "ВТДляОбработки" + ИмяОбъекта;
@@ -1558,7 +1544,6 @@
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"#ТаблицаОбъектаИзменения", ПолноеИмяОбъекта + ".Изменения"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"#ТаблицаОбъектаИзменения", ПолноеИмяОбъекта + ".Изменения");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ВТЗаблокированоИзмерения","ВТЗаблокировано" + ИмяОбъекта); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ВТЗаблокированоИзмерения","ВТЗаблокировано" + ИмяОбъекта);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ВТДляОбработкиИзмерения",ИмяВременнойТаблицы); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ВТДляОбработкиИзмерения",ИмяВременнойТаблицы);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТекстУсловияОтбораПорции",ТекстУсловияОтбораПорции);
СоздатьВременнуюТаблицуЗаблокированныхДляЧтенияИИзмененияДанных(Очередь, ПолноеИмяОбъекта, МенеджерВременныхТаблиц); СоздатьВременнуюТаблицуЗаблокированныхДляЧтенияИИзмененияДанных(Очередь, ПолноеИмяОбъекта, МенеджерВременныхТаблиц);
ДобавитьПроверкуБлокировкиДополнительныхИсточниковДляНезависимогоРегистра(Очередь, ДобавитьПроверкуБлокировкиДополнительныхИсточниковДляНезависимогоРегистра(Очередь,
@@ -1648,6 +1633,8 @@
ПолноеИмяОбъекта = ОбрабатываемыйТип; ПолноеИмяОбъекта = ОбрабатываемыйТип;
КонецЕсли; КонецЕсли;
ИмяОбъекта = СтрРазделить(ПолноеИмяОбъекта,".",Ложь)[1];
УсловиеОтбораДанных = "ИСТИНА"; УсловиеОтбораДанных = "ИСТИНА";
Если ОбщегоНазначения.ЭтоОбъектСсылочногоТипа(МетаданныеОбъекта) Тогда Если ОбщегоНазначения.ЭтоОбъектСсылочногоТипа(МетаданныеОбъекта) Тогда
@@ -1656,9 +1643,12 @@
| ТаблицаИзменений.Ссылка КАК Ссылка | ТаблицаИзменений.Ссылка КАК Ссылка
|ИЗ |ИЗ
| #ТаблицаИзменений КАК ТаблицаИзменений | #ТаблицаИзменений КАК ТаблицаИзменений
| ЛЕВОЕ СОЕДИНЕНИЕ #ТаблицаОбъекта КАК #ИмяОбъекта
| ПО #ИмяОбъекта.Ссылка = ТаблицаИзменений.Ссылка
|ГДЕ |ГДЕ
| &УсловиеОтбораУзла | &УсловиеОтбораУзла
| И &УсловиеОтбораДанных"; | И &УсловиеОтбораДанных
| И НЕ #ИмяОбъекта.Ссылка ЕСТЬ NULL";
Запрос.УстановитьПараметр("Ссылка", Отбор); Запрос.УстановитьПараметр("Ссылка", Отбор);
@@ -1739,6 +1729,8 @@
КонецЕсли; КонецЕсли;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ТаблицаИзменений", ПолноеИмяОбъекта + ".Изменения"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ТаблицаИзменений", ПолноеИмяОбъекта + ".Изменения");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ТаблицаОбъекта", ПолноеИмяОбъекта);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ИмяОбъекта", ИмяОбъекта);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&УсловиеОтбораДанных", УсловиеОтбораДанных); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&УсловиеОтбораДанных", УсловиеОтбораДанных);
ТекстыЗапроса.Добавить(ТекстЗапроса); ТекстыЗапроса.Добавить(ТекстЗапроса);
@@ -32,7 +32,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы"; Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "2.4.1.84"; Описание.Версия = "2.4.2.164";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно"; Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0"; Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -287,11 +287,6 @@
ОбновитьПовторноИспользуемыеЗначения(); ОбновитьПовторноИспользуемыеЗначения();
Если ОбщегоНазначения.РазделениеВключено()
И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
ПараметрыСеанса.ВыполняетсяОбновлениеИБ = Ложь;
КонецЕсли;
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
ПараметрЗапускаКлиента = ПараметрыСеанса.ПараметрыКлиентаНаСервере.Получить("ПараметрЗапуска"); ПараметрЗапускаКлиента = ПараметрыСеанса.ПараметрыКлиентаНаСервере.Получить("ПараметрЗапуска");
Если СтрНайти(НРег(ПараметрЗапускаКлиента), НРег("ЗапуститьОбновлениеИнформационнойБазы")) > 0 Тогда Если СтрНайти(НРег(ПараметрЗапускаКлиента), НРег("ЗапуститьОбновлениеИнформационнойБазы")) > 0 Тогда
@@ -300,6 +295,9 @@
УстановитьПривилегированныйРежим(Ложь); УстановитьПривилегированныйРежим(Ложь);
УстановитьЗапускОбновленияИнформационнойБазы(Ложь); УстановитьЗапускОбновленияИнформационнойБазы(Ложь);
Если Не ПараметрыОбновления.ПриЗапускеКлиентскогоПриложения Тогда
ПараметрыСеанса.ВыполняетсяОбновлениеИБ = Ложь;
КонецЕсли;
Возврат "Успешно"; Возврат "Успешно";
@@ -4396,6 +4394,7 @@
ПланОбновления = Новый Массив; ПланОбновления = Новый Массив;
ЕстьОбработчикиТолькоГлавногоУзла = Ложь; ЕстьОбработчикиТолькоГлавногоУзла = Ложь;
СведенияОБлокируемыхОбъектах = НовыеСведенияОБлокируемыхОбъектах();
Для Каждого Подсистема Из ОписанияПодсистем.Порядок Цикл Для Каждого Подсистема Из ОписанияПодсистем.Порядок Цикл
ИмяКоллекции = ""; ИмяКоллекции = "";
@@ -4416,7 +4415,6 @@
Итерация = 1; Итерация = 1;
СоздаватьНовуюИтерацию = Истина; СоздаватьНовуюИтерацию = Истина;
ПропуститьПроверку = Ложь; ПропуститьПроверку = Ложь;
СведенияОБлокируемыхОбъектах = НовыеСведенияОБлокируемыхОбъектах();
Для Каждого ДеревоОбработчиковВерсия Из ДеревоОбработчиковБиблиотека.Строки Цикл Для Каждого ДеревоОбработчиковВерсия Из ДеревоОбработчиковБиблиотека.Строки Цикл
ЗаполнитьБлокируемыеОбъекты(ДеревоОбработчиковВерсия, СведенияОбОбновленииИБ, СведенияОБлокируемыхОбъектах); ЗаполнитьБлокируемыеОбъекты(ДеревоОбработчиковВерсия, СведенияОбОбновленииИБ, СведенияОБлокируемыхОбъектах);
@@ -4856,14 +4854,16 @@
КонецЕсли; КонецЕсли;
ЕстьДанныеДляРегистрации = Истина; ЕстьДанныеДляРегистрации = Истина;
// Установка признака начала выполнения обработчика. ОписаниеПроцедуры.Статус = "Выполняется"; // Установка признака начала выполнения обработчика.
ОписаниеПроцедуры.Статус = "Выполняется"; ЗаписатьСведенияОбОбновленииИнформационнойБазы(СведенияОбОбновлении);
Прервать; Прервать;
КонецЦикла; КонецЦикла;
ЗаписатьСведенияОбОбновленииИнформационнойБазы(СведенияОбОбновлении); Если ЕстьДанныеДляРегистрации Тогда
ЗафиксироватьТранзакцию(); ЗафиксироватьТранзакцию();
Иначе
ОтменитьТранзакцию();
КонецЕсли;
Исключение Исключение
ОтменитьТранзакцию(); ОтменитьТранзакцию();
ВызватьИсключение; ВызватьИсключение;
@@ -164,14 +164,30 @@
Если СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().ЭтоБазоваяВерсияКонфигурации Тогда Если СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().ЭтоБазоваяВерсияКонфигурации Тогда
Если Не ПустаяСтрока(КаталогСкрипта) Тогда Если ПустаяСтрока(КаталогСкрипта) Тогда
ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(СобытиеЖурналаРегистрации(),
"Предупреждение",
НСтр("ru = 'Обновление выполнено с очень старой версии программы.
|Данные журнала обновления не были загружены, но сам журнал
|можно найти в папке временных файлов %temp% -
|в папке вида 1Cv8Update.<xxxxxxxx>(цифры).'"),
,
Истина);
РезультатОбновления = Истина; // считаем обновление успешным.
Иначе
ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(СобытиеЖурналаРегистрации(),
"Информация",
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Папка с журналом обновления расположена %1'"), КаталогСкрипта),
,
Истина);
ПрочитатьДанныеВЖурналРегистрации(РезультатОбновления, КаталогСкрипта); ПрочитатьДанныеВЖурналРегистрации(РезультатОбновления, КаталогСкрипта);
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
РезультатОбновления = Неопределено;
КонецПроцедуры КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -339,8 +355,22 @@
СтрокаПутиКИнформационнойБазе = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(СтрЗаменить(СтрокаПутиКИнформационнойБазе, """", "")) + "1Cv8.1CD"; СтрокаПутиКИнформационнойБазе = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(СтрЗаменить(СтрокаПутиКИнформационнойБазе, """", "")) + "1Cv8.1CD";
АдресЭлектроннойПочты = ?(Параметры.РежимОбновления = 2 И Параметры.ВыслатьОтчетНаПочту, Параметры.АдресЭлектроннойПочты, ""); АдресЭлектроннойПочты = ?(Параметры.РежимОбновления = 2 И Параметры.ВыслатьОтчетНаПочту, Параметры.АдресЭлектроннойПочты, "");
КаталогРезервнойКопии = ?(Параметры.СоздаватьРезервнуюКопию = 2, ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(Параметры.ИмяКаталогаРезервнойКопииИБ), "");
СоздаватьРезервнуюКопию = ЭтоФайловаяБаза И Параметры.СоздаватьРезервнуюКопию <> 0; // Вызов КаталогВременныхФайлов вместо ПолучитьИмяВременногоФайла, так как каталог не должен удаляться
// автоматически при завершении клиентского приложения.
// В него сохраняются исполняемые файлы, лог выполнения и резервная копия, при определенной настройке.
КаталогВременныхФайловОбновления = КаталогВременныхФайлов() + "1Cv8Update." + Формат(ОбщегоНазначенияКлиент.ДатаСеанса(), "ДФ=ггММддЧЧммсс") + "\";
Если Параметры.СоздаватьРезервнуюКопию = 1 Тогда
КаталогРезервнойКопии = КаталогВременныхФайловОбновления;
ИначеЕсли Параметры.СоздаватьРезервнуюКопию = 2 Тогда
КаталогРезервнойКопии = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(Параметры.ИмяКаталогаРезервнойКопииИБ);
Иначе
КаталогРезервнойКопии = "";
КонецЕсли;
СоздаватьРезервнуюКопию = ЭтоФайловаяБаза И (Параметры.СоздаватьРезервнуюКопию = 1 Или Параметры.СоздаватьРезервнуюКопию = 2);
ВыполнитьОтложенныеОбработчики = Ложь; ВыполнитьОтложенныеОбработчики = Ложь;
ТекстыМакетов = ОбновлениеКонфигурацииВызовСервера.ТекстыМакетов(ИнтерактивныйРежим, ТекстыМакетов = ОбновлениеКонфигурацииВызовСервера.ТекстыМакетов(ИнтерактивныйРежим,
@@ -370,7 +400,7 @@
ТекстыМакетов.МакетФайлаОбновленияКонфигурации = ОбластьПараметров + ТекстыМакетов.МакетФайлаОбновленияКонфигурации; ТекстыМакетов.МакетФайлаОбновленияКонфигурации = ОбластьПараметров + ТекстыМакетов.МакетФайлаОбновленияКонфигурации;
ТекстыМакетов.Удалить("ОбластьПараметров"); ТекстыМакетов.Удалить("ОбластьПараметров");
Возврат СоздатьФайлыСкрипта(ТекстыМакетов, ИнтерактивныйРежим); Возврат СоздатьФайлыСкрипта(КаталогВременныхФайловОбновления, ТекстыМакетов, ИнтерактивныйРежим);
#КонецЕсли #КонецЕсли
КонецФункции КонецФункции
@@ -417,9 +447,8 @@
Возврат "'" + Текст + "'"; Возврат "'" + Текст + "'";
КонецФункции КонецФункции
Функция СоздатьФайлыСкрипта(ТекстыМакетов, ИнтерактивныйРежим) Функция СоздатьФайлыСкрипта(КаталогВременныхФайловОбновления, ТекстыМакетов, ИнтерактивныйРежим)
КаталогВременныхФайловОбновления = КаталогВременныхФайлов() + "1Cv8Update." + Формат(ОбщегоНазначенияКлиент.ДатаСеанса(), "ДФ=ггММддЧЧммсс") + "\";
СоздатьКаталог(КаталогВременныхФайловОбновления); СоздатьКаталог(КаталогВременныхФайловОбновления);
ФайлСкрипта = Новый ТекстовыйДокумент; ФайлСкрипта = Новый ТекстовыйДокумент;
@@ -783,6 +812,9 @@
Процедура ПрочитатьДанныеВЖурналРегистрации(РезультатОбновления, КаталогСкрипта) Процедура ПрочитатьДанныеВЖурналРегистрации(РезультатОбновления, КаталогСкрипта)
РезультатОбновления = Неопределено;
ПриОбновленииПроизошлаОшибка = Ложь;
МассивФайлов = НайтиФайлы(КаталогСкрипта, "log*.txt"); МассивФайлов = НайтиФайлы(КаталогСкрипта, "log*.txt");
Если МассивФайлов.Количество() = 0 Тогда Если МассивФайлов.Количество() = 0 Тогда
@@ -810,6 +842,7 @@
ДатаСобытия = Дата(МассивДаты[2], МассивДаты[1], МассивДаты[0], МассивВремени[0], МассивВремени[1], МассивВремени[2]); ДатаСобытия = Дата(МассивДаты[2], МассивДаты[1], МассивДаты[0], МассивВремени[0], МассивВремени[1], МассивВремени[2]);
Если МассивСтроки[2] = "{ERR}" Тогда Если МассивСтроки[2] = "{ERR}" Тогда
ПредставлениеУровня = "Ошибка"; ПредставлениеУровня = "Ошибка";
ПриОбновленииПроизошлаОшибка = Истина;
КонецЕсли; КонецЕсли;
Комментарий = СокрЛП(Сред(ТекущаяСтрока, СтрНайти(ТекущаяСтрока, "}") + 2)); Комментарий = СокрЛП(Сред(ТекущаяСтрока, СтрНайти(ТекущаяСтрока, "}") + 2));
@@ -831,6 +864,14 @@
КонецЦикла; КонецЦикла;
// Если обновление выполнялось с версии БСП ниже 2.3.1.6, то записей лога
// - "Обновление выполнено"
// - "Обновление не выполнено"
// может не быть, потому будем опираться на то - происходили ли ошибки в ходе обновления.
Если РезультатОбновления = Неопределено Тогда
РезультатОбновления = Не ПриОбновленииПроизошлаОшибка;
КонецЕсли;
ЗаписатьСобытияВЖурналРегистрации(); ЗаписатьСобытияВЖурналРегистрации();
КонецПроцедуры КонецПроцедуры
@@ -184,12 +184,10 @@
Запрос.УстановитьПараметр("МассивСсылок", МассивСсылок); Запрос.УстановитьПараметр("МассивСсылок", МассивСсылок);
Выборка = Запрос.Выполнить().Выбрать(); Выборка = Запрос.Выполнить().Выбрать();
Для Каждого Ссылка Из МассивСсылок Цикл
ЗначенияРеквизитов.Вставить(Ссылка, Новый Структура(ИменаРеквизитов));
КонецЦикла;
Пока Выборка.Следующий() Цикл Пока Выборка.Следующий() Цикл
ЗаполнитьЗначенияСвойств(ЗначенияРеквизитов[Выборка.Ссылка], Выборка); Результат = Новый Структура(ИменаРеквизитов);
ЗаполнитьЗначенияСвойств(Результат, Выборка);
ЗначенияРеквизитов[Выборка.Ссылка] = Результат;
КонецЦикла; КонецЦикла;
Возврат ЗначенияРеквизитов; Возврат ЗначенияРеквизитов;
@@ -621,6 +619,7 @@
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
МестаИспользования = НайтиПоСсылкам(НаборСсылок); МестаИспользования = НайтиПоСсылкам(НаборСсылок);
УстановитьПривилегированныйРежим(Ложь);
МестаИспользования.Колонки.Добавить("ПредставлениеДанных", Новый ОписаниеТипов("Строка")); МестаИспользования.Колонки.Добавить("ПредставлениеДанных", Новый ОписаниеТипов("Строка"));
МестаИспользования.Колонки.Добавить("ТипСсылки"); МестаИспользования.Колонки.Добавить("ТипСсылки");
@@ -701,7 +701,8 @@
// * Кэшировать - Булево - (по умолчанию Истина) использовать механизм кэширования компонент на клиенте. // * Кэшировать - Булево - (по умолчанию Истина) использовать механизм кэширования компонент на клиенте.
// * ПредложитьУстановить - Булево - (по умолчанию Истина) предлагать устанавливать и обновлять компоненту. // * ПредложитьУстановить - Булево - (по умолчанию Истина) предлагать устанавливать и обновлять компоненту.
// * ТекстПояснения - Строка - для чего нужна компонента и что не будет работать, если ее не устанавливать // * ТекстПояснения - Строка - для чего нужна компонента и что не будет работать, если ее не устанавливать
// (только для веб клиента). // используется только для компонент, у которых есть несколько идентификаторов создания объектов,
// при задании параметр Идентификатор будет игнорироваться.
// //
// Пример: // Пример:
// //
@@ -715,6 +716,7 @@
Параметры.Вставить("Кэшировать" , Истина); Параметры.Вставить("Кэшировать" , Истина);
Параметры.Вставить("ПредложитьУстановить", Истина); Параметры.Вставить("ПредложитьУстановить", Истина);
Параметры.Вставить("ТекстПояснения" , ""); Параметры.Вставить("ТекстПояснения" , "");
Параметры.Вставить("ИдентификаторыСозданияОбъектов", Новый Массив);
Возврат Параметры; Возврат Параметры;
@@ -729,6 +731,9 @@
// * Результат - Структура - результат подключения компоненты: // * Результат - Структура - результат подключения компоненты:
// ** Подключено - Булево - признак подключения. // ** Подключено - Булево - признак подключения.
// ** ПодключаемыйМодуль - AddIn - экземпляр объекта внешней компоненты. // ** ПодключаемыйМодуль - AddIn - экземпляр объекта внешней компоненты.
// - ФиксированноеСоответствие - экземпляры объектов внешней компоненты,
// указанные в ПараметрыПодключения.ИдентификаторыСозданияОбъектов,
// Ключ - Идентификатор, Значение - экземпляр объекта.
// ** ОписаниеОшибки - Строка - краткое описание ошибки. При отмене пользователем пустая строка. // ** ОписаниеОшибки - Строка - краткое описание ошибки. При отмене пользователем пустая строка.
// * ДополнительныеПараметры - Структура - значение, которое было указано при создании объекта ОписаниеОповещения. // * ДополнительныеПараметры - Структура - значение, которое было указано при создании объекта ОписаниеОповещения.
// Идентификатор - Строка - идентификатор объекта внешней компоненты. // Идентификатор - Строка - идентификатор объекта внешней компоненты.
@@ -784,6 +789,7 @@
Контекст.Вставить("Кэшировать" , Параметры.Кэшировать); Контекст.Вставить("Кэшировать" , Параметры.Кэшировать);
Контекст.Вставить("ПредложитьУстановить", Параметры.ПредложитьУстановить); Контекст.Вставить("ПредложитьУстановить", Параметры.ПредложитьУстановить);
Контекст.Вставить("ТекстПояснения" , Параметры.ТекстПояснения); Контекст.Вставить("ТекстПояснения" , Параметры.ТекстПояснения);
Контекст.Вставить("ИдентификаторыСозданияОбъектов", Параметры.ИдентификаторыСозданияОбъектов);
ОбщегоНазначенияСлужебныйКлиент.ПодключитьКомпоненту(Контекст); ОбщегоНазначенияСлужебныйКлиент.ПодключитьКомпоненту(Контекст);
@@ -2908,7 +2908,7 @@
// В случае если распределить не удалось (сумма = 0, кол-во коэффициентов = 0, // В случае если распределить не удалось (сумма = 0, кол-во коэффициентов = 0,
// или суммарный вес коэффициентов = 0), тогда возвращается значение Неопределено. // или суммарный вес коэффициентов = 0), тогда возвращается значение Неопределено.
// //
Функция РаспределитьСуммуПропорциональноКоэффициентам(Знач РаспределяемаяСумма, Коэффициенты, Знач Точность = 2) Экспорт Функция РаспределитьСуммуПропорциональноКоэффициентам(Знач РаспределяемаяСумма, Знач Коэффициенты, Знач Точность = 2) Экспорт
Если Коэффициенты.Количество() = 0 Или Не ЗначениеЗаполнено(РаспределяемаяСумма) Тогда Если Коэффициенты.Количество() = 0 Или Не ЗначениеЗаполнено(РаспределяемаяСумма) Тогда
Возврат Неопределено; Возврат Неопределено;
@@ -2942,9 +2942,32 @@
РаспределеннаяСумма = РаспределеннаяСумма + Результат[Индекс]; РаспределеннаяСумма = РаспределеннаяСумма + Результат[Индекс];
КонецЦикла; КонецЦикла;
Дельта = РаспределяемаяСумма - РаспределеннаяСумма;
Если Дельта > 0 Тогда
// Погрешности округления отнесем на коэффициент с максимальным весом. // Погрешности округления отнесем на коэффициент с максимальным весом.
Если Не РаспределеннаяСумма = РаспределяемаяСумма Тогда Если Не РаспределеннаяСумма = РаспределяемаяСумма Тогда
Результат[ИндексМаксимальногоКоэффициента] = Результат[ИндексМаксимальногоКоэффициента] + РаспределяемаяСумма - РаспределеннаяСумма; Результат[ИндексМаксимальногоКоэффициента] = Результат[ИндексМаксимальногоКоэффициента] + Дельта;
КонецЕсли;
ИначеЕсли Дельта < 0 Тогда
// Если распределили больше чем положено, размазываем погрешность по ближайшим максимальным весам.
ЗначениеПогрешности = 1 / Pow(10, Точность);
КоличествоЭлементовПогрешности = -Дельта / ЗначениеПогрешности;
КоэффициентыРешето = Новый Массив(Новый ФиксированныйМассив(Коэффициенты));
Для Сч = 1 По КоличествоЭлементовПогрешности Цикл
МаксимальныйКоэффициент = МаксимальноеЗначениеВМассиве(КоэффициентыРешето);
Индекс = КоэффициентыРешето.Найти(МаксимальныйКоэффициент);
Результат[Индекс] = Результат[Индекс] - ЗначениеПогрешности;
КоэффициентыРешето[Индекс] = 0;
КонецЦикла;
Иначе
// Если Дельта = 0, то все идеально.
КонецЕсли; КонецЕсли;
Возврат Результат; Возврат Результат;
@@ -3138,4 +3161,21 @@
КонецЕсли; КонецЕсли;
КонецФункции КонецФункции
Функция МаксимальноеЗначениеВМассиве(Массив)
МаксимальноеЗначение = 0;
Для Индекс = 0 По Массив.Количество() - 1 Цикл
Значение = Массив[Индекс];
АбсолютноеЗначение = ?(Значение > 0, Значение, -Значение);
Если МаксимальноеЗначение < АбсолютноеЗначение Тогда
МаксимальноеЗначение = АбсолютноеЗначение;
КонецЕсли;
КонецЦикла;
Возврат МаксимальноеЗначение;
КонецФункции
#КонецОбласти #КонецОбласти
@@ -12,9 +12,9 @@
// будет запрашиваться, если явно не разрешить в // будет запрашиваться, если явно не разрешить в
// персональных настройках программы. // персональных настройках программы.
// * МинимальнаяВерсияПлатформы - Строка - минимальная версии платформы, требуемая для запуска программы. // * МинимальнаяВерсияПлатформы - Строка - минимальная версии платформы, требуемая для запуска программы.
// Запуск программы на версии платформы ниже указанной будет невозможен.
// Например, "8.3.6.1650". // Например, "8.3.6.1650".
// * РекомендуемаяВерсияПлатформы - Строка - рекомендуемая версия платформы для запуска программы. // * РекомендуемаяВерсияПлатформы - Строка - рекомендуемая версия платформы для запуска программы.
// Запуск программы на версии платформы ниже указанной будет невозможен.
// Например, "8.3.8.2137". // Например, "8.3.8.2137".
// * ОтключитьИдентификаторыОбъектовМетаданных - Булево - отключает заполнение справочников ИдентификаторыОбъектовМетаданных // * ОтключитьИдентификаторыОбъектовМетаданных - Булево - отключает заполнение справочников ИдентификаторыОбъектовМетаданных
// и ИдентификаторыОбъектовРасширений, процедуру выгрузки и загрузки в узлах РИБ. // и ИдентификаторыОбъектовРасширений, процедуру выгрузки и загрузки в узлах РИБ.
@@ -70,8 +70,6 @@
|в ОбщегоНазначенияСлужебныйКлиент.УстановитьКомпоненту'"), Контекст.Местоположение); |в ОбщегоНазначенияСлужебныйКлиент.УстановитьКомпоненту'"), Контекст.Местоположение);
КонецЕсли; КонецЕсли;
#Если ВебКлиент Тогда
Оповещение = Новый ОписаниеОповещения( Оповещение = Новый ОписаниеОповещения(
"УстановитьКомпонентуПослеОтветаНаВопросОбУстановке", ЭтотОбъект, Контекст); "УстановитьКомпонентуПослеОтветаНаВопросОбУстановке", ЭтотОбъект, Контекст);
@@ -81,12 +79,6 @@
ОткрытьФорму("ОбщаяФорма.ВопросОбУстановкеВнешнейКомпоненты", ОткрытьФорму("ОбщаяФорма.ВопросОбУстановкеВнешнейКомпоненты",
ПараметрыФормы,,,,, Оповещение); ПараметрыФормы,,,,, Оповещение);
#Иначе
УстановитьКомпонентуНачатьУстановку(Контекст);
#КонецЕсли
КонецПроцедуры КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -337,12 +329,33 @@
Попытка Попытка
Если Контекст.ИдентификаторыСозданияОбъектов.Количество() = 0 Тогда
ПодключаемыйМодуль = Новый("AddIn." + Контекст.СимволическоеИмя + "." + Контекст.Идентификатор); ПодключаемыйМодуль = Новый("AddIn." + Контекст.СимволическоеИмя + "." + Контекст.Идентификатор);
Если ПодключаемыйМодуль = Неопределено Тогда Если ПодключаемыйМодуль = Неопределено Тогда
ВызватьИсключение НСтр("ru = 'Ошибка при создании экземпляра внешней компоненты'"); ВызватьИсключение НСтр("ru = 'Ошибка при создании экземпляра внешней компоненты'");
КонецЕсли; КонецЕсли;
Иначе
ПодключаемыеМодули = Новый Соответствие;
Для Каждого Идентификатор Из Контекст.ИдентификаторыСозданияОбъектов Цикл
ПодключаемыйМодуль = Новый("AddIn." + Контекст.СимволическоеИмя + "." + Идентификатор);
Если ПодключаемыйМодуль = Неопределено Тогда
ВызватьИсключение НСтр("ru = 'Ошибка при создании экземпляра внешней компоненты'");
КонецЕсли;
ПодключаемыеМодули.Вставить(Идентификатор, ПодключаемыйМодуль);
КонецЦикла;
ПодключаемыйМодуль = Новый ФиксированноеСоответствие(ПодключаемыеМодули);
КонецЕсли;
Исключение Исключение
Результат.Вставить("Подключено" , Ложь); Результат.Вставить("Подключено" , Ложь);
Результат.Вставить("ОписаниеОшибки", КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); Результат.Вставить("ОписаниеОшибки", КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
@@ -82,7 +82,9 @@
ВремяОкончания = ТекущаяУниверсальнаяДатаВМиллисекундах(); ВремяОкончания = ТекущаяУниверсальнаяДатаВМиллисекундах();
ЗавершитьЗамерВремениСлужебный(УИДЗамера, ВремяОкончания); ЗавершитьЗамерВремениСлужебный(УИДЗамера, ВремяОкончания);
Замеры = ПараметрыПриложения["СтандартныеПодсистемы.ОценкаПроизводительностиЗамерВремени"]["Замеры"]; ОценкаПроизводительностиЗамерВремени = ПараметрыПриложения["СтандартныеПодсистемы.ОценкаПроизводительностиЗамерВремени"];
Если ОценкаПроизводительностиЗамерВремени <> Неопределено Тогда
Замеры = ОценкаПроизводительностиЗамерВремени["Замеры"];
Замер = Замеры[УИДЗамера]; Замер = Замеры[УИДЗамера];
Если Замер <> Неопределено Тогда Если Замер <> Неопределено Тогда
ЗамерыЗавершенные = ПараметрыПриложения["СтандартныеПодсистемы.ОценкаПроизводительностиЗамерВремени"]["ЗамерыЗавершенные"]; ЗамерыЗавершенные = ПараметрыПриложения["СтандартныеПодсистемы.ОценкаПроизводительностиЗамерВремени"]["ЗамерыЗавершенные"];
@@ -91,6 +93,8 @@
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
КонецЕсли;
КонецПроцедуры КонецПроцедуры
// Устанавливает параметры замера. // Устанавливает параметры замера.
@@ -139,7 +139,8 @@
Процедура ПервоначальноеЗаполнение() Экспорт Процедура ПервоначальноеЗаполнение() Экспорт
Если ПодсистемаСуществует("СтандартныеПодсистемы.БазоваяФункциональность") Тогда РаботаВМоделиСервисаСуществует = ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса");
Если РаботаВМоделиСервисаСуществует Тогда
МодульРаботаВМоделиСервиса = ОбщийМодуль("РаботаВМоделиСервиса"); МодульРаботаВМоделиСервиса = ОбщийМодуль("РаботаВМоделиСервиса");
Если МодульРаботаВМоделиСервиса.РазделениеВключено() Тогда Если МодульРаботаВМоделиСервиса.РазделениеВключено() Тогда
Возврат; Возврат;
@@ -275,7 +275,21 @@
КонецЦикла; КонецЦикла;
Менеджер = Узел[Имя]; Менеджер = Узел[Имя];
Попытка
Менеджер.ПриОпределенииНастроек(Настройки); Менеджер.ПриОпределенииНастроек(Настройки);
Исключение
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось прочитать настройки объекта %1 из модуля менеджера:'"), ПолноеИмя);
ТекстОшибки = ТекстОшибки + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Подключаемые команды'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,
Метаданные.НайтиПоПолномуИмени(ПолноеИмя),
ПолноеИмя,
ТекстОшибки);
Возврат Неопределено;
КонецПопытки;
Настройки.Вставить("Вид", ВидВРег); Настройки.Вставить("Вид", ВидВРег);
Настройки.Вставить("ПолноеИмя", ПолноеИмя); Настройки.Вставить("ПолноеИмя", ПолноеИмя);
@@ -340,7 +354,7 @@
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
Источник.ТипСсылкиДанных = Новый ОписаниеТипов(МассивТипов); Источник.ТипСсылкиДанных = Новый ОписаниеТипов(МассивТипов);
Иначе ИначеЕсли Не Метаданные.Обработки.Содержит(ОбъектМетаданных) И Не Метаданные.Отчеты.Содержит(ОбъектМетаданных) Тогда
Источник.ТипСсылкиДанных = Тип(Источник.Вид + "Ссылка." + ОбъектМетаданных.Имя); Источник.ТипСсылкиДанных = Тип(Источник.Вид + "Ссылка." + ОбъектМетаданных.Имя);
КонецЕсли; КонецЕсли;
@@ -726,7 +740,11 @@
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
ИмяПодменюПоУмолчанию = "";
Если Не ПустаяСтрока(ВидКоманд.ИмяПодменю) Тогда
ИмяПодменюПоУмолчанию = ПрефиксГрупп + ВидКоманд.ИмяПодменю; ИмяПодменюПоУмолчанию = ПрефиксГрупп + ВидКоманд.ИмяПодменю;
КонецЕсли;
СведенияОПодменюПоУмолчанию = БыстрыйПоискСведенийОПодменю.Получить(НРег(ИмяПодменюПоУмолчанию)); СведенияОПодменюПоУмолчанию = БыстрыйПоискСведенийОПодменю.Получить(НРег(ИмяПодменюПоУмолчанию));
Если СведенияОПодменюПоУмолчанию = Неопределено Тогда Если СведенияОПодменюПоУмолчанию = Неопределено Тогда
СведенияОПодменюПоУмолчанию = ЗарегистрироватьПодменю(Элементы, СведенияОВсехПодменю, ИмяПодменюПоУмолчанию, ВидКоманд, КоманднаяПанель); СведенияОПодменюПоУмолчанию = ЗарегистрироватьПодменю(Элементы, СведенияОВсехПодменю, ИмяПодменюПоУмолчанию, ВидКоманд, КоманднаяПанель);
@@ -815,11 +833,11 @@
Если Не ЭтоКоманднаяПанель Тогда Если Не ЭтоКоманднаяПанель Тогда
Если СведенияОПодменю.ВыведеноКоманд = 1 Тогда Если СведенияОПодменю.ВыведеноКоманд = 1 Тогда
// Превращение подменю в кнопку когда выведена 1 команда с коротким заголовком. // Превращение подменю в кнопку, когда выведена 1 команда с коротким заголовком.
Если Не ЗначениеЗаполнено(КомандаФормы.Картинка) И Подменю.Вид = ВидГруппыФормы.Подменю Тогда Если Не ЗначениеЗаполнено(КомандаФормы.Картинка) И Подменю.Вид = ВидГруппыФормы.Подменю Тогда
КомандаФормы.Картинка = Подменю.Картинка; КомандаФормы.Картинка = Подменю.Картинка;
КонецЕсли; КонецЕсли;
Если СтрДлина(КомандаФормы.Заголовок) <= 35 Тогда Если СтрДлина(КомандаФормы.Заголовок) <= 35 И Подменю.Отображение <> ОтображениеКнопки.Картинка Тогда
КомандаФормы.Отображение = ОтображениеКнопки.КартинкаИТекст; КомандаФормы.Отображение = ОтображениеКнопки.КартинкаИТекст;
Иначе Иначе
КомандаФормы.Отображение = ОтображениеКнопки.Картинка; КомандаФормы.Отображение = ОтображениеКнопки.Картинка;
@@ -123,66 +123,48 @@
КонецФункции КонецФункции
Функция УсловияВыполняются(Условия, ЗначенияРеквизитов) Функция УсловияВыполняются(Условия, ЗначенияРеквизитов)
Перем Значение;
Для Каждого Условие Из Условия Цикл Для Каждого Условие Из Условия Цикл
ИмяРеквизита = Условие.Реквизит; ИмяРеквизита = Условие.Реквизит;
Если Не ЗначенияРеквизитов.Свойство(ИмяРеквизита, Значение) Тогда Если Не ЗначенияРеквизитов.Свойство(ИмяРеквизита) Тогда
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
ПроверяемоеЗначение = Условие.Значение; УсловиеВыполняется = Истина;
Если Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно Тогда Если Условие.ВидСравнения = ВидСравнения.Равно
Если Не (Значение = ПроверяемоеЗначение) Тогда Или Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно Тогда
Возврат Ложь; УсловиеВыполняется = ЗначенияРеквизитов[ИмяРеквизита] = Условие.Значение;
КонецЕсли; ИначеЕсли Условие.ВидСравнения = ВидСравнения.Больше
ИначеЕсли Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно Тогда Или Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше Тогда
Если Не (Значение <> ПроверяемоеЗначение) Тогда УсловиеВыполняется = ЗначенияРеквизитов[ИмяРеквизита] > Условие.Значение;
Возврат Ложь; ИначеЕсли Условие.ВидСравнения = ВидСравнения.БольшеИлиРавно
КонецЕсли; Или Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно Тогда
ИначеЕсли Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке Тогда УсловиеВыполняется = ЗначенияРеквизитов[ИмяРеквизита] >= Условие.Значение;
Если Не (ПроверяемоеЗначение.Найти(Значение) <> Неопределено) Тогда ИначеЕсли Условие.ВидСравнения = ВидСравнения.Меньше
Возврат Ложь; Или Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше Тогда
КонецЕсли; УсловиеВыполняется = ЗначенияРеквизитов[ИмяРеквизита] < Условие.Значение;
ИначеЕсли Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке Тогда ИначеЕсли Условие.ВидСравнения = ВидСравнения.МеньшеИлиРавно
Если Не (ПроверяемоеЗначение.Найти(Значение) = Неопределено) Тогда Или Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно Тогда
Возврат Ложь; УсловиеВыполняется = ЗначенияРеквизитов[ИмяРеквизита] <= Условие.Значение;
КонецЕсли; ИначеЕсли Условие.ВидСравнения = ВидСравнения.НеРавно
Или Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно Тогда
УсловиеВыполняется = ЗначенияРеквизитов[ИмяРеквизита] <> Условие.Значение;
ИначеЕсли Условие.ВидСравнения = ВидСравнения.ВСписке
Или Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке Тогда
УсловиеВыполняется = Условие.Значение.Найти(ЗначенияРеквизитов[ИмяРеквизита]) <> Неопределено;
ИначеЕсли Условие.ВидСравнения = ВидСравнения.НеВСписке
Или Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке Тогда
УсловиеВыполняется = Условие.Значение.Найти(ЗначенияРеквизитов[ИмяРеквизита]) = Неопределено;
ИначеЕсли Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено Тогда ИначеЕсли Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено Тогда
Если Не (Заполнено(Значение)) Тогда УсловиеВыполняется = ЗначениеЗаполнено(ЗначенияРеквизитов[ИмяРеквизита]);
Возврат Ложь;
КонецЕсли;
ИначеЕсли Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено Тогда ИначеЕсли Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено Тогда
Если Не (Не Заполнено(Значение)) Тогда УсловиеВыполняется = Не ЗначениеЗаполнено(ЗначенияРеквизитов[ИмяРеквизита]);
Возврат Ложь;
КонецЕсли; КонецЕсли;
ИначеЕсли Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше Тогда Если Не УсловиеВыполняется Тогда
Если Не (Значение > ПроверяемоеЗначение) Тогда
Возврат Ложь; Возврат Ложь;
КонецЕсли; КонецЕсли;
ИначеЕсли Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше Тогда
Если Не (Значение < ПроверяемоеЗначение) Тогда
Возврат Ложь;
КонецЕсли;
ИначеЕсли Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно Тогда
Если Не (Значение >= ПроверяемоеЗначение) Тогда
Возврат Ложь;
КонецЕсли;
ИначеЕсли Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно Тогда
Если Не (Значение <= ПроверяемоеЗначение) Тогда
Возврат Ложь;
КонецЕсли;
КонецЕсли;
КонецЦикла; КонецЦикла;
Возврат Истина; Возврат Истина;
КонецФункции КонецФункции
Функция Заполнено(Значение, ВСлучаеНевозможностиПроверки = Истина)
Попытка
Возврат ЗначениеЗаполнено(Значение);
Исключение
Возврат ВСлучаеНевозможностиПроверки;
КонецПопытки;
КонецФункции
Процедура СкрытьПоказатьВсеПодчиненныеКнопки(ГруппаФормы, Видимость) Процедура СкрытьПоказатьВсеПодчиненныеКнопки(ГруппаФормы, Видимость)
Для Каждого ПодчиненныйЭлемент Из ГруппаФормы.ПодчиненныеЭлементы Цикл Для Каждого ПодчиненныйЭлемент Из ГруппаФормы.ПодчиненныеЭлементы Цикл
Если ТипЗнч(ПодчиненныйЭлемент) = Тип("ГруппаФормы") Тогда Если ТипЗнч(ПодчиненныйЭлемент) = Тип("ГруппаФормы") Тогда
@@ -1551,10 +1551,10 @@
Свойства = СвойстваПользователяИБ(Идентификатор); Свойства = СвойстваПользователяИБ(Идентификатор);
Результат = Свойства <> Неопределено; Результат = Свойства <> Неопределено;
Если Результат Тогда Если Результат Тогда
Свойства = НовоеОписаниеПользователяИБ();
Свойства.Роли = Новый Массив;
ПользовательИБ = Свойства.ПользовательИБ; ПользовательИБ = Свойства.ПользовательИБ;
Иначе Иначе
Свойства = НовоеОписаниеПользователяИБ();
Свойства.Роли = Новый Массив;
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Пользователь информационной базы ""%1"" не существует.'"), НСтр("ru = 'Пользователь информационной базы ""%1"" не существует.'"),
Идентификатор); Идентификатор);
@@ -1954,6 +1954,48 @@
КонецФункции КонецФункции
// Для форм элементов справочников Пользователи и ВнешниеПользователи.
Функция ПодсказкаПотребоватьСменуПароляПриВходе(ДляВнешнихПользователей) Экспорт
ЭтоПолноправныйПользователь = Пользователи.ЭтоПолноправныйПользователь(, Ложь);
Подсказка = Новый Массив;
Подсказка.Добавить(НСтр("ru = 'Требования к длине и сложности пароля задаются отдельно.'"));
Подсказка.Добавить(Символы.ПС);
Если Не ЭтоПолноправныйПользователь Тогда
Подсказка.Добавить(НСтр("ru = 'За подробностями обратитесь к администратору.'"));
Возврат Новый ФорматированнаяСтрока(Подсказка);
КонецЕсли;
Подсказка.Добавить(НСтр("ru = 'См.'"));
Подсказка.Добавить(" ");
Если Не ПользователиСлужебныйПовтИсп.Настройки().ОбщиеНастройкиВхода Тогда
Подсказка.Добавить(НСтр("ru = 'Параметры информационной базы в конфигураторе в меню Администрирование.'"));
Возврат Новый ФорматированнаяСтрока(Подсказка);
КонецЕсли;
Если ДляВнешнихПользователей Тогда
Ссылка = НСтр("ru = 'Настройки входа внешних пользователей'");
Иначе
Ссылка = НСтр("ru = 'Настройки входа пользователей'");
КонецЕсли;
Подсказка.Добавить(Новый ФорматированнаяСтрока(Ссылка,,,, "НастройкиВходаПользователей"));
Если Метаданные.Подсистемы.Найти("Администрирование") <> Неопределено Тогда
Подсказка.Добавить(" ");
Подсказка.Добавить(НСтр("ru = 'в разделе Администрирование,
|пункт Настройки прав и пользователей.'"));
Иначе
Подсказка.Добавить(".");
КонецЕсли;
Возврат Новый ФорматированнаяСтрока(Подсказка);
КонецФункции
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Процедуры и функции работы с пользователями. // Процедуры и функции работы с пользователями.
@@ -43,8 +43,8 @@
ПрефиксИнформационнойБазы = Лев(НомерОбъекта, 2); ПрефиксИнформационнойБазы = Лев(НомерОбъекта, 2);
КонецЕсли; КонецЕсли;
ПрефиксОрганизации = СтрЗаменить(ПрефиксОрганизации, "0", ""); ПрефиксОрганизации = СтроковыеФункцииКлиентСервер.УдалитьПовторяющиесяСимволы(ПрефиксОрганизации, "0");
ПрефиксИнформационнойБазы = СтрЗаменить(ПрефиксИнформационнойБазы, "0", ""); ПрефиксИнформационнойБазы = СтроковыеФункцииКлиентСервер.УдалитьПовторяющиесяСимволы(ПрефиксИнформационнойБазы, "0");
// Добавляем префикс организации. // Добавляем префикс организации.
Если Не УдалитьПрефиксОрганизации Тогда Если Не УдалитьПрефиксОрганизации Тогда
File diff suppressed because it is too large. Load diff
@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="a05fdefd-c0c6-4069-bb05-3fcd22819289">
<name>ПроверкаКонтрагентов</name>
<synonym>
<key>ru</key>
<value>Проверка контрагентов (сервер)</value>
</synonym>
<server>true</server>
<externalConnection>true</externalConnection>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>
@@ -1,275 +0,0 @@
#Область ПрограммныйИнтерфейс
// Запуск фонового задания по проверке контрагента в карточке контрагента.
// Запускается при редактировании реквизитов внутри карточки контрагента.
//
// Параметры:
// ПараметрыЗапуска - Структура - Параметры запуска фонового задания. Ключи:
// "Контрагент"
// "ИНН"
// "КПП"
// "СохранятьРезультатСразуПослеПроверки"
// "АдресХранилища"
Процедура ПроверитьКонтрагентаПриИзменении(ПараметрыЗапуска) Экспорт
Попытка
Параметры = Новый Массив;
Параметры.Добавить(ПараметрыЗапуска);
ФоновыеЗадания.Выполнить("ПроверкаКонтрагентов.ПроверитьКонтрагентаФоновоеЗадание",
Параметры,, НСтр("ru = 'Проверка контрагента'"));
Исключение
// Исключение возникнет в случае запуска фонового задания с таким же ключем.
// Специальной обработки не требуется.
КодОсновногоЯзыка = ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка(); // Для записи события в журнал регистрации.
ИнформацияОбОшибке = ИнформацияОбОшибке();
ЗаписьЖурналаРегистрации(НСтр("ru = 'Проверка контрагентов.Запуск проверки при изменении реквизитов контрагентов'", КодОсновногоЯзыка),
УровеньЖурналаРегистрации.Ошибка,,,ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
КонецПопытки;
КонецПроцедуры
// Определяет, завершилось ли фоновое задание.
//
// Параметры:
// ИдентификаторЗадания - УникальныйИдентификатор - Идентификатор фонового задания по проверке контрагента.
// Возвращаемое значение:
// Булево - Истина, если фоновое задание завершилось.
//
Функция ЗаданиеВыполнено(Знач ИдентификаторЗадания) Экспорт
Возврат ДлительныеОперации.ЗаданиеВыполнено(ИдентификаторЗадания);
КонецФункции
#Область ПроцедурыПовтИсп
// Определение цветов выделения результатов проверки контрагентов.
//
// Возвращаемое значение:
// Структура - Имена ключей - это названия цветов, которые необходимо определить.
// Список ключей см ПроверкаКонтрагентовВызовСервераПовтИсп.ЦветаРезультатовПроверки().
Функция ЦветаРезультатовПроверки() Экспорт
Возврат ПроверкаКонтрагентовВызовСервераПовтИсп.ЦветаРезультатовПроверки();
КонецФункции
// Проверяет, что проверка включена и есть необходимые права.
// Возвращаемое значение:
// Булево - Истина, если есть нужные права на проверку и проверка включена.
//
Функция ИспользованиеПроверкиВозможно() Экспорт
Возврат ПроверкаКонтрагентовВызовСервераПовтИсп.ИспользованиеПроверкиВозможно();
КонецФункции
#КонецОбласти
#Область ОпределениеСостоянияКонтрагента
// На основе результата предыдущей проверки (записи в регистр) определяет,
// существует ли контрагент.
//
// Параметры:
// КонтрагентСсылка - ОпределяемыйТип.Контрагент - Проверяемый контрагент.
// ИНН - Строка - ИНН контрагента.
// КПП - Строка - КПП контрагента.
// Возвращаемое значение:
// Булево - Истина, если контрагент существует.
//
Функция КонтрагентСуществует(КонтрагентСсылка, ИНН, КПП) Экспорт
КонтрагентСуществует = Истина;
// Получаем состояние контрагента из регистра сведений.
Состояние = ТекущееСохраненноеСостояниеКонтрагента(КонтрагентСсылка, ИНН, КПП);
// По состоянию определяем, существует ли контрагент или нет.
КонтрагентСуществует = ПроверкаКонтрагентовКлиентСерверПовтИсп.ЭтоСостояниеДействующегоКонтрагента(Состояние);
Возврат КонтрагентСуществует;
КонецФункции
// Получает состояние контрагента из регистра сведений.
//
// Параметры:
// КонтрагентСсылка - ОпределяемыйТип.Контрагент - Проверяемый контрагент.
// ИНН - Строка - ИНН контрагента.
// КПП - Строка - КПП контрагента.
// Возвращаемое значение:
// ПеречислениеСсылка.СостоянияСуществованияКонтрагента - Состояние контрагента.
//
Функция ТекущееСохраненноеСостояниеКонтрагента(КонтрагентСсылка, ИНН, КПП) Экспорт
Если ЗначениеЗаполнено(КонтрагентСсылка) Тогда
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| СостоянияКонтрагентов.Состояние
|ИЗ
| РегистрСведений.СостоянияКонтрагентов КАК СостоянияКонтрагентов
|ГДЕ
| СостоянияКонтрагентов.Контрагент = &Контрагент
| И СостоянияКонтрагентов.ИНН = &ИНН
| И СостоянияКонтрагентов.КПП = &КПП";
Запрос.УстановитьПараметр("ИНН", ИНН);
Запрос.УстановитьПараметр("КПП", КПП);
Запрос.УстановитьПараметр("Контрагент", КонтрагентСсылка);
РезультатЗапроса = Запрос.Выполнить().Выбрать();
// Определяем состояние из регистра.
Пока РезультатЗапроса.Следующий() Цикл
Состояние = РезультатЗапроса.Состояние;
КонецЦикла;
КонецЕсли;
Возврат Состояние;
КонецФункции
// Определяет, завершилось ли фоновое задание по проверке контрагента в карточке контрагента.
//
// Параметры:
// ИдентификаторЗадания - УникальныйИдентификатор - Идентификатор фонового задания по проверке контрагента.
// Возвращаемое значение:
// Булево - Истина, если фоновое задание завершилось.
//
Функция ПроверкаКонтрагентовЗавершилась(Знач ИдентификаторЗадания) Экспорт
Если НЕ ЗначениеЗаполнено(ИдентификаторЗадания) Тогда
Возврат Истина;
КонецЕсли;
Задание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторЗадания);
Если Задание <> Неопределено
И Задание.Состояние = СостояниеФоновогоЗадания.Активно Тогда
Возврат Ложь;
КонецЕсли;
ОперацияНеВыполнена = Истина;
Если Задание = Неопределено Тогда
Возврат Истина;
Иначе
Если Задание.Состояние = СостояниеФоновогоЗадания.ЗавершеноАварийно Тогда
Возврат Истина;
ИначеЕсли Задание.Состояние = СостояниеФоновогоЗадания.Отменено Тогда
Возврат Истина;
Иначе
Возврат Истина;
КонецЕсли;
КонецЕсли;
КонецФункции
#КонецОбласти
#Область НастройкиПроверки
// Запоминает, что больше не нужно показывать предложение использовать сервис.
//
Процедура ЗапомнитьЧтоБольшеНеНужноПоказыватьПредложениеИспользоватьСервис() Экспорт
УстановитьПривилегированныйРежим(Истина);
ПроверкаКонтрагентов.ВключитьВыключитьПроверкуКонтрагентов(Ложь);
КонецПроцедуры
// Выполняет действия при включении и отключении проверки.
//
// Параметры:
// ВключитьПроверку - Булево - Истина, если проверку необходимо включить.
//
Процедура ПриВключенииВыключенииПроверки(ВключитьПроверку) Экспорт
ПроверкаКонтрагентов.ВключитьВыключитьПроверкуКонтрагентов(ВключитьПроверку);
ПроверкаКонтрагентов.ЗапуститьФоновуюПроверкуКонтрагентовПослеИзмененияНастройкиПриНеобходимости();
КонецПроцедуры
// Результат проверки параметров доступа к веб-сервису ФНС.
//
// Возвращаемое значение:
// Булево - Доступ к веб-сервису ФНС по проверке контрагентов есть.
//
Функция РезультатПроверкиПараметровДоступа() Экспорт
Если ПроверкаКонтрагентов.ЕстьДоступКВебСервисуФНС() Тогда
ТекстПредупреждения = НСтр("ru = 'Проверка доступа к веб-сервису успешно пройдена'");
Иначе
ПредупреждениеПроОтсутствиеДоступа = Новый ФорматированнаяСтрока(НСтр("ru = 'Доступ к веб-сервису отсутствует'"));
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда
ПереходКНастройкамПроксиСервера = Новый ФорматированнаяСтрока(
НСтр("ru = 'Настроить параметры прокси-сервера'"),,,, "e1cib/command/ОбщаяКоманда.ПереходКНастройкамДоступаКВебСервису");
Иначе
ПереходКНастройкамПроксиСервера = "";
КонецЕсли;
Возврат Новый ФорматированнаяСтрока(
ПредупреждениеПроОтсутствиеДоступа,
Символы.ПС,
ПереходКНастройкамПроксиСервера);
КонецЕсли;
Возврат ТекстПредупреждения;
КонецФункции
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция РезультатРаботыФоновогоЗаданияПроверкиКонтрагентовВДокументе(Знач РеквизитыПроверкиКонтрагентов) Экспорт
ЗаданиеВыполнено = ПроверкаКонтрагентовЗавершилась(РеквизитыПроверкиКонтрагентов.ИдентификаторЗадания);
ЕстьДоступКВебСервисуФНС = Ложь;
ДанныеВКэшСовпадаютСФНС =
ЗаданиеВыполнено
И ПроверкаКонтрагентов.РезультатПроверкиКонтрагентовВДокументеСовпадаетСДаннымиФНС(
РеквизитыПроверкиКонтрагентов,
ЕстьДоступКВебСервисуФНС);
Результат = Новый Структура();
Результат.Вставить("ЗаданиеВыполнено", ЗаданиеВыполнено);
Результат.Вставить("ЕстьДоступКВебСервисуФНС", ЕстьДоступКВебСервисуФНС);
Результат.Вставить("ДанныеВКэшСовпадаютСФНС", ДанныеВКэшСовпадаютСФНС);
Возврат Результат;
КонецФункции
Процедура ЗапомнитьРезультатПроверкиСправочникаПослеПредварительнойПроверки(ДанныеКонтрагента, ДополнительныеПараметры) Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
ДанныеКонтрагента.Вставить("ОбластьДанныхВспомогательныеДанные", МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса());
КонецЕсли;
ДанныеКонтрагентов = Новый Массив;
ДанныеКонтрагентов.Добавить(ДанныеКонтрагента);
ПроверкаКонтрагентов.ЗапомнитьРезультатыПроверкиСправочника(ДанныеКонтрагентов, ДополнительныеПараметры);
КонецПроцедуры
#КонецОбласти
@@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="1514f388-3c36-422f-9e23-83054934e4b3">
<name>ПроверкаКонтрагентовВызовСервера</name>
<synonym>
<key>ru</key>
<value>Проверка контрагентов (вызов сервера)</value>
</synonym>
<server>true</server>
<serverCall>true</serverCall>
</mdclass:CommonModule>
@@ -1,54 +0,0 @@
#Область ПрограммныйИнтерфейс
#Область УстаревшиеПроцедурыИФункции
// Определение цветов выделения результатов проверки контрагентов.
//
// Возвращаемое значение:
// Структура - Имена ключей - это названия цветов, которые необходимо определить.
// Список ключей см ПроверкаКонтрагентовВызовСервераПовтИсп.ЦветаРезультатовПроверки().
Функция ЦветаРезультатовПроверки() Экспорт
Цвета = Новый Структура();
Цвета.Вставить("ЦветТекстаКонтрагентаПрекратившегоДеятельность",
ЦветаСтиля.ЦветТекстаКонтрагентаПрекратившегоДеятельность);// серый
Цвета.Вставить("ЦветТекстаНекорректногоКонтрагента",
ЦветаСтиля.ЦветТекстаНекорректногоКонтрагента);// красный
Цвета.Вставить("ЦветТекстаКонтрагентаДействующего",
ЦветаСтиля.ЦветТекстаКонтрагентаДействующего); // зеленый
Цвета.Вставить("ЦветФонаДокументаСНекорректнымиКонтрагентамиВСпискеДокументов",
ЦветаСтиля.ЦветФонаДокументаСНекорректнымиКонтрагентамиВСпискеДокументов); // розовый
Цвета.Вставить("ЦветФонаКорректногоКонтрагентаВДокументе",
ЦветаСтиля.ЦветФонаКорректногоКонтрагентаВДокументе); // зеленый
Цвета.Вставить("ЦветФонаНекорректногоКонтрагентаВДокументе",
ЦветаСтиля.ЦветФонаНекорректногоКонтрагентаВДокументе); // красный
Цвета.Вставить("ЦветФонаФормы", ЦветаСтиля.ЦветФонаФормы); // белый
РаботаСКонтрагентамиПереопределяемый.ОпределитьЦветаРезультатовПроверки(Цвета);
Возврат Цвета;
КонецФункции
// Проверяет, что проверка включена и есть необходимые права.
// Возвращаемое значение:
// Булево - Истина, если есть нужные права на проверку и проверка включена.
//
Функция ИспользованиеПроверкиВозможно() Экспорт
Возврат ПроверкаКонтрагентов.ЕстьПравоНаИспользованиеПроверки()
И ПроверкаКонтрагентов.ПроверкаКонтрагентовВключена();
КонецФункции
#КонецОбласти
#КонецОбласти
Loaded 100 of 341 files, more files were not shown because too many files have changed in this diff. Show more