3_0_1_323

This commit is contained in:
Компания 1С committed 2018-11-23 00:49:00 +03:00
1 parent 27dfc0f7be
commit b89bf856cb
38 files changed
+545 -625

No files matched your search

+18 -9
View File
@@ -111,24 +111,33 @@
Возврат;
КонецЕсли;
КурсЗагружаетсяИзИнтернета = СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.ЗагрузкаИзИнтернета;
КурсЗависитОтДругойВалюты = СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты;
КурсРассчитываетсяПоФормуле = СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.РасчетПоФормуле;
Если ЭтоНовый() Тогда
Если СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты
Или СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.РасчетПоФормуле Тогда
Если КурсЗависитОтДругойВалюты Или КурсРассчитываетсяПоФормуле Тогда
ДополнительныеСвойства.Вставить("ОбновитьКурсы");
КонецЕсли;
ДополнительныеСвойства.Вставить("ЭтоНовый");
ДополнительныеСвойства.Вставить("ЗапланироватьКопированиеКурсовВалюты");
Иначе
ПредыдущиеЗначения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, "Код,СпособУстановкиКурса,ОсновнаяВалюта,Наценка,ФормулаРасчетаКурса");
Если (ПредыдущиеЗначения.СпособУстановкиКурса <> СпособУстановкиКурса)
Или (СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.ЗагрузкаИзИнтернета
И ПредыдущиеЗначения.Код <> Код)
Или (СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты
И (ПредыдущиеЗначения.ОсновнаяВалюта <> ОсновнаяВалюта Или ПредыдущиеЗначения.Наценка <> Наценка))
Или (СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.РасчетПоФормуле
И ПредыдущиеЗначения.ФормулаРасчетаКурса <> ФормулаРасчетаКурса) Тогда
ПоменялсяСпособУстановкиКурса = ПредыдущиеЗначения.СпособУстановкиКурса <> СпособУстановкиКурса;
ПоменялсяКодВалюты = ПредыдущиеЗначения.Код <> Код;
ПоменяласьОсновнаяВалюта = ПредыдущиеЗначения.ОсновнаяВалюта <> ОсновнаяВалюта;
ПоменяласьНаценка = ПредыдущиеЗначения.Наценка <> Наценка;
ПоменяласьФормула = ПредыдущиеЗначения.ФормулаРасчетаКурса <> ФормулаРасчетаКурса;
Если (КурсЗависитОтДругойВалюты И (ПоменяласьОсновнаяВалюта Или ПоменяласьНаценка Или ПоменялсяСпособУстановкиКурса))
Или (КурсРассчитываетсяПоФормуле И (ПоменяласьФормула Или ПоменялсяСпособУстановкиКурса)) Тогда
ДополнительныеСвойства.Вставить("ОбновитьКурсы");
КонецЕсли;
Если КурсЗагружаетсяИзИнтернета И (ПоменялсяСпособУстановкиКурса Или ПоменялсяКодВалюты) Тогда
ДополнительныеСвойства.Вставить("ЗапланироватьКопированиеКурсовВалюты");
КонецЕсли;
КонецЕсли;
Если СпособУстановкиКурса <> Перечисления.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты Тогда
@@ -1464,7 +1464,7 @@
Если ТекущиеДанные <> Неопределено И РасширенияПоддерживающиеПредпросмотр.НайтиПоЗначению(ТекущиеДанные.Расширение) <> Неопределено Тогда
Попытка
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(ТекущиеДанные.Ссылка, Неопределено, УникальныйИдентификатор);
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(ТекущиеДанные.Ссылка, Неопределено, УникальныйИдентификатор,, АдресДанныхФайла);
АдресДанныхФайла = ДанныеФайла.СсылкаНаДвоичныеДанныеФайла;
Исключение
// Если файла не существует, то будет вызвано исключение.
@@ -245,6 +245,27 @@
<indexing>Index</indexing>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="ece3bd8d-6616-44d5-9c14-6b3557738872">
<name>ИДФайлаЭлектронногоПисьма</name>
<synonym>
<key>ru</key>
<value>ИД Файла электронного письма</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>200</length>
</stringQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Идентификатор файла электронного письма. Используются в случае когда тело письма в формате HTML, а картинки, предназначенные для отображения в теле письма хранятся в присоединенных файлах</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:StringValue"/>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="60018ee0-71ec-4975-a95d-f6f188748ff2">
<name>Изменил</name>
<synonym>
@@ -516,27 +537,6 @@
<fillValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="ece3bd8d-6616-44d5-9c14-6b3557738872">
<name>ИДФайлаЭлектронногоПисьма</name>
<synonym>
<key>ru</key>
<value>ИД Файла электронного письма</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>200</length>
</stringQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Идентификатор файла электронного письма. Используются в случае когда тело письма в формате HTML, а картинки, предназначенные для отображения в теле письма хранятся в присоединенных файлах</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:StringValue"/>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="663a80ba-b97e-4265-a627-4a7d273f9472">
<name>ХранитьВерсии</name>
<synonym>
@@ -148,33 +148,6 @@
<items xsi:type="form:FormGroup">
<name>ФормаГруппаЕще</name>
<id>14</id>
<items xsi:type="form:Button">
<name>ФормаПроверятьИмяСервера</name>
<id>10</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаПроверятьИмяСервераРасширеннаяПодсказка</name>
<id>11</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ПроверятьИмяСервера</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InCommandBarAndInAdditionalSubmenu</locationInCommandBar>
</items>
<items xsi:type="form:Button">
<name>ФормаСправкаВГруппе</name>
<id>12</id>
@@ -360,41 +333,6 @@
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ПроверятьИмяСервера</name>
<id>29</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>ПроверятьИмяСервера</segments>
</dataPath>
<titleLocation>Right</titleLocation>
<toolTipRepresentation>ShowBottom</toolTipRepresentation>
<extendedTooltip>
<name>ПроверятьИмяСервераРасширеннаяПодсказка</name>
<id>31</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПроверятьИмяСервераКонтекстноеМеню</name>
<id>30</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -479,23 +417,6 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ПроверятьИмяСервера</name>
<title>
<key>ru</key>
<value>Проверять имя сервера</value>
</title>
<id>2</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ИнформационнаяБазаПеремещена</name>
<title>
@@ -540,28 +461,6 @@
<currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<formCommands>
<name>ПроверятьИмяСервера</name>
<title>
<key>ru</key>
<value>Проверять имя сервера</value>
</title>
<id>3</id>
<toolTip>
<key>ru</key>
<value>Проверять имя сервера</value>
</toolTip>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ПроверятьИмяСервера</name>
</handler>
</action>
<currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<formCommands>
<name>ЗаписатьИЗакрыть</name>
<title>
@@ -83,7 +83,6 @@
Если ОбщегоНазначения.ИнформационнаяБазаФайловая(СтрокаСоединения) Тогда
Элементы.ФормаГруппаЕще.Видимость = Ложь;
Иначе
Элементы.ФормаПроверятьИмяСервера.Пометка = ПараметрыБлокировки.ПроверятьИмяСервера;
Элементы.ФормаСправка.Видимость = Ложь;
КонецЕсли;
@@ -91,7 +90,6 @@
Элементы.ГруппаПараметрыФормы.ТекущаяСтраница = Элементы.ГруппаПараметрыБлокировки;
Элементы.НадписьПредупреждение.Видимость = Ложь;
Элементы.ЗаписатьИЗакрыть.КнопкаПоУмолчанию = Истина;
ПроверятьИмяСервера = ПараметрыБлокировки.ПроверятьИмяСервера;
Заголовок = НСтр("ru = 'Параметры блокировки работы с внешними ресурсами'");
КонецЕсли;
@@ -141,12 +139,6 @@
Закрыть();
КонецПроцедуры
&НаКлиенте
Процедура ПроверятьИмяСервера(Команда)
ПараметрыБлокировки.ПроверятьИмяСервера = Не ПараметрыБлокировки.ПроверятьИмяСервера;
Элементы.ФормаПроверятьИмяСервера.Пометка = ПараметрыБлокировки.ПроверятьИмяСервера;
КонецПроцедуры
&НаКлиенте
Процедура ЗаписатьИЗакрыть(Команда)
ЗаписатьИЗакрытьНаСервере();
@@ -202,7 +194,6 @@
&НаСервере
Процедура ЗаписатьИЗакрытьНаСервере()
ПараметрыБлокировки.ПроверятьИмяСервера = ПроверятьИмяСервера;
ХранилищеЗначения = Новый ХранилищеЗначения(ПараметрыБлокировки);
Константы.ПараметрыБлокировкиРаботыСВнешнимиРесурсами.Установить(ХранилищеЗначения);
КонецПроцедуры
@@ -1001,8 +1001,7 @@
ПараметрыПомощника.Вставить("ЭтоОбменСПриложениемВСервисе", ДополнительныеПараметры.ЭтоОбменСПриложениемВСервисе);
ПараметрыПомощника.Вставить("ОбластьДанныхКорреспондента", ДополнительныеПараметры.ОбластьДанныхКорреспондента);
ПараметрыПомощника.Вставить("ОтправитьДанные",
Не ДополнительныеПараметры.ВариантОбменаДанными = "ТолькоПолучение");
ПараметрыПомощника.Вставить("ОтправитьДанные", Не ДополнительныеПараметры.ЗапускОбменаИзКорреспондента);
ПараметрыПомощника.Вставить("РежимДополненияВыгрузки",
ДополнительныеПараметры.ИспользоватьДопОтборы Или ДополнительныеПараметры.ВариантОбменаДанными = "ПолучениеИОтправка");
@@ -305,7 +305,8 @@
// Загрузка фиксированных настроек для режима расшифровки.
Если РежимРасшифровки Тогда
ОтчетНаименованиеТекущегоВарианта = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(НовыеНастройкиКД.ДополнительныеСвойства, "ВариантНаименование");
ОтчетНаименованиеТекущегоВарианта = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(
НовыеНастройкиКД.ДополнительныеСвойства, "ВариантНаименование", ПредставлениеТекущегоВарианта);
Если Параметры <> Неопределено И Параметры.Свойство("Расшифровка") Тогда
Отчет.КомпоновщикНастроек.ЗагрузитьФиксированныеНастройки(Параметры.Расшифровка.ПрименяемыеНастройки);
Отчет.КомпоновщикНастроек.ФиксированныеНастройки.ДополнительныеСвойства.Вставить("РежимРасшифровки", Истина);
@@ -108,7 +108,7 @@
КонецФункции
Функция ПрефиксВерсииЗапроса() Экспорт
Возврат "rest/v1/";
Возврат "rest/v2/";
КонецФункции
#КонецОбласти
@@ -27,8 +27,6 @@
Результат = Новый Структура("Данные");
СтруктураОписанияОшибкиПоставщика(Результат);
Возврат Результат; // не подключен
// В модели сервиса веб-сервис доступен всегда.
Если Не ЗаполненыДанныеАутентификацииПользователяИнтернетПоддержки() Тогда
Возврат Результат; // ИПП не подключена.
@@ -225,7 +223,7 @@
КонецПроцедуры
Функция РаспознатьАдрес(ЧастиАдреса, Представление) Экспорт
Функция РаспознатьАдрес(ЧастиАдреса, Представление, ВСтруктуру = Ложь) Экспорт
ЗагруженныеАдресныеСведения = АдресныйКлассификаторПовтИсп.СведенияОЗагрузкеСубъектовРФ();
@@ -236,7 +234,7 @@
И ЗагруженныеАдресныеСведения.Получить(КодРегиона).ИспользоватьЗагруженные Тогда
Адрес = РаспознатьАдресЗагруженныеДанные(ЧастиАдреса);
ИначеЕсли ЗагруженныеАдресныеСведения.Получить("КлассификаторДоступен") = Истина Тогда
Адрес = РаспознатьАдресВебСервис(ЧастиАдреса, Представление);
Адрес = РаспознатьАдресВебСервис(ЧастиАдреса, Представление, ВСтруктуру);
Возврат Адрес;
Иначе
Возврат Неопределено;
@@ -924,6 +922,10 @@
АдресСтруктура = КонтактнаяИнформацияВСтруктуруJSON(Адрес);
ИначеЕсли ЭтоКонтактнаяИнформацияВJSON(Адрес) Тогда
АдресСтруктура = СтрокаJSONВСтруктуру(Адрес);
ИначеЕсли ЭтоКонтактнаяИнформацияВФорматеКлючЗначение(Адрес) Тогда
АдресСтруктура = КонтактнаяИнформацияВФорматеКлючЗначениеВJSON(Адрес);
Иначе
ВызватьИсключение НСтр("ru = 'Передано недопустимое значение Адреса для метода АдресныйКлассификаторСлужебный.КодыАдреса.'");
КонецЕсли;
ИдентификаторАдресногоОбъекта = "";
@@ -1008,8 +1010,15 @@
Если НЕ РезультатЗапроса.Пустой() Тогда
Результат.КодыАдреса.КодКЛАДР = РезультатЗапроса.Выгрузить()[0].КодКЛАДР;
СформироватьКодыКЛАДР(Результат.КодыАдреса.КодКЛАДР, Адрес, Результат.КодыКЛАДР);
КодКЛАДР = Формат(РезультатЗапроса.Выгрузить()[0].КодКЛАДР, "ЧГ=0");
Если СтрДлина(КодКЛАДР) = 14 Тогда
КодКЛАДР = "0" + КодКЛАДР + "00";
ИначеЕсли СтрДлина(КодКЛАДР) = 15 Тогда
КодКЛАДР = КодКЛАДР + "00"; // добавляем признак актуальности
КонецЕсли;
Результат.КодыАдреса.КодКЛАДР = КодКЛАДР;
СформироватьКодыКЛАДР(КодКЛАДР, Адрес, Результат.КодыКЛАДР);
КодКЛАДРЗаполнены = Истина;
КонецЕсли;
@@ -1590,7 +1599,7 @@
Возврат СтрСравнить(ТипАдреса, "Муниципальный") = 0;
КонецФункции
Функция РаспознатьАдресВебСервис(ЧастиАдреса, Представление)
Функция РаспознатьАдресВебСервис(ЧастиАдреса, Представление, ВСтруктуру)
Адрес = ОписаниеНовойКонтактнойИнформации();
АдресДляПроверки = Новый Массив;
@@ -1617,22 +1626,24 @@
Текст = СтрСоединить(АдресДляПроверки, ", ");
ТекстGETЗапроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("recognize?text=%1&limit=20",
КодироватьСтроку(Текст, СпособКодированияСтроки.КодировкаURL));
КодироватьСтроку(Представление, СпособКодированияСтроки.КодировкаURL));
РезультатВебСервис = ВыполнитьЗапросЧерезВебСервис(ТекстGETЗапроса);
Если РезультатВебСервис.Отказ Или РезультатВебСервис.Количество() = 0 Или РезультатВебСервис.Данные = Неопределено Тогда
Возврат Адрес;
КонецЕсли;
Если РезультатВебСервис.Данные.status = "PARTIALLY_RECOGNIZED" Тогда
Адрес = АдресДляСохраненияВБазе(РезультатВебСервис.Данные.value, Ложь);
Адрес.comment = РезультатВебСервис.Данные.unrecognizedPart;
ИначеЕсли РезультатВебСервис.Данные.status = "COMPLETELY_RECOGNIZED" Тогда
Если РезультатВебСервис.Данные.status = "COMPLETELY_RECOGNIZED" Тогда
Адрес = АдресДляСохраненияВБазе(РезультатВебСервис.Данные.value, Ложь);
Иначе
Если РезультатВебСервис.Данные.status = "PARTIALLY_RECOGNIZED" И ВСтруктуру Тогда
Адрес = АдресДляСохраненияВБазе(РезультатВебСервис.Данные.value, Ложь);
Адрес.comment = НСтр("ru='Нераспознанная часть адреса'") + ": " + РезультатВебСервис.Данные.unrecognizedPart;
Иначе
Адрес = ОписаниеНовойКонтактнойИнформации();
Адрес.value = РезультатВебСервис.Данные.unrecognizedPart;
Адрес.value = Представление;
Адрес.country = ОсновнаяСтрана();
КонецЕсли;
Возврат Адрес;
КонецЕсли;
@@ -2857,7 +2868,7 @@
КонецЕсли;
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("НачалоФразы", "%" + ТекстПоиска + "%");
Запрос.УстановитьПараметр("НачалоФразы", ТекстПоиска + "%");
Результат = Новый СписокЗначений();
@@ -3367,18 +3378,19 @@
ПрефиксВерсииЗапроса = АдресныйКлассификаторКлиентСервер.ПрефиксВерсииЗапроса();
HTTPЗапрос = Новый HTTPЗапрос(ПрефиксВерсииЗапроса + "verify");
ДанныеЗапроса = Новый Массив();
ДанныеЗапроса.Добавить(АдресДляПередачиВСервис(АдресаДляПроверки.Адрес));
ДанныеДляЗапроса = Новый Структура("requests", ДанныеЗапроса);
ИдентификаторЗапроса = Строка(Новый УникальныйИдентификатор);
JSONСтрока = СтруктураВСтрокуJSON(ДанныеДляЗапроса);
АдресДляПроверки = Новый Структура();
АдресДляПроверки.Вставить("key", "result");
АдресДляПроверки.Вставить("typeToVerify", ?(ЭтоМуниципальныйАдрес(АдресаДляПроверки.Адрес.addressType), "MUNICIPAL", "ADMINISTRATIVE"));
АдресДляПроверки.Вставить("addressToVerify", АдресДляПередачиВСервис(АдресаДляПроверки.Адрес));
ДанныеЗапроса = Новый Массив;
ДанныеЗапроса.Добавить(АдресДляПроверки);
ДанныеДляЗапроса = Новый Структура("requests", ДанныеЗапроса);
HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/json");
HTTPЗапрос.Заголовки.Вставить("X-1C-Request-UID", ИдентификаторЗапроса);
HTTPЗапрос.УстановитьТелоИзСтроки(JSONСтрока);
HTTPЗапрос.УстановитьТелоИзСтроки(СтруктураВСтрокуJSON(ДанныеДляЗапроса));
Попытка
РезультатПроверки = Сервис.ОтправитьДляОбработки(HTTPЗапрос);
@@ -3392,17 +3404,15 @@
Результат.Отказ = Ложь;
АдресПроверен = Ложь;
ПолученныеДанные = РезультатПроверки.ПолучитьТелоКакСтроку("UTF-8");
Данные = Новый Массив;
Если РезультатПроверки.КодСостояния = 200 Тогда
ПолученныеДанные = РезультатПроверки.ПолучитьТелоКакСтроку("UTF-8");
Данные = СтрокаJSONВСтруктуру(ПолученныеДанные);
АдресПроверен = Истина;
ДанныеПроверки = СтрокаJSONВСтруктуру(ПолученныеДанные);
ИначеЕсли РезультатПроверки.КодСостояния = 400 Тогда
ДанныеПоОшибке = СтрокаJSONВСтруктуру(ПолученныеДанные);
Результат.ПодробноеПредставлениеОшибки = НСтр("ru='У адреса не указан регион'");
Результат.КраткоеПредставлениеОшибки = НСтр("ru='Не указан регион'");
Результат.Отказ = Истина;
@@ -3425,24 +3435,26 @@
Возврат;
КонецЕсли;
Для Каждого ЭлементПроверки Из Данные Цикл
Для Каждого Проверка Из ДанныеПроверки Цикл
ЭлементПроверки = Проверка.Значение;
РезультатПроверки = Новый Структура();
РезультатПроверки.Вставить("id", "");
РезультатПроверки.Вставить("АдресПроверен", АдресПроверен);
РезультатПроверки.Вставить("АдресПроверен", Ложь);
РезультатПроверки.Вставить("Варианты", Новый Массив);
РезультатПроверки.Вставить("Ошибки", Новый Массив);
РезультатПроверки.id = ЭлементПроверки.id;
РезультатПроверки.id = Проверка.Ключ;
Если ЭлементПроверки.Свойство("status") Тогда
РезультатПроверки.АдресПроверен = (СтрСравнить(ЭлементПроверки.status, "COMPLETELY_VERIFIED") = 0);
КонецЕсли;
Если ЭлементПроверки.Свойство("errorMessage") И ЗначениеЗаполнено(ЭлементПроверки.errorMessage) Тогда
ОписаниеОшибки = Новый Структура("Ключ,Текст,Подсказка");
ОписаниеОшибки.Ключ = ЭлементПроверки.errorField;
Если Не СтрНачинаетсяС(ЭлементПроверки.errorMessage, НСтр("ru='Только часть адреса была найдена в справочнике ФИАС'")) Тогда
ОписаниеОшибки.Ключ = ЭлементПроверки.errorCode;
ОписаниеОшибки.Текст = ЭлементПроверки.errorMessage;
Иначе
ОписаниеОшибки.Текст = НСтр("ru='Адрес отсутствует в адресном классификаторе'");
КонецЕсли;
РезультатПроверки.Ошибки.Добавить(ОписаниеОшибки);
КонецЕсли;
@@ -7076,6 +7088,22 @@
Возврат "Россия";
КонецФункции
Функция КонтактнаяИнформацияВФорматеКлючЗначениеВJSON(Адрес)
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
МодульУправлениеКонтактнойИнформацией = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформацией");
АдресСтруктура = КонтактнаяИнформацияВСтруктуруJSON(МодульУправлениеКонтактнойИнформацией.КонтактнаяИнформацияВXML(Адрес));
Возврат АдресСтруктура;
КонецЕсли;
ВызватьИсключение НСтр("ru = 'Переданный адрес не может быть преобразован в функции АдресныйКлассификаторСлужебный.КодыАдреса.'");
КонецФункции
Функция ЭтоКонтактнаяИнформацияВФорматеКлючЗначение(Адрес)
Возврат СтрНайти(ВРег(Адрес),"РЕГИОН=") > 0;
КонецФункции
#КонецОбласти
#КонецОбласти
@@ -6586,6 +6586,11 @@
// Попытка повторного выполнения транспорта с новым шаблоном.
СтруктураНастроекОбмена.РезультатВыполненияОбмена = Неопределено;
ВыполнитьТранспортСообщенияОбменаПолучение(СтруктураНастроекОбмена, Ложь, СтекОшибок);
Иначе
// Больше попыток поиска файла не будет, поэтому регистрируем все накопленные ошибки.
Для Каждого ТекущаяОшибка Из СтекОшибок Цикл
ЗаписьЖурналаРегистрацииОбменаДанными(ТекущаяОшибка, СтруктураНастроекОбмена, Истина);
КонецЦикла;
КонецЕсли;
КонецЕсли;
@@ -32,7 +32,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.0.1.314";
Описание.Версия = "3.0.1.323";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -338,7 +338,6 @@
И ТипЗнч(ПоляАдреса.ИдентификаторДома) = ТипУникальныйИдентификатор
И ЗначениеЗаполнено(ПоляАдреса.ИдентификаторДома) Тогда
Результат.HouseID = Строка(ПоляАдреса.ИдентификаторДома);
Результат.ID = Результат.HouseID;
КонецЕсли;
Если ПоляАдреса.Свойство("ИдентификаторАдресногоОбъекта")
@@ -1725,6 +1724,9 @@
ДополнительныеКоды = МодульАдресныйКлассификаторСлужебный.КодыАдресаИКодыКЛАДР(Адрес, ИдентификаторАдресногоОбъекта);
Результат.Вставить("ДополнительныеКоды", ДополнительныеКоды.КодыАдреса);
Результат.Вставить("КодыКЛАДР", ДополнительныеКоды.КодыКЛАДР);
Если Параметры.КодыАдреса И ДополнительныеКоды.КодыАдреса.Свойство("ИдентификаторДома") Тогда
Результат.ИдентификаторДома = ДополнительныеКоды.КодыАдреса.ИдентификаторДома;
КонецЕсли;
КонецЕсли;
Иначе
ЗаполнитьКодыАдреса(Результат, Адрес);
@@ -131,7 +131,7 @@
ДополнительныеКоды = Новый Структура;
ДополнительныеКоды.Вставить("ОКТМО" , "");
ДополнительныеКоды.Вставить("OKATO" , "");
ДополнительныеКоды.Вставить("ОКАТО" , "");
ДополнительныеКоды.Вставить("КодИФНСФЛ" , "");
ДополнительныеКоды.Вставить("КодИФНСЮЛ" , "");
ДополнительныеКоды.Вставить("КодУчасткаИФНСФЛ", "");
@@ -2354,6 +2354,7 @@
ПараметрыВыполнения.Вставить("ФайлЗашифрован", НРег(ПараметрыВыполнения.РасширениеФайлаНаДиске)
= НРег(ПараметрыВыполнения.РасширениеДляЗашифрованныхФайлов));
РаботаСФайламиСлужебныйКлиентСервер.ПроверитьВозможностьЗагрузкиФайла(ФайлНаДиске);
Если Не ПараметрыВыполнения.ФайлЗашифрован Тогда
ОбновитьИзФайлаНаДискеПродолжение(ПараметрыВыполнения);
Возврат;
@@ -2373,9 +2374,6 @@
ПараметрыВыполнения.РасширениеФайлаНаДиске = ОбщегоНазначенияКлиентСервер.РасширениеБезТочки(
ВременныйФайлНешифрованный.Расширение);
РаботаСФайламиСлужебныйКлиентСервер.ПроверитьРасширениеФайлаДляЗагрузки(
ПараметрыВыполнения.РасширениеФайлаНаДиске);
// Тут расшифровать и поставить ту же дату изменения, что и ДиалогПолноеИмяФайлаПрежнее.
ПомещаемыеФайлы = Новый Массив;
@@ -252,7 +252,6 @@
ПараметрыБлокировки.ОтключенныеЗадания.Очистить();
ПараметрыБлокировки.ИдентификаторБазы = ИдентификаторФайловойБазы(ЭтоФайловаяБаза);
ПараметрыБлокировки.РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
ПараметрыБлокировки.ИмяКомпьютера = ИмяКомпьютера();
ХранилищеЗначения = Новый ХранилищеЗначения(ПараметрыБлокировки);
Константы.ПараметрыБлокировкиРаботыСВнешнимиРесурсами.Установить(ХранилищеЗначения);
@@ -475,21 +474,16 @@
КонецЕсли;
Иначе // Клиент-серверная база
ИмяБазы = НРег(СтроковыеФункцииКлиентСервер.ПараметрыИзСтроки(СтрокаСоединения).Ref);
ИмяКомпьютера = НРег(ИмяКомпьютера());
ИмяСервера = НРег(СтроковыеФункцииКлиентСервер.ПараметрыИзСтроки(СтрокаСоединения).Srvr);
СохраненноеИмяБазы = НРег(СтроковыеФункцииКлиентСервер.ПараметрыИзСтроки(ПараметрыБлокировки.СтрокаСоединения).Ref);
СохраненноеИмяКомпьютера = НРег(ПараметрыБлокировки.ИмяКомпьютера);
СохраненноеИмяСервера = НРег(СтроковыеФункцииКлиентСервер.ПараметрыИзСтроки(ПараметрыБлокировки.СтрокаСоединения).Srvr);
Если ИмяБазы <> СохраненноеИмяБазы
Или (ПараметрыБлокировки.ПроверятьИмяСервера
И (ИмяКомпьютера <> СохраненноеИмяКомпьютера
И ИмяСервера <> СохраненноеИмяСервера)) Тогда
Или ИмяСервера <> СохраненноеИмяСервера Тогда
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Различаются имя информационной базы или имя компьютера.
|Сохраненное имя базы: %1, текущее имя базы: %2.
|Сохраненное имя компьютера: %3, текущее имя компьютера: %4'"),
СохраненноеИмяБазы, ИмяБазы, СохраненноеИмяКомпьютера, ИмяКомпьютера);
|Сохраненное имя базы: %1, текущее имя базы: %2.'"),
СохраненноеИмяБазы, ИмяБазы);
УстановитьПризнакНеобходимостиПринятияРешенияОБлокировке(ПараметрыБлокировки, ТекстСообщения);
Возврат Истина;
КонецЕсли;
@@ -775,13 +775,13 @@
// Возвращаемое значение:
// Строк - контактная информация.
//
Функция КонтактнаяИнформацияПоПредставлению(Представление, ОжидаемыйВид) Экспорт
Функция КонтактнаяИнформацияПоПредставлению(Представление, ОжидаемыйВид, ВСтруктуру = Ложь) Экспорт
ОжидаемыйТип = УправлениеКонтактнойИнформациейСлужебныйПовтИсп.ТипВидаКонтактнойИнформации(ОжидаемыйВид);
Если ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда
Возврат СформироватьАдресПоПредставлению(Представление, Истина);
Возврат СформироватьАдресПоПредставлению(Представление, Истина, ВСтруктуру);
ИначеЕсли ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.Телефон
ИЛИ ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.Факс Тогда
@@ -797,7 +797,7 @@
КонецФункции
Функция СформироватьАдресПоПредставлению(Представление, РазбиватьНаПоля = Ложь)
Функция СформироватьАдресПоПредставлению(Представление, РазбиватьНаПоля = Ложь, ВСтруктуру = Ложь)
ЕстьРаботаСАдресамиКлиентСервер = Метаданные.ОбщиеМодули.Найти("РаботаСАдресамиКлиентСервер") <> Неопределено;
@@ -840,7 +840,7 @@
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный");
ВариантыАдреса = МодульАдресныйКлассификаторСлужебный.РаспознатьАдрес(ДанныеАнализа, Представление);
ВариантыАдреса = МодульАдресныйКлассификаторСлужебный.РаспознатьАдрес(ДанныеАнализа, Представление, ВСтруктуру);
Если ВариантыАдреса = Неопределено Тогда
@@ -2001,7 +2001,7 @@
Попытка
Результат = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML, ФабрикаXDTO.Тип(ПространствоИмен, "КонтактнаяИнформация"));
Если КонтактнаяИнформацияXDTOПустая(Результат) Тогда
Если ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.Адрес И КонтактнаяИнформацияXDTOПустая(Результат) Тогда
НеобходимоВосстановитьКонтактнуюИнформацию = Истина;
КонецЕсли;
@@ -700,6 +700,8 @@
Если ЭтоОбщийМакет Тогда
Возврат ПолучитьОбщийМакет(ИмяПоиска);
Иначе
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
Возврат ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ИмяОбъекта).ПолучитьМакет(ИмяПоиска);
КонецЕсли;
КонецЕсли;
@@ -2126,7 +2128,13 @@
КонецЦикла;
Если ЧастиИмени.Количество() = 3 Тогда
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
МакетИзМетаданных = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ИмяВладельца).ПолучитьМакет(ИмяМакета);
УстановитьПривилегированныйРежим(Ложь);
УстановитьОтключениеБезопасногоРежима(Ложь);
Иначе
МакетИзМетаданных = ПолучитьОбщийМакет(ИмяМакета);
КонецЕсли;
@@ -600,7 +600,7 @@
+ КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
МаскаУпаковкиФайлов = ПутьКСтруктуреФайла + ?(Прав(ПутьКСтруктуреФайла, 1) = "\", "", "\") + "*";
МаскаУпаковкиФайлов = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ПутьКСтруктуреФайла) + "*";
Попытка
Архиватор.Добавить(МаскаУпаковкиФайлов, РежимСохраненияПутейZIP.СохранятьОтносительныеПути, РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно);
@@ -638,9 +638,9 @@
Функция СобратьФайлДокументаDOCX(ПечатнаяФорма)
ИзменяемыеФайлы = Новый Соответствие;
ИзменяемыеФайлы.Вставить("СвязиКонтента", ПечатнаяФорма.ИмяКаталога + "\word\_rels\document.xml.rels");
ИзменяемыеФайлы.Вставить("ТипыКонтента", ПечатнаяФорма.ИмяКаталога + "\[Content_Types].xml");
ИзменяемыеФайлы.Вставить("Документ", ПечатнаяФорма.ИмяКаталога + "\word\document.xml");
ИзменяемыеФайлы.Вставить("СвязиКонтента", ПечатнаяФорма.ИмяКаталога + УстановитьРазделительПути("\word\_rels\document.xml.rels"));
ИзменяемыеФайлы.Вставить("ТипыКонтента", ПечатнаяФорма.ИмяКаталога + УстановитьРазделительПути("\[Content_Types].xml"));
ИзменяемыеФайлы.Вставить("Документ", ПечатнаяФорма.ИмяКаталога + УстановитьРазделительПути("\word\document.xml"));
// Удаляем файлы пустых колонтитулов
КолонтитулВыведен = Новый Соответствие;
@@ -651,7 +651,7 @@
Колонтитул = ЭлементКолонтитула.Значение;
ИмяФайла = ПечатнаяФорма.ИмяКаталога + "\word\" + Колонтитул.ИмяВнутр + ".xml";
ИмяФайла = ПечатнаяФорма.ИмяКаталога + УстановитьРазделительПути("\word\") + Колонтитул.ИмяВнутр + ".xml";
Если ПустаяСтрока(Колонтитул.Текст) Тогда
Продолжить;
КонецЕсли;
@@ -677,7 +677,7 @@
Колонтитул = ЭлементКолонтитула.Значение;
Колонтитул.Текст = "";
ИмяФайла = ПечатнаяФорма.ИмяКаталога + "\word\" + Колонтитул.ИмяВнутр + ".xml";
ИмяФайла = ПечатнаяФорма.ИмяКаталога + УстановитьРазделительПути("\word\") + Колонтитул.ИмяВнутр + ".xml";
УдалитьФайлы(ИмяФайла);
МассивФайловКолонтитулов.Добавить(Колонтитул.ИмяВнутр);
@@ -691,7 +691,7 @@
ПропуститьТэг = Ложь;
ПродолжитьЧтение = Истина;
Пока 1 = 1 Цикл
Пока Истина Цикл
Если ПропуститьТэг Тогда
ЧтениеXML.Пропустить();
@@ -736,7 +736,7 @@
ПропуститьТэг = Ложь;
ПродолжитьЧтение = Истина;
Пока 1 = 1 Цикл
Пока Истина Цикл
Если ПропуститьТэг Тогда
ЧтениеXML.Пропустить();
@@ -776,7 +776,6 @@
// Формирование документа печатной формы
ПорядковыйНомер = 1;
СодержаниеФайла = "";
ЗаписьXML = ИнициализироватьЗаписьXML("", ИзменяемыеФайлы.Получить("Документ"));
@@ -855,7 +854,7 @@
ЗаписьXML.ЗаписатьКонецЭлемента(); // Закрытие тэга </w:body>
ЗаписьXML.ЗаписатьКонецЭлемента(); // Закрытие тэга </w:document>
Документ = ЗаписьXML.Закрыть();
ЗаписьXML.Закрыть();
ПутьКДокументу = ПолучитьИмяВременногоФайла("DOCX");
@@ -871,28 +870,23 @@
СтруктураДокумента = Макет.СтруктураДокумента;
ТаблицаСвязейКонтента = СтруктураДокумента.ТаблицаСвязейКонтента;
МаскаТипов = "[Content_Types].xml";
ФайлТипов = НайтиФайлы(ИмяКаталога, МаскаТипов);
Если ФайлТипов.Количество() = 1 Тогда
Чтение = Новый ЧтениеТекста(ФайлТипов[0].ПолноеИмя, КодировкаТекста.UTF8);
Файл = Новый Файл(ИмяКаталога + "[Content_Types].xml");
Если Файл.Существует() Тогда
Чтение = Новый ЧтениеТекста(Файл.ПолноеИмя, КодировкаТекста.UTF8);
ТекстФайла = Чтение.Прочитать();
СтруктураДокумента.ТипыКонтента = ТекстФайла;
КонецЕсли;
КаталогФайлаСвязей = ИмяКаталога + "\word\_rels";
МаскаСвязей = "document.xml.rels";
ФайлСвязей = НайтиФайлы(КаталогФайлаСвязей, МаскаСвязей);
КаталогФайлаСвязей = ИмяКаталога + УстановитьРазделительПути("\word\_rels\");
Если ФайлСвязей.Количество() = 1 Тогда
ЧтениеXML = Новый ЧтениеТекста(ФайлСвязей[0].ПолноеИмя, КодировкаТекста.UTF8);
Файл = Новый Файл(КаталогФайлаСвязей + "document.xml.rels");
Если Файл.Существует() Тогда
ЧтениеXML = Новый ЧтениеТекста(Файл.ПолноеИмя, КодировкаТекста.UTF8);
ТекстФайла = ЧтениеXML.Прочитать();
СтруктураДокумента.СвязиКонтента = ТекстФайла;
ЧтениеXML = ИнициализироватьЧтениеXML(ТекстФайла);
Пока ЧтениеXML.Прочитать() Цикл
Если НЕ (ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя = "Relationship") Тогда
Продолжить;
КонецЕсли;
@@ -904,21 +898,19 @@
НоваяСтрока.ИмяРесурса = ЧтениеXML.ПолучитьАтрибут("Target");
НоваяСтрока.ИдРесурса = ИдРесурса;
НоваяСтрока.НомерРесурса = НомерРесурса;
КонецЦикла;
КонецЕсли;
// Получить таблицу номеров ресурсов
КаталогСоСтруктуройФайла = ИмяКаталога + "\word";
СтруктурныеФайлы = НайтиФайлы(КаталогСоСтруктуройФайла, "document.xml");
КаталогСоСтруктуройФайла = ИмяКаталога + "word" + ПолучитьРазделительПути();
Для Каждого ТекФайл Из СтруктурныеФайлы Цикл
ЧтениеXML = ИнициализироватьЧтениеXML(ТекФайл.ПолноеИмя, 1);
Файл = Новый Файл(КаталогСоСтруктуройФайла + "document.xml");
Если Файл.Существует() Тогда
ЧтениеXML = ИнициализироватьЧтениеXML(Файл.ПолноеИмя, 1);
ПараметрыАнализа = Новый Структура("ТипАнализа", 1);
РазбитьТекстШаблонаНаОбласти(ЧтениеXML, СтруктураДокумента, ПараметрыАнализа);
КонецЦикла;
КонецЕсли;
Для Каждого Раздел Из СтруктураДокумента.Разделы Цикл
ЧтениеXML = ИнициализироватьЧтениеXML(Раздел.Значение.Текст);
@@ -926,27 +918,22 @@
КонецЦикла;
СтруктурныеФайлы = НайтиФайлы(КаталогСоСтруктуройФайла, "*.xml");
Для Каждого ТекФайл Из СтруктурныеФайлы Цикл
Если НЕ (Лев(ТекФайл.ИмяБезРасширения, 6) = "header") И НЕ (Лев(ТекФайл.ИмяБезРасширения, 6) = "footer") Тогда
Для Каждого Файл Из СтруктурныеФайлы Цикл
Если НЕ (Лев(Файл.ИмяБезРасширения, 6) = "header") И НЕ (Лев(Файл.ИмяБезРасширения, 6) = "footer") Тогда
Продолжить;
КонецЕсли;
Колонтитул = СтруктураДокумента.Колонтитулы.Получить(ТекФайл.Имя);
Колонтитул = СтруктураДокумента.Колонтитулы.Получить(Файл.Имя);
Если Колонтитул = Неопределено Тогда
Продолжить;
КонецЕсли;
СтруктураДокумента.Колонтитулы.Удалить(ТекФайл.Имя);
СтруктураДокумента.Колонтитулы.Удалить(Файл.Имя);
СтруктураДокумента.Колонтитулы.Вставить(Колонтитул.Имя + "_" + Формат(Колонтитул.НомерРаздела, "ЧГ=0"), Колонтитул);
ЧтениеXML = ИнициализироватьЧтениеXML(ТекФайл.ПолноеИмя, 1);
ЧтениеXML = ИнициализироватьЧтениеXML(Файл.ПолноеИмя, 1);
ПараметрыАнализа = Новый Структура("ТипАнализа, СтруктураАнализа", 2, Колонтитул);
РазбитьТекстШаблонаНаОбласти(ЧтениеXML, СтруктураДокумента, ПараметрыАнализа);
КонецЦикла;
КонецПроцедуры
@@ -957,48 +944,44 @@
СтруктураДокумента = ПечатнаяФорма.СтруктураДокумента;
СтруктураДокумента.ИдентификаторДокумента = Макет.СтруктураДокумента.ИдентификаторДокумента;
СтруктураДокумента.КаталогКартинок = ИмяКаталога + "\word\media\";
СтруктураДокумента.КаталогКартинок = ИмяКаталога + УстановитьРазделительПути("\word\media\");
СтруктураДокумента.ТаблицаСвязейКонтента = Макет.СтруктураДокумента.ТаблицаСвязейКонтента.Скопировать();
МаскаТипов = "[Content_Types].xml";
ФайлТипов = НайтиФайлы(ИмяКаталога, МаскаТипов);
Если ФайлТипов.Количество() = 1 Тогда
ЧтениеXML = Новый ЧтениеТекста(ФайлТипов[0].ПолноеИмя,КодировкаТекста.UTF8);
Файл = Новый Файл(ИмяКаталога + "[Content_Types].xml");
Если Файл.Существует() Тогда
ЧтениеXML = Новый ЧтениеТекста(Файл.ПолноеИмя,КодировкаТекста.UTF8);
ТекстФайла = ЧтениеXML.Прочитать();
СтруктураДокумента.ТипыКонтента = ТекстФайла;
КонецЕсли;
КаталогФайлаСвязей = ИмяКаталога + "\word\_rels";
МаскаСвязей = "document.xml.rels";
ФайлСвязей = НайтиФайлы(КаталогФайлаСвязей, МаскаСвязей);
КаталогФайлаСвязей = ИмяКаталога + УстановитьРазделительПути("\word\_rels\");
Если ФайлСвязей.Количество() = 1 Тогда
ЧтениеXML = Новый ЧтениеТекста(ФайлСвязей[0].ПолноеИмя, КодировкаТекста.UTF8);
Файл = Новый Файл(КаталогФайлаСвязей + "document.xml.rels");
Если Файл.Существует() Тогда
ЧтениеXML = Новый ЧтениеТекста(Файл.ПолноеИмя, КодировкаТекста.UTF8);
ТекстФайла = ЧтениеXML.Прочитать();
СтруктураДокумента.СвязиКонтента = ТекстФайла;
КонецЕсли;
КаталогСоСтруктуройФайла = ИмяКаталога + "\word";
КаталогСоСтруктуройФайла = ИмяКаталога + "word" + ПолучитьРазделительПути();
МаскаФайлов ="*.xml";
СтруктурныеФайлы = НайтиФайлы(КаталогСоСтруктуройФайла, МаскаФайлов);
Для Каждого ТекФайл Из СтруктурныеФайлы Цикл
Если ТекФайл.ИмяБезРасширения = "document" Тогда
ЗаписьXML = Новый ЗаписьТекста(ТекФайл.ПолноеИмя, КодировкаТекста.UTF8);
Для Каждого Файл Из СтруктурныеФайлы Цикл
Если Файл.ИмяБезРасширения = "document" Тогда
ЗаписьXML = Новый ЗаписьТекста(Файл.ПолноеИмя, КодировкаТекста.UTF8);
ЗаписьXML.Записать("");
КонецЕсли;
Если Лев(ТекФайл.ИмяБезРасширения, 6) = "header" Тогда
ЗаписьXML = Новый ЗаписьТекста(ТекФайл.ПолноеИмя,КодировкаТекста.UTF8);
Если Лев(Файл.ИмяБезРасширения, 6) = "header" Тогда
ЗаписьXML = Новый ЗаписьТекста(Файл.ПолноеИмя,КодировкаТекста.UTF8);
ЗаписьXML.Записать("");
КонецЕсли;
Если Лев(ТекФайл.ИмяБезРасширения, 6) = "footer" Тогда
ЗаписьXML = Новый ЗаписьТекста(ТекФайл.ПолноеИмя, КодировкаТекста.UTF8);
Если Лев(Файл.ИмяБезРасширения, 6) = "footer" Тогда
ЗаписьXML = Новый ЗаписьТекста(Файл.ПолноеИмя, КодировкаТекста.UTF8);
ЗаписьXML.Записать("");
КонецЕсли;
КонецЦикла;
// Текст копирования колонтитулов и разделов из макета
@@ -2703,8 +2686,6 @@
ЗаписьXML = ИнициализироватьЗаписьXML("",,,Ложь);
ПропуститьТэг = Ложь;
ЗаписатьБезусловно = Ложь;
Пока ЧтениеXML.Прочитать() Цикл
Если ПропуститьТэг = Истина Тогда
@@ -2855,7 +2836,7 @@
Тэг = ПрочитатьЗначениеБайтаИзПотока(ЧтениеДанных, 2, ПорядокБайтовBigEndian);
ТипПоля = ПрочитатьЗначениеБайтаИзПотока(ЧтениеДанных, 2, ПорядокБайтовBigEndian);
Пропуск = ПрочитатьЗначениеБайтаИзПотока(ЧтениеДанных, 4, ПорядокБайтовBigEndian);
ПрочитатьЗначениеБайтаИзПотока(ЧтениеДанных, 4, ПорядокБайтовBigEndian);
Если (ТипПоля = 3 ИЛИ ТипПоля = 8) Тогда
@@ -2993,10 +2974,7 @@
КонецЦикла;
ЛидирующиеНули = "";
ЧислоНулей = СтрДлина(Маска) - СтрДлина(Результат);
Для Инд = 1 По ЧислоНулей Цикл
Результат = "0" + Результат;
КонецЦикла;
@@ -3053,13 +3031,13 @@
СоздатьКаталог(Куда);
КонецЕсли;
Файлы = НайтиФайлы(Откуда, "*.*");
Файлы = НайтиФайлы(Откуда, ПолучитьМаскуВсеФайлы());
Для Каждого Файл Из Файлы Цикл
Если Файл.ЭтоКаталог() Тогда
КопироватьСодержимоеКаталога(Файл.ПолноеИмя, Куда + "\" + Файл.Имя);
КопироватьСодержимоеКаталога(Файл.ПолноеИмя, УстановитьРазделительПути(Куда + "\" + Файл.Имя));
Иначе
КопироватьФайл(Файл.ПолноеИмя, Куда + "\" + Файл.Имя);
КопироватьФайл(Файл.ПолноеИмя, УстановитьРазделительПути(Куда + "\" + Файл.Имя));
КонецЕсли;
КонецЦикла;
@@ -3141,4 +3119,8 @@
КонецФункции
Функция УстановитьРазделительПути(Знач Путь)
Возврат СтрСоединить(СтрРазделить(Путь, "\/", Истина), ПолучитьРазделительПути());
КонецФункции
#КонецОбласти
+9 -9
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="50f87404-99a4-476d-a740-6abc269cdb4b">
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="a3b48aee-0990-496f-aad1-cb26ff05410f">
<name>БиблиотекаСтандартныхПодсистем</name>
<synonym>
<key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.0</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="6887c076-7ba4-454c-8474-6ec27d519b99"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="ebc9f6e3-480a-4188-be05-4771db10010b"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="5177e372-f398-4dc0-a425-0cd66c2aadf4"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="673b1cf2-2860-4b8b-80af-ee524510197f"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="fa032180-8116-4bb9-a8a3-c395061e5d8a"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="6fddc708-7770-4479-abda-b13dbc944409"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="fa75c4e8-1de9-4981-bfd5-8f0faa4970dd"/>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="12585ade-6aa5-45ed-b689-adcff9a0a93f"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="490e9d23-3733-44a5-b879-d1f3e5626c4f"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="0b350b79-6f1a-4bba-b861-fe7e22d4d8d3"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="bfe224e0-383b-4900-aa1c-23ca26b30d76"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="2e8a0073-6863-4a28-83a2-b92c20d32c16"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="1bbdb79a-e814-4530-8cfb-c57ac347ecbe"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="c7fa6c66-c53c-43de-884a-6cd85e1e4b9c"/>
<defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor>
<version>3.0.1.314</version>
<version>3.0.1.323</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities>
@@ -1 +1 @@
{6,1,1,d6755c5c-141a-4870-8c1c-f9dfbd39ea8d,1,749cb7ac-c10c-47e5-b30b-189ae4c4915e,"3.0.1.314","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5875,1,0,50f87404-99a4-476d-a740-6abc269cdb4b,50f87404-99a4-476d-a740-6abc269cdb4b,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,c6f775b4-c112-4ce7-9e0f-d1b938662c6d,1,eb31683f-4ea4-4095-b537-548db21b36ee,"3.0.1.323","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5875,1,0,a3b48aee-0990-496f-aad1-cb26ff05410f,a3b48aee-0990-496f-aad1-cb26ff05410f,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
@@ -892,6 +892,7 @@
ПараметрыМетода.Параметры = Новый Структура;
ПараметрыМетода.Параметры.Вставить("СпособУдаления", ТекущийВариантУдаления);
ПараметрыМетода.Параметры.Вставить("ВключатьБизнесЛогику", Истина);
ПараметрыМетода.Параметры.Вставить("ЗаменаПарыВТранзакции", Ложь);
// Запуск фонового задания для замены.
Задание = ЗапуститьФоновоеЗадание(ПараметрыМетода, УникальныйИдентификатор);
@@ -37,19 +37,19 @@
Функция ВерсияКалендарей() Экспорт
Возврат 18;
Возврат 20;
КонецФункции
Функция ВерсияОбновленияПроизводственныхКалендарей() Экспорт
Возврат "3.0.1.86";
Возврат "3.0.1.316";
КонецФункции
Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт
Возврат "3.0.1.242";
Возврат "3.0.1.318";
КонецФункции
@@ -45,6 +45,10 @@
<Item Calendar="02" Year="2018" DayType="Праздник" Date="20180821" SwapDate=""/>
<Item Calendar="02" Year="2018" DayType="Предпраздничный" Date="20181010" SwapDate=""/>
<Item Calendar="02" Year="2018" DayType="Праздник" Date="20181011" SwapDate=""/>
<Item Calendar="02" Year="2019" DayType="Предпраздничный" Date="20190603" SwapDate=""/>
<Item Calendar="02" Year="2019" DayType="Праздник" Date="20190604" SwapDate=""/>
<Item Calendar="02" Year="2019" DayType="Праздник" Date="20190811" SwapDate="20190812"/>
<Item Calendar="02" Year="2019" DayType="Воскресенье" Date="20190812" SwapDate="20190811"/>
<Item Calendar="02" Year="2019" DayType="Предпраздничный" Date="20191010" SwapDate=""/>
<Item Calendar="02" Year="2019" DayType="Праздник" Date="20191011" SwapDate=""/>
<Item Calendar="03" Year="2016" DayType="Предпраздничный" Date="20160208" SwapDate=""/>
@@ -52,8 +56,8 @@
<Item Calendar="03" Year="2017" DayType="Праздник" Date="20170227" SwapDate=""/>
<Item Calendar="03" Year="2018" DayType="Предпраздничный" Date="20180215" SwapDate=""/>
<Item Calendar="03" Year="2018" DayType="Праздник" Date="20180216" SwapDate=""/>
<Item Calendar="03" Year="2019" DayType="Предпраздничный" Date="20190205" SwapDate=""/>
<Item Calendar="03" Year="2019" DayType="Праздник" Date="20190206" SwapDate=""/>
<Item Calendar="03" Year="2019" DayType="Предпраздничный" Date="20190204" SwapDate=""/>
<Item Calendar="03" Year="2019" DayType="Праздник" Date="20190205" SwapDate=""/>
<Item Calendar="04" Year="2016" DayType="Праздник" Date="20160214" SwapDate="20160215"/>
<Item Calendar="04" Year="2016" DayType="Воскресенье" Date="20160215" SwapDate="20160214"/>
<Item Calendar="04" Year="2017" DayType="Предпраздничный" Date="20170203" SwapDate=""/>
@@ -158,8 +162,8 @@
<Item Calendar="08" Year="2018" DayType="Праздник" Date="20181202" SwapDate="20181203"/>
<Item Calendar="08" Year="2018" DayType="Воскресенье" Date="20181203" SwapDate="20181202"/>
<Item Calendar="08" Year="2018" DayType="Нерабочий" Date="20181228" SwapDate=""/>
<Item Calendar="08" Year="2019" DayType="Предпраздничный" Date="20190205" SwapDate=""/>
<Item Calendar="08" Year="2019" DayType="Праздник" Date="20190206" SwapDate=""/>
<Item Calendar="08" Year="2019" DayType="Предпраздничный" Date="20190204" SwapDate=""/>
<Item Calendar="08" Year="2019" DayType="Праздник" Date="20190205" SwapDate=""/>
<Item Calendar="08" Year="2019" DayType="Предпраздничный" Date="20190404" SwapDate=""/>
<Item Calendar="08" Year="2019" DayType="Праздник" Date="20190405" SwapDate=""/>
<Item Calendar="08" Year="2019" DayType="Нерабочий" Date="20191228" SwapDate=""/>
@@ -207,6 +211,8 @@
<Item Calendar="14" Year="2019" DayType="Суббота" Date="20190429" SwapDate="20190427"/>
<Item Calendar="14" Year="2019" DayType="Предпраздничный" Date="20190620" SwapDate=""/>
<Item Calendar="14" Year="2019" DayType="Праздник" Date="20190621" SwapDate=""/>
<Item Calendar="15" Year="2018" DayType="Праздник" Date="20181119" SwapDate=""/>
<Item Calendar="15" Year="2019" DayType="Праздник" Date="20191118" SwapDate=""/>
<Item Calendar="16" Year="2016" DayType="Предпраздничный" Date="20160704" SwapDate=""/>
<Item Calendar="16" Year="2016" DayType="Праздник" Date="20160705" SwapDate=""/>
<Item Calendar="16" Year="2016" DayType="Предпраздничный" Date="20160829" SwapDate=""/>
@@ -226,6 +232,10 @@
<Item Calendar="16" Year="2018" DayType="Предпраздничный" Date="20180829" SwapDate=""/>
<Item Calendar="16" Year="2018" DayType="Праздник" Date="20180830" SwapDate=""/>
<Item Calendar="16" Year="2018" DayType="Праздник" Date="20181106" SwapDate=""/>
<Item Calendar="16" Year="2019" DayType="Предпраздничный" Date="20190603" SwapDate=""/>
<Item Calendar="16" Year="2019" DayType="Праздник" Date="20190604" SwapDate=""/>
<Item Calendar="16" Year="2019" DayType="Праздник" Date="20190811" SwapDate="20190812"/>
<Item Calendar="16" Year="2019" DayType="Воскресенье" Date="20190812" SwapDate="20190811"/>
<Item Calendar="16" Year="2019" DayType="Предпраздничный" Date="20190829" SwapDate=""/>
<Item Calendar="16" Year="2019" DayType="Праздник" Date="20190830" SwapDate=""/>
<Item Calendar="16" Year="2019" DayType="Предпраздничный" Date="20191105" SwapDate=""/>
@@ -255,8 +265,8 @@
<Item Calendar="17" Year="2018" DayType="Воскресенье" Date="20180717" SwapDate="20180715"/>
<Item Calendar="17" Year="2018" DayType="Предпраздничный" Date="20180814" SwapDate=""/>
<Item Calendar="17" Year="2018" DayType="Праздник" Date="20180815" SwapDate=""/>
<Item Calendar="17" Year="2019" DayType="Предпраздничный" Date="20190205" SwapDate=""/>
<Item Calendar="17" Year="2019" DayType="Праздник" Date="20190206" SwapDate=""/>
<Item Calendar="17" Year="2019" DayType="Предпраздничный" Date="20190204" SwapDate=""/>
<Item Calendar="17" Year="2019" DayType="Праздник" Date="20190205" SwapDate=""/>
<Item Calendar="17" Year="2019" DayType="Праздник" Date="20190506" SwapDate=""/>
<Item Calendar="17" Year="2019" DayType="Предпраздничный" Date="20190814" SwapDate=""/>
<Item Calendar="17" Year="2019" DayType="Праздник" Date="20190815" SwapDate=""/>
@@ -337,15 +347,15 @@
<Item Calendar="75" Year="2017" DayType="Праздник" Date="20170227" SwapDate=""/>
<Item Calendar="75" Year="2018" DayType="Предпраздничный" Date="20180215" SwapDate=""/>
<Item Calendar="75" Year="2018" DayType="Праздник" Date="20180216" SwapDate=""/>
<Item Calendar="75" Year="2019" DayType="Предпраздничный" Date="20190205" SwapDate=""/>
<Item Calendar="75" Year="2019" DayType="Праздник" Date="20190206" SwapDate=""/>
<Item Calendar="75" Year="2019" DayType="Предпраздничный" Date="20190204" SwapDate=""/>
<Item Calendar="75" Year="2019" DayType="Праздник" Date="20190205" SwapDate=""/>
<Item Calendar="85" Year="2016" DayType="Предпраздничный" Date="20160208" SwapDate=""/>
<Item Calendar="85" Year="2016" DayType="Праздник" Date="20160209" SwapDate=""/>
<Item Calendar="85" Year="2017" DayType="Праздник" Date="20170227" SwapDate=""/>
<Item Calendar="85" Year="2018" DayType="Предпраздничный" Date="20180215" SwapDate=""/>
<Item Calendar="85" Year="2018" DayType="Праздник" Date="20180216" SwapDate=""/>
<Item Calendar="85" Year="2019" DayType="Предпраздничный" Date="20190205" SwapDate=""/>
<Item Calendar="85" Year="2019" DayType="Праздник" Date="20190206" SwapDate=""/>
<Item Calendar="85" Year="2019" DayType="Предпраздничный" Date="20190204" SwapDate=""/>
<Item Calendar="85" Year="2019" DayType="Праздник" Date="20190205" SwapDate=""/>
<Item Calendar="91" Year="2016" DayType="Предпраздничный" Date="20160317" SwapDate=""/>
<Item Calendar="91" Year="2016" DayType="Праздник" Date="20160318" SwapDate=""/>
<Item Calendar="91" Year="2016" DayType="Праздник" Date="20160620" SwapDate=""/>
@@ -11,6 +11,7 @@
<Item Code="09" Description="Карачаево-Черкесская Республика" Base="РФ"/>
<Item Code="11" Description="Республика Коми" Base="РФ"/>
<Item Code="14" Description="Республика Саха (Якутия)" Base="РФ"/>
<Item Code="15" Description="Республика Северная Осетия - Алания" Base="РФ"/>
<Item Code="16" Description="Республика Татарстан" Base="РФ"/>
<Item Code="17" Description="Республика Тыва" Base="РФ"/>
<Item Code="20" Description="Чеченская республика" Base="РФ"/>
@@ -253,35 +253,6 @@
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<items xsi:type="form:Decoration">
<name>Декорация7</name>
<id>62</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>Декорация7РасширеннаяПодсказка</name>
<id>64</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>Декорация7КонтекстноеМеню</name>
<id>63</id>
<autoFill>true</autoFill>
</contextMenu>
<width>1</width>
<autoMaxWidth>true</autoMaxWidth>
<height>1</height>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:PictureDecorationExtInfo"/>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -1736,7 +1736,7 @@
Если ТекущиеДанные <> Неопределено И РасширенияПоддерживающиеПредпросмотр.НайтиПоЗначению(ТекущиеДанные.Расширение) <> Неопределено Тогда
Попытка
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(ТекущиеДанные.Ссылка, Неопределено, УникальныйИдентификатор);
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(ТекущиеДанные.Ссылка, Неопределено, УникальныйИдентификатор,, АдресДанныхФайла);
АдресДанныхФайла = ДанныеФайла.СсылкаНаДвоичныеДанныеФайла;
Исключение
// Если файла не существует, то будет вызвано исключение.
@@ -1122,9 +1122,9 @@
КонецПроцедуры
&НаСервереБезКонтекста
Функция КонтактнаяИнформацияПоПредставлению(ПредставлениеАдреса)
Функция КонтактнаяИнформацияПоПредставлению(ПредставлениеАдреса, ВСтруктуру = Ложь)
Адрес = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияПоПредставлению(ПредставлениеАдреса, Перечисления.ТипыКонтактнойИнформации.Адрес);
Адрес = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияПоПредставлению(ПредставлениеАдреса, Перечисления.ТипыКонтактнойИнформации.Адрес, ВСтруктуру);
Возврат Адрес;
КонецФункции
@@ -1350,11 +1350,14 @@
Если РаботаСАдресамиКлиентСервер.ЭтоОсновнаяСтрана(Страна) Тогда
// Попытка восстановить адрес по полям из представления.
НаселенныйПунктДетально = КонтактнаяИнформацияПоПредставлению(ПредставлениеАдреса);
НаселенныйПунктДетально = КонтактнаяИнформацияПоПредставлению(ПредставлениеАдреса, Истина);
Иначе
НаселенныйПунктДетально.Street = ПредставлениеАдреса;
КонецЕсли;
Комментарий = НаселенныйПунктДетально.comment;
РазрешитьВводАдресаВСвободнойФорме = Ложь;
КонецЕсли;
НаселенныйПунктДетально.AddressType = ВыбранныйТипАдреса;
@@ -1795,7 +1798,9 @@
&НаКлиенте
Процедура ПослеЗагрузкиАдресногоКлассификатора(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
СообщениеОНеобходимостиОбновленияКлассификатора(НаселенныйПунктДетально.Регион.Идентификатор);
КонецЕсли;
КонецПроцедуры
&НаСервере
@@ -3187,6 +3192,9 @@
РаботаСАдресамиКлиентСервер.ОбновитьПредставлениеАдреса(НаселенныйПунктДетально, ВидКонтактнойИнформации.ВключатьСтрануВПредставление);
ПредставлениеАдреса = НаселенныйПунктДетально.Value;
Если ВидКонтактнойИнформации.ВключатьСтрануВПредставление И УправлениеКонтактнойИнформациейКлиентСервер.ЭтоАдресВСвободнойФорме(НаселенныйПунктДетально.AddressType) Тогда
УдалитьСтрануИзПредставления();
КонецЕсли;
ПоказатьПодсказкуПоТипАдреса();
@@ -1347,24 +1347,13 @@
НСтр("ru = 'Не соответствует установленной длина полей:'"));
Результат.Добавить(НеСоответствуетДлинаПолей);
Возврат Результат;
// 2) Индекс, Регион, Дом должны быть заполнены.
Если ПустаяСтрока(ДанныеАдреса.Zipcode) Тогда
ДобавитьОшибкуЗаполненияАдреса(НеЗаполненыОбязательныеПоля, РаботаСАдресамиКлиентСервер.XPathПочтовогоИндекса(),
НСтр("ru = 'Не указан почтовый индекс.'"), "Индекс");
КонецЕсли;
Регион = СокрЛП(ДанныеАдреса.Area + " " + ДанныеАдреса.AreaType);
Если ПустаяСтрока(Регион) Тогда
ДобавитьОшибкуЗаполненияАдреса(НеЗаполненыОбязательныеПоля, "СубъектРФ",
НСтр("ru = 'Не указан регион.'"), "Регион");
КонецЕсли;
// 3) Регион, Район, Город, НаселенныйПункт, Улица должны:
// - иметь сокращение.
// - не длинней 50 символов.
// - только кириллица.
// 3) Регион, Район, Город, НаселенныйПункт, Улица должны: иметь сокращение, только кириллица.
ДопустимоКромеКириллицы = "/,-. 0123456789_N";
@@ -1375,10 +1364,6 @@
ДобавитьОшибкуЗаполненияАдреса(НеУказаныСокращенияПолей, "СубъектРФ",
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не указано сокращение в названии региона ""%1"".'"), Регион), НСтр("ru = 'Регион'"));
КонецЕсли;
Если СтрДлина(Регион) > 50 Тогда
ДобавитьОшибкуЗаполненияАдреса(НеСоответствуетДлинаПолей, Поле,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Название региона ""%1"" должно быть короче 50 символов.'"),Регион), НСтр("ru = 'Регион'"));
КонецЕсли;
Если Не СтроковыеФункцииКлиентСервер.ТолькоКириллицаВСтроке(Регион, Ложь, ДопустимоКромеКириллицы) Тогда
ДобавитьОшибкуЗаполненияАдреса(НедопустимыеСимволыПолей, Поле,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'В названии региона ""%1"" есть не кириллические символы.'"), Регион), НСтр("ru = 'Регион'"));
@@ -1393,10 +1378,6 @@
ДобавитьОшибкуЗаполненияАдреса(НеУказаныСокращенияПолей, Поле,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не указано сокращение в названии района ""%1"".'"), Район), НСтр("ru = 'Район'"));
КонецЕсли;
Если СтрДлина(Район) > 50 Тогда
ДобавитьОшибкуЗаполненияАдреса(НеСоответствуетДлинаПолей, Поле,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Название района ""%1"" должно быть короче 50 символов.'"), Район), НСтр("ru = 'Район'"));
КонецЕсли;
Если Не СтроковыеФункцииКлиентСервер.ТолькоКириллицаВСтроке(Район, Ложь, ДопустимоКромеКириллицы) Тогда
ДобавитьОшибкуЗаполненияАдреса(НедопустимыеСимволыПолей, Поле,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'В названии района ""%1"" есть не кириллические символы.'"), Район), НСтр("ru = 'Район'"));
@@ -1411,10 +1392,6 @@
ДобавитьОшибкуЗаполненияАдреса(НеУказаныСокращенияПолей, Поле,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не указано сокращение в названии города ""%1"".'"), Город), НСтр("ru = 'Город'"));
КонецЕсли;
Если СтрДлина(Город) > 50 Тогда
ДобавитьОшибкуЗаполненияАдреса(НеСоответствуетДлинаПолей, Поле,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Название города ""%1"" должно быть короче 50 символов.'"), Город), НСтр("ru = 'Город'"));
КонецЕсли;
Если Не СтроковыеФункцииКлиентСервер.ТолькоКириллицаВСтроке(Город, Ложь, ДопустимоКромеКириллицы) Тогда
ДобавитьОшибкуЗаполненияАдреса(НедопустимыеСимволыПолей, Поле,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'В названии города ""%1"" есть не кириллические символы.'"), Город), НСтр("ru = 'Город'"));
@@ -1430,11 +1407,6 @@
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не указано сокращение в названии населенного пункта ""%1"".'"), НаселенныйПункт),
НСтр("ru = 'Населенный пункт'"));
КонецЕсли;
Если СтрДлина(НаселенныйПункт) > 50 Тогда
ДобавитьОшибкуЗаполненияАдреса(НеСоответствуетДлинаПолей, Поле,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Название населенного пункта ""%1"" должно быть короче 50 символов.'"), НаселенныйПункт),
НСтр("ru = 'Населенный пункт'"));
КонецЕсли;
Если Не СтроковыеФункцииКлиентСервер.ТолькоКириллицаВСтроке(НаселенныйПункт, Ложь, ДопустимоКромеКириллицы) Тогда
ДобавитьОшибкуЗаполненияАдреса(НедопустимыеСимволыПолей, Поле,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'В названии населенного пункта ""%1"" есть не кириллические символы.'"), НаселенныйПункт),
@@ -1450,10 +1422,6 @@
ДобавитьОшибкуЗаполненияАдреса(НеУказаныСокращенияПолей, Поле,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не указано сокращение в названии улицы ""%1"".'"), Улица), НСтр("ru = 'Улица'"));
КонецЕсли;
Если СтрДлина(Район) > 50 Тогда
ДобавитьОшибкуЗаполненияАдреса(НеСоответствуетДлинаПолей, Поле,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Название улицы ""%1"" должно быть короче 50 символов.'"), Улица), НСтр("ru = 'Улица'"));
КонецЕсли;
Если Не СтроковыеФункцииКлиентСервер.ТолькоКириллицаВСтроке(Улица, Ложь, ДопустимоКромеКириллицы) Тогда
ДобавитьОшибкуЗаполненияАдреса(НедопустимыеСимволыПолей, Поле,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'В названии улицы ""%1"" есть не кириллические символы.'"), Улица), НСтр("ru = 'Улица'"));
@@ -1482,7 +1450,13 @@
КонецЕсли;
КонецЕсли;
// 7) Улица не может быть пустой если НаселенныйПункт пустой.
// 7) Дома не могут быть пустыми
Если ПустаяСтрока(ДанныеАдреса.houseNumber) И ДанныеАдреса.buildings.Количество() = 0 Тогда
Поле = "Дом";
ДобавитьОшибкуЗаполненияАдреса(НеСоответствуетДлинаПолей, Поле,
НСтр("ru = 'Не указан номер дома.'"),
НСтр("ru = 'Дом'"));
КонецЕсли;
// Все. Убираем пустые результаты, корректируем сообщение группы.
Для Индекс = 1-Результат.Количество() По 0 Цикл
@@ -351,9 +351,15 @@ function restoreDB () {
}
function WaitUntilFinish () {
var FileArchive = oFileSystemObject.GetFile(BaseFileName + '\\1Cv8.1CD')
var FileSize = FileArchive.size / 1024
if (FileSize < 5) {
var fileName = BaseFileName + '\\1Cv8.1CD'
if (!oFileSystemObject.FileExists(fileName)) {
return -1
}
var fileArchive = oFileSystemObject.GetFile(fileName)
var fileSize = fileArchive.size / 1024
if (fileSize < 5) {
return -1
}
@@ -3745,6 +3745,9 @@
<edit>
<common>true</common>
</edit>
<settingsSavedData xsi:type="form:DataPath">
<segments>Монопольно</segments>
</settingsSavedData>
</attributes>
<attributes>
<name>ПодробныйТекстОшибки</name>
@@ -50,6 +50,7 @@
РежимУдаления = "Полный";
ПриСозданииНаСервереУстановитьТекстПоясненияКОбработке();
ВидимостьДоступность(ЭтотОбъект);
Монопольно = Истина;
Если ОбщегоНазначенияКлиентСервер.ЭтоМобильныйКлиент() Тогда // Временное решение для работы в мобильном клиенте, будет удалено в следующих версиях
@@ -13,7 +13,8 @@
//
Процедура УдалитьПомеченныеОбъектыИнтерактивно(ПараметрыВыполнения, АдресХранилища) Экспорт
УдалитьПомеченныеОбъекты(ПараметрыВыполнения);
ПоместитьВоВременноеХранилище(ИзвлечьРезультат(ПараметрыВыполнения), АдресХранилища);
ПараметрыВыполнения.Удалить("ВсеПомеченныеНаУдаление");
ПоместитьВоВременноеХранилище(ПараметрыВыполнения, АдресХранилища);
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
@@ -58,6 +59,7 @@
КонецЕсли;
Попытка
Если ПараметрыВыполнения.Монопольно Тогда
УдалитьПомеченныеОбъектыМонопольно(ПараметрыВыполнения);
Иначе // Не монопольно.
@@ -114,7 +116,6 @@
ПараметрыВыполнения.ПовторноУдаляемые.Удалить(0);
Результат = УдалитьСсылку(ПараметрыВыполнения, Ссылка);
ЗарегистрироватьРезультатУдаления(ПараметрыВыполнения, Ссылка, Результат, "ПовторноУдаляемые");
ОтметитьПрогрессОбходаКоллекции(ПараметрыВыполнения, "ПовторноУдаляемые");
КонецЦикла;
@@ -130,10 +131,9 @@
// Удаление одиночного объекта с контролем результата и откатом транзакции в случае неудачи.
Функция УдалитьСсылку(ПараметрыВыполнения, Ссылка)
Результат = Новый Структура; // Результат обрабатывается в ЗарегистрироватьРезультатУдаления().
Результат.Вставить("Успех", Неопределено);
Результат.Вставить("Успех", Ложь);
Результат.Вставить("ИнформацияОбОшибке", Неопределено);
Результат.Вставить("ПрепятствующиеУдалению", Неопределено);
Результат.Вставить("ВложенныеИПодчиненныеОбъекты", Новый Массив);
Результат.Вставить("Количество", 0);
Результат.Вставить("Сообщения", Неопределено);
@@ -141,7 +141,7 @@
НачатьТранзакцию();
Попытка
ПопробоватьУдалитьСсылку(ПараметрыВыполнения, Ссылка, Информация, Результат);
ПопробоватьУдалитьСсылку(Ссылка, ПараметрыВыполнения, Информация, Результат);
Если Результат.Успех Тогда
ЗафиксироватьТранзакцию();
Иначе
@@ -158,22 +158,10 @@
ЗаписатьПредупреждение(Ссылка, Результат.ИнформацияОбОшибке);
КонецЕсли;
Если ТипЗнч(Результат.ПрепятствующиеУдалению) = Тип("ТаблицаЗначений") Тогда
Результат.ПрепятствующиеУдалению.Колонки[0].Имя = "УдаляемыйСсылка";
Результат.ПрепятствующиеУдалению.Колонки[1].Имя = "ОбнаруженныйСсылка";
Результат.ПрепятствующиеУдалению.Колонки[2].Имя = "ОбнаруженныйМетаданные";
Для Каждого ОбнаруженныйСсылка Из Результат.ВложенныеИПодчиненныеОбъекты Цикл
СтрокаТаблицы = Результат.ПрепятствующиеУдалению.Добавить();
СтрокаТаблицы.УдаляемыйСсылка = Ссылка;
СтрокаТаблицы.ОбнаруженныйСсылка = ОбнаруженныйСсылка;
КонецЦикла;
КонецЕсли;
Возврат Результат;
КонецФункции
// Механика удаления объекта и поиска ссылок.
Процедура ПопробоватьУдалитьСсылку(ПараметрыВыполнения, Ссылка, Информация, Результат)
Процедура ПопробоватьУдалитьСсылку(Ссылка, ПараметрыВыполнения, Информация, Результат)
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить(Информация.ПолноеИмя);
ЭлементБлокировки.УстановитьЗначение("Ссылка", Ссылка);
@@ -190,47 +178,69 @@
Возврат;
КонецЕсли;
НайтиВложенныеИПодчиненныеОбъекты(ПараметрыВыполнения, Ссылка, Информация, Результат);
ДочерниеИПодчиненныеОбъекты = НайтиДочерниеИПодчиненныеОбъекты(Ссылка, Информация);
Результат.Количество = Результат.Количество + ДочерниеИПодчиненныеОбъекты.Количество();
// Удаление невозможно, если есть хотя бы один дочерний или подчиненный объект, не помеченный на удаление.
// Эта предварительная проверка позволяет избежать отката длинной транзакции при удалении в иерархических таблицах.
ДочерниеИПодчиненныеОбъектыПомечены = Истина;
Для каждого ПодчиненныйОбъект Из ДочерниеИПодчиненныеОбъекты Цикл
Если Не ПодчиненныйОбъект.ПометкаУдаления Тогда
ДочерниеИПодчиненныеОбъектыПомечены = Ложь;
Прервать;
КонецЕсли;
КонецЦикла;
Если ДочерниеИПодчиненныеОбъектыПомечены Тогда
Объект.Удалить();
КонецЕсли;
НайтиПрепятствующиеУдалению(ПараметрыВыполнения, Ссылка, Информация, Результат);
Если Результат.Количество = 0 Тогда
Результат.Успех = Истина;
Иначе
Результат.Успех = Ложь;
Результат.ПрепятствующиеУдалению = НайтиПрепятствующиеУдалению(Ссылка, ПараметрыВыполнения);
Результат.Количество = Результат.Количество + Результат.ПрепятствующиеУдалению.Количество();
Результат.Успех = (Результат.Количество = 0);
Если Не Результат.Успех Тогда
Результат.ИнформацияОбОшибке = НСтр("ru = 'Объект используется в других объектах программы.'");
Если ТипЗнч(Результат.ПрепятствующиеУдалению) = Тип("ТаблицаЗначений") Тогда
Результат.ПрепятствующиеУдалению.Колонки[0].Имя = "УдаляемыйСсылка";
Результат.ПрепятствующиеУдалению.Колонки[1].Имя = "ОбнаруженныйСсылка";
Результат.ПрепятствующиеУдалению.Колонки[2].Имя = "ОбнаруженныйМетаданные";
Если ДочерниеИПодчиненныеОбъектыПомечены Тогда
Для Каждого ПодчиненныйОбъект Из ДочерниеИПодчиненныеОбъекты Цикл
СтрокаТаблицы = Результат.ПрепятствующиеУдалению.Добавить();
СтрокаТаблицы.УдаляемыйСсылка = Ссылка;
СтрокаТаблицы.ОбнаруженныйСсылка = ПодчиненныйОбъект.Ссылка;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
// Поиск ссылок вложенных и подчиненных (иерархия и связь по владельцу). Выполняется до удаления.
Процедура НайтиВложенныеИПодчиненныеОбъекты(ПараметрыВыполнения, Ссылка, Информация, Результат)
Функция НайтиДочерниеИПодчиненныеОбъекты(Ссылка, Информация)
ВложенныеИПодчиненныеОбъекты = Новый Массив;
Если Информация.Иерархический Тогда
Запрос = Новый Запрос(Информация.ТекстЗапросаПоИерархии);
Запрос.УстановитьПараметр("УдаляемыйСсылка", Ссылка);
ВложенныеОбъекты = Запрос.Выполнить().Выгрузить();
Для Каждого СтрокаТаблицы Из ВложенныеОбъекты Цикл
Результат.ВложенныеИПодчиненныеОбъекты.Добавить(СтрокаТаблицы.Ссылка);
КонецЦикла;
Результат.Количество = Результат.Количество + ВложенныеОбъекты.Количество();
ВложенныеИПодчиненныеОбъекты = Запрос.Выполнить().Выгрузить();
КонецЕсли;
Если Информация.ЕстьПодчиненные Тогда
Запрос = Новый Запрос(Информация.ТекстЗапросаПоПодчиненным);
Запрос.УстановитьПараметр("УдаляемыйСсылка", Ссылка);
ПодчиненныеОбъекты = Запрос.Выполнить().Выгрузить();
Для Каждого СтрокаТаблицы Из ПодчиненныеОбъекты Цикл
Результат.ВложенныеИПодчиненныеОбъекты.Добавить(СтрокаТаблицы.Ссылка);
КонецЦикла;
Результат.Количество = Результат.Количество + ПодчиненныеОбъекты.Количество();
Если ВложенныеИПодчиненныеОбъекты.Количество() > 0 Тогда
ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(ВложенныеИПодчиненныеОбъекты, ПодчиненныеОбъекты);
Иначе
ВложенныеИПодчиненныеОбъекты = ПодчиненныеОбъекты;
КонецЕсли;
КонецЕсли;
Возврат ВложенныеИПодчиненныеОбъекты;
КонецПроцедуры
КонецФункции
// Поиск ссылок путем сканирования всех таблиц. Выполняется после удаления.
Процедура НайтиПрепятствующиеУдалению(ПараметрыВыполнения, Ссылка, Информация, Результат)
Функция НайтиПрепятствующиеУдалению(Ссылка, ПараметрыВыполнения)
ПоискСсылок = Новый Массив;
ПоискСсылок.Добавить(Ссылка);
@@ -241,8 +251,8 @@
Количество = ПрепятствующиеУдалению.Количество();
ИмяКолонки = ПрепятствующиеУдалению.Колонки[1].Имя;
Для Номер = 1 По Количество Цикл
ОбратныйИндекс = Количество - Номер;
СтрокаТаблицы = ПрепятствующиеУдалению[ОбратныйИндекс];
Индекс = Количество - Номер;
СтрокаТаблицы = ПрепятствующиеУдалению[Индекс];
ПрепятствующийСсылка = СтрокаТаблицы[ИмяКолонки];
Если ПрепятствующийСсылка = Ссылка
Или ДокументУжеУдален(ПараметрыВыполнения, ПрепятствующийСсылка) Тогда
@@ -250,11 +260,9 @@
КонецЕсли;
КонецЦикла;
// Регистрация результата.
Результат.ПрепятствующиеУдалению = ПрепятствующиеУдалению;
Результат.Количество = Результат.Количество + Результат.ПрепятствующиеУдалению.Количество();
Возврат ПрепятствующиеУдалению;
КонецПроцедуры
КонецФункции
// Поиск ссылки документа в базе данных.
Функция ДокументУжеУдален(ПараметрыВыполнения, Ссылка)
@@ -265,7 +273,9 @@
Если Информация.Вид <> "ДОКУМЕНТ" Тогда
Возврат Ложь; // Не документ.
КонецЕсли;
Запрос = Новый Запрос("ВЫБРАТЬ ПЕРВЫЕ 1 1 ИЗ "+ Информация.ПолноеИмя +" ГДЕ Ссылка = &Ссылка");
ТекстЗапроса = "ВЫБРАТЬ ПЕРВЫЕ 1 1 ИЗ #ИмяТаблицы ГДЕ Ссылка = &Ссылка";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ИмяТаблицы", Информация.ПолноеИмя);
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Возврат Запрос.Выполнить().Пустой();
КонецФункции
@@ -491,7 +501,7 @@
// Регистрация результата удаления и заполнение коллекции ПовторноУдаляемые.
Процедура ЗарегистрироватьРезультатУдаления(ПараметрыВыполнения, Ссылка, Результат, ИмяКоллекции)
// Результат формируется в УдалитьСсылку().
// Результат формируется в УдалитьСсылку.
Если Результат.Успех Тогда
// Регистрация ссылки в коллекции удаленных.
ПараметрыВыполнения.Удаленные.Добавить(Ссылка);
@@ -517,8 +527,8 @@
КонецЕсли;
КонецЕсли;
КонецЦикла;
Иначе // Не успешно.
Возврат;
КонецЕсли;
ПараметрыВыполнения.НеУдаленные.Добавить(Ссылка);
@@ -548,7 +558,6 @@
КонецЦикла;
КонецЕсли;
КонецЕсли; // Результат.Успех.
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
@@ -827,8 +836,8 @@
ОтметитьНачалоОбходаКоллекции(ПараметрыВыполнения, "ВсеПомеченныеНаУдаление");
Количество = ПараметрыВыполнения.ВсеПомеченныеНаУдаление.Количество();
Для Номер = 1 По Количество Цикл
ОбратныйИндекс = Количество - Номер;
Ссылка = ПараметрыВыполнения.ВсеПомеченныеНаУдаление[ОбратныйИндекс];
Индекс = Количество - Номер;
Ссылка = ПараметрыВыполнения.ВсеПомеченныеНаУдаление[Индекс];
Информация = СформироватьИнформациюОТипах(ПараметрыВыполнения, ТипЗнч(Ссылка));
ОтметитьПрогрессОбходаКоллекции(ПараметрыВыполнения, "ВсеПомеченныеНаУдаление");
@@ -836,12 +845,12 @@
Если ПараметрыВыполнения.МодельСервиса
И ПараметрыВыполнения.ВОбластиДанных
И Не Информация.Разделенный Тогда
ПараметрыВыполнения.ВсеПомеченныеНаУдаление.Удалить(ОбратныйИндекс);
ПараметрыВыполнения.ВсеПомеченныеНаУдаление.Удалить(Индекс);
Продолжить; // Неразделенные объекты запрещено изменять из области данных.
КонецЕсли;
Если Информация.ЕстьПредопределенные И Информация.Предопределенные.Найти(Ссылка) <> Неопределено Тогда
ПараметрыВыполнения.ВсеПомеченныеНаУдаление.Удалить(ОбратныйИндекс);
ПараметрыВыполнения.ВсеПомеченныеНаУдаление.Удалить(Индекс);
Продолжить; // Предопределенные элементы создаются и удаляются только автоматически.
КонецЕсли;
@@ -892,53 +901,64 @@
// Вид и его свойства.
Информация.Вид = Лев(Информация.ПолноеИмя, СтрНайти(Информация.ПолноеИмя, ".")-1);
Если Информация.Вид = "СПРАВОЧНИК"
Или Информация.Вид = "ДОКУМЕНТ"
Или Информация.Вид = "ПЕРЕЧИСЛЕНИЕ"
Или Информация.Вид = "ПЛАНВИДОВХАРАКТЕРИСТИК"
Или Информация.Вид = "ПЛАНСЧЕТОВ"
Или Информация.Вид = "ПЛАНВИДОВРАСЧЕТА"
Или Информация.Вид = "БИЗНЕСПРОЦЕСС"
Или Информация.Вид = "ЗАДАЧА"
Или Информация.Вид = "ПЛАНОБМЕНА" Тогда
Информация.Ссылочный = Истина;
Иначе
Информация.Ссылочный = Ложь;
ЭтоСправочник = Ложь;
ЭтоДокумент = Ложь;
ЭтоПеречисление = Ложь;
ЭтоПланВидовХарактеристик = Ложь;
ЭтоПланСчетов = Ложь;
ЭтоПланВидовРасчета = Ложь;
ЭтоБизнесПроцесс = Ложь;
ЭтоЗадача = Ложь;
ЭтоПланОбмена = Ложь;
Если Информация.Вид = "СПРАВОЧНИК" Тогда
ЭтоСправочник = Истина;
ИначеЕсли Информация.Вид = "ДОКУМЕНТ" Тогда
ЭтоДокумент = Истина;
ИначеЕсли Информация.Вид = "ПЕРЕЧИСЛЕНИЕ" Тогда
ЭтоПеречисление = Истина;
ИначеЕсли Информация.Вид = "ПЛАНВИДОВХАРАКТЕРИСТИК" Тогда
ЭтоПланВидовХарактеристик = Истина;
ИначеЕсли Информация.Вид = "ПЛАНСЧЕТОВ" Тогда
ЭтоПланСчетов = Истина;
ИначеЕсли Информация.Вид = "ПЛАНВИДОВРАСЧЕТА" Тогда
ЭтоПланВидовРасчета = Истина;
ИначеЕсли Информация.Вид = "БИЗНЕСПРОЦЕСС" Тогда
ЭтоБизнесПроцесс = Истина;
ИначеЕсли Информация.Вид = "ЗАДАЧА" Тогда
ЭтоЗадача = Истина;
ИначеЕсли Информация.Вид = "ПЛАНОБМЕНА" Тогда
ЭтоПланОбмена = Истина;
КонецЕсли;
Если Информация.Вид = "СПРАВОЧНИК"
Или Информация.Вид = "ПЛАНВИДОВХАРАКТЕРИСТИК" Тогда
Информация.Ссылочный = (ЭтоСправочник Или ЭтоДокумент Или ЭтоПеречисление Или ЭтоПланВидовХарактеристик
Или ЭтоПланСчетов Или ЭтоПланВидовРасчета Или ЭтоБизнесПроцесс Или ЭтоЗадача Или ЭтоПланОбмена);
Если ЭтоСправочник Или ЭтоПланВидовХарактеристик Тогда
Информация.Иерархический = ОбъектМетаданных.Иерархический;
ИначеЕсли Информация.Вид = "ПЛАНСЧЕТОВ" Тогда
Информация.Иерархический = Истина;
Иначе
Информация.Иерархический = Ложь;
Информация.Иерархический = ЭтоПланСчетов;
КонецЕсли;
Если Информация.Иерархический Тогда
ШаблонЗапроса = "ВЫБРАТЬ Ссылка ИЗ &ПолноеИмя ГДЕ Родитель = &УдаляемыйСсылка";
ШаблонЗапроса = "ВЫБРАТЬ Ссылка, ПометкаУдаления ИЗ &ПолноеИмя ГДЕ Родитель = &УдаляемыйСсылка";
Информация.ТекстЗапросаПоИерархии = СтрЗаменить(ШаблонЗапроса, "&ПолноеИмя", Информация.ПолноеИмя);
КонецЕсли;
Информация.ЕстьПодчиненные = Ложь;
Информация.ТекстЗапросаПоПодчиненным = "";
Если Информация.Вид = "СПРАВОЧНИК"
Или Информация.Вид = "ПЛАНВИДОВХАРАКТЕРИСТИК"
Или Информация.Вид = "ПЛАНОБМЕНА"
Или Информация.Вид = "ПЛАНСЧЕТОВ"
Или Информация.Вид = "ПЛАНВИДОВРАСЧЕТА" Тогда
Если ЭтоСправочник Или ЭтоПланВидовХарактеристик Или ЭтоПланОбмена Или ЭтоПланСчетов Или ЭтоПланВидовРасчета Тогда
ШаблонЗапроса = "ВЫБРАТЬ Ссылка ИЗ Справочник.&Имя ГДЕ Владелец = &УдаляемыйСсылка";
ШаблонЗапроса = "ВЫБРАТЬ Ссылка, ПометкаУдаления ИЗ Справочник.&Имя ГДЕ Владелец = &УдаляемыйСсылка";
ТекстЗапроса = "";
Для Каждого Справочник Из Метаданные.Справочники Цикл
Если Справочник.Владельцы.Содержит(ОбъектМетаданных) Тогда
Если Не Справочник.Владельцы.Содержит(ОбъектМетаданных) Тогда
Продолжить;
КонецЕсли;
Если Информация.ЕстьПодчиненные = Ложь Тогда
Информация.ЕстьПодчиненные = Истина;
Иначе
ТекстЗапроса = ТекстЗапроса + Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС;
КонецЕсли;
ТекстЗапроса = ТекстЗапроса + СтрЗаменить(ШаблонЗапроса, "&Имя", Справочник.Имя);
КонецЕсли;
КонецЦикла;
Информация.ТекстЗапросаПоПодчиненным = ТекстЗапроса;
@@ -953,16 +973,14 @@
Иначе
ЭтоРазделенныйОбъектМетаданных = Ложь;
КонецЕсли;
Информация.Разделенный = ЭтоРазделенныйОбъектМетаданных;
КонецЕсли;
Если Информация.Вид = "СПРАВОЧНИК"
Или Информация.Вид = "ПЛАНВИДОВХАРАКТЕРИСТИК"
Или Информация.Вид = "ПЛАНСЧЕТОВ"
Или Информация.Вид = "ПЛАНВИДОВРАСЧЕТА" Тогда
Запрос = Новый Запрос("ВЫБРАТЬ Ссылка ИЗ " + Информация.ПолноеИмя + " ГДЕ Предопределенный И ПометкаУдаления");
Если ЭтоСправочник Или ЭтоПланВидовХарактеристик Или ЭтоПланСчетов Или ЭтоПланВидовРасчета Тогда
ТекстЗапроса = "ВЫБРАТЬ Ссылка ИЗ &ИмяТаблицы ГДЕ Предопределенный И ПометкаУдаления";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицы", Информация.ПолноеИмя);
Запрос = Новый Запрос(ТекстЗапроса);
Информация.Предопределенные = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
Информация.ЕстьПредопределенные = Информация.Предопределенные.Количество() > 0;
Иначе
@@ -1038,14 +1056,6 @@
КонецЕсли;
КонецПроцедуры
// Основная механика удаления помеченных объектов.
Функция ИзвлечьРезультат(ПараметрыВыполнения)
РезультатУдаления = ПараметрыВыполнения;
РезультатУдаления.Удалить("ВсеПомеченныеНаУдаление");
РезультатУдаления.Удалить("ВсеПомеченныеНаУдаление");
Возврат РезультатУдаления;
КонецФункции
////////////////////////////////////////////////////////////////////////////////
// Передача информации на клиент.
@@ -269,7 +269,13 @@
КонецЕсли;
Если ЗначениеЗаполнено(ИмяОбъекта) Тогда
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
МакетПечатнойФормы = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ИмяОбъекта).ПолучитьМакет(ИмяОбъектаМетаданныхМакета);
УстановитьПривилегированныйРежим(Ложь);
УстановитьОтключениеБезопасногоРежима(Ложь);
Иначе
МакетПечатнойФормы = ПолучитьОбщийМакет(ИмяОбъектаМетаданныхМакета);
КонецЕсли;
@@ -347,6 +347,10 @@
Для Каждого ВозможныеПрава Из ВозможныеПраваОбъектовМетаданных Цикл
Для Каждого ОбъектМетаданных Из Метаданные[ВозможныеПрава.Коллекция] Цикл
Если Не ОбъектыРасширений И ОбъектМетаданных.РасширениеКонфигурации() <> Неопределено Тогда
Продолжить;
КонецЕсли;
ПолноеИмя = ОбъектМетаданных.ПолноеИмя();
ПолныеИменаОбъектовМетаданных.Добавить(ПолноеИмя);
Поля = Неопределено;
@@ -456,30 +460,22 @@
КонецФункции
// Формирует пустую таблицу права ролей.
//
Функция ТаблицаПравРолей(ОбъектыРасширений = Ложь, ВидИзмененияСтроки = Ложь) Экспорт
ПраваРолей = СоздатьНаборЗаписей().Выгрузить();
ПраваРолей.Колонки.Добавить("РольПолноеИмя", Новый ОписаниеТипов("Строка"));
ПраваРолей.Колонки.Добавить("ОбъектМетаданныхПолноеИмя", Новый ОписаниеТипов("Строка"));
// Если таблица используется для объектов расширений, то необходимо расширить
// тип колонки Роль типом СправочникСсылка.ИдентификаторыОбъектовРасширений.
Если ОбъектыРасширений Тогда
// Если таблица используется для объектов расширений, то необходимо расширить
// тип колонок Роль и ОбъектМетаданных типом СправочникСсылка.ИдентификаторыОбъектовРасширений.
КолонкаРоль = ПраваРолей.Колонки.Роль;
СвойстваКолонки = Новый Структура("Имя, Заголовок, Ширина");
ЗаполнитьЗначенияСвойств(СвойстваКолонки, КолонкаРоль);
Индекс = ПраваРолей.Колонки.Индекс(КолонкаРоль);
ПраваРолей.Колонки.Удалить(Индекс);
ТипыРоли = Новый Массив;
ТипыРоли.Добавить(Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных"));
ТипыРоли.Добавить(Тип("СправочникСсылка.ИдентификаторыОбъектовРасширений"));
ПраваРолей.Колонки.Вставить(Индекс, СвойстваКолонки.Имя, Новый ОписаниеТипов(ТипыРоли),
СвойстваКолонки.Заголовок, СвойстваКолонки.Ширина);
Типы = Новый Массив;
Типы.Добавить(Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных"));
Типы.Добавить(Тип("СправочникСсылка.ИдентификаторыОбъектовРасширений"));
УстановитьТипыКолонке(ПраваРолей, "Роль", Типы);
УстановитьТипыКолонке(ПраваРолей, "ОбъектМетаданных", Типы);
КонецЕсли;
Если ВидИзмененияСтроки Тогда
@@ -490,6 +486,20 @@
КонецФункции
// Для функции ТаблицаПравРолей.
Процедура УстановитьТипыКолонке(Таблица, ИмяКолонки, Типы)
Колонка = Таблица.Колонки[ИмяКолонки];
СвойстваКолонки = Новый Структура("Имя, Заголовок, Ширина");
ЗаполнитьЗначенияСвойств(СвойстваКолонки, Колонка);
Индекс = Таблица.Колонки.Индекс(Колонка);
Таблица.Колонки.Удалить(Индекс);
Таблица.Колонки.Вставить(Индекс, СвойстваКолонки.Имя, Новый ОписаниеТипов(Типы),
СвойстваКолонки.Заголовок, СвойстваКолонки.Ширина);
КонецПроцедуры
Функция ИзмененныеОбъектыМетаданных(Изменения) Экспорт
Изменения.Свернуть("ОбъектМетаданных, Роль, Добавление, Изменение", "ВидИзмененияСтроки");
@@ -176,6 +176,7 @@
<value>Таблица</value>
</synonym>
<type>
<types>CatalogRef.ИдентификаторыОбъектовРасширений</types>
<types>CatalogRef.ИдентификаторыОбъектовМетаданных</types>
</type>
<toolTip>
@@ -187,7 +188,9 @@
<fillChecking>ShowError</fillChecking>
<dataHistory>Use</dataHistory>
<fillFromFillingValue>true</fillFromFillingValue>
<fillValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:ReferenceValue">
<value>Catalog.ИдентификаторыОбъектовМетаданных.EmptyRef</value>
</fillValue>
<mainFilter>true</mainFilter>
</dimensions>
<dimensions uuid="d86d766f-021a-4c11-b9e8-403af08918cc">
@@ -2098,93 +2098,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>InformationRegister.ЗагруженныеВерсииАдресныхСведений</name>
<right>
@@ -3875,6 +3788,93 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>InformationRegister.АдресныеОбъекты.Command.ЗагрузитьАдресныйКлассификатор</name>
<right>
@@ -21,37 +21,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>Catalog.РассылкиОтчетов.Command.ВыполнитьСейчас</name>
<right>
@@ -107,6 +76,37 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<restrictionTemplate>
<name>ДляОбъекта(ПолеОбъекта)</name>
<condition>// ДляОбъекта(ПолеОбъекта = "")
@@ -2777,45 +2777,6 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>InformationRegister.ЗагруженныеВерсииАдресныхСведений</name>
<right>
@@ -5118,6 +5079,45 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>Constant.БлокировкаОтправкиБыстрыхСообщений</name>
<right>