3_0_2_274

This commit is contained in:
Компания 1С committed 2019-04-26 01:06:00 +03:00
1 parent c5ecb03899
commit 303564046f
50 files changed
+1408 -801

No files matched your search

@@ -383,7 +383,7 @@
<Value>GY</Value>
<Value>GUY</Value>
<Value>328</Value>
<Value>Республика Гайана</Value>
<Value>Кооперативная Республика Гайана</Value>
</row>
<row>
<Value>ГАМБИЯ</Value>
@@ -59,6 +59,7 @@
ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(ПараметрыШаблона, ДанныеЗаполнения, Истина);
ЗаполнитьЗначенияСвойств(ЭтотОбъект, ПараметрыШаблона);
ФорматВложений = Новый ХранилищеЗначения(ПараметрыШаблона.ФорматыВложений);
Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура")
И ДанныеЗаполнения.Свойство("ПредназначенДляSMS")
@@ -195,7 +195,7 @@
ОписаниеИсточника = КомандыПечати.ПолучитьЭлементы().Добавить();
ОписаниеИсточника.Владелец = ИдентификаторИсточникаКомандПечати;
ОписаниеИсточника.Представление = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ИдентификаторИсточникаКомандПечати, "Синоним");
ОписаниеИсточника.Представление = ИсточникКомандПечати.Представление();
ОписаниеИсточника.Видимость = 2;
ОписаниеИсточника.НавигационнаяСсылка = "e1cib/list/" + ИдентификаторИсточникаКомандПечати.ПолноеИмя;
@@ -3152,6 +3152,24 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>АдресХранилищаРисунков</name>
<title>
<key>ru</key>
<value>Адрес хранилища рисунков</value>
</title>
<id>28</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>Отправить</name>
<title>
@@ -55,7 +55,6 @@
КонецЕсли;
СоздатьРеквизитыИЭлементыФормыДляПечатныхФорм(КоллекцияПечатныхФорм);
УбратьПодписьИПечать();
СохранитьНастройкиКомплектаПоУмолчанию();
ЗагрузитьНастройкиКоличестваКопий();
ЕстьРазрешенныйВывод = ЕстьРазрешенныйВывод();
@@ -94,6 +93,11 @@
Элементы.КнопкаИзменитьМакет.Видимость = Ложь;
КонецЕсли;
Если УправлениеПечатью.НастройкиПечати().СкрыватьПодписиИПечатиДляРедактирования Тогда
АдресХранилищаРисунков = ПоместитьВоВременноеХранилище(ПодписиИПечатиТабличныхДокументов(), УникальныйИдентификатор);
КонецЕсли;
УбратьПодписьИПечать();
УправлениеПечатьюПереопределяемый.ПечатьДокументовПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка);
КонецПроцедуры
@@ -1463,12 +1467,16 @@
&НаСервереБезКонтекста
Функция ЕстьПодписьИПечать(ТабличныйДокумент)
Если Не УправлениеПечатью.НастройкиПечати().ИспользоватьПодписиИПечати Тогда
Возврат Ложь;
КонецЕсли;
Для Каждого Рисунок Из ТабличныйДокумент.Рисунки Цикл
Если СтрНачинаетсяС(Рисунок.Имя, "Печать")
Или СтрНачинаетсяС(Рисунок.Имя, "Подпись")
Или СтрНачинаетсяС(Рисунок.Имя, "Факсимиле") Тогда
Возврат Истина;
КонецЕсли;
Для Каждого Префикс Из УправлениеПечатью.ПрефиксыИменОбластейСПодписьюИПечатью() Цикл
Если СтрНачинаетсяС(Рисунок.Имя, Префикс) Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Возврат Ложь;
@@ -1480,11 +1488,35 @@
ПодписиИПечатиОбластей = УправлениеПечатью.ПодписиИПечатиОбластей(ОбъектыПечати);
ПодписиИПечати = Неопределено;
Если ЭтоАдресВременногоХранилища(АдресХранилищаРисунков) Тогда
ПодписиИПечати = ПолучитьИзВременногоХранилища(АдресХранилищаРисунков);
КонецЕсли;
ОбработанныеТабличныеДокументы = Новый Соответствие;
Для Каждого НастройкаПечатнойФормы Из НастройкиПечатныхФорм Цикл
Если Не НастройкаПечатнойФормы.ПодписьИПечать Тогда
Продолжить;
КонецЕсли;
ТабличныйДокумент = ЭтотОбъект[НастройкаПечатнойФормы.ИмяРеквизита];
ИмяРеквизитаСТабличнымДокументом = НастройкаПечатнойФормы.ИмяРеквизита;
Если ОбработанныеТабличныеДокументы[ИмяРеквизитаСТабличнымДокументом] <> Неопределено Тогда
Продолжить;
Иначе
ОбработанныеТабличныеДокументы.Вставить(ИмяРеквизитаСТабличнымДокументом, Истина);
КонецЕсли;
ТабличныйДокумент = ЭтотОбъект[ИмяРеквизитаСТабличнымДокументом];
Если ПодписиИПечати <> Неопределено Тогда
РисункиТабличногоДокумента = ПодписиИПечати[ИмяРеквизитаСТабличнымДокументом];
Для Каждого СохраненныйРисунок Из РисункиТабличногоДокумента Цикл
НовыйРисунок = ТабличныйДокумент.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
ЗаполнитьЗначенияСвойств(НовыйРисунок, СохраненныйРисунок);
КонецЦикла;
КонецЕсли;
УправлениеПечатью.ДобавитьПодписьИПечать(ТабличныйДокумент, ПодписиИПечатиОбластей);
КонецЦикла;
@@ -1493,17 +1525,59 @@
&НаСервере
Процедура УбратьПодписьИПечать()
ПодписиИПечати = Новый Структура;
СкрыватьПодписиИПечати = УправлениеПечатью.НастройкиПечати().СкрыватьПодписиИПечатиДляРедактирования;
Для Каждого НастройкаПечатнойФормы Из НастройкиПечатныхФорм Цикл
Если Не НастройкаПечатнойФормы.ПодписьИПечать Тогда
Продолжить;
КонецЕсли;
ТабличныйДокумент = ЭтотОбъект[НастройкаПечатнойФормы.ИмяРеквизита];
УправлениеПечатью.УбратьПодписьИПечать(ТабличныйДокумент);
УправлениеПечатью.УбратьПодписьИПечать(ТабличныйДокумент, СкрыватьПодписиИПечати);
КонецЦикла;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПодписиИПечатиТабличногоДокумента(ТабличныйДокумент)
РисункиТабличногоДокумента = Новый Массив;
Для Каждого Рисунок Из ТабличныйДокумент.Рисунки Цикл
Если УправлениеПечатью.ЭтоПодписьИлиПечать(Рисунок) Тогда
ОписаниеРисунка = Новый Структура("Лево,Верх,Ширина,Высота,Картинка,Владелец,ЦветФона,Имя,Линия");
ЗаполнитьЗначенияСвойств(ОписаниеРисунка, Рисунок);
РисункиТабличногоДокумента.Добавить(ОписаниеРисунка);
КонецЕсли;
КонецЦикла;
Возврат РисункиТабличногоДокумента;
КонецФункции
&НаСервере
Функция ПодписиИПечатиТабличныхДокументов()
ПодписиИПечати = Новый Структура;
Для Каждого НастройкаПечатнойФормы Из НастройкиПечатныхФорм Цикл
Если Не НастройкаПечатнойФормы.ПодписьИПечать Тогда
Продолжить;
КонецЕсли;
ТабличныйДокумент = ЭтотОбъект[НастройкаПечатнойФормы.ИмяРеквизита];
РисункиТабличногоДокумента = ПодписиИПечатиТабличногоДокумента(ТабличныйДокумент);
Если Не ПодписиИПечати.Свойство(НастройкаПечатнойФормы.ИмяРеквизита) Тогда
ПодписиИПечати.Вставить(НастройкаПечатнойФормы.ИмяРеквизита, РисункиТабличногоДокумента);
КонецЕсли;
КонецЦикла;
Возврат ПодписиИПечати;
КонецФункции
&НаКлиенте
Процедура ДобавитьУдалитьПодписьПечать()
@@ -1120,6 +1120,12 @@
// Видимость элементов в шапке формы.
Элементы.ИнформационнаяПанельТребуетсяОбновление.Видимость = ТребуетсяОбновление;
Если ЕстьПравоОбновления Тогда
Элементы.ПравоОбновленияСтраницы.ТекущаяСтраница = Элементы.ИнформацияОбменДаннымиПриостановленЕстьПравоОбновления;
Иначе
Элементы.ПравоОбновленияСтраницы.ТекущаяСтраница = Элементы.ИнформацияОбменДаннымиПриостановленНетПраваОбновления;
КонецЕсли;
// Доступность элементов в шапке формы.
Элементы.ОткрытьРезультатыСинхронизацииДанных.Доступность = ЕстьНастроенныеОбмены;
@@ -1988,9 +1988,14 @@
КонецЕсли;
КонецЕсли;
ОпределитьДоступныеВидыСравнения(Строка, ЭлементНастройки, ОписаниеНастройки);
ДоступныеВидыСравнения = ОписаниеНастройки.ДоступныеВидыСравнения;
Если ДоступныеВидыСравнения <> Неопределено
И ДоступныеВидыСравнения.Количество() > 0
И ДоступныеВидыСравнения.НайтиПоЗначению(ЭлементНастройки.ВидСравнения) = Неопределено Тогда
ЭлементНастройки.ВидСравнения = ДоступныеВидыСравнения[0].Значение;
КонецЕсли;
ЗаполнитьЗначенияСвойств(Строка, ОписаниеНастройки,, "ДоступныеВидыСравнения");
ЗаполнитьЗначенияСвойств(Строка, ОписаниеНастройки);
ЗаполнитьЗначенияСвойств(Строка, ЭлементНастройки);
Строка.Идентификатор = СвойствоЭлементаСтруктуры.ПолучитьИдентификаторПоОбъекту(ЭлементНастройки);
@@ -2023,34 +2028,6 @@
Возврат УстановленыУспешно;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Процедура ОпределитьДоступныеВидыСравнения(Строка, ЭлементНастройки, ОписаниеНастройки)
ДоступныеВидыСравнения = ОписаниеНастройки.ДоступныеВидыСравнения;
Если ДоступныеВидыСравнения = Неопределено Тогда
Возврат;
КонецЕсли;
ТипЗначения = ОписаниеНастройки.ТипЗначения;
Если ТипЗначения.Типы().Количество() > 1
И ТипЗначения.СодержитТип(Тип("Строка"))
И (ДоступныеВидыСравнения.НайтиПоЗначению(ВидСравненияКомпоновкиДанных.Содержит) = Неопределено
Или ДоступныеВидыСравнения.НайтиПоЗначению(ВидСравненияКомпоновкиДанных.Равно) = Неопределено) Тогда
ДоступныеВидыСравнения.Очистить();
Для Каждого Вид Из ВидСравненияКомпоновкиДанных Цикл
ДоступныеВидыСравнения.Добавить(Вид);
КонецЦикла;
ИначеЕсли ДоступныеВидыСравнения.Количество() > 0
И ДоступныеВидыСравнения.НайтиПоЗначению(ЭлементНастройки.ВидСравнения) = Неопределено Тогда
ЭлементНастройки.ВидСравнения = ДоступныеВидыСравнения[0].Значение;
КонецЕсли;
Строка.ДоступныеВидыСравнения = ДоступныеВидыСравнения;
КонецПроцедуры
// Добавление, изменение элементов.
&НаКлиенте
@@ -105,6 +105,14 @@
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
Процедура ОткрытьСведенияОбАдресномКлассификаторе(Параметры, ОписаниеОповещенияОЗакрытии = Неопределено) Экспорт
ОткрытьФорму("РегистрСведений.АдресныеОбъекты.Форма.СведенияОбАдресномКлассификаторе", Параметры,,,,, ОписаниеОповещенияОЗакрытии);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Процедура АвторизоватьНаСайтеПоддержкиПользователей(ОповещениеОЗакрытии, ВладелецФормы) Экспорт
@@ -363,24 +363,6 @@
КонецФункции
Процедура ПриПолученииЧитаемыхОбъектовОбработчикаОбновленияУчетныхЗаписейЭлектроннойПочты(ЧитаемыеОбъекты) Экспорт
ЧитаемыеОбъекты.Добавить("РегистрСведений.НастройкиУчетныхЗаписейЭлектроннойПочты");
КонецПроцедуры
Процедура ПередУстановкойБлокировкиВОбработчикеОбновленияУчетныхЗаписейЭлектроннойПочты(Блокировка) Экспорт
Блокировка.Добавить("РегистрСведений.НастройкиУчетныхЗаписейЭлектроннойПочты");
КонецПроцедуры
Функция ЕстьВозможностьФильтрацииСодержимогоHTML() Экспорт
СистемнаяИнформация = Новый СистемнаяИнформация;
ТекущаяВерсияПлатформы = СистемнаяИнформация.ВерсияПриложения;
ТребуемаяВерсияПлатформы = "8.3.13.0";
Возврат ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ТребуемаяВерсияПлатформы, ТекущаяВерсияПлатформы) <= 0;
КонецФункции
////////////////////////////////////////////////////////////////////////////////
// Шаблоны сообщений.
@@ -1015,6 +997,24 @@
КонецПроцедуры
Процедура ПриПолученииЧитаемыхОбъектовОбработчикаОбновленияУчетныхЗаписейЭлектроннойПочты(ЧитаемыеОбъекты) Экспорт
ЧитаемыеОбъекты.Добавить("РегистрСведений.НастройкиУчетныхЗаписейЭлектроннойПочты");
КонецПроцедуры
Процедура ПередУстановкойБлокировкиВОбработчикеОбновленияУчетныхЗаписейЭлектроннойПочты(Блокировка) Экспорт
Блокировка.Добавить("РегистрСведений.НастройкиУчетныхЗаписейЭлектроннойПочты");
КонецПроцедуры
Функция ЕстьВозможностьФильтрацииСодержимогоHTML() Экспорт
СистемнаяИнформация = Новый СистемнаяИнформация;
ТекущаяВерсияПлатформы = СистемнаяИнформация.ВерсияПриложения;
ТребуемаяВерсияПлатформы = "8.3.13.0";
Возврат ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ТребуемаяВерсияПлатформы, ТекущаяВерсияПлатформы) <= 0;
КонецФункции
// См. УправлениеСвойствамиПереопределяемый.ПриПолученииПредопределенныхНаборовСвойств.
Процедура ПриПолученииПредопределенныхНаборовСвойств(Наборы) Экспорт
Набор = Наборы.Строки.Добавить();
@@ -1046,37 +1046,25 @@
#Область СлужебныеПроцедурыИФункции
////////////////////////////////////////////////////////////////////////////////
// Определение типа ссылки
// Определяет, является ли переданная в функцию ссылка контактом.
// Возвращает поля для получения наименования владельца, если такой имеется.
//
// Параметры:
// ОбъектСсылка - Ссылка - для которой выполняется проверка.
// ИмяТаблицы - Строка - Имя основной таблицы, для которой формируется запрос.
//
// Возвращаемое значение:
// Булево - истина, если является контактом, ложь в обратном случае.
// Строка - строка, которая будет вставлена в запрос.
//
Функция ЯвляетсяКонтактом(ОбъектСсылка)
Функция ИмяПоляДляНаименованияВладельца(ИмяТаблицы) Экспорт
ОписаниеТиповВозможныхКонтактов = Новый ОписаниеТипов(ТипыКонтактов());
Возврат ОписаниеТиповВозможныхКонтактов.СодержитТип(ТипЗнч(ОбъектСсылка));
МассивОписанияКонтактов = ВзаимодействияКлиентСервер.ОписанияКонтактов();
КонецФункции
// Получает описания возможных контактов и формирует из него массив типов.
//
// Возвращаемое значение:
// Массив - возможные типы контактов.
//
Функция ТипыКонтактов()
ОписанияКонтактов = ВзаимодействияКлиентСервер.ОписанияКонтактов();
Результат = Новый Массив;
Для каждого ЭлементМассиваОписания Из ОписанияКонтактов Цикл
Результат.Добавить(ЭлементМассиваОписания.Тип);
Для каждого ЭлементОписанияМассива Из МассивОписанияКонтактов Цикл
Если ЭлементОписанияМассива.Имя = ИмяТаблицы И ЭлементОписанияМассива.ЕстьВладелец Тогда
Возврат "СправочникКонтакт.Владелец.Наименование";
КонецЕсли;
КонецЦикла;
Возврат Результат;
Возврат """""";
КонецФункции
@@ -3054,12 +3042,12 @@
ПараметрыПисьма.Вставить("ИдентификаторыОснований", Объект.ИдентификаторыОснований);
КонецЕсли;
СоотвВложения = Новый Соответствие;
МассивВложений = Новый Массив;
ДанныеПрисоединенныхФайловПисьма = ДанныеПрисоединенныхФайловПисьмаОбъект(Объект);
ИмяОбъектаМетаданных = ДанныеПрисоединенныхФайловПисьма.ИмяСправочникаПрисоединенныхФайлов;
ВладелецФайлов = ДанныеПрисоединенныхФайловПисьма.ВладелецФайлов;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
@@ -3095,16 +3083,17 @@
НомерОтображаемогоВложения = 1;
Пока ВыборкаВложения.Следующий() Цикл
ДобавитьВложениеПисьмоЕслиНеобходимо(ТаблицаПисьмаВложения, СоотвВложения, НомерОтображаемогоВложения);
ДобавитьВложениеПисьмоЕслиНеобходимо(ТаблицаПисьмаВложения, МассивВложений, НомерОтображаемогоВложения);
ИмяФайла = ВыборкаВложения.ПолноеНаименование + ?(ВыборкаВложения.Расширение = "", "", "." + ВыборкаВложения.Расширение);
Если ПустаяСтрока(ВыборкаВложения.ИДФайлаЭлектронногоПисьма) Тогда
СоотвВложения.Вставить(ИмяФайла, РаботаСФайлами.ДвоичныеДанныеФайла(ВыборкаВложения.Ссылка));
ДобавитьВложение(МассивВложений, ИмяФайла, РаботаСФайлами.ДвоичныеДанныеФайла(ВыборкаВложения.Ссылка));
НомерОтображаемогоВложения = НомерОтображаемогоВложения + 1;
Иначе
СтруктураДанныеВложения = Новый Структура;
СтруктураДанныеВложения.Вставить("ДвоичныеДанные", РаботаСФайлами.ДвоичныеДанныеФайла(ВыборкаВложения.Ссылка));
СтруктураДанныеВложения.Вставить("Идентификатор", ВыборкаВложения.ИДФайлаЭлектронногоПисьма);
СоотвВложения.Вставить(ИмяФайла, СтруктураДанныеВложения);
ДобавитьВложение(МассивВложений,
ИмяФайла,
РаботаСФайлами.ДвоичныеДанныеФайла(ВыборкаВложения.Ссылка),
ВыборкаВложения.ИДФайлаЭлектронногоПисьма);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
@@ -3113,9 +3102,8 @@
ЭлектронныеПодписиВладельца = МодульЭлектроннаяПодпись.УстановленныеПодписи(ВыборкаВложения.Ссылка);
НомерСтроки = 1;
Для каждого ЭП Из ЭлектронныеПодписиВладельца Цикл
СоотвВложения.Вставить(ВыборкаВложения.ПолноеНаименование
+ "-DS("+ НомерСтроки + ")."
+ РасширениеДляФайловПодписи, ЭП.Подпись);
ИмяФайла = ВыборкаВложения.ПолноеНаименование + "-DS("+ НомерСтроки + ")." + РасширениеДляФайловПодписи;
ДобавитьВложение(МассивВложений, ИмяФайла, ЭП.Подпись);
НомерСтроки = НомерСтроки + 1;
КонецЦикла;
@@ -3125,12 +3113,12 @@
Пока НомерОтображаемогоВложения <= КоличествоВложений Цикл
ДобавитьВложениеПисьмоЕслиНеобходимо(ТаблицаПисьмаВложения, СоотвВложения, НомерОтображаемогоВложения);
ДобавитьВложениеПисьмоЕслиНеобходимо(ТаблицаПисьмаВложения, МассивВложений, НомерОтображаемогоВложения);
НомерОтображаемогоВложения = НомерОтображаемогоВложения + 1;
КонецЦикла;
ПараметрыПисьма.Вставить("Вложения", СоотвВложения);
ПараметрыПисьма.Вставить("Вложения", МассивВложений);
ПараметрыПисьма.Вставить("ОбрабатыватьТексты", Ложь);
Если Объект.УведомитьОДоставке Тогда
@@ -3145,18 +3133,18 @@
КонецФункции
Процедура ДобавитьВложениеПисьмоЕслиНеобходимо(ТаблицаПисьмаВложения, СоотвВложения, НомерОтображаемогоВложения)
Процедура ДобавитьВложениеПисьмоЕслиНеобходимо(ТаблицаПисьмаВложения, МассивВложений, НомерОтображаемогоВложения)
НайденнаяСтрока = ТаблицаПисьмаВложения.Найти(НомерОтображаемогоВложения, "ПорядковыйНомерВоВложениях");
Пока НайденнаяСтрока <> Неопределено Цикл
ДобавитьВложениеПисьмоИсходящееПисьмо(СоотвВложения, НайденнаяСтрока.Письмо);
ДобавитьВложениеПисьмоИсходящееПисьмо(МассивВложений, НайденнаяСтрока.Письмо);
НомерОтображаемогоВложения = НомерОтображаемогоВложения + 1;
НайденнаяСтрока = ТаблицаПисьмаВложения.Найти(НомерОтображаемогоВложения, "ПорядковыйНомерВоВложениях");
КонецЦикла
КонецПроцедуры
Процедура ДобавитьВложениеПисьмоИсходящееПисьмо(СоотвВложения, Письмо);
Процедура ДобавитьВложениеПисьмоИсходящееПисьмо(МассивВложений, Письмо);
СтруктураВложение = Новый Структура;
@@ -3167,18 +3155,37 @@
КонецЕсли;
Представление = ПредставлениеПисьма(ДанныеИнтернетПочтовогоСообщения.ИнтернетПочтовоеСообщение.Тема,
ДанныеИнтернетПочтовогоСообщения.ДатаПисьма);
ДанныеИнтернетПочтовогоСообщения.ДатаПисьма);
ИмяФайла = Представление + ".eml";
СтруктураВложение.Вставить("Кодировка", Письмо.Кодировка);
СтруктураВложение.Вставить("ДвоичныеДанные", ДанныеИнтернетПочтовогоСообщения.ИнтернетПочтовоеСообщение);
СтруктураВложение.Вставить("АдресВоВременномХранилище",
ПоместитьВоВременноеХранилище(ДанныеИнтернетПочтовогоСообщения.ИнтернетПочтовоеСообщение,
Новый УникальныйИдентификатор()));
СтруктураВложение.Вставить("ТипСодержимого","message/rfc822");
СтруктураВложение.Вставить("Имя", Представление);
СтруктураВложение.Вставить("Представление", ИмяФайла);
СоотвВложения.Вставить(ИмяФайла, СтруктураВложение);
МассивВложений.Добавить(СтруктураВложение);
КонецПроцедуры
Процедура ДобавитьВложение(МассивВложений, ИмяФайла, ДанныеФайла, Идентификатор = Неопределено, Кодировка = Неопределено)
ДанныеВложения = Новый Структура;
ДанныеВложения.Вставить("Представление", ИмяФайла);
ДанныеВложения.Вставить("АдресВоВременномХранилище", ДанныеФайла);
Если ЗначениеЗаполнено(Идентификатор) Тогда
ДанныеВложения.Вставить("Идентификатор", Идентификатор);
КонецЕсли;
Если ЗначениеЗаполнено(Кодировка) Тогда
ДанныеВложения.Вставить("Кодировка", Кодировка);
КонецЕсли;
МассивВложений.Добавить(ДанныеВложения);
КонецПроцедуры
Функция ИнтернетПочтовоеСообщениеИзПисьма(Письмо) Экспорт
Если ТипЗнч(Письмо) = Тип("ДокументСсылка.ЭлектронноеПисьмоВходящее") Тогда
@@ -4250,21 +4257,6 @@
КонецПроцедуры
// Заменяет предмет в цепочке взаимодействий.
//
// Параметры:
// Цепочка - Ссылка - предмет взаимодействий, который будет заменен.
// Предмет - Ссылка - предмет, на который будет выполнена замена.
// Исключать - Ссылка - взаимодействие, в котором операция замены выполнена не будет.
//
Процедура ЗаменитьПредметВЦепочкеВзаимодействий(Цепочка, Предмет, Исключать = Неопределено)
УстановитьПривилегированныйРежим(Истина);
МассивВзаимодействий = ВзаимодействияИзЦепочки(Цепочка, Исключать);
ВзаимодействияВызовСервера.УстановитьПредметДляМассиваВзаимодействий(МассивВзаимодействий, Предмет);
КонецПроцедуры
Процедура РассчитатьРассмотреноПоКонтактамПриЗаписиИзФормы(ТекущийОбъект, Форма, СтарыеЗначенияРеквизитов)
Если (НеЗаписыватьКонтакты(ТекущийОбъект.ДополнительныеСвойства)
@@ -4349,6 +4341,21 @@
КонецПроцедуры
// Заменяет предмет в цепочке взаимодействий.
//
// Параметры:
// Цепочка - Ссылка - предмет взаимодействий, который будет заменен.
// Предмет - Ссылка - предмет, на который будет выполнена замена.
// Исключать - Ссылка - взаимодействие, в котором операция замены выполнена не будет.
//
Процедура ЗаменитьПредметВЦепочкеВзаимодействий(Цепочка, Предмет, Исключать = Неопределено)
УстановитьПривилегированныйРежим(Истина);
МассивВзаимодействий = ВзаимодействияИзЦепочки(Цепочка, Исключать);
ВзаимодействияВызовСервера.УстановитьПредметДляМассиваВзаимодействий(МассивВзаимодействий, Предмет);
КонецПроцедуры
#КонецОбласти
//////////////////////////////////////////////////////////////////////////////////
@@ -4517,48 +4524,6 @@
КонецЕсли;
КонецПроцедуры
Функция СписокОтборовПоТипуВзаимодействий(ТолькоПочта) Экспорт
СписокОтборов = Новый СписокЗначений;
СписокОтборов.Добавить("Все", НСтр("ru = 'Все'"));
СписокОтборов.Добавить("ВсеПисьма", НСтр("ru = 'Все письма'"));
Если Не ТолькоПочта Тогда
СписокОтборов.Добавить("Встречи", НСтр("ru = 'Встречи'"));
СписокОтборов.Добавить("ТелефонныеЗвонки", НСтр("ru = 'Телефонные звонки'"));
СписокОтборов.Добавить("ЗапланированныеВзаимодействия", НСтр("ru = 'Запланированные взаимодействия'"));
СписокОтборов.Добавить("СообщенияSMS", НСтр("ru = 'Сообщения SMS'"));
КонецЕсли;
СписокОтборов.Добавить("ВходящиеПисьма", НСтр("ru = 'Входящие'"));
СписокОтборов.Добавить("ПисьмаЧерновики", НСтр("ru = 'Черновики'"));
СписокОтборов.Добавить("ИсходящиеПисьма", НСтр("ru = 'Исходящие'"));
СписокОтборов.Добавить("Отправленные", НСтр("ru = 'Отправленные'"));
СписокОтборов.Добавить("УдаленныеПисьма", НСтр("ru = 'Удаленные'"));
Если Не ТолькоПочта Тогда
СписокОтборов.Добавить("ИсходящиеЗвонки", НСтр("ru = 'Исходящие звонки'"));
СписокОтборов.Добавить("ВходящиеЗвонки", НСтр("ru = 'Входящие звонки'"));
КонецЕсли;
Возврат СписокОтборов;
КонецФункции
Функция ТипВзаимодействияПоИмениКоманды(ИмяКоманды, ТолькоПочта) Экспорт
НайденнаяПозиция = СтрНайти(ИмяКоманды, "_");
Если НайденнаяПозиция = 0 Тогда
Возврат "Все";
КонецЕсли;
СтрокаТипВзаимодействия = Прав(ИмяКоманды, СтрДлина(ИмяКоманды) - НайденнаяПозиция);
Если СписокОтборовПоТипуВзаимодействий(ТолькоПочта).НайтиПоЗначению(СтрокаТипВзаимодействия) = Неопределено Тогда
Возврат "Все";
КонецЕсли;
Возврат СтрокаТипВзаимодействия;
КонецФункции
//////////////////////////////////////////////////////////////////////////////////
// Работа с предметами взаимодействий.
@@ -4889,26 +4854,6 @@
Возврат ДокументHTML;
КонецФункции
Функция ПараметрыФормированияДокументаHTMLНаОснованииПисьма(ДанныеЗаполнения = Неопределено) Экспорт
Результат = Новый Структура;
Результат.Вставить("Письмо");
Результат.Вставить("ТипТекста");
Результат.Вставить("Текст");
Результат.Вставить("ТекстHTML");
Результат.Вставить("ТипТекстаПреобразование");
Результат.Вставить("Кодировка", "");
Результат.Вставить("ОбработатьКартинки", Ложь);
Результат.Вставить("ОтключитьВнешниеРесурсы", Истина);
Если ЗначениеЗаполнено(ДанныеЗаполнения) Тогда
ЗаполнитьЗначенияСвойств(Результат, ДанныеЗаполнения);
КонецЕсли;
Возврат Результат;
КонецФункции
// Обрабатывает текст HTML электронного письма.
//
@@ -6296,67 +6241,6 @@
КонецПроцедуры
// Определяет, корректно ли введен номер телефона для сообщения SMS.
//
// Параметры:
// НомерТелефона - Строка - строка с номером телефона.
//
// Возвращаемое значение:
// Булево - Истина, если номер введен правильно, Ложь в обратном случае.
//
Функция КорректноВведенНомерТелефона(НомерТелефона) Экспорт
СимволыНомера = "+1234567890";
СимволыРазделители = "()- ";
ФорматированныйНомер = "";
Для Позиция = 1 По СтрДлина(НомерТелефона) Цикл
Символ = Сред(НомерТелефона, Позиция, 1);
Если Символ = "+" И Не ПустаяСтрока(ФорматированныйНомер) Тогда
Возврат Ложь;
КонецЕсли;
Если СтрНайти(СимволыНомера, Символ) > 0 Тогда
ФорматированныйНомер = ФорматированныйНомер + Символ;
ИначеЕсли СтрНайти(СимволыРазделители, Символ) = 0 Тогда
Возврат Ложь;
КонецЕсли;
КонецЦикла;
Если ПустаяСтрока(ФорматированныйНомер) Тогда
Возврат Ложь;
КонецЕсли;
Если СтрДлина(ФорматированныйНомер) < 3 Тогда
Возврат Ложь;
КонецЕсли;
Возврат Истина;
КонецФункции
// Формирует тему по тексту сообщения на основании первых трех слов.
//
// Параметры:
// ТекстСообщения - Строка - текст сообщения, на основании которого формируется тема.
//
// Возвращаемое значение:
// Строка - сформированная тема сообщения.
//
Функция ТемаПоТекстуСообщения(ТекстСообщения) Экспорт
МассивСтрок = СтрРазделить(ТекстСообщения," ", Ложь);
Тема = "";
Для Инд = 0 По МассивСтрок.Количество() - 1 Цикл
Если Инд > 2 Тогда
Прервать;
КонецЕсли;
Тема = Тема + МассивСтрок[Инд] + " ";
КонецЦикла;
Возврат Лев(Тема, СтрДлина(Тема) - 1);
КонецФункции
////////////////////////////////////////////////////////////////////
// Работа с папками электронных писем.
@@ -8487,18 +8371,6 @@
КонецПроцедуры
Функция СписокСтатусов() Экспорт
СписокСтатусов = Новый СписокЗначений;
СписокСтатусов.Добавить("Все", НСтр("ru = 'Все'"));
СписокСтатусов.Добавить("КРассмотрению", НСтр("ru = 'К рассмотрению'"));
СписокСтатусов.Добавить("Отложенные", НСтр("ru = 'Отложенные'"));
СписокСтатусов.Добавить("Рассмотренные", НСтр("ru = 'Рассмотренные'"));
Возврат СписокСтатусов;
КонецФункции
Процедура ЗаполнитьПодменюПоТипуВзаимодействия(ГруппаПодменю, Форма) Экспорт
СписокОтборов = СписокОтборовПоТипуВзаимодействий(Форма.ТолькоПочта);
@@ -8651,25 +8523,208 @@
КонецФункции
// Возвращает поля для получения наименования владельца, если такой имеется.
///////////////////////////////////////////////////////////////////////////////////
// Шаблоны сообщений
// Формирует структуру для записи в регистр сведений ПредметыПапкиВзаимодействий.
//
// Параметры:
// ИмяТаблицы - Строка - Имя основной таблицы, для которой формируется запрос.
// Папка - Справочник.ПапкиЭлектронныхПисем - папка, имеет смысл для документов "Электронное письмо входящее"
// и "Электронное письмо исходящее".
// Предмет - СправочникСсылка, ДокументСсылка, указывает на предмет взаимодействия.
// Рассмотрено - Булево - признак рассмотрения взаимодействия.
// РассмотретьПосле - ДатаВремя - дата, до которой отложено рассмотрение взаимодействия.
// РассчитыватьРассмотрено - Булево - признак необходимости расчета состояний папки и предмета.
//
// Возвращаемое значение:
// Строка - строка, которая будет вставлена в запрос.
// Структура - сформированная структура.
//
Функция ИмяПоляДляНаименованияВладельца(ИмяТаблицы) Экспорт
Функция СтруктураРеквизитовВзаимодействияДляЗаписи(Предмет, Рассмотрено)
МассивОписанияКонтактов = ВзаимодействияКлиентСервер.ОписанияКонтактов();
СтруктураВозврата = РегистрыСведений.ПредметыПапкиВзаимодействий.РеквизитыВзаимодействия();
Если Предмет <> Неопределено Тогда
СтруктураВозврата.Предмет = Предмет;
КонецЕсли;
Если Рассмотрено <> Неопределено Тогда
СтруктураВозврата.Рассмотрено = Рассмотрено;
КонецЕсли;
СтруктураВозврата.РассчитыватьРассмотрено = Истина;
Возврат СтруктураВозврата;
Для каждого ЭлементОписанияМассива Из МассивОписанияКонтактов Цикл
Если ЭлементОписанияМассива.Имя = ИмяТаблицы И ЭлементОписанияМассива.ЕстьВладелец Тогда
Возврат "СправочникКонтакт.Владелец.Наименование";
КонецФункции
Функция КомментарийПоНаименованиюШаблона(НаименованиеШаблона)
Возврат НСтр("ru = 'Создано и отправлено по шаблону'") + " - " + НаименованиеШаблона;
КонецФункции
////////////////////////////////////////////////////////////////////////////////
// Определение типа ссылки
// Определяет, является ли переданная в функцию ссылка контактом.
//
// Параметры:
// ОбъектСсылка - Ссылка - для которой выполняется проверка.
//
// Возвращаемое значение:
// Булево - истина, если является контактом, ложь в обратном случае.
//
Функция ЯвляетсяКонтактом(ОбъектСсылка)
ОписаниеТиповВозможныхКонтактов = Новый ОписаниеТипов(ТипыКонтактов());
Возврат ОписаниеТиповВозможныхКонтактов.СодержитТип(ТипЗнч(ОбъектСсылка));
КонецФункции
// Получает описания возможных контактов и формирует из него массив типов.
//
// Возвращаемое значение:
// Массив - возможные типы контактов.
//
Функция ТипыКонтактов()
ОписанияКонтактов = ВзаимодействияКлиентСервер.ОписанияКонтактов();
Результат = Новый Массив;
Для каждого ЭлементМассиваОписания Из ОписанияКонтактов Цикл
Результат.Добавить(ЭлементМассиваОписания.Тип);
КонецЦикла;
Возврат Результат;
КонецФункции
Функция СписокОтборовПоТипуВзаимодействий(ТолькоПочта) Экспорт
СписокОтборов = Новый СписокЗначений;
СписокОтборов.Добавить("Все", НСтр("ru = 'Все'"));
СписокОтборов.Добавить("ВсеПисьма", НСтр("ru = 'Все письма'"));
Если Не ТолькоПочта Тогда
СписокОтборов.Добавить("Встречи", НСтр("ru = 'Встречи'"));
СписокОтборов.Добавить("ТелефонныеЗвонки", НСтр("ru = 'Телефонные звонки'"));
СписокОтборов.Добавить("ЗапланированныеВзаимодействия", НСтр("ru = 'Запланированные взаимодействия'"));
СписокОтборов.Добавить("СообщенияSMS", НСтр("ru = 'Сообщения SMS'"));
КонецЕсли;
СписокОтборов.Добавить("ВходящиеПисьма", НСтр("ru = 'Входящие'"));
СписокОтборов.Добавить("ПисьмаЧерновики", НСтр("ru = 'Черновики'"));
СписокОтборов.Добавить("ИсходящиеПисьма", НСтр("ru = 'Исходящие'"));
СписокОтборов.Добавить("Отправленные", НСтр("ru = 'Отправленные'"));
СписокОтборов.Добавить("УдаленныеПисьма", НСтр("ru = 'Удаленные'"));
Если Не ТолькоПочта Тогда
СписокОтборов.Добавить("ИсходящиеЗвонки", НСтр("ru = 'Исходящие звонки'"));
СписокОтборов.Добавить("ВходящиеЗвонки", НСтр("ru = 'Входящие звонки'"));
КонецЕсли;
Возврат СписокОтборов;
КонецФункции
Функция ТипВзаимодействияПоИмениКоманды(ИмяКоманды, ТолькоПочта) Экспорт
НайденнаяПозиция = СтрНайти(ИмяКоманды, "_");
Если НайденнаяПозиция = 0 Тогда
Возврат "Все";
КонецЕсли;
СтрокаТипВзаимодействия = Прав(ИмяКоманды, СтрДлина(ИмяКоманды) - НайденнаяПозиция);
Если СписокОтборовПоТипуВзаимодействий(ТолькоПочта).НайтиПоЗначению(СтрокаТипВзаимодействия) = Неопределено Тогда
Возврат "Все";
КонецЕсли;
Возврат СтрокаТипВзаимодействия;
КонецФункции
Функция ПараметрыФормированияДокументаHTMLНаОснованииПисьма(ДанныеЗаполнения = Неопределено) Экспорт
Результат = Новый Структура;
Результат.Вставить("Письмо");
Результат.Вставить("ТипТекста");
Результат.Вставить("Текст");
Результат.Вставить("ТекстHTML");
Результат.Вставить("ТипТекстаПреобразование");
Результат.Вставить("Кодировка", "");
Результат.Вставить("ОбработатьКартинки", Ложь);
Результат.Вставить("ОтключитьВнешниеРесурсы", Истина);
Если ЗначениеЗаполнено(ДанныеЗаполнения) Тогда
ЗаполнитьЗначенияСвойств(Результат, ДанныеЗаполнения);
КонецЕсли;
Возврат Результат;
КонецФункции
// Определяет, корректно ли введен номер телефона для сообщения SMS.
//
// Параметры:
// НомерТелефона - Строка - строка с номером телефона.
//
// Возвращаемое значение:
// Булево - Истина, если номер введен правильно, Ложь в обратном случае.
//
Функция КорректноВведенНомерТелефона(НомерТелефона) Экспорт
СимволыНомера = "+1234567890";
СимволыРазделители = "()- ";
ФорматированныйНомер = "";
Для Позиция = 1 По СтрДлина(НомерТелефона) Цикл
Символ = Сред(НомерТелефона, Позиция, 1);
Если Символ = "+" И Не ПустаяСтрока(ФорматированныйНомер) Тогда
Возврат Ложь;
КонецЕсли;
Если СтрНайти(СимволыНомера, Символ) > 0 Тогда
ФорматированныйНомер = ФорматированныйНомер + Символ;
ИначеЕсли СтрНайти(СимволыРазделители, Символ) = 0 Тогда
Возврат Ложь;
КонецЕсли;
КонецЦикла;
Возврат """""";
Если ПустаяСтрока(ФорматированныйНомер) Тогда
Возврат Ложь;
КонецЕсли;
Если СтрДлина(ФорматированныйНомер) < 3 Тогда
Возврат Ложь;
КонецЕсли;
Возврат Истина;
КонецФункции
// Формирует тему по тексту сообщения на основании первых трех слов.
//
// Параметры:
// ТекстСообщения - Строка - текст сообщения, на основании которого формируется тема.
//
// Возвращаемое значение:
// Строка - сформированная тема сообщения.
//
Функция ТемаПоТекстуСообщения(ТекстСообщения) Экспорт
МассивСтрок = СтрРазделить(ТекстСообщения," ", Ложь);
Тема = "";
Для Инд = 0 По МассивСтрок.Количество() - 1 Цикл
Если Инд > 2 Тогда
Прервать;
КонецЕсли;
Тема = Тема + МассивСтрок[Инд] + " ";
КонецЦикла;
Возврат Лев(Тема, СтрДлина(Тема) - 1);
КонецФункции
Функция СписокСтатусов() Экспорт
СписокСтатусов = Новый СписокЗначений;
СписокСтатусов.Добавить("Все", НСтр("ru = 'Все'"));
СписокСтатусов.Добавить("КРассмотрению", НСтр("ru = 'К рассмотрению'"));
СписокСтатусов.Добавить("Отложенные", НСтр("ru = 'Отложенные'"));
СписокСтатусов.Добавить("Рассмотренные", НСтр("ru = 'Рассмотренные'"));
Возврат СписокСтатусов;
КонецФункции
@@ -8713,42 +8768,6 @@
КонецФункции
///////////////////////////////////////////////////////////////////////////////////
// Шаблоны сообщений
// Формирует структуру для записи в регистр сведений ПредметыПапкиВзаимодействий.
//
// Параметры:
// Папка - Справочник.ПапкиЭлектронныхПисем - папка, имеет смысл для документов "Электронное письмо входящее"
// и "Электронное письмо исходящее".
// Предмет - СправочникСсылка, ДокументСсылка, указывает на предмет взаимодействия.
// Рассмотрено - Булево - признак рассмотрения взаимодействия.
// РассмотретьПосле - ДатаВремя - дата, до которой отложено рассмотрение взаимодействия.
// РассчитыватьРассмотрено - Булево - признак необходимости расчета состояний папки и предмета.
//
// Возвращаемое значение:
// Структура - сформированная структура.
//
Функция СтруктураРеквизитовВзаимодействияДляЗаписи(Предмет, Рассмотрено)
СтруктураВозврата = РегистрыСведений.ПредметыПапкиВзаимодействий.РеквизитыВзаимодействия();
Если Предмет <> Неопределено Тогда
СтруктураВозврата.Предмет = Предмет;
КонецЕсли;
Если Рассмотрено <> Неопределено Тогда
СтруктураВозврата.Рассмотрено = Рассмотрено;
КонецЕсли;
СтруктураВозврата.РассчитыватьРассмотрено = Истина;
Возврат СтруктураВозврата;
КонецФункции
Функция КомментарийПоНаименованиюШаблона(НаименованиеШаблона)
Возврат НСтр("ru = 'Создано и отправлено по шаблону'") + " - " + НаименованиеШаблона;
КонецФункции
Функция ЕстьВнешниеРесурсы(ДокументHTML)
Если Не ЕстьВозможностьФильтрацииСодержимогоHTML() Тогда
@@ -1620,10 +1620,18 @@
Если ДанныеИБ <> Неопределено И ПравилоКонвертации.ЭтоСсылочныйТип Тогда
Если Действие = "ПолучитьСсылку" Тогда
// Задача: получение ссылки.
// Идентификация: по УИД + поля поиска.
// Объект найден по полям поиска.
Если ДанныеXDTOСодержатСсылку Тогда
ЗаписатьПриНеобходимостиПубличныйИдентификатор(
ДанныеИБ.ПолучитьОбъект(),
ДанныеИБ,
ДанныеXDTO.Ссылка.Значение,
КомпонентыОбмена.УзелКорреспондента,
ПравилоКонвертации);
КонецЕсли;
Возврат ДанныеИБ;
Иначе
ДанныеИБ = ДанныеИБ.ПолучитьОбъект();
@@ -1646,19 +1654,6 @@
Если ЗаписыватьОбъектВИБ Тогда
Если КомпонентыОбмена.ЭтоОбменЧерезПланОбмена
И ПравилоКонвертации.ЭтоСсылочныйТип
И ДанныеXDTOСодержатСсылку Тогда
ЗаписатьПриНеобходимостиПубличныйИдентификатор(
ДанныеИБ,
ПолученныеДанные.ПолучитьСсылкуНового(),
ДанныеXDTO.Ссылка.Значение,
КомпонентыОбмена.УзелКорреспондента,
ПравилоКонвертации);
КонецЕсли;
ЭтоПолнаяЗагрузкаОбъекта = Действие = "КонвертироватьИЗаписать"
Или ПравилоКонвертации.РазрешитьСоздаватьОбъектИзСтруктуры
Или (Действие = "ПолучитьСсылку"
@@ -1701,6 +1696,19 @@
Возврат Неопределено;
КонецЕсли;
Если КомпонентыОбмена.ЭтоОбменЧерезПланОбмена
И ПравилоКонвертации.ЭтоСсылочныйТип
И ДанныеXDTOСодержатСсылку Тогда
ЗаписатьПриНеобходимостиПубличныйИдентификатор(
ДанныеИБ,
?(ДанныеДляЗаписиВИБ.ЭтоНовый(), ДанныеДляЗаписиВИБ.ПолучитьСсылкуНового(), ДанныеДляЗаписиВИБ.Ссылка),
ДанныеXDTO.Ссылка.Значение,
КомпонентыОбмена.УзелКорреспондента,
ПравилоКонвертации);
КонецЕсли;
Если ПравилоКонвертации.ЭтоСсылочныйТип И ЭтоПолнаяЗагрузкаОбъекта Тогда
ПровестиГенерациюКодаНомераПриНеобходимости(ДанныеДляЗаписиВИБ);
КонецЕсли;
@@ -1360,19 +1360,6 @@
////////////////////////////////////////////////////////////////////////////////
// Инициализация структуры настроек обмена данными.
// Выполняет инициализацию подсистемы обмена данными для выполнения процесса обмена.
//
// Параметры:
//
// Возвращаемое значение:
// СтруктураНастроекОбмена - Структура - структура со всеми необходимыми данными и объектами для выполнения обмена.
//
Функция НастройкиОбменаДанными(НастройкаВыполненияОбмена, НомерСтроки) Экспорт
Возврат ОбменДаннымиСервер.НастройкиОбменаДанными(НастройкаВыполненияОбмена, НомерСтроки);
КонецФункции
// Получает структуру настроек транспорта для выполнения обмена данными.
//
Функция НастройкиТранспортаУзлаПланаОбмена(УзелИнформационнойБазы, ВидТранспортаСообщенийОбмена) Экспорт
@@ -363,7 +363,6 @@
КонецЦикла;
СтруктураНастроекОбмена.РезультатВыполненияОбмена = Неопределено;
СтруктураНастроекОбмена.ДатаНачала = ТекущаяДатаСеанса();
СтрокаСообщения = НСтр("ru = 'Начало процесса обмена данными для узла %1'", ОбщегоНазначения.КодОсновногоЯзыка());
СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, СтруктураНастроекОбмена.УзелИнформационнойБазыНаименование);
@@ -4192,7 +4191,7 @@
Иначе
// ИНИЦИАЛИЗАЦИЯ ОБМЕНА ДАННЫМИ
СтруктураНастроекОбмена = ОбменДаннымиПовтИсп.НастройкиОбменаДанными(Выборка.НастройкаВыполненияОбмена, Выборка.НомерСтроки);
СтруктураНастроекОбмена = НастройкиОбменаДанными(Выборка.НастройкаВыполненияОбмена, Выборка.НомерСтроки);
// Если настройка содержит ошибки, то обмен не производим; статус "Отменено".
Если СтруктураНастроекОбмена.Отказ Тогда
@@ -4205,7 +4204,6 @@
КонецЕсли;
СтруктураНастроекОбмена.РезультатВыполненияОбмена = Неопределено;
СтруктураНастроекОбмена.ДатаНачала = ТекущаяДатаСеанса();
// Добавляем в ЖР информацию о процессе обмена данными.
СтрокаСообщения = НСтр("ru = 'Начало процесса обмена данными по настройке %1'", ОбщегоНазначения.КодОсновногоЯзыка());
@@ -4301,10 +4299,9 @@
Результат.Вставить("ИмяФайлаСообщенияОбмена", "");
Результат.Вставить("ИдентификаторФайлаПакетаДанных", Неопределено);
СтруктураНастроекОбмена = ОбменДаннымиПовтИсп.НастройкиТранспортаУзлаПланаОбмена(УзелИнформационнойБазы, ВидТранспортаСообщенийОбмена);
СтруктураНастроекОбмена = НастройкиТранспортаОбмена(УзелИнформационнойБазы, ВидТранспортаСообщенийОбмена);
СтруктураНастроекОбмена.РезультатВыполненияОбмена = Неопределено;
СтруктураНастроекОбмена.ДатаНачала = ТекущаяДатаСеанса();
// Если настройка содержит ошибки, то получение сообщения обмена не производим; статус "Отменено".
Если СтруктураНастроекОбмена.Отказ Тогда
@@ -5140,7 +5137,9 @@
КонецЕсли;
СтруктураНастроекОбмена.РезультатВыполненияОбмена = Неопределено;
СтруктураНастроекОбмена.ДатаНачала = ?(ПараметрыОбмена.ДатаНачалаОперации = Неопределено, ТекущаяДатаСеанса(), ПараметрыОбмена.ДатаНачалаОперации);
Если ПараметрыОбмена.ДатаНачалаОперации <> Неопределено Тогда
СтруктураНастроекОбмена.ДатаНачала = ПараметрыОбмена.ДатаНачалаОперации;
КонецЕсли;
СтрокаСообщения = НСтр("ru = 'Начало процесса обмена данными для узла %1'", ОбщегоНазначения.КодОсновногоЯзыка());
СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, СтруктураНастроекОбмена.УзелИнформационнойБазыНаименование);
@@ -5290,7 +5289,6 @@
КонецЕсли;
СтруктураНастроекОбмена.РезультатВыполненияОбмена = Неопределено;
СтруктураНастроекОбмена.ДатаНачала = ТекущаяДатаСеанса();
СтрокаСообщения = НСтр("ru = 'Начало процесса обмена данными для узла %1'", ОбщегоНазначения.КодОсновногоЯзыка());
СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, СтруктураНастроекОбмена.УзелИнформационнойБазыНаименование);
@@ -5548,8 +5546,6 @@
ДействиеПриОбмене,
КоличествоЭлементовВТранзакции);
СтруктураНастроекОбмена.ДатаНачала = ТекущаяДатаСеанса();
ЗаписьЖурналаРегистрацииНачалаОбменаДанными(СтруктураНастроекОбмена);
Если СтруктураНастроекОбмена.Отказ Тогда
@@ -8814,7 +8810,7 @@
// Возвращаемое значение:
// СтруктураНастроекОбмена - Структура - структура со всеми необходимыми данными и объектами для выполнения обмена.
//
Функция НастройкиОбменаДанными(НастройкаВыполненияОбмена, НомерСтроки) Экспорт
Функция НастройкиОбменаДанными(НастройкаВыполненияОбмена, НомерСтроки)
// Возвращаемое значение функции.
СтруктураНастроекОбмена = СтруктураНастроекОбменаБазовая();
@@ -9026,7 +9022,7 @@
// Структура настроек по полям запроса.
СтруктураНастроекОбмена.Вставить("ДатаНачала");
СтруктураНастроекОбмена.Вставить("ДатаНачала", ТекущаяДатаСеанса());
СтруктураНастроекОбмена.Вставить("ДатаОкончания");
СтруктураНастроекОбмена.Вставить("НомерСтроки");
@@ -9364,9 +9360,9 @@
Если ПравилаКонвертацииОбъектов = Неопределено Тогда
// Правила обмена должны быть указаны.
НСтрока = НСтр("ru = 'Не заданы правила конвертации для плана обмена %1. Выгрузка данных отменена.'",
ОбщегоНазначения.КодОсновногоЯзыка());
СтрокаСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтрока, СтруктураНастроекОбмена.ИмяПланаОбмена);
СтрокаСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не заданы правила конвертации для плана обмена %1. Выгрузка данных отменена.'", ОбщегоНазначения.КодОсновногоЯзыка()),
СтруктураНастроекОбмена.ИмяПланаОбмена);
ЗаписьЖурналаРегистрацииОбменаДанными(СтрокаСообщенияОбОшибке, СтруктураНастроекОбмена, Истина);
ЗафиксироватьЗавершениеИнициализацииОбмена(СтруктураНастроекОбмена);
@@ -9378,7 +9374,7 @@
Попытка
ОбработкаОбменаДаннымиXML.ВосстановитьПравилаИзВнутреннегоФормата();
Исключение
ЗаписьЖурналаРегистрацииОбменаДанными(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()), СтруктураНастроекОбмена, Истина);
ЗаписьЖурналаРегистрацииОбменаДанными(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), СтруктураНастроекОбмена, Истина);
ЗафиксироватьЗавершениеИнициализацииОбмена(СтруктураНастроекОбмена);
Возврат;
КонецПопытки;
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.0.2.269";
Описание.Версия = "3.0.2.274";
Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -7280,7 +7280,7 @@
ОтменитьТранзакцию();
КонецЦикла;
ДобавляемоеЧислоПопыток = ДобавляемоеЧислоПопыток(ОбработчикОбновления, КонтекстОбработчика);
ДобавляемоеЧислоПопыток = ДобавляемоеЧислоПопыток(ОбработчикОбновления, КонтекстОбработчика, Истина);
ОбработчикОбновления.ЧислоПопыток = ОбработчикОбновления.ЧислоПопыток + ДобавляемоеЧислоПопыток;
ПодробноеПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
@@ -7496,11 +7496,12 @@
// Параметры:
// ОбработчикОбновления - СтрокаДереваЗначений - обработчик обновления в виде строки дерева обработчиков.
// КонтекстОбработчика - Структура - см. НовыйКонтекстОбработчика().
// Ошибка - Булево - Истина, если в обработчике обновления возникла ошибка.
//
// Возвращаемое значение:
// Число - 0, если это многопоточный обработчик, которому не были переданы данные для обновления, иначе 1.
//
Функция ДобавляемоеЧислоПопыток(ОбработчикОбновления, КонтекстОбработчика)
Функция ДобавляемоеЧислоПопыток(ОбработчикОбновления, КонтекстОбработчика, Ошибка = Ложь)
Если ОбработчикОбновления.Многопоточный Тогда
ОбновляемыеДанные = КонтекстОбработчика.Параметры.ОбновляемыеДанные;
@@ -7508,10 +7509,11 @@
// Проверяется по полям ОбновляемыеДанные.ПерваяЗапись и ОбновляемыеДанные.ПоследняяЗапись, а не по полю
// ОбновляемыеДанные.НаборДанных, т.к. оно очищается в ОбработатьФрагментДанныхВПотоке() для экономии памяти.
// ОбновляемыеДанные может быть Неопределено, если обработчик выбросил исключение.
Если ОбновляемыеДанные <> Неопределено
И ОбновляемыеДанные.ПерваяЗапись = Неопределено
И ОбновляемыеДанные.ПоследняяЗапись = Неопределено Тогда
Возврат 0;
Если ОбновляемыеДанные <> Неопределено Тогда
ЕстьДанные = ОбновляемыеДанные.ПерваяЗапись <> Неопределено Или ОбновляемыеДанные.ПоследняяЗапись <> Неопределено;
Если Не ЕстьДанные И Не Ошибка Тогда
Возврат 0;
КонецЕсли;
КонецЕсли;
КонецЕсли;
@@ -416,7 +416,13 @@
Если Вложения <> Неопределено Тогда
Для Каждого Вложение Из Вложения Цикл
Если ТипЗнч(Вложение) = Тип("Структура") Тогда
НовоеВложение = Письмо.Вложения.Добавить(ПолучитьИзВременногоХранилища(Вложение.АдресВоВременномХранилище), Вложение.Представление);
ДанныеФайла = Неопределено;
Если ЭтоАдресВременногоХранилища(Вложение.АдресВоВременномХранилище) Тогда
ДанныеФайла = ПолучитьИзВременногоХранилища(Вложение.АдресВоВременномХранилище);
Иначе
ДанныеФайла = Вложение.АдресВоВременномХранилище;
КонецЕсли;
НовоеВложение = Письмо.Вложения.Добавить(ДанныеФайла, Вложение.Представление);
Если Вложение.Свойство("Кодировка") И Не ПустаяСтрока(Вложение.Кодировка) Тогда
НовоеВложение.Кодировка = Вложение.Кодировка;
КонецЕсли;
@@ -1571,10 +1571,16 @@
ГруппаВидовКонтактнойИнформации = ГруппаВидовКонтактнойИнформацииОбъекта(ПолноеИмяОбъектаМетаданных);
ИспользуетсяКонтактнаяИнформация = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ГруппаВидовКонтактнойИнформации, "Используется");
Если ИспользуетсяКонтактнаяИнформация = Ложь Тогда
ПараметрыВыводаКонтактнойИнформации = ПараметрыВыводаКонтактнойИнформации(Форма, ИмяЭлементаДляРазмещения, ПоложениеЗаголовкаКИ,
ОтложеннаяИнициализация, ИсключаемыеВиды, СкрываемыеВиды);
СкрытьКонтактнуюИнформацию(Форма, ДобавляемыеРеквизиты, ПараметрыВыводаКонтактнойИнформации, СсылкаНаОбъект);
ПараметрыВыводаКонтактнойИнформации = Новый Структура();
ПараметрыВыводаКонтактнойИнформации.Вставить("ИмяЭлементаДляРазмещения", ИмяЭлементаДляРазмещения);
ПараметрыВыводаКонтактнойИнформации.Вставить("ПоложениеЗаголовкаКИ", ПоложениеЗаголовкаКИ);
ПараметрыВыводаКонтактнойИнформации.Вставить("ОтложеннаяИнициализация", ОтложеннаяИнициализация);
ПараметрыВыводаКонтактнойИнформации.Вставить("ИсключаемыеВиды", ИсключаемыеВиды);
ПараметрыВыводаКонтактнойИнформации.Вставить("СкрываемыеВиды", СкрываемыеВиды);
ПараметрыВыводаКонтактнойИнформации.Вставить("СсылкаНаОбъект", СсылкаНаОбъект);
СкрытьКонтактнуюИнформацию(Форма, ДобавляемыеРеквизиты, ПараметрыВыводаКонтактнойИнформации);
Возврат;
КонецЕсли;
@@ -1953,7 +1959,7 @@
//
// Параметры:
// Форма - УправляемаяФорма - Форма объекта-владельца, предназначенная для вывода контактной информации.
// Объект - Произвольный - Объект-владелец контактной информации.
// Объект - СправочникОбъект, ДокументСсылка, ДанныеФормыСтруктура - Объект-владелец контактной информации.
// Отказ - Булево - Если Истина, то во время проверки были обнаружены ошибки.
//
Процедура ОбработкаПроверкиЗаполненияНаСервере(Форма, Объект, Отказ) Экспорт
@@ -2060,7 +2066,10 @@
//
// Параметры:
// Форма - УправляемаяФорма - Форма объекта-владельца, предназначенная для вывода контактной информации.
// Объект - Произвольный - Объект-владелец контактной информации.
// Объект - СправочникОбъект, ДокументСсылка - Объект-владелец контактной информации.
// ДанныеФормыСтруктура - Объект, содержащий табличную часть с контактной информацией. Поддерживает работу
// со скрываемыми видами контактной информации только для уже существующих объектов,
// из-за невозможности установить ссылку для нового объекта.
// Отказ - Булево - Если Истина, то объект не был записан, т.к. во время записи возникли ошибки.
//
Процедура ПередЗаписьюНаСервере(Форма, Объект, Отказ = Ложь) Экспорт
@@ -2069,19 +2078,12 @@
ЭтоПараметрыОсновногоОбъекта = Истина;
ПараметрыКонтактнойИнформации = Неопределено;
СкрываемыеВиды = Новый Массив;
Для каждого ПараметрКонтактнойИнформации Из Форма.ПараметрыКонтактнойИнформации Цикл
ОпределитьПараметрыКонтактнойИнформацииПоВладельцу(Форма, Объект, ПараметрыКонтактнойИнформации, ЭтоПараметрыОсновногоОбъекта, СкрываемыеВиды);
Если ПараметрКонтактнойИнформации.Значение.Владелец = Объект.Ссылка Тогда
ПараметрыКонтактнойИнформации = ПараметрКонтактнойИнформации.Значение;
Прервать;
КонецЕсли;
Если Объект.Ссылка.Пустая() И ТипЗнч(Объект) <> Тип("ДанныеФормыСтруктура") Тогда
ЭтоПараметрыОсновногоОбъекта = Ложь;
КонецЦикла;
Если Объект.Ссылка.Пустая() Тогда
Если ЭтоПараметрыОсновногоОбъекта Тогда
НоваяСсылка = ОбщегоНазначения.МенеджерОбъектаПоСсылке(Объект.Ссылка).ПолучитьСсылку();
Объект.УстановитьСсылкуНового(НоваяСсылка);
@@ -2089,16 +2091,17 @@
Иначе
Возврат;
КонецЕсли;
КонецЕсли;
Если ПараметрыКонтактнойИнформации.СкрываемыеВиды.Количество() = 0 Тогда
Если СкрываемыеВиды.Количество() = 0 Тогда
Объект.КонтактнаяИнформация.Очистить();
Иначе
Индекс = Объект.КонтактнаяИнформация.Количество() -1;
Пока Индекс >= 0 Цикл
СтрокаТаблицы = Объект.КонтактнаяИнформация.Получить(Индекс);
Если ПараметрыКонтактнойИнформации.СкрываемыеВиды.Найти(СтрокаТаблицы.Вид) = Неопределено Тогда
Если СкрываемыеВиды.Найти(СтрокаТаблицы.Вид) = Неопределено Тогда
Объект.КонтактнаяИнформация.Удалить(СтрокаТаблицы);
КонецЕсли;
Индекс = Индекс - 1;
@@ -3655,6 +3658,25 @@
////////////////////////////////////////////////////////////////////////////////
// Инициализация элементов на форме объект-владельца контактной информации.
Процедура ОпределитьПараметрыКонтактнойИнформацииПоВладельцу(Форма, Объект, ПараметрыКонтактнойИнформации, ЭтоПараметрыОсновногоОбъекта, СкрываемыеВиды)
СкрываемыеВиды = Новый Массив;
Для каждого ПараметрКонтактнойИнформации Из Форма.ПараметрыКонтактнойИнформации Цикл
Если ПараметрКонтактнойИнформации.Значение.Владелец = Объект.Ссылка
Или Форма.ПараметрыКонтактнойИнформации.Количество() = 1 Тогда
ПараметрыКонтактнойИнформации = ПараметрКонтактнойИнформации.Значение;
СкрываемыеВиды = ПараметрыКонтактнойИнформации.СкрываемыеВиды;
Возврат;
КонецЕсли;
ЭтоПараметрыОсновногоОбъекта = Ложь;
КонецЦикла;
КонецПроцедуры
Процедура СоздатьРеквизитыКонтактнойИнформации(Знач Форма, Знач ДобавляемыеРеквизиты, Знач ИмяОбъекта, Знач ИсключаемыеВиды,
Знач КонтактнаяИнформация, Знач ОтложеннаяИнициализация, Знач ОбработкаНавигационнойСсылки)
@@ -3743,7 +3765,7 @@
КонецПроцедуры
Процедура СкрытьКонтактнуюИнформацию(Знач Форма, Знач ДобавляемыеРеквизиты, ПараметрыКонтактнойИнформации, Знач СсылкаНаОбъект)
Процедура СкрытьКонтактнуюИнформацию(Знач Форма, Знач ДобавляемыеРеквизиты, ПараметрыВывода)
Если ДобавляемыеРеквизиты.Количество() > 0 Тогда
Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
@@ -3755,13 +3777,17 @@
КонецЕсли;
КонецЦикла;
ПараметрыКонтактнойИнформации = ПараметрыВыводаКонтактнойИнформации(Форма, ПараметрыВывода.ИмяЭлементаДляРазмещения,
ПараметрыВывода.ПоложениеЗаголовкаКИ, ПараметрыВывода.ОтложеннаяИнициализация,
ПараметрыВывода.ИсключаемыеВиды, ПараметрыВывода.СкрываемыеВиды);
ПараметрыКонтактнойИнформации.ДобавленныеРеквизиты = ДобавленныеРеквизиты;
ПараметрыКонтактнойИнформации.Владелец = СсылкаНаОбъект;
ПараметрыКонтактнойИнформации.Владелец = ПараметрыВывода.СсылкаНаОбъект;
Если Не ПустаяСтрока(ПараметрыКонтактнойИнформации.ИмяЭлементаДляРазмещения) Тогда
Форма.Элементы[ПараметрыКонтактнойИнформации.ИмяЭлементаДляРазмещения].Видимость = Ложь;
Если Не ПустаяСтрока(ПараметрыВывода.ИмяЭлементаДляРазмещения) Тогда
Форма.Элементы[ПараметрыВывода.ИмяЭлементаДляРазмещения].Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
Процедура ДобавитьКнопкуДополнительногоПоляКонтактнойИнформации(Знач Форма, Знач ИмяЭлементаДляРазмещения)
@@ -91,6 +91,10 @@
НомерСтрокиОкончание = ТабличныйДокумент.ВысотаТаблицы;
ТабличныйДокумент.Область(НомерСтрокиНачало, , НомерСтрокиОкончание, ).Имя = ИмяОбласти;
Если Не НастройкиПечати().ИспользоватьПодписиИПечати Тогда
Возврат;
КонецЕсли;
Для Каждого Рисунок Из ТабличныйДокумент.Рисунки Цикл
ЭтоПодписьИПечать = Ложь;
Для Каждого ИмяОбластиСПодписьюИПечатью Из ПрефиксыИменОбластейСПодписьюИПечатью() Цикл
@@ -2636,18 +2640,32 @@
КонецПроцедуры
Процедура УбратьПодписьИПечать(ТабличныйДокумент) Экспорт
Процедура УбратьПодписьИПечать(ТабличныйДокумент, СкрыватьПодписиИПечати = Ложь) Экспорт
УдаляемыеРисунки = Новый Массив;
Для Каждого Рисунок Из ТабличныйДокумент.Рисунки Цикл
Если Рисунок.ТипРисунка = ТипРисункаТабличногоДокумента.Картинка И СтрНайти(Рисунок.Имя, "_Документ_") > 0 Тогда
Если ЭтоПодписьИлиПечать(Рисунок) Тогда
Рисунок.Картинка = Новый Картинка;
Рисунок.Линия = Новый Линия(ТипЛинииРисункаТабличногоДокумента.НетЛинии);
Если СкрыватьПодписиИПечати Тогда
УдаляемыеРисунки.Добавить(Рисунок);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Для Каждого Рисунок Из УдаляемыеРисунки Цикл
ТабличныйДокумент.Рисунки.Удалить(Рисунок);
КонецЦикла;
КонецПроцедуры
Функция ПрефиксыИменОбластейСПодписьюИПечатью()
Функция ЭтоПодписьИлиПечать(Рисунок) Экспорт
Возврат Рисунок.ТипРисунка = ТипРисункаТабличногоДокумента.Картинка И СтрНайти(Рисунок.Имя, "_Документ_") > 0;
КонецФункции
Функция ПрефиксыИменОбластейСПодписьюИПечатью() Экспорт
Результат = Новый Массив;
Результат.Добавить("Печать");
@@ -2964,4 +2982,14 @@
КонецФункции
Функция НастройкиПечати() Экспорт
Настройки = Новый Структура;
Настройки.Вставить("ИспользоватьПодписиИПечати", Истина);
Настройки.Вставить("СкрыватьПодписиИПечатиДляРедактирования", Ложь);
Возврат Настройки;
КонецФункции
#КонецОбласти
@@ -957,6 +957,10 @@
ТаблицаИдентификаторов.Колонки.Добавить("ИдентификаторНаСервере", КвалификаторСтроки150);
ТаблицаИдентификаторов.Колонки.Добавить("ИдентификаторПисьма", КвалификаторСтроки150);
ТаблицаПустыхИдентификаторов = Новый ТаблицаЗначений;
ТаблицаПустыхИдентификаторов.Колонки.Добавить("ИдентификаторНаСервере", КвалификаторСтроки150);
ТаблицаПустыхИдентификаторов.Колонки.Добавить("ХэшСумма", ОбщегоНазначения.ОписаниеТипаСтрока(32));
ДатаЗагрузкиПисем = ТекущаяДатаСеанса();
Для каждого ИмяАктивнойПапки Из МассивИменАктивныхПапок Цикл
@@ -981,10 +985,12 @@
Продолжить;
КонецПопытки;
МассивЗаголовковСПустымИдентификатором = Новый Массив;
ТаблицаИдентификаторов.Очистить();
Для Каждого ЗаголовокПисьма Из ЗаголовкиПисемДляЗагрузки Цикл
Если ПустаяСтрока(ЗаголовокПисьма.ИдентификаторСообщения) Тогда
МассивЗаголовковСПустымИдентификатором.Добавить(ЗаголовокПисьма);
Продолжить;
КонецЕсли;
@@ -994,50 +1000,105 @@
КонецЦикла;
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| ИдентификаторыПисемКЗагрузке.ИдентификаторПисьма,
| ИдентификаторыПисемКЗагрузке.ИдентификаторНаСервере
|ПОМЕСТИТЬ ИдентификаторыПисемКЗагрузке
|ИЗ
| &ИдентификаторыПисемКЗагрузке КАК ИдентификаторыПисемКЗагрузке
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ИдентификаторыПисемКЗагрузке.ИдентификаторПисьма,
| ИдентификаторыПисемКЗагрузке.ИдентификаторНаСервере
|ИЗ
| ИдентификаторыПисемКЗагрузке КАК ИдентификаторыПисемКЗагрузке
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронноеПисьмоВходящее КАК ЭлектронноеПисьмоВходящее
| ПО ИдентификаторыПисемКЗагрузке.ИдентификаторПисьма = ЭлектронноеПисьмоВходящее.ИдентификаторСообщения
| И (ЭлектронноеПисьмоВходящее.УчетнаяЗапись = &УчетнаяЗапись)
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее
| ПО (ЭлектронноеПисьмоИсходящее.УчетнаяЗапись = &УчетнаяЗапись)
| И (ИдентификаторыПисемКЗагрузке.ИдентификаторПисьма = ЭлектронноеПисьмоИсходящее.ИдентификаторСообщения
| ИЛИ ИдентификаторыПисемКЗагрузке.ИдентификаторПисьма = ЭлектронноеПисьмоИсходящее.ИдентификаторСообщенияОтправкаIMAP)
|ГДЕ
| ЭлектронноеПисьмоВходящее.Ссылка ЕСТЬ NULL
| И ЭлектронноеПисьмоИсходящее.Ссылка ЕСТЬ NULL";
Запрос.УстановитьПараметр("ИдентификаторыПисемКЗагрузке", ТаблицаИдентификаторов);
Запрос.УстановитьПараметр("УчетнаяЗапись", ДанныеУчетнойЗаписи.Ссылка);
ИдЗагружать = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("ИдентификаторНаСервере");
ПолученоПисемВТекущемПочтовомЯщике = 0;
ПолучитьПисьмаПоМассивуИдентификаторов(Почта,
ДанныеУчетнойЗаписи,
ИдЗагружать,
ПолученоПисемВТекущемПочтовомЯщике,
СтруктураМассивовСозданныхПисем);
Если ТаблицаИдентификаторов.Количество() > 0 Тогда
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| ИдентификаторыПисемКЗагрузке.ИдентификаторПисьма,
| ИдентификаторыПисемКЗагрузке.ИдентификаторНаСервере
|ПОМЕСТИТЬ ИдентификаторыПисемКЗагрузке
|ИЗ
| &ИдентификаторыПисемКЗагрузке КАК ИдентификаторыПисемКЗагрузке
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ИдентификаторыПисемКЗагрузке.ИдентификаторПисьма,
| ИдентификаторыПисемКЗагрузке.ИдентификаторНаСервере
|ИЗ
| ИдентификаторыПисемКЗагрузке КАК ИдентификаторыПисемКЗагрузке
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронноеПисьмоВходящее КАК ЭлектронноеПисьмоВходящее
| ПО ИдентификаторыПисемКЗагрузке.ИдентификаторПисьма = ЭлектронноеПисьмоВходящее.ИдентификаторСообщения
| И (ЭлектронноеПисьмоВходящее.УчетнаяЗапись = &УчетнаяЗапись)
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее
| ПО (ЭлектронноеПисьмоИсходящее.УчетнаяЗапись = &УчетнаяЗапись)
| И (ИдентификаторыПисемКЗагрузке.ИдентификаторПисьма = ЭлектронноеПисьмоИсходящее.ИдентификаторСообщения
| ИЛИ ИдентификаторыПисемКЗагрузке.ИдентификаторПисьма = ЭлектронноеПисьмоИсходящее.ИдентификаторСообщенияОтправкаIMAP)
|ГДЕ
| ЭлектронноеПисьмоВходящее.Ссылка ЕСТЬ NULL
| И ЭлектронноеПисьмоИсходящее.Ссылка ЕСТЬ NULL";
Запрос.УстановитьПараметр("ИдентификаторыПисемКЗагрузке", ТаблицаИдентификаторов);
Запрос.УстановитьПараметр("УчетнаяЗапись", ДанныеУчетнойЗаписи.Ссылка);
ИдЗагружать = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("ИдентификаторНаСервере");
ПолучитьПисьмаПоМассивуИдентификаторов(Почта,
ДанныеУчетнойЗаписи,
ИдЗагружать,
ПолученоПисемВТекущемПочтовомЯщике,
СтруктураМассивовСозданныхПисем);
КонецЕсли;
Если МассивЗаголовковСПустымИдентификатором.Количество() > 0 Тогда
ТаблицаПустыхИдентификаторов.Очистить();
Для Каждого ЗаголовокПисьма Из МассивЗаголовковСПустымИдентификатором Цикл
НоваяСтрока = ТаблицаПустыхИдентификаторов.Добавить();
НоваяСтрока.ИдентификаторНаСервере = ЗаголовокПисьма.Идентификатор[0];
НоваяСтрока.ХэшСумма = ХэшСуммаПочтовогоСообщения(ЗаголовокПисьма);
КонецЦикла;
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| ИдентификаторыПисемКЗагрузке.ХэшСумма,
| ИдентификаторыПисемКЗагрузке.ИдентификаторНаСервере
|ПОМЕСТИТЬ ИдентификаторыПисемКЗагрузке
|ИЗ
| &ИдентификаторыПисемКЗагрузке КАК ИдентификаторыПисемКЗагрузке
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ИдентификаторыПисемКЗагрузке.ХэшСумма,
| ИдентификаторыПисемКЗагрузке.ИдентификаторНаСервере
|ИЗ
| ИдентификаторыПисемКЗагрузке КАК ИдентификаторыПисемКЗагрузке
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронноеПисьмоВходящее КАК ЭлектронноеПисьмоВходящее
| ПО ИдентификаторыПисемКЗагрузке.ХэшСумма = ЭлектронноеПисьмоВходящее.ХэшСумма
| И (ЭлектронноеПисьмоВходящее.УчетнаяЗапись = &УчетнаяЗапись)
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее
| ПО (ЭлектронноеПисьмоИсходящее.УчетнаяЗапись = &УчетнаяЗапись)
| И (ИдентификаторыПисемКЗагрузке.ХэшСумма = ЭлектронноеПисьмоИсходящее.ХэшСумма)
|ГДЕ
| ЭлектронноеПисьмоВходящее.Ссылка ЕСТЬ NULL
| И ЭлектронноеПисьмоИсходящее.Ссылка ЕСТЬ NULL";
Запрос.УстановитьПараметр("ИдентификаторыПисемКЗагрузке", ТаблицаПустыхИдентификаторов);
Запрос.УстановитьПараметр("УчетнаяЗапись", ДанныеУчетнойЗаписи.Ссылка);
ИдЗагружать = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("ИдентификаторНаСервере");
ПолучитьПисьмаПоМассивуИдентификаторов(Почта,
ДанныеУчетнойЗаписи,
ИдЗагружать,
ПолученоПисемВТекущемПочтовомЯщике,
СтруктураМассивовСозданныхПисем);
КонецЕсли;
Получено = Получено + ПолученоПисемВТекущемПочтовомЯщике;
КонецЦикла;
УстановитьДатуПоследнейЗагрузкиПисем(ДанныеУчетнойЗаписи.Ссылка, ДатаЗагрузкиПисем);
КонецПроцедуры
Процедура ПолучитьПочтуПоПроколуPOP3(ДанныеУчетнойЗаписи, Почта, Получено, СтруктураМассивовСозданныхПисем)
@@ -1608,6 +1669,7 @@
Письмо.ИдентификаторОснования = ИзПисьмаПолучитьИдентификаторОснования(Сообщение);
Письмо.ИдентификаторыОснований = Сообщение.ПолучитьПолеЗаголовка("References", "Строка");
Письмо.ХэшСумма = ХэшСуммаПочтовогоСообщения(Сообщение);
Для каждого Вложение Из Сообщение.Вложения Цикл
Если ПустаяСтрока(Вложение.Идентификатор) Тогда
@@ -1618,6 +1680,17 @@
КонецПроцедуры
Функция ХэшСуммаПочтовогоСообщения(Сообщение)
МассивСтрок = Новый Массив;
МассивСтрок.Добавить(Сообщение.Отправитель.Адрес);
МассивСтрок.Добавить(Сообщение.ДатаОтправления);
МассивСтрок.Добавить(Сообщение.Тема);
Возврат ОбщегоНазначения.КонтрольнаяСуммаСтрокой(СтрСоединить(МассивСтрок));
КонецФункции
Процедура ЗаполнитьПредметИКонтакты(Письмо,
УчетнаяЗапись,
Предмет,
@@ -111,13 +111,13 @@
//
Процедура ОбработатьОчередьИзвлеченияТекста() Экспорт
ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.ПланированиеИзвлеченияТекстаВМоделиСервиса);
Если НЕ РаботаВМоделиСервиса.РазделениеВключено()
Или Не ОбщегоНазначения.ЭтоWindowsСервер() Тогда
Возврат;
КонецЕсли;
ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.ПланированиеИзвлеченияТекстаВМоделиСервиса);
УстановитьПривилегированныйРежим(Истина);
ИмяРазделенногоМетода = "РаботаСФайламиСлужебный.ИзвлечьТекстИзФайлов";
@@ -92,7 +92,7 @@
//
// Параметры:
// Наименование - Строка - наименование шаблона.
// ПараметрыШаблона - Структура - параметры шаблона сообщения.
// ПараметрыШаблона - Структура - параметры шаблона сообщения. см. ШаблоныСообщений.ОписаниеПараметровШаблона.
//
// Возвращаемое значение:
// СправочникСсылка.ШаблоныСообщений - ссылка на созданный шаблон.
@@ -118,6 +118,26 @@
//
// Возвращаемое значение:
// Структура - параметры шаблона.
// * Наименование - Строка - наименование шаблона сообщений.
// * Текст - Строка - текст шаблона письма или сообщения SMS.
// * Тема - Строка - текст темы письма. Только для шаблонов электронной почты.
// * ТипШаблона - Строка - тип шаблона. Варианты: "Письмо","SMS".
// * Назначение - Строка - представление предмет шаблона сообщений. Например, Заказ покупателя.
// * ПолноеИмяТипаНазначения - Строка - предмет шаблона сообщений. Если указан полный путь к объекту метаданных, то в шаблоне
// в качестве параметров будут доступны все его реквизиты. Например, Документ.ЗаказПокупателя.
// * ФорматПисьма - ПеречислениеСсылка.СпособыРедактированияЭлектронныхПисем- формат письма HTML или обычный текст.
// Только для шаблонов электронной почты.
// * УпаковатьВАрхив - Булево - если Истина, то печатные формы и вложения будут упакованы в архив при отправке.
// Только для шаблонов электронной почты.
// * ТранслитерироватьИменаФайлов - Булево - печатные формы и файлы, вложенные в письмо будут иметь имена, содержащие
// только латинские буквы и цифры, для возможности переноса между
// различными операционными системами. Например, файл "Счет на оплату.pdf" будет
// сохранен с именем "Schet na oplaty.pdf". Только для шаблонов электронной почты.
// * ФорматыВложений - СписокЗначений - список форматов вложений. Только для шаблонов электронной почты.
// * ВладелецШаблона - ОпределяемыйТип.ВладелецШаблонаСообщения - владелец контекстного шаблона.
// * ШаблонПоВнешнейОбработке - Булево - если Истина, то шаблон формируется внешней обработкой.
// * ВнешняяОбработка - СправочникСсылка.ДополнительныеОтчетыИОбработки - внешняя обработка, в которой содержится шаблон.
// * ПодписьИПечать - Булево - добавляет факсимильную подпись и печать в печатную форму. Только для шаблонов электронной почты.
//
Функция ОписаниеПараметровШаблона() Экспорт
@@ -809,6 +809,10 @@
//
Процедура ДобавитьВыбранныеПечатныеФормыВоВложения(ПараметрыОтправки, СведенияОШаблоне, Вложения, ПараметрыШаблона)
Если СведенияОШаблоне.Вложения.Количество() = 0 Тогда
Возврат;
КонецЕсли;
ФорматыСохранения = Новый Массив;
Для каждого ФорматВложения Из ПараметрыШаблона.ФорматыВложений Цикл
ФорматыСохранения.Добавить(?(ТипЗнч(ФорматВложения.Значение) = Тип("ТипФайлаТабличногоДокумента"),
+9 -9
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="9562f530-1ba8-46e8-b69d-133f66449016">
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="09464420-3584-44f2-961f-dd23cd2f1de8">
<name>БиблиотекаСтандартныхПодсистем</name>
<synonym>
<key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.0</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="0050cc3c-106d-41bd-83a4-8ffbca91a075"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="2ae7d59e-d34f-4e3d-8933-abc8ba4fb006"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="d7a31eff-373f-412e-8427-c9fea0e084d7"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="8de054d0-8da9-49b8-9820-e50376b2831d"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="750c18c8-98d1-4a99-8ca2-8b68d51a4a60"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="4e44d7fe-11d9-417d-9340-9d4c9b73e9b5"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="8c23967b-a052-4e01-a688-3fa082895a9b"/>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="162d896e-72ed-44d1-8b7d-d7d96bd1aa89"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="ae5a1170-d027-4aad-9bf7-4bf8a08e2a45"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="500dae08-3cf6-42f8-8115-eb965d4dd98b"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="db6e9a58-9464-4ceb-9e99-bbd8c352d5f1"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="00565a7c-b482-420c-bf37-4a87304838f1"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="96a51cd2-8a53-469e-acd3-2d8df99f5b6c"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="295724ae-ecc5-4f4e-bc1a-f5fd43efda21"/>
<defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor>
<version>3.0.2.269</version>
<version>3.0.2.274</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities>
@@ -1 +1 @@
{6,1,1,d39f26bc-8104-4573-8d5c-effd5f839e01,1,77eb6fe0-f660-4023-ac49-8617afeb10d0,"3.0.2.269","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6024,1,0,9562f530-1ba8-46e8-b69d-133f66449016,9562f530-1ba8-46e8-b69d-133f66449016,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,c27472ee-879a-4746-9d21-122738ec80b7,c27472ee-879a-4746-9d21-122738ec80b7,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,83192b3e-e7a9-4595-8887-24cda84457a9,83192b3e-e7a9-4595-8887-24cda84457a9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,1,0,08eeb8f1-944f-4450-83f6-ef20aaab7d86,08eeb8f1-944f-4450-83f6-ef20aaab7d86,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,1,0,2fd12dba-5311-4f31-949c-f6b15decc0cc,2fd12dba-5311-4f31-949c-f6b15decc0cc,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,35895e12-52b6-49a1-acdf-6d828a948af0,35895e12-52b6-49a1-acdf-6d828a948af0,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8Line truncated
{6,1,1,6717968c-5130-45a6-878f-821d8471c79a,1,86b194d5-70d8-48a7-b5d6-52223f305d26,"3.0.2.274","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6027,1,0,09464420-3584-44f2-961f-dd23cd2f1de8,09464420-3584-44f2-961f-dd23cd2f1de8,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,c27472ee-879a-4746-9d21-122738ec80b7,c27472ee-879a-4746-9d21-122738ec80b7,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,83192b3e-e7a9-4595-8887-24cda84457a9,83192b3e-e7a9-4595-8887-24cda84457a9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,1,0,08eeb8f1-944f-4450-83f6-ef20aaab7d86,08eeb8f1-944f-4450-83f6-ef20aaab7d86,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,1,0,2fd12dba-5311-4f31-949c-f6b15decc0cc,2fd12dba-5311-4f31-949c-f6b15decc0cc,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,35895e12-52b6-49a1-acdf-6d828a948af0,35895e12-52b6-49a1-acdf-6d828a948af0,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8Line truncated
@@ -205,20 +205,13 @@
ОбменДаннымиXDTOСервер.ОткрытьФайлВыгрузки(КомпонентыОбмена, ИмяФайлаОбмена);
Отказ = Ложь;
ПослеОткрытияФайлаВыгрузки(Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
// ВЫГРУЗКА ДАННЫХ
Попытка
ОбменДаннымиXDTOСервер.ПроизвестиВыгрузкуДанных(КомпонентыОбмена);
Исключение
Если КомпонентыОбмена.ЭтоОбменЧерезПланОбмена Тогда
РазблокироватьДанныеДляРедактирования(КомпонентыОбмена.УзелКорреспондента);
ПослеОткрытияФайлаВыгрузки(Отказ);
// ВЫГРУЗКА ДАННЫХ
Если Не Отказ Тогда
ОбменДаннымиXDTOСервер.ПроизвестиВыгрузкуДанных(КомпонентыОбмена);
КонецЕсли;
Исключение
Инфо = ИнформацияОбОшибке();
КодОшибки = Новый Структура("КраткоеПредставлениеОшибки, ПодробноеПредставлениеОшибки",
КраткоеПредставлениеОшибки(Инфо), ПодробноеПредставлениеОшибки(Инфо));
@@ -227,9 +220,17 @@
ОбменДаннымиXDTOСервер.ЗавершитьВедениеПротоколаОбмена(КомпонентыОбмена);
КомпонентыОбмена.ФайлОбмена = Неопределено;
Возврат;
Отказ = Истина;
КонецПопытки;
Если КомпонентыОбмена.ЭтоОбменЧерезПланОбмена Тогда
РазблокироватьДанныеДляРедактирования(КомпонентыОбмена.УзелКорреспондента);
КонецЕсли;
Если Отказ Тогда
Возврат;
КонецЕсли;
ДанныеВыгрузкиXML = КомпонентыОбмена.ФайлОбмена.Закрыть();
ОбменДаннымиXDTOСервер.ЗавершитьВедениеПротоколаОбмена(КомпонентыОбмена);
@@ -3735,7 +3735,8 @@
Если ПустаяСтрока(Свойство) Тогда
Если Свойства.ИмяТипа = "Перечисление" Тогда
Если Свойства.ИмяТипа = "Перечисление"
Или Свойства.ИмяТипа = "ТочкаМаршрутаБизнесПроцесса" Тогда
Свойство = "Имя";
Иначе
Свойство = "{ИмяПредопределенногоЭлемента}";
@@ -280,26 +280,17 @@
&НаСервере
Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным)
// Сохранение значений реквизитов, не связанных с константами напрямую (в отношении один-к-одному).
Если РеквизитПутьКДанным = "" Тогда
ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, ".");
Если ЧастиИмени.Количество() <> 2 Тогда
Возврат "";
КонецЕсли;
// Определение имени константы.
КонстантаИмя = "";
Если НРег(Лев(РеквизитПутьКДанным, 14)) = НРег("НаборКонстант.") Тогда
// Если путь к данным реквизита указан через "НаборКонстант".
КонстантаИмя = Сред(РеквизитПутьКДанным, 15);
КонецЕсли;
КонстантаИмя = ЧастиИмени[1];
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
// Сохранения значения константы.
Если КонстантаИмя <> "" Тогда
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
Возврат КонстантаИмя;
@@ -677,28 +677,17 @@
&НаСервере
Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным)
// Сохранение значений реквизитов, не связанных с константами напрямую.
Если РеквизитПутьКДанным = "" Тогда
ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, ".");
Если ЧастиИмени.Количество() <> 2 Тогда
Возврат "";
КонецЕсли;
// Определение имени константы.
КонстантаИмя = "";
Если НРег(Лев(РеквизитПутьКДанным, 14)) = НРег("НаборКонстант.") Тогда
// Если путь к данным реквизита указан через "НаборКонстант".
КонстантаИмя = Сред(РеквизитПутьКДанным, 15);
Иначе
// Определение имени и запись значения реквизита в соответствующей константе из "НаборКонстант".
// Используется для тех реквизитов формы, которые связаны с константами напрямую (в отношении один-к-одному).
КонецЕсли;
КонстантаИмя = ЧастиИмени[1];
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
// Сохранения значения константы.
Если НРег(Лев(РеквизитПутьКДанным, 14)) = НРег("НаборКонстант.") Тогда
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
Возврат КонстантаИмя;
@@ -321,35 +321,22 @@
&НаСервере
Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным)
// Сохранение значений реквизитов, не связанных с константами напрямую (в отношении один-к-одному).
Если РеквизитПутьКДанным = "" Тогда
ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, ".");
Если ЧастиИмени.Количество() <> 2 Тогда
Возврат "";
КонецЕсли;
// Определение имени константы.
КонстантаИмя = "";
Если НРег(Лев(РеквизитПутьКДанным, 14)) = НРег("НаборКонстант.") Тогда
// Если путь к данным реквизита указан через "НаборКонстант".
КонстантаИмя = Сред(РеквизитПутьКДанным, 15);
Иначе
// Определение имени и запись значения реквизита в соответствующей константе из "НаборКонстант".
// Используется для тех реквизитов формы, которые связаны с константами напрямую (в отношении один-к-одному).
КонецЕсли;
// Сохранения значения константы.
Если КонстантаИмя <> "" Тогда
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
ТекущееЗначение = КонстантаМенеджер.Получить();
Если ТекущееЗначение <> КонстантаЗначение Тогда
Попытка
КонстантаМенеджер.Установить(КонстантаЗначение);
Исключение
НаборКонстант[КонстантаИмя] = ТекущееЗначение;
ВызватьИсключение;
КонецПопытки;
КонецЕсли;
КонстантаИмя = ЧастиИмени[1];
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
ТекущееЗначение = КонстантаМенеджер.Получить();
Если ТекущееЗначение <> КонстантаЗначение Тогда
Попытка
КонстантаМенеджер.Установить(КонстантаЗначение);
Исключение
НаборКонстант[КонстантаИмя] = ТекущееЗначение;
ВызватьИсключение;
КонецПопытки;
КонецЕсли;
Возврат КонстантаИмя;
@@ -269,20 +269,8 @@
&НаСервере
Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным)
// Сохранение значений реквизитов, не связанных с константами напрямую (в отношении один-к-одному).
Если РеквизитПутьКДанным = "" Тогда
Возврат "";
КонецЕсли;
// Определение имени константы.
КонстантаИмя = "";
Если НРег(Лев(РеквизитПутьКДанным, 14)) = НРег("НаборКонстант.") Тогда
// Если путь к данным реквизита указан через "НаборКонстант".
КонстантаИмя = Сред(РеквизитПутьКДанным, 15);
Иначе
// Определение имени и запись значения реквизита в соответствующей константе из "НаборКонстант".
// Используется для тех реквизитов формы, которые связаны с константами напрямую (в отношении один-к-одному).
ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, ".");
Если ЧастиИмени.Количество() <> 2 Тогда
Если РеквизитПутьКДанным = "МаксимальныйРазмерФайла" Тогда
НаборКонстант.МаксимальныйРазмерФайла = МаксимальныйРазмерФайла * (1024*1024);
КонстантаИмя = "МаксимальныйРазмерФайла";
@@ -300,20 +288,23 @@
НаборКонстант.ЗапрещатьЗагрузкуФайловПоРасширению = ЗапрещатьЗагрузкуФайловПоРасширению;
КонстантаИмя = "ЗапрещатьЗагрузкуФайловПоРасширению";
КонецЕсли;
Иначе
КонстантаИмя = ЧастиИмени[1];
КонецЕсли;
// Сохранения значения константы.
Если КонстантаИмя <> "" Тогда
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
Если ПустаяСтрока(КонстантаИмя) Тогда
Возврат "";
КонецЕсли;
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
Возврат КонстантаИмя;
КонецФункции
&НаСервере
@@ -307,29 +307,17 @@
&НаСервере
Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным)
// Сохранение значений реквизитов, не связанных с константами напрямую.
Если РеквизитПутьКДанным = "" Тогда
ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, ".");
Если ЧастиИмени.Количество() <> 2 Тогда
Возврат "";
КонецЕсли;
// Определение имени константы.
КонстантаИмя = "";
Если НРег(Лев(РеквизитПутьКДанным, 14)) = НРег("НаборКонстант.") Тогда
// Если путь к данным реквизита указан через "НаборКонстант".
КонстантаИмя = Сред(РеквизитПутьКДанным, 15);
Иначе
// Определение имени и запись значения реквизита в соответствующей константе из "НаборКонстант".
// Используется для тех реквизитов формы, которые связаны с константами напрямую (в отношении один-к-одному).
КонецЕсли;
КонстантаИмя = ЧастиИмени[1];
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
// Сохранения значения константы.
Если НРег(Лев(РеквизитПутьКДанным, 14)) = НРег("НаборКонстант.") Тогда
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
Возврат КонстантаИмя;
@@ -320,26 +320,21 @@
Возврат "";
КонецЕсли;
// Определение имени константы.
КонстантаИмя = "";
Если НРег(Лев(РеквизитПутьКДанным, 14)) = НРег("НаборКонстант.") Тогда
// Если путь к данным реквизита указан через "НаборКонстант".
КонстантаИмя = Сред(РеквизитПутьКДанным, 15);
ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, ".");
Если ЧастиИмени.Количество() <> 2 Тогда
Возврат "";
КонецЕсли;
// Сохранения значения константы.
Если КонстантаИмя <> "" Тогда
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
Если КонстантаИмя = "ИспользоватьДополнительныеРеквизитыИСведения" И КонстантаЗначение = Ложь Тогда
ЭтотОбъект.Прочитать();
КонецЕсли;
КонстантаИмя = ЧастиИмени[1];
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
Если КонстантаИмя = "ИспользоватьДополнительныеРеквизитыИСведения" И КонстантаЗначение = Ложь Тогда
ЭтотОбъект.Прочитать();
КонецЕсли;
Возврат КонстантаИмя;
@@ -269,33 +269,21 @@
&НаСервере
Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным)
// Сохранение значений реквизитов, не связанных с константами напрямую (в отношении один-к-одному).
Если РеквизитПутьКДанным = "" Тогда
ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, ".");
Если ЧастиИмени.Количество() <> 2 Тогда
Возврат "";
КонецЕсли;
// Определение имени константы.
КонстантаИмя = "";
Если НРег(Лев(РеквизитПутьКДанным, 14)) = НРег("НаборКонстант.") Тогда
// Если путь к данным реквизита указан через "НаборКонстант".
КонстантаИмя = Сред(РеквизитПутьКДанным, 15);
Иначе
// Определение имени и запись значения реквизита в соответствующей константе из "НаборКонстант".
// Используется для тех реквизитов формы, которые связаны с константами напрямую (в отношении один-к-одному).
КонстантаИмя = ЧастиИмени[1];
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
// Сохранения значения константы.
Если КонстантаИмя <> "" Тогда
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
Если (КонстантаИмя = "ИспользоватьПочтовыйКлиент" ИЛИ КонстантаИмя = "ИспользоватьБизнесПроцессыИЗадачи") И КонстантаЗначение = Ложь Тогда
ЭтотОбъект.Прочитать();
КонецЕсли;
Если (КонстантаИмя = "ИспользоватьПочтовыйКлиент" ИЛИ КонстантаИмя = "ИспользоватьБизнесПроцессыИЗадачи") И КонстантаЗначение = Ложь Тогда
ЭтотОбъект.Прочитать();
КонецЕсли;
Возврат КонстантаИмя;
@@ -144,29 +144,17 @@
&НаСервере
Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным)
// Сохранение значений реквизитов, не связанных с константами напрямую (в отношении один-к-одному).
Если РеквизитПутьКДанным = "" Тогда
ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, ".");
Если ЧастиИмени.Количество() <> 2 Тогда
Возврат "";
КонецЕсли;
// Определение имени константы.
КонстантаИмя = "";
Если НРег(Лев(РеквизитПутьКДанным, 14)) = НРег("НаборКонстант.") Тогда
// Если путь к данным реквизита указан через "НаборКонстант".
КонстантаИмя = Сред(РеквизитПутьКДанным, 15);
Иначе
// Определение имени и запись значения реквизита в соответствующей константе из "НаборКонстант".
// Используется для тех реквизитов формы, которые связаны с константами напрямую (в отношении один-к-одному).
КонецЕсли;
КонстантаИмя = ЧастиИмени[1];
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
// Сохранения значения константы.
Если КонстантаИмя <> "" Тогда
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
Возврат КонстантаИмя;
@@ -318,29 +318,17 @@
&НаСервере
Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным)
// Сохранение значений реквизитов, не связанных с константами напрямую (в отношении один-к-одному).
Если РеквизитПутьКДанным = "" Тогда
ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, ".");
Если ЧастиИмени.Количество() <> 2 Тогда
Возврат "";
КонецЕсли;
// Определение имени константы.
КонстантаИмя = "";
Если НРег(Лев(РеквизитПутьКДанным, 14)) = НРег("НаборКонстант.") Тогда
// Если путь к данным реквизита указан через "НаборКонстант".
КонстантаИмя = Сред(РеквизитПутьКДанным, 15);
Иначе
// Определение имени и запись значения реквизита в соответствующей константе из "НаборКонстант".
// Используется для тех реквизитов формы, которые связаны с константами напрямую (в отношении один-к-одному).
КонецЕсли;
КонстантаИмя = ЧастиИмени[1];
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
// Сохранения значения константы.
Если КонстантаИмя <> "" Тогда
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
Возврат КонстантаИмя;
@@ -302,14 +302,8 @@
Возврат Результат;
КонецЕсли;
// Определение имени константы.
КонстантаИмя = "";
Если НРег(Лев(РеквизитПутьКДанным, 14)) = НРег("НаборКонстант.") Тогда
// Если путь к данным реквизита указан через "НаборКонстант".
КонстантаИмя = Сред(РеквизитПутьКДанным, 15);
Иначе
// Определение имени и запись значения реквизита в соответствующей константе из "НаборКонстант".
// Используется для тех реквизитов формы, которые связаны с константами напрямую (в отношении один-к-одному).
ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, ".");
Если ЧастиИмени.Количество() <> 2 Тогда
Если РеквизитПутьКДанным = "ИзвлекатьТекстыФайловНаСервере" Тогда
КонстантаИмя = "ИзвлекатьТекстыФайловНаСервере";
НаборКонстант.ИзвлекатьТекстыФайловНаСервере = ИзвлекатьТекстыФайловНаСервере;
@@ -340,21 +334,24 @@
Возврат Результат;
КонецПопытки;
КонецЕсли;
Иначе
КонстантаИмя = ЧастиИмени[1];
КонецЕсли;
// Сохранения значения константы.
Если КонстантаИмя <> "" Тогда
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
Результат.КонстантаИмя = КонстантаИмя;
Если ПустаяСтрока(КонстантаИмя) Тогда
Возврат Результат;
КонецЕсли;
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
Возврат Результат;
Результат.КонстантаИмя = КонстантаИмя;
Возврат КонстантаИмя;
КонецФункции
&НаСервере
@@ -312,8 +312,12 @@
// Обновляем все открытые динамические списки.
ОбменДаннымиКлиент.ОбновитьВсеОткрытыеДинамическиеСписки();
Результат = Новый Структура;
Результат.Вставить("РезультатВыгрузкиДанных", РезультатВыгрузкиДанных);
Результат.Вставить("РезультатЗагрузкиДанных", РезультатЗагрузкиДанных);
ЗакрытьФормуБезусловно = Истина;
Закрыть();
Закрыть(Результат);
КонецПроцедуры
@@ -430,6 +430,16 @@
&НаКлиенте
Процедура ВыполнитьСопоставлениеИЗагрузкуДанныхПродолжение(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
Если ТипЗнч(РезультатЗакрытия) = Тип("Структура") Тогда
РезультатЗагрузкиДанных = Неопределено;
Если РезультатЗакрытия.Свойство("РезультатЗагрузкиДанных", РезультатЗагрузкиДанных) Тогда
Если РезультатЗагрузкиДанных = "Ошибка"
Или РезультатЗагрузкиДанных = "Ошибка_ТранспортСообщения" Тогда
Возврат;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ТекущийЭтапНастройки = "СопоставлениеИЗагрузка"
И ВыполненаЗагрузкаДанныхДляСопоставления(УзелОбмена) Тогда
ПерейтиКСледующемуЭтапуНастройки();
@@ -3178,6 +3178,7 @@
<key>ru</key>
<value>Страница тип адреса</value>
</title>
<horizontalStretch>true</horizontalStretch>
<extendedTooltip>
<name>СтраницаТипАдресаРасширеннаяПодсказка</name>
<id>500</id>
@@ -3245,6 +3246,81 @@
</textColor>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>НужнаПомощь</name>
<id>551</id>
<items xsi:type="form:Decoration">
<name>ДекорацияНужнаПомощь</name>
<id>553</id>
<title>
<key>ru</key>
<value>Адресные сведения предоставляются &lt;link https://fias.nalog.ru/>Федеральной информационной адресной системой&lt;/> (ФИАС). Ее оператор - ФНС России.
В случае если не удалось подобрать адрес или введенный адрес не проходит проверку, следует проверить его наличие на сайте ФИАС и обратиться в &lt;link https://www.nalog.ru/rn77/service/service_feedback/?service=22>службу поддержки online-сервисов&lt;/> ФНС России.
В иных случаях обратитесь в службу поддержки фирмы &quot;1С&quot;, предоставив &lt;link e1cib/data/РегистрСведений.АдресныеОбъекты.Форма.СведенияОбАдресномКлассификаторе>технические сведения о возникшем затруднении&lt;/>.</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДекорацияНужнаПомощьРасширеннаяПодсказка</name>
<id>555</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДекорацияНужнаПомощьКонтекстноеМеню</name>
<id>554</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>552</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>AlwaysHorizontal</group>
<behavior>PopUp</behavior>
<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>371</id>
@@ -3312,6 +3388,8 @@
<key>ru</key>
<value>ОК отмена</value>
</title>
<horizontalStretch>false</horizontalStretch>
<groupHorizontalAlign>Right</groupHorizontalAlign>
<extendedTooltip>
<name>ГруппаОКОтменаРасширеннаяПодсказка</name>
<id>372</id>
@@ -3336,6 +3414,7 @@
<key>ru</key>
<value>Панель внизу</value>
</title>
<horizontalStretch>true</horizontalStretch>
<extendedTooltip>
<name>ПанельВнизуРасширеннаяПодсказка</name>
<id>492</id>
@@ -3349,6 +3428,7 @@
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>AlwaysHorizontal</group>
<verticalAlign>Center</verticalAlign>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
@@ -132,8 +132,9 @@
Элементы.АдминистративноТерриториальноеДеление.Видимость = Ложь;
Элементы.ЗаполнитьПоПочтовомуИндексу.Видимость = Ложь;
Элементы.ЗагрузитьКлассификатор.Видимость = Ложь;
Элементы.СтраницаТипАдреса.Видимость = Ложь;
Элементы.ГруппаИнформация.Видимость = Ложь;
Элементы.НужнаПомощь.Видимость = Ложь;
Элементы.СтраницаТипАдреса.ТекущаяСтраница = Элементы.СтраницаДругойАдрес;
КонецЕсли;
@@ -156,6 +157,8 @@
УстановитьКлючИспользованияФормы();
СформироватьМенюДобавленияСтроенийИПомещений();
СформироватьТекстНужнаПомощь();
КонецПроцедуры
&НаКлиенте
@@ -930,6 +933,22 @@
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияНужнаПомощьОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
Если СтрНайти(НавигационнаяСсылкаФорматированнойСтроки, ".СведенияОбАдресномКлассификаторе") > 0
И ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
СтандартнаяОбработка = Ложь;
ПараметрыОткрытия = Новый Структура();
ПараметрыОткрытия.Вставить("Адрес", ПредставлениеАдреса);
МодульАдресныйКлассификаторКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("АдресныйКлассификаторКлиент");
МодульАдресныйКлассификаторКлиент .ОткрытьСведенияОбАдресномКлассификаторе(ПараметрыОткрытия);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
@@ -2966,7 +2985,6 @@
КонецПроцедуры
&НаКлиенте
Функция ПерваяБукваЗаглавная(Строка)
Возврат ВРег(Лев(Строка, 1)) + Сред(НРег(Строка), 2); // Использовать ТРег нельзя.
@@ -3394,14 +3412,20 @@
&НаКлиенте
Процедура ПоказатьПодсказкуПоТипАдреса()
Если РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(НаселенныйПунктДетально.AddressType) Тогда
Если МеждународныйФорматАдреса Тогда
Элементы.СтраницаТипАдреса.ТекущаяСтраница = Элементы.СтраницаДругойАдрес;
Элементы.НужнаПомощь.Видимость = Ложь;
ИначеЕсли РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(НаселенныйПунктДетально.AddressType) Тогда
Элементы.СтраницаТипАдреса.ТекущаяСтраница = Элементы.СтраницаМуниципальныйАдрес;
Элементы.НужнаПомощь.Видимость = Истина;
ИначеЕсли ЭтоАдминистративноТерриториальныйАдрес(НаселенныйПунктДетально.AddressType) Тогда
Элементы.СтраницаТипАдреса.ТекущаяСтраница = Элементы.СтраницаАдминистративноТерриториальныйАдрес;
Элементы.НужнаПомощь.Видимость = Истина;
Иначе
Элементы.СтраницаТипАдреса.ТекущаяСтраница = Элементы.СтраницаДругойАдрес;
Элементы.НужнаПомощь.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
@@ -3658,4 +3682,28 @@
КонецПроцедуры
&НаСервере
Процедура СформироватьТекстНужнаПомощь()
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
Возврат;
КонецЕсли;
Если ВидКонтактнойИнформации.ПроверятьКорректность И Не ВидКонтактнойИнформации.МожноИзменятьСпособРедактирования Тогда
Возврат;
КонецЕсли;
ДополнительныйТекст = Символы.ПС + Символы.ПС + НСтр("ru='Также адрес можно ввести в свободной форме (см. Еще - Адрес в свободной форме).'");
Если ВидКонтактнойИнформации.МожноИзменятьСпособРедактирования И ВидКонтактнойИнформации.ПроверятьКорректность Тогда
ДополнительныйТекст = ДополнительныйТекст + " "+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Для этого предварительно снять флажок ""Запрещать ввод некорректных адресов"" в виде контактной информации ""%1"".'"),
ВидКонтактнойИнформации.Ссылка);
КонецЕсли;
Элементы.ДекорацияНужнаПомощь.Заголовок = Новый ФорматированнаяСтрока(Элементы.ДекорацияНужнаПомощь.Заголовок, ДополнительныйТекст);
КонецПроцедуры
#КонецОбласти
@@ -540,7 +540,6 @@
ПоказыватьДиалог = ПоказыватьДиалогСканера;
ВыбранноеУстройство = ИмяУстройстваСканирования;
ПутьКПрограммеКонвертации = "convert.exe";
ПараметрСжатие = ?(ВРег(ФорматКартинки) = "JPG", КачествоJPG, СжатиеTIFFЧисло);
ПозицияДляВставки = Неопределено;
@@ -696,6 +696,29 @@
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="efd4e0a3-2f98-40ef-8089-c853cd588fa6">
<name>ХэшСумма</name>
<synonym>
<key>ru</key>
<value>Хэш сумма</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>32</length>
</stringQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Содержит хэш сумму заголовка электронного письма</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:StringValue"/>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<forms uuid="3713c76d-6ff7-4d45-9f15-d061bdf7dee2">
<name>ФормаДокумента</name>
<synonym>
@@ -872,6 +872,29 @@
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="4ec26e3d-6c38-4c90-9f91-c2235f8b4154">
<name>ХэшСумма</name>
<synonym>
<key>ru</key>
<value>Хэш сумма</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>32</length>
</stringQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Содержит хэш сумму заголовка электронного письма</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:StringValue"/>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<forms uuid="ce2a8ff8-94fd-4ce2-9caa-4711e9b79ee9">
<name>ФормаДокумента</name>
<synonym>
@@ -0,0 +1,139 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:form="http://g5.1c.ru/v8/dt/form">
<title>
<key>ru</key>
<value>Сведения об адресном классификаторе</value>
</title>
<items xsi:type="form:FormField">
<name>Отчет</name>
<id>3</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Отчет</segments>
</dataPath>
<titleLocation>None</titleLocation>
<extendedTooltip>
<name>ОтчетРасширеннаяПодсказка</name>
<id>5</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ОтчетКонтекстноеМеню</name>
<id>4</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<wrap>true</wrap>
<multiLine>true</multiLine>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize>
</extInfo>
</items>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:Button">
<name>Закрыть</name>
<id>1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<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>
<commandName>Form.StandardCommand.Close</commandName>
<representation>Auto</representation>
<defaultButton>true</defaultButton>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<check>true</check>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<horizontalAlign>Left</horizontalAlign>
</autoCommandBar>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<width>50</width>
<height>30</height>
<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>
<id>1</id>
<valueType>
<types>DataProcessorObject.РасширенныйВводКонтактнойИнформации</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<main>true</main>
</attributes>
<attributes>
<name>Отчет</name>
<title>
<key>ru</key>
<value>Отчет</value>
</title>
<id>2</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<parameters>
<name>Адрес</name>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:ObjectFormExtInfo"/>
</form:Form>
@@ -0,0 +1,113 @@
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
СформироватьОтчет();
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура СформироватьОтчет()
СистемнаяИнформация = Новый СистемнаяИнформация;
СведенияОЗагрузкеСубъектовРФ = АдресныйКлассификаторПовтИсп.СведенияОЗагрузкеСубъектовРФ();
КлассификаторДоступен = СведенияОЗагрузкеСубъектовРФ.Получить("КлассификаторДоступен");
ИспользоватьЗагруженные = СведенияОЗагрузкеСубъектовРФ.Получить("ИспользоватьЗагруженные");
Сведения = Новый Массив;
Если ЗначениеЗаполнено(Параметры.Адрес) Тогда
Сведения.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Адрес: %1'"), Параметры.Адрес));
Сведения.Добавить("");
КонецЕсли;
Если Не ИспользоватьЗагруженные Тогда
Сведения.Добавить(НСтр("ru='В адресном классификаторе отсутствуют загруженные адресные сведения.'"));
Иначе
Сведения.Добавить(НСтр("ru='Автоподбор адреса выполняется по загруженным данным для регионов:'"));
КонецЕсли;
СведенияОРегионах = Новый СписокЗначений;
Для Каждого СведенияОЗагрузкеСубъектаРФ Из СведенияОЗагрузкеСубъектовРФ Цикл
Значение = СведенияОЗагрузкеСубъектаРФ.Значение;
Если ТипЗнч(Значение) = Тип("Структура") И Значение.ИспользоватьЗагруженные Тогда
СведенияОРегионах.Добавить(Формат(СведенияОЗагрузкеСубъектаРФ.Ключ,"ЧЦ=2; ЧВН="), НСтр("ru='Загружен'") + " - " + Строка(Значение.ДатаЗагрузки));
КонецЕсли;
КонецЦикла;
СведенияОРегионах.СортироватьПоЗначению();
Для Каждого Регион Из СведенияОРегионах Цикл
ИмяРегиона = АдресныйКлассификатор.НаименованиеРегионаПоКоду(Регион.Значение);
СтрокаОтчета = Отчет +Регион.Значение + ", " + ИмяРегиона + ": " + Регион.Представление;
Сведения.Добавить(СтрокаОтчета);
КонецЦикла;
Сведения.Добавить("");
ИПППодключена = Ложь;
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей") Тогда
МодульИнтернетПоддержкаПользователей = ОбщегоНазначения.ОбщийМодуль("ИнтернетПоддержкаПользователей");
ИПППодключена = МодульИнтернетПоддержкаПользователей.ЗаполненыДанныеАутентификацииПользователяИнтернетПоддержки();
Если ИПППодключена Тогда
Сведения.Добавить(НСтр("ru='Подключен к Интернет-поддержке пользователей: Да.'"));
Иначе
Сведения.Добавить(НСтр("ru='Подключен к Интернет-поддержке пользователей: Нет.'"));
КонецЕсли;
Сведения.Добавить("");
КонецЕсли;
Если ИПППодключена Тогда
ИнформацияОСервисе = АдресныйКлассификаторПовтИсп.СервисКлассификатора1С(10);
URL = ИнформацияОСервисе.Сервер + ":" + ИнформацияОСервисе.Порт + "/"+ АдресныйКлассификаторСлужебный.ПрефиксВерсииЗапроса();
Если КлассификаторДоступен Тогда
Шаблон = НСтр("ru='Веб-сервис доступен.
|URL подключения: %1'");
Сведения.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, URL));
Иначе
Сведения.Добавить(НСтр("ru='Веб-сервис недоступен.'"));
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда
МодульПолучениеФайловИзИнтернета = ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернета");
Результат = МодульПолучениеФайловИзИнтернета.ДиагностикаСоединения(URL);
Сведения.Добавить(Результат.ЖурналДиагностики);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Сведения.Добавить("");
Сведения.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Конфигурация: %1'"), Метаданные.Представление()));
Сведения.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Версия конфигурации: %1'"), Метаданные.Версия));
Сведения.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Версия Библиотеки стандартных подсистем: %1'"), СтандартныеПодсистемыСервер.ВерсияБиблиотеки()));
Сведения.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Версия приложения: %1 (%2)'"), СистемнаяИнформация.ВерсияПриложения, СистемнаяИнформация.ТипПлатформы));
Сведения.Добавить("");
Сведения.Добавить(НСтр("ru='Системная информация'"));
Сведения.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Версия ОС: %1'"), СистемнаяИнформация.ВерсияОС));
Сведения.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Оперативная память: %1'"), СистемнаяИнформация.ОперативнаяПамять));
Сведения.Добавить("");
Сведения.Добавить(НСтр("ru='Отчет создан'") + ": " + ТекущаяДатаСеанса());
Отчет = СтрСоединить(Сведения, Символы.ПС);
КонецПроцедуры
#КонецОбласти
@@ -100,7 +100,7 @@
<row><Value>39</Value><Value>Калининградская</Value> <Value>обл</Value> <Value>000000</Value><Value>236-238</Value><Value>90c7181e-724f-41b3-b6c6-bd3ec7ae3f30</Value></row>
<row><Value>40</Value><Value>Калужская</Value> <Value>обл</Value> <Value>000000</Value><Value>248-249</Value><Value>18133adf-90c2-438e-88c4-62c41656de70</Value></row>
<row><Value>41</Value><Value>Камчатский</Value> <Value>край</Value> <Value>000000</Value><Value>683-684,688</Value><Value>d02f30fc-83bf-4c0f-ac2b-5729a866a207</Value></row>
<row><Value>42</Value><Value>Кемеровская</Value> <Value>обл</Value> <Value>000000</Value><Value>650-654</Value><Value>393aeccb-89ef-4a7e-ae42-08d5cebc2e30</Value></row>
<row><Value>42</Value><Value>Кемеровская область -</Value> <Value>Кузбасс</Value><Value>000000</Value><Value>650-654</Value><Value>393aeccb-89ef-4a7e-ae42-08d5cebc2e30</Value></row>
<row><Value>43</Value><Value>Кировская</Value> <Value>обл</Value> <Value>610000</Value><Value>610-613</Value><Value>0b940b96-103f-4248-850c-26b6c7296728</Value></row>
<row><Value>44</Value><Value>Костромская</Value> <Value>обл</Value> <Value>000000</Value><Value>156-157</Value><Value>15784a67-8cea-425b-834a-6afe0e3ed61c</Value></row>
<row><Value>45</Value><Value>Курганская</Value> <Value>обл</Value> <Value>641000</Value><Value>640-641</Value><Value>4a3d970f-520e-46b9-b16c-50d4ca7535a8</Value></row>
@@ -276,6 +276,15 @@
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<forms uuid="ef098c52-fcfa-4f0f-85b0-aba0d5aa46b2">
<name>СведенияОбАдресномКлассификаторе</name>
<synonym>
<key>ru</key>
<value>Сведения об адресном классификаторе</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<templates uuid="a671cb1e-b27a-44bb-a8ca-1388f099de2e">
<name>КлассификаторСубъектовРФ</name>
<synonym>
@@ -124,8 +124,10 @@
<value>Уникальный идентификатор источника</value>
</synonym>
<type>
<types>BusinessProcessRef</types>
<types>DocumentRef</types>
<types>ChartOfCalculationTypesRef</types>
<types>TaskRef</types>
<types>ChartOfCharacteristicTypesRef</types>
<types>ChartOfAccountsRef</types>
<types>CatalogRef</types>
@@ -178,6 +178,93 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>InformationRegister.ЗамерыКомментарииСтатистики</name>
<right>
@@ -3462,93 +3549,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>Constant.ИспользоватьАльтернативныйСерверДляЗагрузкиКурсовВалют</name>
<right>
@@ -14,6 +14,37 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>Catalog.РассылкиОтчетов.Command.СобытияРассылки</name>
<right>
@@ -76,37 +107,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<restrictionTemplate>
<name>ДляОбъекта(ПолеОбъекта)</name>
<condition>// ДляОбъекта(ПолеОбъекта = "")
@@ -235,6 +235,45 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>Catalog.НаборыДополнительныхРеквизитовИСведений</name>
<right>
@@ -4684,45 +4723,6 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>Constant.ИспользоватьАльтернативныйСерверДляЗагрузкиКурсовВалют</name>
<right>