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
+1399 -792

No files matched your search

@@ -383,7 +383,7 @@
<Value>GY</Value> <Value>GY</Value>
<Value>GUY</Value> <Value>GUY</Value>
<Value>328</Value> <Value>328</Value>
<Value>Республика Гайана</Value> <Value>Кооперативная Республика Гайана</Value>
</row> </row>
<row> <row>
<Value>ГАМБИЯ</Value> <Value>ГАМБИЯ</Value>
@@ -59,6 +59,7 @@
ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(ПараметрыШаблона, ДанныеЗаполнения, Истина); ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(ПараметрыШаблона, ДанныеЗаполнения, Истина);
ЗаполнитьЗначенияСвойств(ЭтотОбъект, ПараметрыШаблона); ЗаполнитьЗначенияСвойств(ЭтотОбъект, ПараметрыШаблона);
ФорматВложений = Новый ХранилищеЗначения(ПараметрыШаблона.ФорматыВложений);
Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура")
И ДанныеЗаполнения.Свойство("ПредназначенДляSMS") И ДанныеЗаполнения.Свойство("ПредназначенДляSMS")
@@ -195,7 +195,7 @@
ОписаниеИсточника = КомандыПечати.ПолучитьЭлементы().Добавить(); ОписаниеИсточника = КомандыПечати.ПолучитьЭлементы().Добавить();
ОписаниеИсточника.Владелец = ИдентификаторИсточникаКомандПечати; ОписаниеИсточника.Владелец = ИдентификаторИсточникаКомандПечати;
ОписаниеИсточника.Представление = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ИдентификаторИсточникаКомандПечати, "Синоним"); ОписаниеИсточника.Представление = ИсточникКомандПечати.Представление();
ОписаниеИсточника.Видимость = 2; ОписаниеИсточника.Видимость = 2;
ОписаниеИсточника.НавигационнаяСсылка = "e1cib/list/" + ИдентификаторИсточникаКомандПечати.ПолноеИмя; ОписаниеИсточника.НавигационнаяСсылка = "e1cib/list/" + ИдентификаторИсточникаКомандПечати.ПолноеИмя;
@@ -3152,6 +3152,24 @@
<common>true</common> <common>true</common>
</edit> </edit>
</attributes> </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> <formCommands>
<name>Отправить</name> <name>Отправить</name>
<title> <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,7 +3042,7 @@
ПараметрыПисьма.Вставить("ИдентификаторыОснований", Объект.ИдентификаторыОснований); ПараметрыПисьма.Вставить("ИдентификаторыОснований", Объект.ИдентификаторыОснований);
КонецЕсли; КонецЕсли;
СоотвВложения = Новый Соответствие; МассивВложений = Новый Массив;
ДанныеПрисоединенныхФайловПисьма = ДанныеПрисоединенныхФайловПисьмаОбъект(Объект); ДанныеПрисоединенныхФайловПисьма = ДанныеПрисоединенныхФайловПисьмаОбъект(Объект);
ИмяОбъектаМетаданных = ДанныеПрисоединенныхФайловПисьма.ИмяСправочникаПрисоединенныхФайлов; ИмяОбъектаМетаданных = ДанныеПрисоединенныхФайловПисьма.ИмяСправочникаПрисоединенныхФайлов;
@@ -3095,16 +3083,17 @@
НомерОтображаемогоВложения = 1; НомерОтображаемогоВложения = 1;
Пока ВыборкаВложения.Следующий() Цикл Пока ВыборкаВложения.Следующий() Цикл
ДобавитьВложениеПисьмоЕслиНеобходимо(ТаблицаПисьмаВложения, СоотвВложения, НомерОтображаемогоВложения); ДобавитьВложениеПисьмоЕслиНеобходимо(ТаблицаПисьмаВложения, МассивВложений, НомерОтображаемогоВложения);
ИмяФайла = ВыборкаВложения.ПолноеНаименование + ?(ВыборкаВложения.Расширение = "", "", "." + ВыборкаВложения.Расширение); ИмяФайла = ВыборкаВложения.ПолноеНаименование + ?(ВыборкаВложения.Расширение = "", "", "." + ВыборкаВложения.Расширение);
Если ПустаяСтрока(ВыборкаВложения.ИДФайлаЭлектронногоПисьма) Тогда Если ПустаяСтрока(ВыборкаВложения.ИДФайлаЭлектронногоПисьма) Тогда
СоотвВложения.Вставить(ИмяФайла, РаботаСФайлами.ДвоичныеДанныеФайла(ВыборкаВложения.Ссылка)); ДобавитьВложение(МассивВложений, ИмяФайла, РаботаСФайлами.ДвоичныеДанныеФайла(ВыборкаВложения.Ссылка));
НомерОтображаемогоВложения = НомерОтображаемогоВложения + 1; НомерОтображаемогоВложения = НомерОтображаемогоВложения + 1;
Иначе Иначе
СтруктураДанныеВложения = Новый Структура; ДобавитьВложение(МассивВложений,
СтруктураДанныеВложения.Вставить("ДвоичныеДанные", РаботаСФайлами.ДвоичныеДанныеФайла(ВыборкаВложения.Ссылка)); ИмяФайла,
СтруктураДанныеВложения.Вставить("Идентификатор", ВыборкаВложения.ИДФайлаЭлектронногоПисьма); РаботаСФайлами.ДвоичныеДанныеФайла(ВыборкаВложения.Ссылка),
СоотвВложения.Вставить(ИмяФайла, СтруктураДанныеВложения); ВыборкаВложения.ИДФайлаЭлектронногоПисьма);
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
@@ -3113,9 +3102,8 @@
ЭлектронныеПодписиВладельца = МодульЭлектроннаяПодпись.УстановленныеПодписи(ВыборкаВложения.Ссылка); ЭлектронныеПодписиВладельца = МодульЭлектроннаяПодпись.УстановленныеПодписи(ВыборкаВложения.Ссылка);
НомерСтроки = 1; НомерСтроки = 1;
Для каждого ЭП Из ЭлектронныеПодписиВладельца Цикл Для каждого ЭП Из ЭлектронныеПодписиВладельца Цикл
СоотвВложения.Вставить(ВыборкаВложения.ПолноеНаименование ИмяФайла = ВыборкаВложения.ПолноеНаименование + "-DS("+ НомерСтроки + ")." + РасширениеДляФайловПодписи;
+ "-DS("+ НомерСтроки + ")." ДобавитьВложение(МассивВложений, ИмяФайла, ЭП.Подпись);
+ РасширениеДляФайловПодписи, ЭП.Подпись);
НомерСтроки = НомерСтроки + 1; НомерСтроки = НомерСтроки + 1;
КонецЦикла; КонецЦикла;
@@ -3125,12 +3113,12 @@
Пока НомерОтображаемогоВложения <= КоличествоВложений Цикл Пока НомерОтображаемогоВложения <= КоличествоВложений Цикл
ДобавитьВложениеПисьмоЕслиНеобходимо(ТаблицаПисьмаВложения, СоотвВложения, НомерОтображаемогоВложения); ДобавитьВложениеПисьмоЕслиНеобходимо(ТаблицаПисьмаВложения, МассивВложений, НомерОтображаемогоВложения);
НомерОтображаемогоВложения = НомерОтображаемогоВложения + 1; НомерОтображаемогоВложения = НомерОтображаемогоВложения + 1;
КонецЦикла; КонецЦикла;
ПараметрыПисьма.Вставить("Вложения", СоотвВложения); ПараметрыПисьма.Вставить("Вложения", МассивВложений);
ПараметрыПисьма.Вставить("ОбрабатыватьТексты", Ложь); ПараметрыПисьма.Вставить("ОбрабатыватьТексты", Ложь);
Если Объект.УведомитьОДоставке Тогда Если Объект.УведомитьОДоставке Тогда
@@ -3145,18 +3133,18 @@
КонецФункции КонецФункции
Процедура ДобавитьВложениеПисьмоЕслиНеобходимо(ТаблицаПисьмаВложения, СоотвВложения, НомерОтображаемогоВложения) Процедура ДобавитьВложениеПисьмоЕслиНеобходимо(ТаблицаПисьмаВложения, МассивВложений, НомерОтображаемогоВложения)
НайденнаяСтрока = ТаблицаПисьмаВложения.Найти(НомерОтображаемогоВложения, "ПорядковыйНомерВоВложениях"); НайденнаяСтрока = ТаблицаПисьмаВложения.Найти(НомерОтображаемогоВложения, "ПорядковыйНомерВоВложениях");
Пока НайденнаяСтрока <> Неопределено Цикл Пока НайденнаяСтрока <> Неопределено Цикл
ДобавитьВложениеПисьмоИсходящееПисьмо(СоотвВложения, НайденнаяСтрока.Письмо); ДобавитьВложениеПисьмоИсходящееПисьмо(МассивВложений, НайденнаяСтрока.Письмо);
НомерОтображаемогоВложения = НомерОтображаемогоВложения + 1; НомерОтображаемогоВложения = НомерОтображаемогоВложения + 1;
НайденнаяСтрока = ТаблицаПисьмаВложения.Найти(НомерОтображаемогоВложения, "ПорядковыйНомерВоВложениях"); НайденнаяСтрока = ТаблицаПисьмаВложения.Найти(НомерОтображаемогоВложения, "ПорядковыйНомерВоВложениях");
КонецЦикла КонецЦикла
КонецПроцедуры КонецПроцедуры
Процедура ДобавитьВложениеПисьмоИсходящееПисьмо(СоотвВложения, Письмо); Процедура ДобавитьВложениеПисьмоИсходящееПисьмо(МассивВложений, Письмо);
СтруктураВложение = Новый Структура; СтруктураВложение = Новый Структура;
@@ -3167,15 +3155,34 @@
КонецЕсли; КонецЕсли;
Представление = ПредставлениеПисьма(ДанныеИнтернетПочтовогоСообщения.ИнтернетПочтовоеСообщение.Тема, Представление = ПредставлениеПисьма(ДанныеИнтернетПочтовогоСообщения.ИнтернетПочтовоеСообщение.Тема,
ДанныеИнтернетПочтовогоСообщения.ДатаПисьма); ДанныеИнтернетПочтовогоСообщения.ДатаПисьма);
ИмяФайла = Представление + ".eml"; ИмяФайла = Представление + ".eml";
СтруктураВложение.Вставить("Кодировка", Письмо.Кодировка); СтруктураВложение.Вставить("Кодировка", Письмо.Кодировка);
СтруктураВложение.Вставить("ДвоичныеДанные", ДанныеИнтернетПочтовогоСообщения.ИнтернетПочтовоеСообщение); СтруктураВложение.Вставить("АдресВоВременномХранилище",
ПоместитьВоВременноеХранилище(ДанныеИнтернетПочтовогоСообщения.ИнтернетПочтовоеСообщение,
Новый УникальныйИдентификатор()));
СтруктураВложение.Вставить("ТипСодержимого","message/rfc822"); СтруктураВложение.Вставить("ТипСодержимого","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 Тогда
Возврат "Все";
КонецЕсли;
СтрокаТипВзаимодействия = Прав(ИмяКоманды, СтрДлина(ИмяКоманды) - НайденнаяПозиция);
Если СписокОтборовПоТипуВзаимодействий(ТолькоПочта).НайтиПоЗначению(СтрокаТипВзаимодействия) = Неопределено Тогда
Возврат "Все";
КонецЕсли;
Возврат СтрокаТипВзаимодействия;
КонецФункции
////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////
// Работа с предметами взаимодействий. // Работа с предметами взаимодействий.
@@ -4890,26 +4855,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)
Если Не ЕстьВозможностьФильтрацииСодержимого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'", ОбщегоНазначения.КодОсновногоЯзыка()); СтрокаСообщения = НСтр("ru = 'Начало процесса обмена данными для узла %1'", ОбщегоНазначения.КодОсновногоЯзыка());
СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, СтруктураНастроекОбмена.УзелИнформационнойБазыНаименование); СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, СтруктураНастроекОбмена.УзелИнформационнойБазыНаименование);
@@ -4192,7 +4191,7 @@
Иначе Иначе
// ИНИЦИАЛИЗАЦИЯ ОБМЕНА ДАННЫМИ // ИНИЦИАЛИЗАЦИЯ ОБМЕНА ДАННЫМИ
СтруктураНастроекОбмена = ОбменДаннымиПовтИсп.НастройкиОбменаДанными(Выборка.НастройкаВыполненияОбмена, Выборка.НомерСтроки); СтруктураНастроекОбмена = НастройкиОбменаДанными(Выборка.НастройкаВыполненияОбмена, Выборка.НомерСтроки);
// Если настройка содержит ошибки, то обмен не производим; статус "Отменено". // Если настройка содержит ошибки, то обмен не производим; статус "Отменено".
Если СтруктураНастроекОбмена.Отказ Тогда Если СтруктураНастроекОбмена.Отказ Тогда
@@ -4205,7 +4204,6 @@
КонецЕсли; КонецЕсли;
СтруктураНастроекОбмена.РезультатВыполненияОбмена = Неопределено; СтруктураНастроекОбмена.РезультатВыполненияОбмена = Неопределено;
СтруктураНастроекОбмена.ДатаНачала = ТекущаяДатаСеанса();
// Добавляем в ЖР информацию о процессе обмена данными. // Добавляем в ЖР информацию о процессе обмена данными.
СтрокаСообщения = НСтр("ru = 'Начало процесса обмена данными по настройке %1'", ОбщегоНазначения.КодОсновногоЯзыка()); СтрокаСообщения = НСтр("ru = 'Начало процесса обмена данными по настройке %1'", ОбщегоНазначения.КодОсновногоЯзыка());
@@ -4301,10 +4299,9 @@
Результат.Вставить("ИмяФайлаСообщенияОбмена", ""); Результат.Вставить("ИмяФайлаСообщенияОбмена", "");
Результат.Вставить("ИдентификаторФайлаПакетаДанных", Неопределено); Результат.Вставить("ИдентификаторФайлаПакетаДанных", Неопределено);
СтруктураНастроекОбмена = ОбменДаннымиПовтИсп.НастройкиТранспортаУзлаПланаОбмена(УзелИнформационнойБазы, ВидТранспортаСообщенийОбмена); СтруктураНастроекОбмена = НастройкиТранспортаОбмена(УзелИнформационнойБазы, ВидТранспортаСообщенийОбмена);
СтруктураНастроекОбмена.РезультатВыполненияОбмена = Неопределено; СтруктураНастроекОбмена.РезультатВыполненияОбмена = Неопределено;
СтруктураНастроекОбмена.ДатаНачала = ТекущаяДатаСеанса();
// Если настройка содержит ошибки, то получение сообщения обмена не производим; статус "Отменено". // Если настройка содержит ошибки, то получение сообщения обмена не производим; статус "Отменено".
Если СтруктураНастроекОбмена.Отказ Тогда Если СтруктураНастроекОбмена.Отказ Тогда
@@ -5140,7 +5137,9 @@
КонецЕсли; КонецЕсли;
СтруктураНастроекОбмена.РезультатВыполненияОбмена = Неопределено; СтруктураНастроекОбмена.РезультатВыполненияОбмена = Неопределено;
СтруктураНастроекОбмена.ДатаНачала = ?(ПараметрыОбмена.ДатаНачалаОперации = Неопределено, ТекущаяДатаСеанса(), ПараметрыОбмена.ДатаНачалаОперации); Если ПараметрыОбмена.ДатаНачалаОперации <> Неопределено Тогда
СтруктураНастроекОбмена.ДатаНачала = ПараметрыОбмена.ДатаНачалаОперации;
КонецЕсли;
СтрокаСообщения = НСтр("ru = 'Начало процесса обмена данными для узла %1'", ОбщегоНазначения.КодОсновногоЯзыка()); СтрокаСообщения = НСтр("ru = 'Начало процесса обмена данными для узла %1'", ОбщегоНазначения.КодОсновногоЯзыка());
СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, СтруктураНастроекОбмена.УзелИнформационнойБазыНаименование); СтрокаСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщения, СтруктураНастроекОбмена.УзелИнформационнойБазыНаименование);
@@ -5290,7 +5289,6 @@
КонецЕсли; КонецЕсли;
СтруктураНастроекОбмена.РезультатВыполненияОбмена = Неопределено; СтруктураНастроекОбмена.РезультатВыполненияОбмена = Неопределено;
СтруктураНастроекОбмена.ДатаНачала = ТекущаяДатаСеанса();
СтрокаСообщения = НСтр("ru = 'Начало процесса обмена данными для узла %1'", ОбщегоНазначения.КодОсновногоЯзыка()); СтрокаСообщения = НСтр("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.ВосстановитьПравилаИзВнутреннегоФормата(); ОбработкаОбменаДаннымиXML.ВосстановитьПравилаИзВнутреннегоФормата();
Исключение Исключение
ЗаписьЖурналаРегистрацииОбменаДанными(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()), СтруктураНастроекОбмена, Истина); ЗаписьЖурналаРегистрацииОбменаДанными(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), СтруктураНастроекОбмена, Истина);
ЗафиксироватьЗавершениеИнициализацииОбмена(СтруктураНастроекОбмена); ЗафиксироватьЗавершениеИнициализацииОбмена(СтруктураНастроекОбмена);
Возврат; Возврат;
КонецПопытки; КонецПопытки;
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы"; Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.0.2.269"; Описание.Версия = "3.0.2.274";
Описание.ИдентификаторИнтернетПоддержки = "SSL"; Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно"; Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0"; Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -7280,7 +7280,7 @@
ОтменитьТранзакцию(); ОтменитьТранзакцию();
КонецЦикла; КонецЦикла;
ДобавляемоеЧислоПопыток = ДобавляемоеЧислоПопыток(ОбработчикОбновления, КонтекстОбработчика); ДобавляемоеЧислоПопыток = ДобавляемоеЧислоПопыток(ОбработчикОбновления, КонтекстОбработчика, Истина);
ОбработчикОбновления.ЧислоПопыток = ОбработчикОбновления.ЧислоПопыток + ДобавляемоеЧислоПопыток; ОбработчикОбновления.ЧислоПопыток = ОбработчикОбновления.ЧислоПопыток + ДобавляемоеЧислоПопыток;
ПодробноеПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); ПодробноеПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
@@ -7496,11 +7496,12 @@
// Параметры: // Параметры:
// ОбработчикОбновления - СтрокаДереваЗначений - обработчик обновления в виде строки дерева обработчиков. // ОбработчикОбновления - СтрокаДереваЗначений - обработчик обновления в виде строки дерева обработчиков.
// КонтекстОбработчика - Структура - см. НовыйКонтекстОбработчика(). // КонтекстОбработчика - Структура - см. НовыйКонтекстОбработчика().
// Ошибка - Булево - Истина, если в обработчике обновления возникла ошибка.
// //
// Возвращаемое значение: // Возвращаемое значение:
// Число - 0, если это многопоточный обработчик, которому не были переданы данные для обновления, иначе 1. // Число - 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; Индекс = Объект.КонтактнаяИнформация.Количество() -1;
Пока Индекс >= 0 Цикл Пока Индекс >= 0 Цикл
СтрокаТаблицы = Объект.КонтактнаяИнформация.Получить(Индекс); СтрокаТаблицы = Объект.КонтактнаяИнформация.Получить(Индекс);
Если ПараметрыКонтактнойИнформации.СкрываемыеВиды.Найти(СтрокаТаблицы.Вид) = Неопределено Тогда Если СкрываемыеВиды.Найти(СтрокаТаблицы.Вид) = Неопределено Тогда
Объект.КонтактнаяИнформация.Удалить(СтрокаТаблицы); Объект.КонтактнаяИнформация.Удалить(СтрокаТаблицы);
КонецЕсли; КонецЕсли;
Индекс = Индекс - 1; Индекс = Индекс - 1;
@@ -3655,6 +3658,25 @@
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Инициализация элементов на форме объект-владельца контактной информации. // Инициализация элементов на форме объект-владельца контактной информации.
Процедура ОпределитьПараметрыКонтактнойИнформацииПоВладельцу(Форма, Объект, ПараметрыКонтактнойИнформации, ЭтоПараметрыОсновногоОбъекта, СкрываемыеВиды)
СкрываемыеВиды = Новый Массив;
Для каждого ПараметрКонтактнойИнформации Из Форма.ПараметрыКонтактнойИнформации Цикл
Если ПараметрКонтактнойИнформации.Значение.Владелец = Объект.Ссылка
Или Форма.ПараметрыКонтактнойИнформации.Количество() = 1 Тогда
ПараметрыКонтактнойИнформации = ПараметрКонтактнойИнформации.Значение;
СкрываемыеВиды = ПараметрыКонтактнойИнформации.СкрываемыеВиды;
Возврат;
КонецЕсли;
ЭтоПараметрыОсновногоОбъекта = Ложь;
КонецЦикла;
КонецПроцедуры
Процедура СоздатьРеквизитыКонтактнойИнформации(Знач Форма, Знач ДобавляемыеРеквизиты, Знач ИмяОбъекта, Знач ИсключаемыеВиды, Процедура СоздатьРеквизитыКонтактнойИнформации(Знач Форма, Знач ДобавляемыеРеквизиты, Знач ИмяОбъекта, Знач ИсключаемыеВиды,
Знач КонтактнаяИнформация, Знач ОтложеннаяИнициализация, Знач ОбработкаНавигационнойСсылки) Знач КонтактнаяИнформация, Знач ОтложеннаяИнициализация, Знач ОбработкаНавигационнойСсылки)
@@ -3743,7 +3765,7 @@
КонецПроцедуры КонецПроцедуры
Процедура СкрытьКонтактнуюИнформацию(Знач Форма, Знач ДобавляемыеРеквизиты, ПараметрыКонтактнойИнформации, Знач СсылкаНаОбъект) Процедура СкрытьКонтактнуюИнформацию(Знач Форма, Знач ДобавляемыеРеквизиты, ПараметрыВывода)
Если ДобавляемыеРеквизиты.Количество() > 0 Тогда Если ДобавляемыеРеквизиты.Количество() > 0 Тогда
Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты); Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
@@ -3755,11 +3777,15 @@
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
ПараметрыКонтактнойИнформации.ДобавленныеРеквизиты = ДобавленныеРеквизиты; ПараметрыКонтактнойИнформации = ПараметрыВыводаКонтактнойИнформации(Форма, ПараметрыВывода.ИмяЭлементаДляРазмещения,
ПараметрыКонтактнойИнформации.Владелец = СсылкаНаОбъект; ПараметрыВывода.ПоложениеЗаголовкаКИ, ПараметрыВывода.ОтложеннаяИнициализация,
ПараметрыВывода.ИсключаемыеВиды, ПараметрыВывода.СкрываемыеВиды);
Если Не ПустаяСтрока(ПараметрыКонтактнойИнформации.ИмяЭлементаДляРазмещения) Тогда ПараметрыКонтактнойИнформации.ДобавленныеРеквизиты = ДобавленныеРеквизиты;
Форма.Элементы[ПараметрыКонтактнойИнформации.ИмяЭлементаДляРазмещения].Видимость = Ложь; ПараметрыКонтактнойИнформации.Владелец = ПараметрыВывода.СсылкаНаОбъект;
Если Не ПустаяСтрока(ПараметрыВывода.ИмяЭлементаДляРазмещения) Тогда
Форма.Элементы[ПараметрыВывода.ИмяЭлементаДляРазмещения].Видимость = Ложь;
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -91,6 +91,10 @@
НомерСтрокиОкончание = ТабличныйДокумент.ВысотаТаблицы; НомерСтрокиОкончание = ТабличныйДокумент.ВысотаТаблицы;
ТабличныйДокумент.Область(НомерСтрокиНачало, , НомерСтрокиОкончание, ).Имя = ИмяОбласти; ТабличныйДокумент.Область(НомерСтрокиНачало, , НомерСтрокиОкончание, ).Имя = ИмяОбласти;
Если Не НастройкиПечати().ИспользоватьПодписиИПечати Тогда
Возврат;
КонецЕсли;
Для Каждого Рисунок Из ТабличныйДокумент.Рисунки Цикл Для Каждого Рисунок Из ТабличныйДокумент.Рисунки Цикл
ЭтоПодписьИПечать = Ложь; ЭтоПодписьИПечать = Ложь;
Для Каждого ИмяОбластиСПодписьюИПечатью Из ПрефиксыИменОбластейСПодписьюИПечатью() Цикл Для Каждого ИмяОбластиСПодписьюИПечатью Из ПрефиксыИменОбластейСПодписьюИПечатью() Цикл
@@ -2636,18 +2640,32 @@
КонецПроцедуры КонецПроцедуры
Процедура УбратьПодписьИПечать(ТабличныйДокумент) Экспорт Процедура УбратьПодписьИПечать(ТабличныйДокумент, СкрыватьПодписиИПечати = Ложь) Экспорт
УдаляемыеРисунки = Новый Массив;
Для Каждого Рисунок Из ТабличныйДокумент.Рисунки Цикл Для Каждого Рисунок Из ТабличныйДокумент.Рисунки Цикл
Если Рисунок.ТипРисунка = ТипРисункаТабличногоДокумента.Картинка И СтрНайти(Рисунок.Имя, "_Документ_") > 0 Тогда Если ЭтоПодписьИлиПечать(Рисунок) Тогда
Рисунок.Картинка = Новый Картинка; Рисунок.Картинка = Новый Картинка;
Рисунок.Линия = Новый Линия(ТипЛинииРисункаТабличногоДокумента.НетЛинии); Рисунок.Линия = Новый Линия(ТипЛинииРисункаТабличногоДокумента.НетЛинии);
Если СкрыватьПодписиИПечати Тогда
УдаляемыеРисунки.Добавить(Рисунок);
КонецЕсли;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
Для Каждого Рисунок Из УдаляемыеРисунки Цикл
ТабличныйДокумент.Рисунки.Удалить(Рисунок);
КонецЦикла;
КонецПроцедуры КонецПроцедуры
Функция ПрефиксыИменОбластейСПодписьюИПечатью() Функция ЭтоПодписьИлиПечать(Рисунок) Экспорт
Возврат Рисунок.ТипРисунка = ТипРисункаТабличногоДокумента.Картинка И СтрНайти(Рисунок.Имя, "_Документ_") > 0;
КонецФункции
Функция ПрефиксыИменОбластейСПодписьюИПечатью() Экспорт
Результат = Новый Массив; Результат = Новый Массив;
Результат.Добавить("Печать"); Результат.Добавить("Печать");
@@ -2964,4 +2982,14 @@
КонецФункции КонецФункции
Функция НастройкиПечати() Экспорт
Настройки = Новый Структура;
Настройки.Вставить("ИспользоватьПодписиИПечати", Истина);
Настройки.Вставить("СкрыватьПодписиИПечатиДляРедактирования", Ложь);
Возврат Настройки;
КонецФункции
#КонецОбласти #КонецОбласти
@@ -957,6 +957,10 @@
ТаблицаИдентификаторов.Колонки.Добавить("ИдентификаторНаСервере", КвалификаторСтроки150); ТаблицаИдентификаторов.Колонки.Добавить("ИдентификаторНаСервере", КвалификаторСтроки150);
ТаблицаИдентификаторов.Колонки.Добавить("ИдентификаторПисьма", КвалификаторСтроки150); ТаблицаИдентификаторов.Колонки.Добавить("ИдентификаторПисьма", КвалификаторСтроки150);
ТаблицаПустыхИдентификаторов = Новый ТаблицаЗначений;
ТаблицаПустыхИдентификаторов.Колонки.Добавить("ИдентификаторНаСервере", КвалификаторСтроки150);
ТаблицаПустыхИдентификаторов.Колонки.Добавить("ХэшСумма", ОбщегоНазначения.ОписаниеТипаСтрока(32));
ДатаЗагрузкиПисем = ТекущаяДатаСеанса(); ДатаЗагрузкиПисем = ТекущаяДатаСеанса();
Для каждого ИмяАктивнойПапки Из МассивИменАктивныхПапок Цикл Для каждого ИмяАктивнойПапки Из МассивИменАктивныхПапок Цикл
@@ -981,10 +985,12 @@
Продолжить; Продолжить;
КонецПопытки; КонецПопытки;
МассивЗаголовковСПустымИдентификатором = Новый Массив;
ТаблицаИдентификаторов.Очистить(); ТаблицаИдентификаторов.Очистить();
Для Каждого ЗаголовокПисьма Из ЗаголовкиПисемДляЗагрузки Цикл Для Каждого ЗаголовокПисьма Из ЗаголовкиПисемДляЗагрузки Цикл
Если ПустаяСтрока(ЗаголовокПисьма.ИдентификаторСообщения) Тогда Если ПустаяСтрока(ЗаголовокПисьма.ИдентификаторСообщения) Тогда
МассивЗаголовковСПустымИдентификатором.Добавить(ЗаголовокПисьма);
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
@@ -994,44 +1000,99 @@
КонецЦикла; КонецЦикла;
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| ИдентификаторыПисемКЗагрузке.ИдентификаторПисьма,
| ИдентификаторыПисемКЗагрузке.ИдентификаторНаСервере
|ПОМЕСТИТЬ ИдентификаторыПисемКЗагрузке
|ИЗ
| &ИдентификаторыПисемКЗагрузке КАК ИдентификаторыПисемКЗагрузке
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ИдентификаторыПисемКЗагрузке.ИдентификаторПисьма,
| ИдентификаторыПисемКЗагрузке.ИдентификаторНаСервере
|ИЗ
| ИдентификаторыПисемКЗагрузке КАК ИдентификаторыПисемКЗагрузке
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронноеПисьмоВходящее КАК ЭлектронноеПисьмоВходящее
| ПО ИдентификаторыПисемКЗагрузке.ИдентификаторПисьма = ЭлектронноеПисьмоВходящее.ИдентификаторСообщения
| И (ЭлектронноеПисьмоВходящее.УчетнаяЗапись = &УчетнаяЗапись)
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее
| ПО (ЭлектронноеПисьмоИсходящее.УчетнаяЗапись = &УчетнаяЗапись)
| И (ИдентификаторыПисемКЗагрузке.ИдентификаторПисьма = ЭлектронноеПисьмоИсходящее.ИдентификаторСообщения
| ИЛИ ИдентификаторыПисемКЗагрузке.ИдентификаторПисьма = ЭлектронноеПисьмоИсходящее.ИдентификаторСообщенияОтправкаIMAP)
|ГДЕ
| ЭлектронноеПисьмоВходящее.Ссылка ЕСТЬ NULL
| И ЭлектронноеПисьмоИсходящее.Ссылка ЕСТЬ NULL";
Запрос.УстановитьПараметр("ИдентификаторыПисемКЗагрузке", ТаблицаИдентификаторов);
Запрос.УстановитьПараметр("УчетнаяЗапись", ДанныеУчетнойЗаписи.Ссылка);
ИдЗагружать = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("ИдентификаторНаСервере");
ПолученоПисемВТекущемПочтовомЯщике = 0; ПолученоПисемВТекущемПочтовомЯщике = 0;
ПолучитьПисьмаПоМассивуИдентификаторов(Почта,
ДанныеУчетнойЗаписи, Если ТаблицаИдентификаторов.Количество() > 0 Тогда
ИдЗагружать,
ПолученоПисемВТекущемПочтовомЯщике, Запрос = Новый Запрос;
СтруктураМассивовСозданныхПисем); Запрос.Текст = "
|ВЫБРАТЬ
| ИдентификаторыПисемКЗагрузке.ИдентификаторПисьма,
| ИдентификаторыПисемКЗагрузке.ИдентификаторНаСервере
|ПОМЕСТИТЬ ИдентификаторыПисемКЗагрузке
|ИЗ
| &ИдентификаторыПисемКЗагрузке КАК ИдентификаторыПисемКЗагрузке
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ИдентификаторыПисемКЗагрузке.ИдентификаторПисьма,
| ИдентификаторыПисемКЗагрузке.ИдентификаторНаСервере
|ИЗ
| ИдентификаторыПисемКЗагрузке КАК ИдентификаторыПисемКЗагрузке
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронноеПисьмоВходящее КАК ЭлектронноеПисьмоВходящее
| ПО ИдентификаторыПисемКЗагрузке.ИдентификаторПисьма = ЭлектронноеПисьмоВходящее.ИдентификаторСообщения
| И (ЭлектронноеПисьмоВходящее.УчетнаяЗапись = &УчетнаяЗапись)
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее
| ПО (ЭлектронноеПисьмоИсходящее.УчетнаяЗапись = &УчетнаяЗапись)
| И (ИдентификаторыПисемКЗагрузке.ИдентификаторПисьма = ЭлектронноеПисьмоИсходящее.ИдентификаторСообщения
| ИЛИ ИдентификаторыПисемКЗагрузке.ИдентификаторПисьма = ЭлектронноеПисьмоИсходящее.ИдентификаторСообщенияОтправкаIMAP)
|ГДЕ
| ЭлектронноеПисьмоВходящее.Ссылка ЕСТЬ NULL
| И ЭлектронноеПисьмоИсходящее.Ссылка ЕСТЬ NULL";
Запрос.УстановитьПараметр("ИдентификаторыПисемКЗагрузке", ТаблицаИдентификаторов);
Запрос.УстановитьПараметр("УчетнаяЗапись", ДанныеУчетнойЗаписи.Ссылка);
ИдЗагружать = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("ИдентификаторНаСервере");
ПолучитьПисьмаПоМассивуИдентификаторов(Почта,
ДанныеУчетнойЗаписи,
ИдЗагружать,
ПолученоПисемВТекущемПочтовомЯщике,
СтруктураМассивовСозданныхПисем);
КонецЕсли;
Если МассивЗаголовковСПустымИдентификатором.Количество() > 0 Тогда
ТаблицаПустыхИдентификаторов.Очистить();
Для Каждого ЗаголовокПисьма Из МассивЗаголовковСПустымИдентификатором Цикл
НоваяСтрока = ТаблицаПустыхИдентификаторов.Добавить();
НоваяСтрока.ИдентификаторНаСервере = ЗаголовокПисьма.Идентификатор[0];
НоваяСтрока.ХэшСумма = ХэшСуммаПочтовогоСообщения(ЗаголовокПисьма);
КонецЦикла;
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| ИдентификаторыПисемКЗагрузке.ХэшСумма,
| ИдентификаторыПисемКЗагрузке.ИдентификаторНаСервере
|ПОМЕСТИТЬ ИдентификаторыПисемКЗагрузке
|ИЗ
| &ИдентификаторыПисемКЗагрузке КАК ИдентификаторыПисемКЗагрузке
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ИдентификаторыПисемКЗагрузке.ХэшСумма,
| ИдентификаторыПисемКЗагрузке.ИдентификаторНаСервере
|ИЗ
| ИдентификаторыПисемКЗагрузке КАК ИдентификаторыПисемКЗагрузке
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронноеПисьмоВходящее КАК ЭлектронноеПисьмоВходящее
| ПО ИдентификаторыПисемКЗагрузке.ХэшСумма = ЭлектронноеПисьмоВходящее.ХэшСумма
| И (ЭлектронноеПисьмоВходящее.УчетнаяЗапись = &УчетнаяЗапись)
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее
| ПО (ЭлектронноеПисьмоИсходящее.УчетнаяЗапись = &УчетнаяЗапись)
| И (ИдентификаторыПисемКЗагрузке.ХэшСумма = ЭлектронноеПисьмоИсходящее.ХэшСумма)
|ГДЕ
| ЭлектронноеПисьмоВходящее.Ссылка ЕСТЬ NULL
| И ЭлектронноеПисьмоИсходящее.Ссылка ЕСТЬ NULL";
Запрос.УстановитьПараметр("ИдентификаторыПисемКЗагрузке", ТаблицаПустыхИдентификаторов);
Запрос.УстановитьПараметр("УчетнаяЗапись", ДанныеУчетнойЗаписи.Ссылка);
ИдЗагружать = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("ИдентификаторНаСервере");
ПолучитьПисьмаПоМассивуИдентификаторов(Почта,
ДанныеУчетнойЗаписи,
ИдЗагружать,
ПолученоПисемВТекущемПочтовомЯщике,
СтруктураМассивовСозданныхПисем);
КонецЕсли;
Получено = Получено + ПолученоПисемВТекущемПочтовомЯщике; Получено = Получено + ПолученоПисемВТекущемПочтовомЯщике;
КонецЦикла; КонецЦикла;
@@ -1608,6 +1669,7 @@
Письмо.ИдентификаторОснования = ИзПисьмаПолучитьИдентификаторОснования(Сообщение); Письмо.ИдентификаторОснования = ИзПисьмаПолучитьИдентификаторОснования(Сообщение);
Письмо.ИдентификаторыОснований = Сообщение.ПолучитьПолеЗаголовка("References", "Строка"); Письмо.ИдентификаторыОснований = Сообщение.ПолучитьПолеЗаголовка("References", "Строка");
Письмо.ХэшСумма = ХэшСуммаПочтовогоСообщения(Сообщение);
Для каждого Вложение Из Сообщение.Вложения Цикл Для каждого Вложение Из Сообщение.Вложения Цикл
Если ПустаяСтрока(Вложение.Идентификатор) Тогда Если ПустаяСтрока(Вложение.Идентификатор) Тогда
@@ -1618,6 +1680,17 @@
КонецПроцедуры КонецПроцедуры
Функция ХэшСуммаПочтовогоСообщения(Сообщение)
МассивСтрок = Новый Массив;
МассивСтрок.Добавить(Сообщение.Отправитель.Адрес);
МассивСтрок.Добавить(Сообщение.ДатаОтправления);
МассивСтрок.Добавить(Сообщение.Тема);
Возврат ОбщегоНазначения.КонтрольнаяСуммаСтрокой(СтрСоединить(МассивСтрок));
КонецФункции
Процедура ЗаполнитьПредметИКонтакты(Письмо, Процедура ЗаполнитьПредметИКонтакты(Письмо,
УчетнаяЗапись, УчетнаяЗапись,
Предмет, Предмет,
@@ -111,13 +111,13 @@
// //
Процедура ОбработатьОчередьИзвлеченияТекста() Экспорт Процедура ОбработатьОчередьИзвлеченияТекста() Экспорт
ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.ПланированиеИзвлеченияТекстаВМоделиСервиса);
Если НЕ РаботаВМоделиСервиса.РазделениеВключено() Если НЕ РаботаВМоделиСервиса.РазделениеВключено()
Или Не ОбщегоНазначения.ЭтоWindowsСервер() Тогда Или Не ОбщегоНазначения.Это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"?> <?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> <name>БиблиотекаСтандартныхПодсистем</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.0</value> <value>Библиотека стандартных подсистем, редакция 3.0</value>
</synonym> </synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="0050cc3c-106d-41bd-83a4-8ffbca91a075"/> <containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="162d896e-72ed-44d1-8b7d-d7d96bd1aa89"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="2ae7d59e-d34f-4e3d-8933-abc8ba4fb006"/> <containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="ae5a1170-d027-4aad-9bf7-4bf8a08e2a45"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="d7a31eff-373f-412e-8427-c9fea0e084d7"/> <containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="500dae08-3cf6-42f8-8115-eb965d4dd98b"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="8de054d0-8da9-49b8-9820-e50376b2831d"/> <containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="db6e9a58-9464-4ceb-9e99-bbd8c352d5f1"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="750c18c8-98d1-4a99-8ca2-8b68d51a4a60"/> <containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="00565a7c-b482-420c-bf37-4a87304838f1"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="4e44d7fe-11d9-417d-9340-9d4c9b73e9b5"/> <containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="96a51cd2-8a53-469e-acd3-2d8df99f5b6c"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="8c23967b-a052-4e01-a688-3fa082895a9b"/> <containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="295724ae-ecc5-4f4e-bc1a-f5fd43efda21"/>
<defaultRunMode>ManagedApplication</defaultRunMode> <defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes> <usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant> <scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles> <defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles> <defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor> <vendor>Фирма &quot;1С&quot;</vendor>
<version>3.0.2.269</version> <version>3.0.2.274</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress> <updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents> <includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities> <usedMobileApplicationFunctionalities>
@@ -1 +1 @@
{6,1,1,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Сервер.ПроизвестиВыгрузкуДанных(КомпонентыОбмена); ПослеОткрытияФайлаВыгрузки(Отказ);
Исключение // ВЫГРУЗКА ДАННЫХ
Если КомпонентыОбмена.ЭтоОбменЧерезПланОбмена Тогда Если Не Отказ Тогда
РазблокироватьДанныеДляРедактирования(КомпонентыОбмена.УзелКорреспондента); ОбменДаннымиXDTOСервер.ПроизвестиВыгрузкуДанных(КомпонентыОбмена);
КонецЕсли; КонецЕсли;
Исключение
Инфо = ИнформацияОбОшибке(); Инфо = ИнформацияОбОшибке();
КодОшибки = Новый Структура("КраткоеПредставлениеОшибки, ПодробноеПредставлениеОшибки", КодОшибки = Новый Структура("КраткоеПредставлениеОшибки, ПодробноеПредставлениеОшибки",
КраткоеПредставлениеОшибки(Инфо), ПодробноеПредставлениеОшибки(Инфо)); КраткоеПредставлениеОшибки(Инфо), ПодробноеПредставлениеОшибки(Инфо));
@@ -227,9 +220,17 @@
ОбменДаннымиXDTOСервер.ЗавершитьВедениеПротоколаОбмена(КомпонентыОбмена); ОбменДаннымиXDTOСервер.ЗавершитьВедениеПротоколаОбмена(КомпонентыОбмена);
КомпонентыОбмена.ФайлОбмена = Неопределено; КомпонентыОбмена.ФайлОбмена = Неопределено;
Возврат; Отказ = Истина;
КонецПопытки; КонецПопытки;
Если КомпонентыОбмена.ЭтоОбменЧерезПланОбмена Тогда
РазблокироватьДанныеДляРедактирования(КомпонентыОбмена.УзелКорреспондента);
КонецЕсли;
Если Отказ Тогда
Возврат;
КонецЕсли;
ДанныеВыгрузкиXML = КомпонентыОбмена.ФайлОбмена.Закрыть(); ДанныеВыгрузкиXML = КомпонентыОбмена.ФайлОбмена.Закрыть();
ОбменДаннымиXDTOСервер.ЗавершитьВедениеПротоколаОбмена(КомпонентыОбмена); ОбменДаннымиXDTOСервер.ЗавершитьВедениеПротоколаОбмена(КомпонентыОбмена);
@@ -3735,7 +3735,8 @@
Если ПустаяСтрока(Свойство) Тогда Если ПустаяСтрока(Свойство) Тогда
Если Свойства.ИмяТипа = "Перечисление" Тогда Если Свойства.ИмяТипа = "Перечисление"
Или Свойства.ИмяТипа = "ТочкаМаршрутаБизнесПроцесса" Тогда
Свойство = "Имя"; Свойство = "Имя";
Иначе Иначе
Свойство = "{ИмяПредопределенногоЭлемента}"; Свойство = "{ИмяПредопределенногоЭлемента}";
@@ -280,26 +280,17 @@
&НаСервере &НаСервере
Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным) Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным)
// Сохранение значений реквизитов, не связанных с константами напрямую (в отношении один-к-одному). ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, ".");
Если РеквизитПутьКДанным = "" Тогда Если ЧастиИмени.Количество() <> 2 Тогда
Возврат ""; Возврат "";
КонецЕсли; КонецЕсли;
// Определение имени константы. КонстантаИмя = ЧастиИмени[1];
КонстантаИмя = ""; КонстантаМенеджер = Константы[КонстантаИмя];
Если НРег(Лев(РеквизитПутьКДанным, 14)) = НРег("НаборКонстант.") Тогда КонстантаЗначение = НаборКонстант[КонстантаИмя];
// Если путь к данным реквизита указан через "НаборКонстант".
КонстантаИмя = Сред(РеквизитПутьКДанным, 15);
КонецЕсли;
// Сохранения значения константы. Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
Если КонстантаИмя <> "" Тогда КонстантаМенеджер.Установить(КонстантаЗначение);
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
КонецЕсли; КонецЕсли;
Возврат КонстантаИмя; Возврат КонстантаИмя;
@@ -677,28 +677,17 @@
&НаСервере &НаСервере
Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным) Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным)
// Сохранение значений реквизитов, не связанных с константами напрямую. ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, ".");
Если РеквизитПутьКДанным = "" Тогда Если ЧастиИмени.Количество() <> 2 Тогда
Возврат ""; Возврат "";
КонецЕсли; КонецЕсли;
// Определение имени константы. КонстантаИмя = ЧастиИмени[1];
КонстантаИмя = ""; КонстантаМенеджер = Константы[КонстантаИмя];
Если НРег(Лев(РеквизитПутьКДанным, 14)) = НРег("НаборКонстант.") Тогда КонстантаЗначение = НаборКонстант[КонстантаИмя];
// Если путь к данным реквизита указан через "НаборКонстант".
КонстантаИмя = Сред(РеквизитПутьКДанным, 15);
Иначе
// Определение имени и запись значения реквизита в соответствующей константе из "НаборКонстант".
// Используется для тех реквизитов формы, которые связаны с константами напрямую (в отношении один-к-одному).
КонецЕсли;
// Сохранения значения константы.
Если НРег(Лев(РеквизитПутьКДанным, 14)) = НРег("НаборКонстант.") Тогда
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение); КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли; КонецЕсли;
Возврат КонстантаИмя; Возврат КонстантаИмя;
@@ -321,35 +321,22 @@
&НаСервере &НаСервере
Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным) Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным)
// Сохранение значений реквизитов, не связанных с константами напрямую (в отношении один-к-одному). ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, ".");
Если РеквизитПутьКДанным = "" Тогда Если ЧастиИмени.Количество() <> 2 Тогда
Возврат ""; Возврат "";
КонецЕсли; КонецЕсли;
// Определение имени константы. КонстантаИмя = ЧастиИмени[1];
КонстантаИмя = ""; КонстантаМенеджер = Константы[КонстантаИмя];
Если НРег(Лев(РеквизитПутьКДанным, 14)) = НРег("НаборКонстант.") Тогда КонстантаЗначение = НаборКонстант[КонстантаИмя];
// Если путь к данным реквизита указан через "НаборКонстант". ТекущееЗначение = КонстантаМенеджер.Получить();
КонстантаИмя = Сред(РеквизитПутьКДанным, 15); Если ТекущееЗначение <> КонстантаЗначение Тогда
Иначе Попытка
// Определение имени и запись значения реквизита в соответствующей константе из "НаборКонстант". КонстантаМенеджер.Установить(КонстантаЗначение);
// Используется для тех реквизитов формы, которые связаны с константами напрямую (в отношении один-к-одному). Исключение
КонецЕсли; НаборКонстант[КонстантаИмя] = ТекущееЗначение;
ВызватьИсключение;
// Сохранения значения константы. КонецПопытки;
Если КонстантаИмя <> "" Тогда
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
ТекущееЗначение = КонстантаМенеджер.Получить();
Если ТекущееЗначение <> КонстантаЗначение Тогда
Попытка
КонстантаМенеджер.Установить(КонстантаЗначение);
Исключение
НаборКонстант[КонстантаИмя] = ТекущееЗначение;
ВызватьИсключение;
КонецПопытки;
КонецЕсли;
КонецЕсли; КонецЕсли;
Возврат КонстантаИмя; Возврат КонстантаИмя;
@@ -269,20 +269,8 @@
&НаСервере &НаСервере
Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным) Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным)
// Сохранение значений реквизитов, не связанных с константами напрямую (в отношении один-к-одному). ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, ".");
Если РеквизитПутьКДанным = "" Тогда Если ЧастиИмени.Количество() <> 2 Тогда
Возврат "";
КонецЕсли;
// Определение имени константы.
КонстантаИмя = "";
Если НРег(Лев(РеквизитПутьКДанным, 14)) = НРег("НаборКонстант.") Тогда
// Если путь к данным реквизита указан через "НаборКонстант".
КонстантаИмя = Сред(РеквизитПутьКДанным, 15);
Иначе
// Определение имени и запись значения реквизита в соответствующей константе из "НаборКонстант".
// Используется для тех реквизитов формы, которые связаны с константами напрямую (в отношении один-к-одному).
Если РеквизитПутьКДанным = "МаксимальныйРазмерФайла" Тогда Если РеквизитПутьКДанным = "МаксимальныйРазмерФайла" Тогда
НаборКонстант.МаксимальныйРазмерФайла = МаксимальныйРазмерФайла * (1024*1024); НаборКонстант.МаксимальныйРазмерФайла = МаксимальныйРазмерФайла * (1024*1024);
КонстантаИмя = "МаксимальныйРазмерФайла"; КонстантаИмя = "МаксимальныйРазмерФайла";
@@ -300,20 +288,23 @@
НаборКонстант.ЗапрещатьЗагрузкуФайловПоРасширению = ЗапрещатьЗагрузкуФайловПоРасширению; НаборКонстант.ЗапрещатьЗагрузкуФайловПоРасширению = ЗапрещатьЗагрузкуФайловПоРасширению;
КонстантаИмя = "ЗапрещатьЗагрузкуФайловПоРасширению"; КонстантаИмя = "ЗапрещатьЗагрузкуФайловПоРасширению";
КонецЕсли; КонецЕсли;
Иначе
КонстантаИмя = ЧастиИмени[1];
КонецЕсли; КонецЕсли;
// Сохранения значения константы. Если ПустаяСтрока(КонстантаИмя) Тогда
Если КонстантаИмя <> "" Тогда Возврат "";
КонстантаМенеджер = Константы[КонстантаИмя]; КонецЕсли;
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаМенеджер.Установить(КонстантаЗначение); КонстантаЗначение = НаборКонстант[КонстантаИмя];
КонецЕсли;
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли; КонецЕсли;
Возврат КонстантаИмя; Возврат КонстантаИмя;
КонецФункции КонецФункции
&НаСервере &НаСервере
@@ -307,29 +307,17 @@
&НаСервере &НаСервере
Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным) Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным)
// Сохранение значений реквизитов, не связанных с константами напрямую. ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, ".");
Если РеквизитПутьКДанным = "" Тогда Если ЧастиИмени.Количество() <> 2 Тогда
Возврат ""; Возврат "";
КонецЕсли; КонецЕсли;
// Определение имени константы. КонстантаИмя = ЧастиИмени[1];
КонстантаИмя = ""; КонстантаМенеджер = Константы[КонстантаИмя];
Если НРег(Лев(РеквизитПутьКДанным, 14)) = НРег("НаборКонстант.") Тогда КонстантаЗначение = НаборКонстант[КонстантаИмя];
// Если путь к данным реквизита указан через "НаборКонстант".
КонстантаИмя = Сред(РеквизитПутьКДанным, 15);
Иначе
// Определение имени и запись значения реквизита в соответствующей константе из "НаборКонстант".
// Используется для тех реквизитов формы, которые связаны с константами напрямую (в отношении один-к-одному).
КонецЕсли;
// Сохранения значения константы. Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
Если НРег(Лев(РеквизитПутьКДанным, 14)) = НРег("НаборКонстант.") Тогда КонстантаМенеджер.Установить(КонстантаЗначение);
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
КонецЕсли; КонецЕсли;
Возврат КонстантаИмя; Возврат КонстантаИмя;
@@ -320,26 +320,21 @@
Возврат ""; Возврат "";
КонецЕсли; КонецЕсли;
// Определение имени константы. ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, ".");
КонстантаИмя = ""; Если ЧастиИмени.Количество() <> 2 Тогда
Если НРег(Лев(РеквизитПутьКДанным, 14)) = НРег("НаборКонстант.") Тогда Возврат "";
// Если путь к данным реквизита указан через "НаборКонстант".
КонстантаИмя = Сред(РеквизитПутьКДанным, 15);
КонецЕсли; КонецЕсли;
// Сохранения значения константы. КонстантаИмя = ЧастиИмени[1];
Если КонстантаИмя <> "" Тогда КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаМенеджер = Константы[КонстантаИмя]; КонстантаЗначение = НаборКонстант[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение); КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли; КонецЕсли;
Если КонстантаИмя = "ИспользоватьДополнительныеРеквизитыИСведения" И КонстантаЗначение = Ложь Тогда Если КонстантаИмя = "ИспользоватьДополнительныеРеквизитыИСведения" И КонстантаЗначение = Ложь Тогда
ЭтотОбъект.Прочитать(); ЭтотОбъект.Прочитать();
КонецЕсли;
КонецЕсли; КонецЕсли;
Возврат КонстантаИмя; Возврат КонстантаИмя;
@@ -269,33 +269,21 @@
&НаСервере &НаСервере
Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным) Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным)
// Сохранение значений реквизитов, не связанных с константами напрямую (в отношении один-к-одному). ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, ".");
Если РеквизитПутьКДанным = "" Тогда Если ЧастиИмени.Количество() <> 2 Тогда
Возврат ""; Возврат "";
КонецЕсли; КонецЕсли;
// Определение имени константы. КонстантаИмя = ЧастиИмени[1];
КонстантаИмя = ""; КонстантаМенеджер = Константы[КонстантаИмя];
Если НРег(Лев(РеквизитПутьКДанным, 14)) = НРег("НаборКонстант.") Тогда КонстантаЗначение = НаборКонстант[КонстантаИмя];
// Если путь к данным реквизита указан через "НаборКонстант".
КонстантаИмя = Сред(РеквизитПутьКДанным, 15); Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
Иначе КонстантаМенеджер.Установить(КонстантаЗначение);
// Определение имени и запись значения реквизита в соответствующей константе из "НаборКонстант".
// Используется для тех реквизитов формы, которые связаны с константами напрямую (в отношении один-к-одному).
КонецЕсли; КонецЕсли;
// Сохранения значения константы. Если (КонстантаИмя = "ИспользоватьПочтовыйКлиент" ИЛИ КонстантаИмя = "ИспользоватьБизнесПроцессыИЗадачи") И КонстантаЗначение = Ложь Тогда
Если КонстантаИмя <> "" Тогда ЭтотОбъект.Прочитать();
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
Если (КонстантаИмя = "ИспользоватьПочтовыйКлиент" ИЛИ КонстантаИмя = "ИспользоватьБизнесПроцессыИЗадачи") И КонстантаЗначение = Ложь Тогда
ЭтотОбъект.Прочитать();
КонецЕсли;
КонецЕсли; КонецЕсли;
Возврат КонстантаИмя; Возврат КонстантаИмя;
@@ -144,29 +144,17 @@
&НаСервере &НаСервере
Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным) Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным)
// Сохранение значений реквизитов, не связанных с константами напрямую (в отношении один-к-одному). ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, ".");
Если РеквизитПутьКДанным = "" Тогда Если ЧастиИмени.Количество() <> 2 Тогда
Возврат ""; Возврат "";
КонецЕсли; КонецЕсли;
// Определение имени константы. КонстантаИмя = ЧастиИмени[1];
КонстантаИмя = ""; КонстантаМенеджер = Константы[КонстантаИмя];
Если НРег(Лев(РеквизитПутьКДанным, 14)) = НРег("НаборКонстант.") Тогда КонстантаЗначение = НаборКонстант[КонстантаИмя];
// Если путь к данным реквизита указан через "НаборКонстант".
КонстантаИмя = Сред(РеквизитПутьКДанным, 15);
Иначе
// Определение имени и запись значения реквизита в соответствующей константе из "НаборКонстант".
// Используется для тех реквизитов формы, которые связаны с константами напрямую (в отношении один-к-одному).
КонецЕсли;
// Сохранения значения константы. Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
Если КонстантаИмя <> "" Тогда КонстантаМенеджер.Установить(КонстантаЗначение);
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
КонецЕсли; КонецЕсли;
Возврат КонстантаИмя; Возврат КонстантаИмя;
@@ -318,29 +318,17 @@
&НаСервере &НаСервере
Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным) Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным)
// Сохранение значений реквизитов, не связанных с константами напрямую (в отношении один-к-одному). ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, ".");
Если РеквизитПутьКДанным = "" Тогда Если ЧастиИмени.Количество() <> 2 Тогда
Возврат ""; Возврат "";
КонецЕсли; КонецЕсли;
// Определение имени константы. КонстантаИмя = ЧастиИмени[1];
КонстантаИмя = ""; КонстантаМенеджер = Константы[КонстантаИмя];
Если НРег(Лев(РеквизитПутьКДанным, 14)) = НРег("НаборКонстант.") Тогда КонстантаЗначение = НаборКонстант[КонстантаИмя];
// Если путь к данным реквизита указан через "НаборКонстант".
КонстантаИмя = Сред(РеквизитПутьКДанным, 15);
Иначе
// Определение имени и запись значения реквизита в соответствующей константе из "НаборКонстант".
// Используется для тех реквизитов формы, которые связаны с константами напрямую (в отношении один-к-одному).
КонецЕсли;
// Сохранения значения константы. Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
Если КонстантаИмя <> "" Тогда КонстантаМенеджер.Установить(КонстантаЗначение);
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
КонецЕсли; КонецЕсли;
Возврат КонстантаИмя; Возврат КонстантаИмя;
@@ -302,14 +302,8 @@
Возврат Результат; Возврат Результат;
КонецЕсли; КонецЕсли;
// Определение имени константы. ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, ".");
КонстантаИмя = ""; Если ЧастиИмени.Количество() <> 2 Тогда
Если НРег(Лев(РеквизитПутьКДанным, 14)) = НРег("НаборКонстант.") Тогда
// Если путь к данным реквизита указан через "НаборКонстант".
КонстантаИмя = Сред(РеквизитПутьКДанным, 15);
Иначе
// Определение имени и запись значения реквизита в соответствующей константе из "НаборКонстант".
// Используется для тех реквизитов формы, которые связаны с константами напрямую (в отношении один-к-одному).
Если РеквизитПутьКДанным = "ИзвлекатьТекстыФайловНаСервере" Тогда Если РеквизитПутьКДанным = "ИзвлекатьТекстыФайловНаСервере" Тогда
КонстантаИмя = "ИзвлекатьТекстыФайловНаСервере"; КонстантаИмя = "ИзвлекатьТекстыФайловНаСервере";
НаборКонстант.ИзвлекатьТекстыФайловНаСервере = ИзвлекатьТекстыФайловНаСервере; НаборКонстант.ИзвлекатьТекстыФайловНаСервере = ИзвлекатьТекстыФайловНаСервере;
@@ -340,21 +334,24 @@
Возврат Результат; Возврат Результат;
КонецПопытки; КонецПопытки;
КонецЕсли; КонецЕсли;
Иначе
КонстантаИмя = ЧастиИмени[1];
КонецЕсли; КонецЕсли;
// Сохранения значения константы. Если ПустаяСтрока(КонстантаИмя) Тогда
Если КонстантаИмя <> "" Тогда Возврат Результат;
КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
Результат.КонстантаИмя = КонстантаИмя;
КонецЕсли; КонецЕсли;
Возврат Результат; КонстантаМенеджер = Константы[КонстантаИмя];
КонстантаЗначение = НаборКонстант[КонстантаИмя];
Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
КонстантаМенеджер.Установить(КонстантаЗначение);
КонецЕсли;
Результат.КонстантаИмя = КонстантаИмя;
Возврат КонстантаИмя;
КонецФункции КонецФункции
&НаСервере &НаСервере
@@ -312,8 +312,12 @@
// Обновляем все открытые динамические списки. // Обновляем все открытые динамические списки.
ОбменДаннымиКлиент.ОбновитьВсеОткрытыеДинамическиеСписки(); ОбменДаннымиКлиент.ОбновитьВсеОткрытыеДинамическиеСписки();
Результат = Новый Структура;
Результат.Вставить("РезультатВыгрузкиДанных", РезультатВыгрузкиДанных);
Результат.Вставить("РезультатЗагрузкиДанных", РезультатЗагрузкиДанных);
ЗакрытьФормуБезусловно = Истина; ЗакрытьФормуБезусловно = Истина;
Закрыть(); Закрыть(Результат);
КонецПроцедуры КонецПроцедуры
@@ -430,6 +430,16 @@
&НаКлиенте &НаКлиенте
Процедура ВыполнитьСопоставлениеИЗагрузкуДанныхПродолжение(РезультатЗакрытия, ДополнительныеПараметры) Экспорт Процедура ВыполнитьСопоставлениеИЗагрузкуДанныхПродолжение(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
Если ТипЗнч(РезультатЗакрытия) = Тип("Структура") Тогда
РезультатЗагрузкиДанных = Неопределено;
Если РезультатЗакрытия.Свойство("РезультатЗагрузкиДанных", РезультатЗагрузкиДанных) Тогда
Если РезультатЗагрузкиДанных = "Ошибка"
Или РезультатЗагрузкиДанных = "Ошибка_ТранспортСообщения" Тогда
Возврат;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ТекущийЭтапНастройки = "СопоставлениеИЗагрузка" Если ТекущийЭтапНастройки = "СопоставлениеИЗагрузка"
И ВыполненаЗагрузкаДанныхДляСопоставления(УзелОбмена) Тогда И ВыполненаЗагрузкаДанныхДляСопоставления(УзелОбмена) Тогда
ПерейтиКСледующемуЭтапуНастройки(); ПерейтиКСледующемуЭтапуНастройки();
@@ -3178,6 +3178,7 @@
<key>ru</key> <key>ru</key>
<value>Страница тип адреса</value> <value>Страница тип адреса</value>
</title> </title>
<horizontalStretch>true</horizontalStretch>
<extendedTooltip> <extendedTooltip>
<name>СтраницаТипАдресаРасширеннаяПодсказка</name> <name>СтраницаТипАдресаРасширеннаяПодсказка</name>
<id>500</id> <id>500</id>
@@ -3245,6 +3246,81 @@
</textColor> </textColor>
</extInfo> </extInfo>
</items> </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"> <items xsi:type="form:FormGroup">
<name>ГруппаОКОтмена</name> <name>ГруппаОКОтмена</name>
<id>371</id> <id>371</id>
@@ -3312,6 +3388,8 @@
<key>ru</key> <key>ru</key>
<value>ОК отмена</value> <value>ОК отмена</value>
</title> </title>
<horizontalStretch>false</horizontalStretch>
<groupHorizontalAlign>Right</groupHorizontalAlign>
<extendedTooltip> <extendedTooltip>
<name>ГруппаОКОтменаРасширеннаяПодсказка</name> <name>ГруппаОКОтменаРасширеннаяПодсказка</name>
<id>372</id> <id>372</id>
@@ -3336,6 +3414,7 @@
<key>ru</key> <key>ru</key>
<value>Панель внизу</value> <value>Панель внизу</value>
</title> </title>
<horizontalStretch>true</horizontalStretch>
<extendedTooltip> <extendedTooltip>
<name>ПанельВнизуРасширеннаяПодсказка</name> <name>ПанельВнизуРасширеннаяПодсказка</name>
<id>492</id> <id>492</id>
@@ -3349,6 +3428,7 @@
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>AlwaysHorizontal</group> <group>AlwaysHorizontal</group>
<verticalAlign>Center</verticalAlign>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -132,8 +132,9 @@
Элементы.АдминистративноТерриториальноеДеление.Видимость = Ложь; Элементы.АдминистративноТерриториальноеДеление.Видимость = Ложь;
Элементы.ЗаполнитьПоПочтовомуИндексу.Видимость = Ложь; Элементы.ЗаполнитьПоПочтовомуИндексу.Видимость = Ложь;
Элементы.ЗагрузитьКлассификатор.Видимость = Ложь; Элементы.ЗагрузитьКлассификатор.Видимость = Ложь;
Элементы.СтраницаТипАдреса.Видимость = Ложь;
Элементы.ГруппаИнформация.Видимость = Ложь; Элементы.ГруппаИнформация.Видимость = Ложь;
Элементы.НужнаПомощь.Видимость = Ложь;
Элементы.СтраницаТипАдреса.ТекущаяСтраница = Элементы.СтраницаДругойАдрес;
КонецЕсли; КонецЕсли;
@@ -156,6 +157,8 @@
УстановитьКлючИспользованияФормы(); УстановитьКлючИспользованияФормы();
СформироватьМенюДобавленияСтроенийИПомещений(); СформироватьМенюДобавленияСтроенийИПомещений();
СформироватьТекстНужнаПомощь();
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
@@ -930,6 +933,22 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ДекорацияНужнаПомощьОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
Если СтрНайти(НавигационнаяСсылкаФорматированнойСтроки, ".СведенияОбАдресномКлассификаторе") > 0
И ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
СтандартнаяОбработка = Ложь;
ПараметрыОткрытия = Новый Структура();
ПараметрыОткрытия.Вставить("Адрес", ПредставлениеАдреса);
МодульАдресныйКлассификаторКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("АдресныйКлассификаторКлиент");
МодульАдресныйКлассификаторКлиент .ОткрытьСведенияОбАдресномКлассификаторе(ПараметрыОткрытия);
КонецЕсли;
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область ОбработчикиКомандФормы #Область ОбработчикиКомандФормы
@@ -2966,7 +2985,6 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
Функция ПерваяБукваЗаглавная(Строка) Функция ПерваяБукваЗаглавная(Строка)
Возврат ВРег(Лев(Строка, 1)) + Сред(НРег(Строка), 2); // Использовать ТРег нельзя. Возврат ВРег(Лев(Строка, 1)) + Сред(НРег(Строка), 2); // Использовать ТРег нельзя.
@@ -3394,12 +3412,18 @@
&НаКлиенте &НаКлиенте
Процедура ПоказатьПодсказкуПоТипАдреса() Процедура ПоказатьПодсказкуПоТипАдреса()
Если РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(НаселенныйПунктДетально.AddressType) Тогда Если МеждународныйФорматАдреса Тогда
Элементы.СтраницаТипАдреса.ТекущаяСтраница = Элементы.СтраницаДругойАдрес;
Элементы.НужнаПомощь.Видимость = Ложь;
ИначеЕсли РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(НаселенныйПунктДетально.AddressType) Тогда
Элементы.СтраницаТипАдреса.ТекущаяСтраница = Элементы.СтраницаМуниципальныйАдрес; Элементы.СтраницаТипАдреса.ТекущаяСтраница = Элементы.СтраницаМуниципальныйАдрес;
Элементы.НужнаПомощь.Видимость = Истина;
ИначеЕсли ЭтоАдминистративноТерриториальныйАдрес(НаселенныйПунктДетально.AddressType) Тогда ИначеЕсли ЭтоАдминистративноТерриториальныйАдрес(НаселенныйПунктДетально.AddressType) Тогда
Элементы.СтраницаТипАдреса.ТекущаяСтраница = Элементы.СтраницаАдминистративноТерриториальныйАдрес; Элементы.СтраницаТипАдреса.ТекущаяСтраница = Элементы.СтраницаАдминистративноТерриториальныйАдрес;
Элементы.НужнаПомощь.Видимость = Истина;
Иначе Иначе
Элементы.СтраницаТипАдреса.ТекущаяСтраница = Элементы.СтраницаДругойАдрес; Элементы.СтраницаТипАдреса.ТекущаяСтраница = Элементы.СтраницаДругойАдрес;
Элементы.НужнаПомощь.Видимость = Ложь;
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -3658,4 +3682,28 @@
КонецПроцедуры КонецПроцедуры
&НаСервере
Процедура СформироватьТекстНужнаПомощь()
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
Возврат;
КонецЕсли;
Если ВидКонтактнойИнформации.ПроверятьКорректность И Не ВидКонтактнойИнформации.МожноИзменятьСпособРедактирования Тогда
Возврат;
КонецЕсли;
ДополнительныйТекст = Символы.ПС + Символы.ПС + НСтр("ru='Также адрес можно ввести в свободной форме (см. Еще - Адрес в свободной форме).'");
Если ВидКонтактнойИнформации.МожноИзменятьСпособРедактирования И ВидКонтактнойИнформации.ПроверятьКорректность Тогда
ДополнительныйТекст = ДополнительныйТекст + " "+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Для этого предварительно снять флажок ""Запрещать ввод некорректных адресов"" в виде контактной информации ""%1"".'"),
ВидКонтактнойИнформации.Ссылка);
КонецЕсли;
Элементы.ДекорацияНужнаПомощь.Заголовок = Новый ФорматированнаяСтрока(Элементы.ДекорацияНужнаПомощь.Заголовок, ДополнительныйТекст);
КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -540,7 +540,6 @@
ПоказыватьДиалог = ПоказыватьДиалогСканера; ПоказыватьДиалог = ПоказыватьДиалогСканера;
ВыбранноеУстройство = ИмяУстройстваСканирования; ВыбранноеУстройство = ИмяУстройстваСканирования;
ПутьКПрограммеКонвертации = "convert.exe";
ПараметрСжатие = ?(ВРег(ФорматКартинки) = "JPG", КачествоJPG, СжатиеTIFFЧисло); ПараметрСжатие = ?(ВРег(ФорматКартинки) = "JPG", КачествоJPG, СжатиеTIFFЧисло);
ПозицияДляВставки = Неопределено; ПозицияДляВставки = Неопределено;
@@ -696,6 +696,29 @@
<fullTextSearch>Use</fullTextSearch> <fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory> <dataHistory>Use</dataHistory>
</attributes> </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"> <forms uuid="3713c76d-6ff7-4d45-9f15-d061bdf7dee2">
<name>ФормаДокумента</name> <name>ФормаДокумента</name>
<synonym> <synonym>
@@ -872,6 +872,29 @@
<fullTextSearch>Use</fullTextSearch> <fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory> <dataHistory>Use</dataHistory>
</attributes> </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"> <forms uuid="ce2a8ff8-94fd-4ce2-9caa-4711e9b79ee9">
<name>ФормаДокумента</name> <name>ФормаДокумента</name>
<synonym> <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>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>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>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>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>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> <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>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes> <usePurposes>MobileDevice</usePurposes>
</forms> </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"> <templates uuid="a671cb1e-b27a-44bb-a8ca-1388f099de2e">
<name>КлассификаторСубъектовРФ</name> <name>КлассификаторСубъектовРФ</name>
<synonym> <synonym>
@@ -124,8 +124,10 @@
<value>Уникальный идентификатор источника</value> <value>Уникальный идентификатор источника</value>
</synonym> </synonym>
<type> <type>
<types>BusinessProcessRef</types>
<types>DocumentRef</types> <types>DocumentRef</types>
<types>ChartOfCalculationTypesRef</types> <types>ChartOfCalculationTypesRef</types>
<types>TaskRef</types>
<types>ChartOfCharacteristicTypesRef</types> <types>ChartOfCharacteristicTypesRef</types>
<types>ChartOfAccountsRef</types> <types>ChartOfAccountsRef</types>
<types>CatalogRef</types> <types>CatalogRef</types>
@@ -178,6 +178,93 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>InformationRegister.ЗамерыКомментарииСтатистики</name> <name>InformationRegister.ЗамерыКомментарииСтатистики</name>
<right> <right>
@@ -3462,93 +3549,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Constant.ИспользоватьАльтернативныйСерверДляЗагрузкиКурсовВалют</name> <name>Constant.ИспользоватьАльтернативныйСерверДляЗагрузкиКурсовВалют</name>
<right> <right>
@@ -14,6 +14,37 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Catalog.РассылкиОтчетов.Command.СобытияРассылки</name> <name>Catalog.РассылкиОтчетов.Command.СобытияРассылки</name>
<right> <right>
@@ -76,37 +107,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<restrictionTemplate> <restrictionTemplate>
<name>ДляОбъекта(ПолеОбъекта)</name> <name>ДляОбъекта(ПолеОбъекта)</name>
<condition>// ДляОбъекта(ПолеОбъекта = "") <condition>// ДляОбъекта(ПолеОбъекта = "")
@@ -235,6 +235,45 @@
<value>false</value> <value>false</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object> <object>
<name>Catalog.НаборыДополнительныхРеквизитовИСведений</name> <name>Catalog.НаборыДополнительныхРеквизитовИСведений</name>
<right> <right>
@@ -4684,45 +4723,6 @@
<value>false</value> <value>false</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object> <object>
<name>Constant.ИспользоватьАльтернативныйСерверДляЗагрузкиКурсовВалют</name> <name>Constant.ИспользоватьАльтернативныйСерверДляЗагрузкиКурсовВалют</name>
<right> <right>