3_1_2_291

This commit is contained in:
Компания 1С committed 2020-02-17 22:32:00 +03:00
1 parent 86731ba105
commit 1428982b8b
87 files changed
+6713 -1693

No files matched your search

@@ -3,45 +3,66 @@
<p>Можно запустить из документа программы по команде <strong>Создать на основании</strong> (из бизнес-процесса также, для этого необходимы <a href="DataProcessor.ПанельАдминистрированияБСП.Form.Органайзер/Help">настройки</a> - такое задание станет подчиненным бизнес-процессом). Также можно начать новый <a href="v8help://1cv8/EnterprWorkingWithBusinessProcesses_StandardInterface">бизнес-процесс</a> <strong>Задание</strong> по команде <strong>Создать</strong> в списке <a href="BusinessProcess.Задание/Help">Задания</a>.</p> <p>Можно запустить из документа программы по команде <strong>Создать на основании</strong> (из бизнес-процесса также, для этого необходимы <a href="DataProcessor.ПанельАдминистрированияБСП.Form.Органайзер/Help">настройки</a> - такое задание станет подчиненным бизнес-процессом). Также можно начать новый <a href="v8help://1cv8/EnterprWorkingWithBusinessProcesses_StandardInterface">бизнес-процесс</a> <strong>Задание</strong> по команде <strong>Создать</strong> в списке <a href="BusinessProcess.Задание/Help">Задания</a>.</p>
<h3>Сведения о задании</h3> <h3>Сведения о задании</h3>
<ul><li><strong>Главная задача</strong> - заполняется программой автоматически, если бизнес-процесс является подчиненным. По ссылке в этом поле можно просмотреть данные о главном бизнес-процессе. <ul><li><strong>Главная задача</strong> - заполняется программой автоматически, если бизнес-процесс является подчиненным. По ссылке в этом поле можно просмотреть данные о главном бизнес-процессе.
</li><li><strong>Задание</strong> - напишите заголовок задания, который будет показан в списках бизнес-процессов. Поле является обязательным для заполнения. </li>
</li><li><strong>Важность</strong> - принимает значения <strong>Обычная</strong> (по умолчанию), <strong>Низкая</strong>, <strong>Высокая</strong>. Для того чтобы выделить бизнес-процесс из списка, или наоборот, указать, что выполнение этого бизнес-процесса может быть отложено, выберите соответствующее значение этого поля. <li><strong>Задание</strong> - напишите заголовок задания, который будет показан в списках бизнес-процессов. Поле является обязательным для заполнения.
<ul><a name="СтандартныеПодсистемы.Пользователи"></a></ul></li><li><strong>Исполнитель</strong> - выберите исполнителя из списка <a href="Catalog.Пользователи/Help">пользователей</a> программы или из списка <a href="CommonForm.ВыборИсполнителяБизнесПроцесса/Help">исполнителей</a>. Поля является обязательным для заполнения. </li>
</li><li><strong>Срок</strong> - укажите дату и время, когда нужно выполнить задание. <li><strong>Важность</strong> - принимает значения <strong>Обычная</strong> (по умолчанию), <strong>Низкая</strong>, <strong>Высокая</strong>. Для того чтобы выделить бизнес-процесс из списка, или наоборот, указать, что выполнение этого бизнес-процесса может быть отложено, выберите соответствующее значение этого поля.
</li><li><strong>Предмет</strong> - автоматически проставляется документ программы, на основании которого создано задание. <ul><a name="СтандартныеПодсистемы.Пользователи"></a></ul></li>
</li><li>В текстовом поле ниже можно при необходимости более подробно объяснить суть задания. Недоступно для подчиненных бизнес-процессов. <li><strong>Исполнитель</strong> - выберите исполнителя из списка <a href="Catalog.Пользователи/Help">пользователей</a> программы или из списка <a href="CommonForm.ВыборИсполнителяБизнесПроцесса/Help">исполнителей</a>. Поля является обязательным для заполнения.
</li><li> </li>
<div>Включите флажок <strong>Проверить выполнение</strong> (по умолчанию включен), для того чтобы:</div> <li><strong>Срок</strong> - укажите дату и время, когда нужно выполнить задание.
</li>
<li><strong>Предмет</strong> - автоматически проставляется документ программы, на основании которого создано задание.
</li>
<li>В текстовом поле ниже можно при необходимости более подробно объяснить суть задания. Недоступно для подчиненных бизнес-процессов.
</li>
<li>
<div>Включите флажок <strong>Проверить выполнение</strong>, для того чтобы:</div>
<ul><li> <ul><li>
<div>назначить проверяющего из списка пользователей;</div> <div>назначить проверяющего из списка пользователей;</div>
</li><li> </li>
<div>ввести <strong>Срок</strong> - дату и время, до которого надо проверить выполнение задания. Если срок не заполнен, то проверка не производится.</div></li></ul></li><li> <li>
<div>ввести <strong>Срок</strong> - дату и время, до которого надо проверить выполнение задания. Если срок не заполнен, то проверка не производится.</div></li></ul></li>
<li>
<div><a name="СтандартныеПодсистемы.Пользователи"><strong>Автор</strong> - автоматически проставляется программой текущий </a><a href="Catalog.Пользователи.Form.ФормаЭлемента/Help">пользователь</a>. Автора можно назначить из списка <strong>Пользователи</strong>.</div> <div><a name="СтандартныеПодсистемы.Пользователи"><strong>Автор</strong> - автоматически проставляется программой текущий </a><a href="Catalog.Пользователи.Form.ФормаЭлемента/Help">пользователь</a>. Автора можно назначить из списка <strong>Пользователи</strong>.</div>
</li><li> </li>
<li>
<div><strong>Начато</strong> - дата ввода задания. Заполняется программой автоматически. Поле не подлежит редактированию.</div></li></ul><h3>Старт бизнес-процесса</h3> <div><strong>Начато</strong> - дата ввода задания. Заполняется программой автоматически. Поле не подлежит редактированию.</div></li></ul><h3>Старт бизнес-процесса</h3>
<ul><li>После того как задание заполнено, нажмите кнопку <strong>Стартовать и закрыть</strong>, для того чтобы сохранить <strong>Задание</strong>, начать бизнес-процесс и вернуться в программу. <ul><li>После того как задание заполнено, нажмите кнопку <strong>Стартовать и закрыть</strong>, для того чтобы сохранить <strong>Задание</strong>, начать бизнес-процесс и вернуться в программу.
</li><li>Для того чтобы начать бизнес-процесс, можно также воспользоваться командой <strong>Старт</strong>. В этом случае программа сохранит задание, начнет бизнес-процесс, но задание останется открытым. </li>
</li><li>Программа автоматически формируетзадачи, из которых состоит бизнес-процесс <strong>Задание</strong>: <li>Для того чтобы начать бизнес-процесс, можно также воспользоваться командой <strong>Старт</strong>. В этом случае программа сохранит задание, начнет бизнес-процесс, но задание останется открытым.
</li>
<li>Программа автоматически формируетзадачи, из которых состоит бизнес-процесс <strong>Задание</strong>:
<ul><li><a href="BusinessProcess.Задание.Form.ДействиеВыполнить/Help">выполнение задания</a>; <ul><li><a href="BusinessProcess.Задание.Form.ДействиеВыполнить/Help">выполнение задания</a>;
<ul><li>после выполнения этой задачи в зависимости от настроек задание становится выполненным или формируется задача <a href="BusinessProcess.Задание.Form.ДействиеПроверить/Help">проверка выполнения</a>. </li></ul></li></ul></li><li>Для того чтобы записать черновик задания, но не стартовать его, нажмите <strong>Записать</strong>. Такое задание можно дозаполнить и стартовать позднее, в более подходящий момент времени из списка заданий или открыв задание.</li></ul><h3>Отложенный старт бизнес-процесса</h3> <ul><li>после выполнения этой задачи в зависимости от настроек задание становится выполненным или формируется задача <a href="BusinessProcess.Задание.Form.ДействиеПроверить/Help">проверка выполнения</a>. </li></ul></li></ul></li>
<li>Для того чтобы записать черновик задания, но не стартовать его, нажмите <strong>Записать</strong>. Такое задание можно дозаполнить и стартовать позднее, в более подходящий момент времени из списка заданий или открыв задание.</li></ul><h3>Отложенный старт бизнес-процесса</h3>
<ul><li> <ul><li>
<div>Имеется возможность начать бизнес-процесс не сразу, а отложить его старт на определенное время. Например, можно запланировать старт на завтра или через неделю.</div> <div>Имеется возможность начать бизнес-процесс не сразу, а отложить его старт на определенное время. Например, можно запланировать старт на завтра или через неделю.</div>
</li><li> </li>
<li>
<div>Для настройки отложенного старта задания после заполнения всех необходимых полей нажмите кнопку <img src="CommonPicture.ПроцессОтложен"></img>.</div> <div>Для настройки отложенного старта задания после заполнения всех необходимых полей нажмите кнопку <img src="CommonPicture.ПроцессОтложен"></img>.</div>
<ul><li> <ul><li>
<div>В открывшемся окне включите флажок <strong>Отложенный старт задания</strong>.</div> <div>В открывшемся окне включите флажок <strong>Отложенный старт задания</strong>.</div>
</li><li> </li>
<li>
<div>Заполните поля <strong>Дата</strong> и <strong>Время</strong> - укажите, когда нужно начать бизнес-процесс. В нижней части окна отразится, через сколько дней и часов будет запущено задание.</div> <div>Заполните поля <strong>Дата</strong> и <strong>Время</strong> - укажите, когда нужно начать бизнес-процесс. В нижней части окна отразится, через сколько дней и часов будет запущено задание.</div>
</li><li> </li>
<div>Нажмите кнопку <strong>Готово</strong>.</div></li></ul></li><li> <li>
<div>Нажмите кнопку <strong>Готово</strong>.</div></li></ul></li>
<li>
<div>После этого в карточке бизнес-процесса выводится сообщение со ссылкой, в которой указывается дата и время отложенного старта.</div> <div>После этого в карточке бизнес-процесса выводится сообщение со ссылкой, в которой указывается дата и время отложенного старта.</div>
</li><li> </li>
<li>
<div>Для запуска отложенных бизнес-процессов в нужное время необходимо настроить регламентное задание <strong>Старт отложенных бизнес-процессов</strong>.</div> <div>Для запуска отложенных бизнес-процессов в нужное время необходимо настроить регламентное задание <strong>Старт отложенных бизнес-процессов</strong>.</div>
</li><li> </li>
<li>
<div>После того как задание стартовано, кнопка отложенного старта становится неактивной.</div></li></ul><h3>Управление движением бизнес-процесса</h3> <div>После того как задание стартовано, кнопка отложенного старта становится неактивной.</div></li></ul><h3>Управление движением бизнес-процесса</h3>
<ul><li>Для того чтобы <strong>Остановить</strong> или <strong>Продолжить</strong> бизнес-процесс, воспользуйтесь соответствующими кнопками (активна одна из кнопок). Остановленный бизнес-процесс в некоторых списках выделяется значком <img src="CommonPicture.ЗнакСтоп"></img>.</li></ul><h3>Просмотр карты маршрута</h3> <ul><li>Для того чтобы <strong>Остановить</strong> или <strong>Продолжить</strong> бизнес-процесс, воспользуйтесь соответствующими кнопками (активна одна из кнопок). Остановленный бизнес-процесс в некоторых списках выделяется значком <img src="CommonPicture.ЗнакСтоп"></img>.</li></ul><h3>Просмотр карты маршрута</h3>
<ul><li>Нажмите кнопку <img src="StdPicture.BusinessProcess"></img> <strong>Открыть карту маршрута бизнес-процесса</strong>, для того чтобы посмотреть бизнес-процесс в наглядной форме. <ul><li>Нажмите кнопку <img src="StdPicture.BusinessProcess"></img> <strong>Открыть карту маршрута бизнес-процесса</strong>, для того чтобы посмотреть бизнес-процесс в наглядной форме.
</li><li>Также можно воспользоваться командой <strong>Еще</strong> <strong>- Карта маршрута</strong>. </li>
</li><li><a href="DataProcessor.КартаМаршрутаБизнесПроцесса/Help">Карта маршрута</a> описывает логику бизнес-процесса и весь его жизненный цикл в виде схематического изображения - последовательности прохождения точек маршрута.</li></ul><h3>Просмотр задач</h3> <li>Также можно воспользоваться командой <strong>Еще</strong> <strong>- Карта маршрута</strong>.
</li>
<li><a href="DataProcessor.КартаМаршрутаБизнесПроцесса/Help">Карта маршрута</a> описывает логику бизнес-процесса и весь его жизненный цикл в виде схематического изображения - последовательности прохождения точек маршрута.</li></ul><h3>Просмотр задач</h3>
<ul><li>Для того чтобы просмотреть <a href="Task.ЗадачаИсполнителя.Form.ЗадачиПоБизнесПроцессу/Help">задачи</a>, из которых состоит данный бизнес-процесс, выполните команду <strong>Задачи</strong> в панели навигации. Если задание не стартовано, то список задач пустой.</li></ul><h3>См. также:</h3> <ul><li>Для того чтобы просмотреть <a href="Task.ЗадачаИсполнителя.Form.ЗадачиПоБизнесПроцессу/Help">задачи</a>, из которых состоит данный бизнес-процесс, выполните команду <strong>Задачи</strong> в панели навигации. Если задание не стартовано, то список задач пустой.</li></ul><h3>См. также:</h3>
<ul><li> <ul><li>
<div><a href="v8help://frame/form_common">Работа с формами</a>.</div></li></ul></body></html> <div><a href="v8help://frame/form_common">Работа с формами</a>.</div></li></ul></body></html>
@@ -1924,11 +1924,19 @@
ВариантыОтчетов.Пользовательский, ВариантыОтчетов.Пользовательский,
НЕ ВариантыОтчетов.Пользовательский КАК Предопределенный, НЕ ВариантыОтчетов.Пользовательский КАК Предопределенный,
ВЫБОР ВЫБОР
КОГДА ВариантыОтчетов.Пользовательский КОГДА &amp;ЭтоОсновнойЯзык
И (ВариантыОтчетов.Пользовательский
ИЛИ ВариантыОтчетов.ПредопределенныйВариант В ( ИЛИ ВариантыОтчетов.ПредопределенныйВариант В (
НЕОПРЕДЕЛЕНО, НЕОПРЕДЕЛЕНО,
ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетов.ПустаяСсылка), ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетов.ПустаяСсылка),
ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетовРасширений.ПустаяСсылка)) ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетовРасширений.ПустаяСсылка)))
ТОГДА ВариантыОтчетов.Наименование
КОГДА НЕ &amp;ЭтоОсновнойЯзык
И (ВариантыОтчетов.Пользовательский
ИЛИ ВариантыОтчетов.ПредопределенныйВариант В (
НЕОПРЕДЕЛЕНО,
ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетов.ПустаяСсылка),
ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетовРасширений.ПустаяСсылка)))
ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ПредставленияВариантов.Наименование, ВариантыОтчетов.Наименование) КАК СТРОКА(1000)) ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ПредставленияВариантов.Наименование, ВариантыОтчетов.Наименование) КАК СТРОКА(1000))
КОГДА &amp;ЭтоОсновнойЯзык КОГДА &amp;ЭтоОсновнойЯзык
ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ЕСТЬNULL(ВариантыКонфигурации.Наименование, ВариантыРасширений.Наименование), ВариантыОтчетов.Наименование) КАК СТРОКА(1000)) ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ЕСТЬNULL(ВариантыКонфигурации.Наименование, ВариантыРасширений.Наименование), ВариантыОтчетов.Наименование) КАК СТРОКА(1000))
@@ -1949,12 +1957,12 @@
ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ПредставленияВариантов.Описание, ВариантыОтчетов.Описание) КАК СТРОКА(1000)) ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ПредставленияВариантов.Описание, ВариантыОтчетов.Описание) КАК СТРОКА(1000))
КОНЕЦ КАК Описание, КОНЕЦ КАК Описание,
ВЫБОР ВЫБОР
КОГДА ВариантыОтчетов.ТипОтчета В ( КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетов.Отчет) = ТИП(Справочник.ИдентификаторыОбъектовМетаданных)
ЗНАЧЕНИЕ(Перечисление.ТипыОтчетов.Внутренний), ТОГДА ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК Справочник.ИдентификаторыОбъектовМетаданных).Имя
ЗНАЧЕНИЕ(Перечисление.ТипыОтчетов.Расширение)) КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетов.Отчет) = ТИП(Справочник.ИдентификаторыОбъектовРасширений)
ТОГДА ВариантыОтчетов.Отчет.Имя ТОГДА ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК Справочник.ИдентификаторыОбъектовРасширений).Имя
КОГДА ВариантыОтчетов.ТипОтчета = ЗНАЧЕНИЕ(Перечисление.ТипыОтчетов.Дополнительный) КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетов.Отчет) = ТИП(Справочник.ДополнительныеОтчетыИОбработки)
ТОГДА ВариантыОтчетов.Отчет ТОГДА ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК Справочник.ДополнительныеОтчетыИОбработки).ИмяОбъекта
ИНАЧЕ ПОДСТРОКА(ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК СТРОКА(150)), 14, 137) ИНАЧЕ ПОДСТРОКА(ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК СТРОКА(150)), 14, 137)
КОНЕЦ КАК ИмяОтчета, КОНЕЦ КАК ИмяОтчета,
СведенияОРасширениях.ПолноеИмяОбъекта КАК ПолноеИмяОтчета, СведенияОРасширениях.ПолноеИмяОбъекта КАК ПолноеИмяОтчета,
@@ -0,0 +1,495 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
<items xsi:type="form:FormGroup">
<name>ПанельИндикаторов</name>
<id>21</id>
<items xsi:type="form:FormGroup">
<name>ГруппаИндикаторНачалаИсправления</name>
<id>23</id>
<items xsi:type="form:Decoration">
<name>НадписьВопрос</name>
<id>25</id>
<title>
<key>ru</key>
<value>Исправление видов контактной информации может занять продолжительное время. Выполнить исправление?</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>НадписьВопросРасширеннаяПодсказка</name>
<id>27</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>НадписьВопросКонтекстноеМеню</name>
<id>26</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<height>2</height>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
<verticalAlign>Center</verticalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Индикатор начала исправления</value>
</title>
<toolTip>
<key>ru</key>
<value>Группа индикатор исправления</value>
</toolTip>
<extendedTooltip>
<name>ГруппаИндикаторНачалаИсправленияРасширеннаяПодсказка</name>
<id>24</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo">
<group>HorizontalIfPossible</group>
<showTitle>auto</showTitle>
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаИндикаторИсправления</name>
<id>19</id>
<items xsi:type="form:Decoration">
<name>ДекорацияПрогресс</name>
<id>9</id>
<title>
<key>ru</key>
<value>Декорация прогресс</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДекорацияПрогрессExtendedTooltip</name>
<id>11</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДекорацияПрогрессКонтекстноеМеню</name>
<id>10</id>
<autoFill>true</autoFill>
</contextMenu>
<width>5</width>
<autoMaxWidth>true</autoMaxWidth>
<height>2</height>
<autoMaxHeight>true</autoMaxHeight>
<verticalStretch>true</verticalStretch>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.ДлительнаяОперация48</picture>
</picture>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ДекорацияВыполнениеИсправления</name>
<id>12</id>
<title>
<key>ru</key>
<value>Выполняется исправление проблемы.
Пожалуйста, подождите...</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДекорацияВыполнениеИсправленияРасширеннаяПодсказка</name>
<id>14</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДекорацияВыполнениеИсправленияКонтекстноеМеню</name>
<id>13</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<maxWidth>26</maxWidth>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
<verticalAlign>Center</verticalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Индикатор исправления</value>
</title>
<extendedTooltip>
<name>ГруппаИндикаторИсправленияРасширеннаяПодсказка</name>
<id>20</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo">
<group>HorizontalIfPossible</group>
<showTitle>auto</showTitle>
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаИндикаторУспешноеИсправление</name>
<id>30</id>
<items xsi:type="form:Decoration">
<name>ТекстИтогиИсправления</name>
<id>41</id>
<title>
<key>ru</key>
<value>Исправлено %1 из %2.</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ТекстИтогиИсправленияРасширеннаяПодсказка</name>
<id>43</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ТекстИтогиИсправленияКонтекстноеМеню</name>
<id>42</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ОписаниеРучногоИсправления</name>
<id>38</id>
<title>
<key>ru</key>
<value>Если исправление не помогло:
• Запустить конфигуратор, меню &lt;b>Администрирование&lt;/> - &lt;b>Тестирования и исправление&lt;/>, включить два флажка для проверки логической и ссылочной целостности
См. подробнее на ИТС: &lt;link https://its.1c.ru/db/v83doc#bookmark:adm:TI000000142>https://its.1c.ru/db/v83doc#bookmark:adm:TI000000142&lt;/>
• Дождаться завершения тестирования и исправления, снять блокировку входа в программу.
Для технических специалистов:
• С помощью группового изменения реквизитов (в разделе &lt;b>Администрирование&lt;/>) установить корректные настройки у элементов справочника &lt;b>Виды контактной информации&lt;/>. Например, в случае отсутствия родительской группы у вида.
</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ОписаниеРучногоИсправленияРасширеннаяПодсказка</name>
<id>40</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ОписаниеРучногоИсправленияКонтекстноеМеню</name>
<id>39</id>
<autoFill>true</autoFill>
</contextMenu>
<formatted>true</formatted>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Успешное исправление</value>
</title>
<toolTip>
<key>ru</key>
<value>Группа индикатор исправления</value>
</toolTip>
<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>
<type>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo">
<group>Vertical</group>
<showTitle>auto</showTitle>
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ПанельИндикаторовРасширеннаяПодсказка</name>
<id>22</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Pages</type>
<extInfo xsi:type="form:PagesGroupExtInfo">
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<commandBarLocation>Bottom</commandBarLocation>
<showCommandBar>true</showCommandBar>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<items xsi:type="form:Button">
<name>ИсправитьПроблему</name>
<id>3</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ИсправитьПроблемуРасширеннаяПодсказка</name>
<id>4</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ИсправитьПроблему</commandName>
<representation>Auto</representation>
<defaultButton>true</defaultButton>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<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>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>ФормаСправка</name>
<id>28</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаСправкаРасширеннаяПодсказка</name>
<id>29</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.StandardCommand.Help</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InCommandBarAndInAdditionalSubmenu</locationInCommandBar>
</items>
<horizontalAlign>Right</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<excludedCommands>Abort</excludedCommands>
<excludedCommands>Cancel</excludedCommands>
<excludedCommands>CustomizeForm</excludedCommands>
<excludedCommands>Ignore</excludedCommands>
<excludedCommands>No</excludedCommands>
<excludedCommands>OK</excludedCommands>
<excludedCommands>RestoreValues</excludedCommands>
<excludedCommands>Retry</excludedCommands>
<excludedCommands>SaveValues</excludedCommands>
<excludedCommands>Yes</excludedCommands>
<windowOpeningMode>LockOwner</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<verticalAlign>Bottom</verticalAlign>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>auto</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>ИдентификаторПроверки</name>
<id>1</id>
<valueType>
<types>String</types>
<stringQualifiers>
<length>255</length>
</stringQualifiers>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ДлительнаяОперация</name>
<id>2</id>
<valueType/>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ИтогиИсправления</name>
<title>
<key>ru</key>
<value>Итоги исправления</value>
</title>
<id>3</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ИсправитьПроблему</name>
<title>
<key>ru</key>
<value>Исправить проблему</value>
</title>
<id>1</id>
<toolTip>
<key>ru</key>
<value>Исправить проблему</value>
</toolTip>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ИсправитьПроблему</name>
</handler>
</action>
<currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
</form:Form>
@@ -0,0 +1,101 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2020, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ИдентификаторПроверки = Параметры.ИдентификаторПроверки;
УстановитьТекущуюСтраницу(ЭтотОбъект, "Вопрос");
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ИсправитьПроблему(Команда)
ДлительнаяОперация = ИсправитьПроблемуВФоне(ИдентификаторПроверки);
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ОповещениеОЗавершении = Новый ОписаниеОповещения("ИсправитьПроблемуВФонеЗавершение", ЭтотОбъект);
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьТекущуюСтраницу(Форма, ИмяСтраницы)
ЭлементыФормы = Форма.Элементы;
Если ИмяСтраницы = "ИдетИсправлениеПроблемы" Тогда
ЭлементыФормы.ГруппаИндикаторИсправления.Видимость = Истина;
ЭлементыФормы.ГруппаИндикаторНачалаИсправления.Видимость = Ложь;
ЭлементыФормы.ГруппаИндикаторУспешноеИсправление.Видимость = Ложь;
ЭлементыФормы.ИсправитьПроблему.Видимость = Ложь;
ИначеЕсли ИмяСтраницы = "ИсправлениеУспешноВыполнено" Тогда
ЭлементыФормы.ГруппаИндикаторИсправления.Видимость = Ложь;
ЭлементыФормы.ГруппаИндикаторНачалаИсправления.Видимость = Ложь;
ЭлементыФормы.ГруппаИндикаторУспешноеИсправление.Видимость = Истина;
ЭлементыФормы.ИсправитьПроблему.Видимость = Ложь;
ЭлементыФормы.Закрыть.КнопкаПоУмолчанию = Истина;
Иначе // "Вопрос"
ЭлементыФормы.ГруппаИндикаторИсправления.Видимость = Ложь;
ЭлементыФормы.ГруппаИндикаторНачалаИсправления.Видимость = Истина;
ЭлементыФормы.ГруппаИндикаторУспешноеИсправление.Видимость = Ложь;
ЭлементыФормы.ИсправитьПроблему.Видимость = Истина;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ИсправитьПроблемуВФоне(ИдентификаторПроверки)
Если ДлительнаяОперация <> Неопределено Тогда
ДлительныеОперации.ОтменитьВыполнениеЗадания(ДлительнаяОперация.ИдентификаторЗадания);
КонецЕсли;
УстановитьТекущуюСтраницу(ЭтотОбъект, "ИдетИсправлениеПроблемы");
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Исправление видов контактной информации'");
Возврат ДлительныеОперации.ВыполнитьВФоне("УправлениеКонтактнойИнформациейСлужебный.ИсправитьВидыКонтактнойИнформацииВФоне",
Новый Структура("ИдентификаторПроверки", ИдентификаторПроверки), ПараметрыВыполнения);
КонецФункции
&НаКлиенте
Процедура ИсправитьПроблемуВФонеЗавершение(Результат, ДополнительныеПараметры) Экспорт
ДлительнаяОперация = Неопределено;
Если Результат = Неопределено Тогда
УстановитьТекущуюСтраницу(ЭтотОбъект, "ИдетИсправлениеПроблемы");
Возврат;
ИначеЕсли Результат.Статус = "Ошибка" Тогда
УстановитьТекущуюСтраницу(ЭтотОбъект, "Вопрос");
ВызватьИсключение Результат.КраткоеПредставлениеОшибки;
ИначеЕсли Результат.Статус = "Выполнено" Тогда
Результат = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
Если ТипЗнч(Результат) = Тип("Структура") Тогда
Элементы.ТекстИтогиИсправления.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
Элементы.ТекстИтогиИсправления.Заголовок, Результат.ИсправленоОбъектов, Результат.ВсегоОбъектов);
КонецЕсли;
УстановитьТекущуюСтраницу(ЭтотОбъект, "ИсправлениеУспешноВыполнено");
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -699,4 +699,13 @@
<usePurposes>PersonalComputer</usePurposes> <usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes> <usePurposes>MobileDevice</usePurposes>
</forms> </forms>
<forms uuid="826c2821-147d-4aaf-910c-acfbdb58a29f">
<name>ИсправлениеВидовКонтактнойИнформации</name>
<synonym>
<key>ru</key>
<value>Исправление видов контактной информации</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
</mdclass:Catalog> </mdclass:Catalog>
@@ -34,7 +34,7 @@
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:PictureDecorationExtInfo"> <extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef"> <picture xsi:type="core:PictureRef">
<picture>StdPicture.DialogInformation</picture> <picture>CommonPicture.Информация32</picture>
</picture> </picture>
<fileDragMode>AsFileRef</fileDragMode> <fileDragMode>AsFileRef</fileDragMode>
</extInfo> </extInfo>
@@ -66,7 +66,7 @@
Текст.Добавить(, Тип("ПереводСтрокиФорматированногоДокумента")); Текст.Добавить(, Тип("ПереводСтрокиФорматированногоДокумента"));
Текст.Добавить(Описание.Подробно, Тип("ТекстФорматированногоДокумента")); Текст.Добавить(Описание.Подробно, Тип("ТекстФорматированногоДокумента"));
Элементы.Индикатор.Картинка = БиблиотекаКартинок.ДиалогВосклицание; Элементы.Индикатор.Картинка = БиблиотекаКартинок.Предупреждение32;
КонецЕсли; КонецЕсли;
@@ -664,7 +664,7 @@
// Продолжение процедуры ПроверитьНаСторонеКлиента. // Продолжение процедуры ПроверитьНаСторонеКлиента.
&НаКлиенте &НаКлиенте
Процедура ПроверитьНаСторонеКлиентаВМоделиСервиса(Результат, Контекст) Экспорт Процедура ПроверитьНаСторонеКлиентаВМоделиСервиса(Результат, Контекст)
Контекст.Вставить("МенеджерКриптографии", Неопределено); Контекст.Вставить("МенеджерКриптографии", Неопределено);
@@ -161,12 +161,17 @@
<headerHorizontalAlign>Left</headerHorizontalAlign> <headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter> <showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo"> <extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth> <handlers>
<event>Opening</event>
<name>СообщенияОбОшибкахОткрытие</name>
</handlers>
<height>2</height> <height>2</height>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>false</verticalStretch> <verticalStretch>false</verticalStretch>
<wrap>true</wrap> <wrap>true</wrap>
<multiLine>true</multiLine> <multiLine>true</multiLine>
<openButton>true</openButton>
<chooseType>true</chooseType> <chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled> <typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit> <textEdit>true</textEdit>
@@ -367,12 +372,20 @@
<headerHorizontalAlign>Left</headerHorizontalAlign> <headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter> <showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo"> <extInfo xsi:type="form:InputFieldExtInfo">
<width>25</width> <handlers>
<event>StartChoice</event>
<name>ПарольНачалоВыбора</name>
</handlers>
<width>23</width>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>false</horizontalStretch> <horizontalStretch>false</horizontalStretch>
<wrap>true</wrap> <wrap>true</wrap>
<passwordMode>true</passwordMode> <passwordMode>true</passwordMode>
<choiceButton>true</choiceButton>
<choiceButtonPicture xsi:type="core:PictureRef">
<picture>CommonPicture.ВводимыеСимволыСкрыты</picture>
</choiceButtonPicture>
<autoMarkIncomplete>true</autoMarkIncomplete> <autoMarkIncomplete>true</autoMarkIncomplete>
<chooseType>true</chooseType> <chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled> <typeDomainEnabled>true</typeDomainEnabled>
@@ -2431,6 +2444,190 @@
<scrollOnCompress>false</scrollOnCompress> <scrollOnCompress>false</scrollOnCompress>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:FormGroup">
<name>ПриПроверкеОбнаруженыОшибки</name>
<id>275</id>
<items xsi:type="form:Decoration">
<name>КартинкаПриПроверкеОбнаруженыОшибки</name>
<id>277</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>КартинкаПредупреждениеРасширеннаяПодсказка1</name>
<id>279</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>КартинкаПредупреждениеКонтекстноеМеню1</name>
<id>278</id>
<autoFill>true</autoFill>
</contextMenu>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.Предупреждение32</picture>
</picture>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаПриПроверкеОбнаруженыОшибки</name>
<id>280</id>
<items xsi:type="form:FormField">
<name>ТекстПриПроверкеОбнаруженыОшибки</name>
<id>282</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>СообщенияОбОшибкахРасширеннаяПодсказка1</name>
<id>284</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СообщенияОбОшибкахКонтекстноеМеню1</name>
<id>283</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<readOnly>true</readOnly>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<handlers>
<event>Opening</event>
<name>ТекстПриПроверкеОбнаруженыОшибкиОткрытие</name>
</handlers>
<height>7</height>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<wrap>true</wrap>
<multiLine>true</multiLine>
<openButton>true</openButton>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<backColor xsi:type="core:ColorRef">
<color>Style.FormBackColor</color>
</backColor>
<borderColor xsi:type="core:ColorRef">
<color>Style.FormBackColor</color>
</borderColor>
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>НужнаПомощьПриПроверкеОбнаруженыОшибки</name>
<id>285</id>
<title>
<key>ru</key>
<value>Нужна помощь?</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>НужнаПомощьРасширеннаяПодсказка1</name>
<id>287</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>НужнаПомощьКонтекстноеМеню1</name>
<id>286</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<groupHorizontalAlign>Left</groupHorizontalAlign>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<handlers>
<event>Click</event>
<name>НужнаПомощьНажатие</name>
</handlers>
<hyperlink>true</hyperlink>
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ГруппаСообщенияОбОшибкахРасширеннаяПодсказка1</name>
<id>281</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>При проверке обнаружены ошибки</value>
</title>
<extendedTooltip>
<name>ПриПроверкеОбнаруженыОшибкиРасширеннаяПодсказка</name>
<id>276</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo">
<group>AlwaysHorizontal</group>
<showTitle>auto</showTitle>
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>УчетнаяЗаписьУспешноНастроена</name> <name>УчетнаяЗаписьУспешноНастроена</name>
<id>36</id> <id>36</id>
@@ -2697,35 +2894,6 @@ vasyapupkin@example.com завершена.</value>
<horizontalAlign>Left</horizontalAlign> <horizontalAlign>Left</horizontalAlign>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:Decoration">
<name>Заглушка</name>
<id>168</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ЗаглушкаРасширеннаяПодсказка</name>
<id>170</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ЗаглушкаКонтекстноеМеню</name>
<id>169</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>КоманднаяПанельПраваяЧасть</name> <name>КоманднаяПанельПраваяЧасть</name>
<id>30</id> <id>30</id>
@@ -2832,6 +3000,7 @@ vasyapupkin@example.com завершена.</value>
<userVisible> <userVisible>
<common>true</common> <common>true</common>
</userVisible> </userVisible>
<verticalStretch>true</verticalStretch>
<extendedTooltip> <extendedTooltip>
<name>КоманднаяПанельРасширеннаяПодсказка</name> <name>КоманднаяПанельРасширеннаяПодсказка</name>
<id>29</id> <id>29</id>
@@ -2845,6 +3014,7 @@ vasyapupkin@example.com завершена.</value>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group> <group>HorizontalIfPossible</group>
<verticalAlign>Bottom</verticalAlign>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -172,6 +172,24 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура СообщенияОбОшибкахОткрытие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Элементы.Страницы.ТекущаяСтраница = Элементы.ПриПроверкеОбнаруженыОшибки;
НастроитьЭлементыТекущейСтраницы();
КонецПроцедуры
&НаКлиенте
Процедура ТекстПриПроверкеОбнаруженыОшибкиОткрытие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Элементы.Страницы.ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи;
НастроитьЭлементыТекущейСтраницы();
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область ОбработчикиКомандФормы #Область ОбработчикиКомандФормы
@@ -206,7 +224,7 @@
Иначе Иначе
ПредыдущаяСтраница = Элементы.НастройкаУчетнойЗаписи; ПредыдущаяСтраница = Элементы.НастройкаУчетнойЗаписи;
КонецЕсли; КонецЕсли;
ИначеЕсли ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи Тогда ИначеЕсли ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи Или ТекущаяСтраница = Элементы.ПриПроверкеОбнаруженыОшибки Тогда
ПредыдущаяСтраница = Элементы.НастройкаУчетнойЗаписи; ПредыдущаяСтраница = Элементы.НастройкаУчетнойЗаписи;
КонецЕсли; КонецЕсли;
@@ -255,7 +273,7 @@
ТекущаяСтраница = Элементы.Страницы.ТекущаяСтраница; ТекущаяСтраница = Элементы.Страницы.ТекущаяСтраница;
СледующаяСтраница = Неопределено; СледующаяСтраница = Неопределено;
Если ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи Тогда Если ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи Или ТекущаяСтраница = Элементы.ПриПроверкеОбнаруженыОшибки Тогда
ПроверитьЗаполнениеНаСтраницеНастройкаУчетнойЗаписи(Отказ); ПроверитьЗаполнениеНаСтраницеНастройкаУчетнойЗаписи(Отказ);
Если Не Отказ И Не НастройкиЗаполнены Тогда Если Не Отказ И Не НастройкиЗаполнены Тогда
ЗаполнитьНастройкиУчетнойЗаписи(); ЗаполнитьНастройкиУчетнойЗаписи();
@@ -406,7 +424,7 @@
КонецЕсли; КонецЕсли;
Иначе Иначе
Если ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи Если ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи
И ПроверкаЗавершиласьСОшибками Тогда И ПроверкаЗавершиласьСОшибками Или ТекущаяСтраница = Элементы.ПриПроверкеОбнаруженыОшибки Тогда
ЗаголовокКнопкиДалее = НСтр("ru = 'Повторить'"); ЗаголовокКнопкиДалее = НСтр("ru = 'Повторить'");
ИначеЕсли ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи ИначеЕсли ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи
И СпособНастройки = "Автоматически" Тогда И СпособНастройки = "Автоматически" Тогда
@@ -534,60 +552,27 @@
Возврат Настройки; Возврат Настройки;
КонецФункции КонецФункции
&НаСервере
Функция ПроверитьПодключениеКСерверуВходящейПочты()
Профиль = ИнтернетПочтовыйПрофиль(Истина);
ИспользуемыйПротокол = ПротоколИнтернетПочты.POP3;
Если Протокол = "IMAP" Тогда
ИспользуемыйПротокол = ПротоколИнтернетПочты.IMAP;
КонецЕсли;
Возврат Справочники.УчетныеЗаписиЭлектроннойПочты.ПроверитьПодключениеКСерверуВходящейПочты(Профиль, ИспользуемыйПротокол);
КонецФункции
&НаСервере
Функция ПроверитьПодключениеКСерверуИсходящейПочты()
Профиль = ИнтернетПочтовыйПрофиль();
Возврат Справочники.УчетныеЗаписиЭлектроннойПочты.ПроверитьПодключениеКСерверуИсходящейПочты(Профиль, АдресЭлектроннойПочты);
КонецФункции
&НаСервере &НаСервере
Процедура ПроверитьНастройкиУчетнойЗаписи() Процедура ПроверитьНастройкиУчетнойЗаписи()
ПроверкаЗавершиласьСОшибками = Ложь;
СообщениеСервераВходящейПочты = ""; ПрофильИсходящейПочты = Неопределено;
Если ИспользоватьДляПолучения Тогда
СообщениеСервераВходящейПочты = ПроверитьПодключениеКСерверуВходящейПочты();
КонецЕсли;
СообщениеСервераИсходящейПочты = "";
Если ИспользоватьДляОтправки Тогда Если ИспользоватьДляОтправки Тогда
СообщениеСервераИсходящейПочты = ПроверитьПодключениеКСерверуИсходящейПочты(); ПрофильИсходящейПочты = ИнтернетПочтовыйПрофиль(Ложь);
КонецЕсли; КонецЕсли;
ТекстОшибки = ""; ПрофильВходящейПочты = Неопределено;
Если Не ПустаяСтрока(СообщениеСервераИсходящейПочты) Тогда Если ИспользоватьДляПолучения Тогда
ТекстОшибки = НСтр("ru = 'Не удалось подключиться к серверу исходящей почты:'" + Символы.ПС) ПрофильВходящейПочты = ИнтернетПочтовыйПрофиль(Истина);
+ СообщениеСервераИсходящейПочты + Символы.ПС;
КонецЕсли; КонецЕсли;
Если Не ПустаяСтрока(СообщениеСервераВходящейПочты) Тогда РезультатПроверки = Справочники.УчетныеЗаписиЭлектроннойПочты.ПроверитьНастройкиПрофилей(
ТекстОшибки = ТекстОшибки ПрофильИсходящейПочты, ПрофильВходящейПочты, АдресЭлектроннойПочты);
+ НСтр("ru = 'Не удалось подключиться к серверу входящей почты:'" + Символы.ПС)
+ СообщениеСервераВходящейПочты;
КонецЕсли;
СообщенияОбОшибках = СокрЛП(ТекстОшибки); СообщенияОбОшибках = РезультатПроверки.ОшибкиПодключения;
ПроверкаЗавершиласьСОшибками = ЗначениеЗаполнено(СообщенияОбОшибках);
Если Не ПустаяСтрока(ТекстОшибки) Тогда Если Не ПроверкаЗавершиласьСОшибками Тогда
ПроверкаЗавершиласьСОшибками = Истина;
Иначе
Попытка Попытка
СоздатьУчетнуюЗапись(); СоздатьУчетнуюЗапись();
Исключение Исключение
@@ -751,6 +736,14 @@
Или ИспользоватьДляПолучения И Не НайденныеНастройки.ДляПолучения; Или ИспользоватьДляПолучения И Не НайденныеНастройки.ДляПолучения;
ЗаполнитьЗначенияСвойств(ЭтотОбъект, НайденныеНастройки); ЗаполнитьЗначенияСвойств(ЭтотОбъект, НайденныеНастройки);
ШифрованиеПриОтправкеПочты = ?(ИспользоватьЗащищенноеСоединениеДляИсходящейПочты, "SSL", "Авто");
ШифрованиеПриПолученииПочты = ?(ИспользоватьЗащищенноеСоединениеДляВходящейПочты, "SSL", "Авто");
Если Не НайденныеНастройки.ПроверкаНастроекВыполнена Тогда
ПодключитьОбработчикОжидания("ВыполнитьПроверкуНастроек", 0.1, Истина);
Возврат;
КонецЕсли;
Если Не ПроверкаЗавершиласьСОшибками Тогда Если Не ПроверкаЗавершиласьСОшибками Тогда
Попытка Попытка
СоздатьУчетнуюЗапись(); СоздатьУчетнуюЗапись();
@@ -764,4 +757,11 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ПарольНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
РаботаСПочтовымиСообщениямиКлиент.ПолеПароляНачалоВыбора(Элемент, ПарольДляПолученияПисем, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -598,11 +598,23 @@
<headerHorizontalAlign>Left</headerHorizontalAlign> <headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter> <showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo"> <extInfo xsi:type="form:InputFieldExtInfo">
<handlers>
<event>EditTextChange</event>
<name>ПарольДляПолученияПисемИзменениеТекстаРедактирования</name>
</handlers>
<handlers>
<event>StartChoice</event>
<name>ПарольДляПолученияПисемНачалоВыбора</name>
</handlers>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>false</horizontalStretch> <horizontalStretch>false</horizontalStretch>
<wrap>true</wrap> <wrap>true</wrap>
<passwordMode>true</passwordMode> <passwordMode>true</passwordMode>
<choiceButton>true</choiceButton>
<choiceButtonPicture xsi:type="core:PictureRef">
<picture>CommonPicture.ВводимыеСимволыСкрыты</picture>
</choiceButtonPicture>
<chooseType>true</chooseType> <chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled> <typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit> <textEdit>true</textEdit>
@@ -212,6 +212,16 @@
ПарольИзменен = Истина; ПарольИзменен = Истина;
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ПарольДляПолученияПисемИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
Элементы.ПарольДляПолученияПисем.КнопкаВыбора = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ПарольДляПолученияПисемНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
РаботаСПочтовымиСообщениямиКлиент.ПолеПароляНачалоВыбора(Элемент, Пароль, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура ПарольДляОтправкиПисемПриИзменении(Элемент) Процедура ПарольДляОтправкиПисемПриИзменении(Элемент)
ПарольSMTPИзменен = Истина; ПарольSMTPИзменен = Истина;
@@ -566,7 +576,9 @@
СпособАвторизацииПриОтправкеПочты = ?(Объект.ТребуетсяВходНаСерверПередОтправкой, "POP", "SMTP"); СпособАвторизацииПриОтправкеПочты = ?(Объект.ТребуетсяВходНаСерверПередОтправкой, "POP", "SMTP");
Элементы.ФормаПроверитьНастройки.Доступность = Объект.ИспользоватьДляОтправки Или Объект.ИспользоватьДляПолучения; Элементы.ФормаПроверитьНастройки.Доступность = Объект.ИспользоватьДляОтправки Или Объект.ИспользоватьДляПолучения;
Элементы.ФормаОткрытьПомощникНастройки.Доступность = Не Объект.Ссылка.Пустая(); Элементы.ФормаОткрытьПомощникНастройки.Доступность = Не Объект.Ссылка.Пустая() И Не ТолькоПросмотр;
Элементы.ПарольДляПолученияПисем.КнопкаВыбора = Ложь;
КонецПроцедуры КонецПроцедуры
@@ -289,12 +289,94 @@
КонецФункции КонецФункции
Функция ОпределитьИменаПочтовыхСерверовДомена(Домен)
Результат = Новый Массив;
ПараметрыЗапускаПрограммы = ФайловаяСистема.ПараметрыЗапускаПрограммы();
ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина;
ПараметрыЗапускаПрограммы.ПолучитьПотокВывода = Истина;
ПараметрыЗапускаПрограммы.ПолучитьПотокОшибок = Истина;
ПараметрыЗапускаПрограммы.КодировкаИсполнения = "OEM";
ШаблонКоманды = "nslookup -type=mx %1";
СтрокаКоманды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонКоманды, Домен);
РезультатЗапуска = ФайловаяСистема.ЗапуститьПрограмму(СтрокаКоманды, ПараметрыЗапускаПрограммы);
Если РезультатЗапуска.КодВозврата = 0 Тогда
Ответ = РезультатЗапуска.ПотокВывода + Символы.ПС + РезультатЗапуска.ПотокОшибок;
Для Каждого Строка Из СтрРазделить(Ответ, Символы.ПС, Ложь) Цикл
Если СтрНайти(Строка, "mail exchanger") > 0 Тогда
ЧастиСтроки = СтрРазделить(Строка, " ", Ложь);
ИмяСервера = ЧастиСтроки[ЧастиСтроки.ВГраница()];
ИмяСервера = СтрСоединить(СтрРазделить(ИмяСервера, ".", Ложь), ".");
Результат.Добавить(ИмяСервера);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Возврат Результат;
КонецФункции
Функция ОпределитьНастройкиУчетнойЗаписи(АдресЭлектроннойПочты, Пароль, ДляОтправки, ДляПолучения) Экспорт Функция ОпределитьНастройкиУчетнойЗаписи(АдресЭлектроннойПочты, Пароль, ДляОтправки, ДляПолучения) Экспорт
НайденныйПрофильSMTP = Неопределено; НастройкиПочтовыхСерверов = Неопределено;
НайденныйПрофильIMAP = Неопределено;
НайденныйПрофильPOP = Неопределено;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда
МодульПолучениеФайловИзИнтернета = ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернета");
ЗагруженныйФайл = МодульПолучениеФайловИзИнтернета.СкачатьФайлНаСервере("https://downloads.v8.1c.ru/content/common/settings/mailservers.json");
Если ЗагруженныйФайл.Статус Тогда
ЧтениеJSON = Новый ЧтениеJSON();
ЧтениеJSON.ОткрытьФайл(ЗагруженныйФайл.Путь);
НастройкиПочтовыхСерверов = ПрочитатьJSON(ЧтениеJSON, Истина);
ЧтениеJSON.Закрыть();
КонецЕсли;
КонецЕсли;
НайденныеНастройки = Неопределено;
Если НастройкиПочтовыхСерверов <> Неопределено Тогда
СтруктураАдреса = ОбщегоНазначенияКлиентСервер.СтруктураURI(АдресЭлектроннойПочты);
НайденныеНастройки = НастройкиПочтовыхСерверов[СтруктураАдреса.Хост];
Если ТипЗнч(НайденныеНастройки) = Тип("Строка") Тогда
НайденныеНастройки = НастройкиПочтовыхСерверов[НайденныеНастройки];
КонецЕсли;
Если НайденныеНастройки = Неопределено Тогда
ИменаСерверов = ОпределитьИменаПочтовыхСерверовДомена(СтруктураАдреса.Хост);
Для Каждого ИмяСервера Из ИменаСерверов Цикл
НайденныеНастройки = НастройкиПочтовыхСерверов[ИмяСервера];
Если ТипЗнч(НайденныеНастройки) = Тип("Строка") Тогда
НайденныеНастройки = НастройкиПочтовыхСерверов[НайденныеНастройки];
КонецЕсли;
Если ТипЗнч(НайденныеНастройки) = Тип("Соответствие") Тогда
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
Возврат ПодобратьНастройкиПочты(АдресЭлектроннойПочты, Пароль, ДляОтправки, ДляПолучения, НайденныеНастройки);
КонецФункции
Функция ПодобратьНастройкиПочты(АдресЭлектроннойПочты, Пароль, ДляОтправки, ДляПолучения, ИзвестныеНастройкиПочтовогоСервера)
Профиль = Неопределено;
Если ЗначениеЗаполнено(ИзвестныеНастройкиПочтовогоСервера) Тогда
Профиль = СформироватьПрофиль(ИзвестныеНастройкиПочтовогоСервера, АдресЭлектроннойПочты, Пароль);
КонецЕсли;
НастройкиПолучены = Профиль <> Неопределено;
НайденныйПрофильSMTP = ?(НастройкиПолучены И ЗначениеЗаполнено(Профиль.АдресСервераSMTP), Профиль, Неопределено);
НайденныйПрофильIMAP = ?(НастройкиПолучены И ЗначениеЗаполнено(Профиль.АдресСервераIMAP), Профиль, Неопределено);
НайденныйПрофильPOP = ?(НастройкиПолучены И НайденныйПрофильIMAP = Неопределено И ЗначениеЗаполнено(Профиль.АдресСервераPOP3), Профиль, Неопределено);
Если Не НастройкиПолучены Тогда
Если ДляОтправки Тогда Если ДляОтправки Тогда
НайденныйПрофильSMTP = ОпределитьНастройкиSMTP(АдресЭлектроннойПочты, Пароль); НайденныйПрофильSMTP = ОпределитьНастройкиSMTP(АдресЭлектроннойПочты, Пароль);
КонецЕсли; КонецЕсли;
@@ -305,6 +387,7 @@
НайденныйПрофильPOP = ОпределитьНастройкиPOP(АдресЭлектроннойПочты, Пароль); НайденныйПрофильPOP = ОпределитьНастройкиPOP(АдресЭлектроннойПочты, Пароль);
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
КонецЕсли;
Результат = Новый Структура; Результат = Новый Структура;
@@ -336,11 +419,50 @@
Результат.Вставить("ДляПолучения", НайденныйПрофильIMAP <> Неопределено Или НайденныйПрофильPOP <> Неопределено); Результат.Вставить("ДляПолучения", НайденныйПрофильIMAP <> Неопределено Или НайденныйПрофильPOP <> Неопределено);
Результат.Вставить("ДляОтправки", НайденныйПрофильSMTP <> Неопределено); Результат.Вставить("ДляОтправки", НайденныйПрофильSMTP <> Неопределено);
Результат.Вставить("ПроверкаНастроекВыполнена", Не НастройкиПолучены);
Возврат Результат; Возврат Результат;
КонецФункции КонецФункции
Функция СформироватьПрофиль(ИзвестныеНастройки, АдресЭлектроннойПочты, Пароль)
СтруктураАдреса = ОбщегоНазначенияКлиентСервер.СтруктураURI(АдресЭлектроннойПочты);
Профиль = Новый ИнтернетПочтовыйПрофиль;
Для Каждого Подключение Из ИзвестныеНастройки["Services"] Цикл
Если Подключение["Protocol"] = "SMTP" И Не ЗначениеЗаполнено(Профиль.АдресСервераSMTP) Тогда
Если Подключение["SMTPAuthentication"] = "Enabled" Или Подключение["SMTPAuthentication"] = Неопределено Тогда
Профиль.ПользовательSMTP = ?(Подключение["LoginFormat"] = "username", СтруктураАдреса.Логин, АдресЭлектроннойПочты);
Профиль.ПарольSMTP = Пароль;
КонецЕсли;
Профиль.ИспользоватьSSLSMTP = Подключение["Encryption"] = "SSL";
Профиль.АдресСервераSMTP = Подключение["Host"];
Профиль.ПортSMTP = Подключение["Port"];
Профиль.POP3ПередSMTP = Подключение["SMTPAuthentication"] = "POPBeforeSMTP";
КонецЕсли;
Если Подключение["Protocol"] = "IMAP" И Не ЗначениеЗаполнено(Профиль.АдресСервераIMAP) Тогда
Профиль.ИспользоватьSSLIMAP = Подключение["Encryption"] = "SSL";
Профиль.ПользовательIMAP = ?(Подключение["LoginFormat"] = "username", СтруктураАдреса.Логин, АдресЭлектроннойПочты);
Профиль.ПарольIMAP = Пароль;
Профиль.АдресСервераIMAP = Подключение["Host"];
Профиль.ПортIMAP = Подключение["Port"];
КонецЕсли;
Если Подключение["Protocol"] = "POP3" И Не ЗначениеЗаполнено(Профиль.АдресСервераPOP3) Тогда
Профиль.ИспользоватьSSLPOP3 = Подключение["Encryption"] = "SSL";
Профиль.Пользователь = ?(Подключение["LoginFormat"] = "username", СтруктураАдреса.Логин, АдресЭлектроннойПочты);
Профиль.Пароль = Пароль;
Профиль.АдресСервераPOP3 = Подключение["Host"];
Профиль.ПортPOP3 = Подключение["Port"];
КонецЕсли;
КонецЦикла;
Возврат Профиль;
КонецФункции
Функция ОпределитьНастройкиPOP(АдресЭлектроннойПочты, Пароль) Функция ОпределитьНастройкиPOP(АдресЭлектроннойПочты, Пароль)
Для Каждого Профиль Из ПрофилиPOP(АдресЭлектроннойПочты, Пароль) Цикл Для Каждого Профиль Из ПрофилиPOP(АдресЭлектроннойПочты, Пароль) Цикл
СообщениеСервера = ПроверитьПодключениеКСерверуВходящейПочты(Профиль, ПротоколИнтернетПочты.POP3); СообщениеСервера = ПроверитьПодключениеКСерверуВходящейПочты(Профиль, ПротоколИнтернетПочты.POP3);
@@ -511,7 +633,7 @@
КонецФункции КонецФункции
Функция ПроверитьПодключениеКСерверуВходящейПочты(Профиль, Протокол) Экспорт Функция ПроверитьПодключениеКСерверуВходящейПочты(Профиль, Протокол)
ИнтернетПочта = Новый ИнтернетПочта; ИнтернетПочта = Новый ИнтернетПочта;
@@ -547,7 +669,7 @@
КонецФункции КонецФункции
Функция ПроверитьПодключениеКСерверуИсходящейПочты(Профиль, АдресЭлектроннойПочты) Экспорт Функция ПроверитьПодключениеКСерверуИсходящейПочты(Профиль, АдресЭлектроннойПочты)
Тема = НСтр("ru = 'Тестовое сообщение 1С:Предприятие'"); Тема = НСтр("ru = 'Тестовое сообщение 1С:Предприятие'");
Тело = НСтр("ru = 'Это сообщение отправлено подсистемой электронной почты 1С:Предприятие'"); Тело = НСтр("ru = 'Это сообщение отправлено подсистемой электронной почты 1С:Предприятие'");
@@ -909,7 +1031,28 @@
Функция ПроверитьНастройкиУчетнойЗаписи(УчетнаяЗапись) Экспорт Функция ПроверитьНастройкиУчетнойЗаписи(УчетнаяЗапись) Экспорт
НастройкиУчетнойЗаписи = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(УчетнаяЗапись, "ИспользоватьДляОтправки,ИспользоватьДляПолучения,ПротоколВходящейПочты,АдресЭлектроннойПочты"); НастройкиУчетнойЗаписи = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(УчетнаяЗапись,
"ИспользоватьДляОтправки,ИспользоватьДляПолучения,АдресЭлектроннойПочты");
ПрофильИсходящейПочты = Неопределено;
ПрофильВходящейПочты = Неопределено;
УстановитьОтключениеБезопасногоРежима(Истина);
Если НастройкиУчетнойЗаписи.ИспользоватьДляОтправки Тогда
ПрофильИсходящейПочты = РаботаСПочтовымиСообщениямиСлужебный.ИнтернетПочтовыйПрофиль(УчетнаяЗапись, Ложь);
КонецЕсли;
Если НастройкиУчетнойЗаписи.ИспользоватьДляПолучения Тогда
ПрофильВходящейПочты = РаботаСПочтовымиСообщениямиСлужебный.ИнтернетПочтовыйПрофиль(УчетнаяЗапись, Истина);
КонецЕсли;
УстановитьОтключениеБезопасногоРежима(Ложь);
АдресЭлектроннойПочты = НастройкиУчетнойЗаписи.АдресЭлектроннойПочты;
Возврат ПроверитьНастройкиПрофилей(ПрофильИсходящейПочты, ПрофильВходящейПочты, АдресЭлектроннойПочты);
КонецФункции
Функция ПроверитьНастройкиПрофилей(ПрофильИсходящейПочты, ПрофильВходящейПочты, АдресЭлектроннойПочты) Экспорт
ТекстСообщения = Новый Массив; ТекстСообщения = Новый Массив;
ТехническиеПодробности = Новый Массив; ТехническиеПодробности = Новый Массив;
@@ -918,10 +1061,9 @@
ОшибкаАутентификации = Ложь; ОшибкаАутентификации = Ложь;
ТребуетсяПроверкаНастроекИсходящейПочты = Ложь; ТребуетсяПроверкаНастроекИсходящейПочты = Ложь;
ТребуетсяПроверкаНастроекВходящейПочты = Ложь; ТребуетсяПроверкаНастроекВходящейПочты = Ложь;
УчетнаяЗаписьИспользуется = НастройкиУчетнойЗаписи.ИспользоватьДляОтправки Или НастройкиУчетнойЗаписи.ИспользоватьДляПолучения;
Если НастройкиУчетнойЗаписи.ИспользоватьДляОтправки Тогда Если ПрофильИсходящейПочты <> Неопределено Тогда
ТекстОшибки = ПроверитьВозможностьПодключенияКПочтовомуСерверу(УчетнаяЗапись, Ложь); ТекстОшибки = ПроверитьПодключениеКСерверуИсходящейПочты(ПрофильИсходящейПочты, АдресЭлектроннойПочты);
Если ЗначениеЗаполнено(ТекстОшибки) Тогда Если ЗначениеЗаполнено(ТекстОшибки) Тогда
ТехническиеПодробности.Добавить(ТекстОшибки); ТехническиеПодробности.Добавить(ТекстОшибки);
@@ -931,6 +1073,12 @@
Иначе Иначе
ТекстСообщения.Добавить(НСтр("ru = 'Отправка тестового сообщения не выполнена.'")); ТекстСообщения.Добавить(НСтр("ru = 'Отправка тестового сообщения не выполнена.'"));
ТребуетсяПроверкаНастроекИсходящейПочты = Истина; ТребуетсяПроверкаНастроекИсходящейПочты = Истина;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда
МодульПолучениеФайловИзИнтернета = ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернета");
ДиагностикаСоединения = МодульПолучениеФайловИзИнтернета.ДиагностикаСоединения(ПрофильИсходящейПочты.АдресСервераSMTP);
ТехническиеПодробности.Добавить(ДиагностикаСоединения.ЖурналДиагностики);
КонецЕсли;
КонецЕсли; КонецЕсли;
Иначе Иначе
ВыполненныеПроверки.Добавить("- " + НСтр("ru = 'Выполнена отправка тестового сообщения.'")); ВыполненныеПроверки.Добавить("- " + НСтр("ru = 'Выполнена отправка тестового сообщения.'"));
@@ -938,9 +1086,9 @@
КонецЕсли; КонецЕсли;
Если НастройкиУчетнойЗаписи.ИспользоватьДляПолучения Тогда Если ПрофильВходящейПочты <> Неопределено Тогда
Протокол = ?(ЗначениеЗаполнено(ПрофильВходящейПочты.АдресСервераIMAP), ПротоколИнтернетПочты.IMAP, ПротоколИнтернетПочты.POP3);
ТекстОшибки = ПроверитьВозможностьПодключенияКПочтовомуСерверу(УчетнаяЗапись, Истина); ТекстОшибки = ПроверитьПодключениеКСерверуВходящейПочты(ПрофильВходящейПочты, Протокол);
Если ЗначениеЗаполнено(ТекстОшибки) Тогда Если ЗначениеЗаполнено(ТекстОшибки) Тогда
ТехническиеПодробности.Добавить(ТекстОшибки); ТехническиеПодробности.Добавить(ТекстОшибки);
@@ -950,6 +1098,13 @@
Иначе Иначе
ТекстСообщения.Добавить(НСтр("ru = 'Подключение к серверу входящей почты не выполнено.'")); ТекстСообщения.Добавить(НСтр("ru = 'Подключение к серверу входящей почты не выполнено.'"));
ТребуетсяПроверкаНастроекВходящейПочты = Истина; ТребуетсяПроверкаНастроекВходящейПочты = Истина;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда
МодульПолучениеФайловИзИнтернета = ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернета");
СерверВходящейПочты = ?(Протокол = ПротоколИнтернетПочты.IMAP, ПрофильВходящейПочты.АдресСервераIMAP, ПрофильВходящейПочты.АдресСервераPOP3);
ДиагностикаСоединения = МодульПолучениеФайловИзИнтернета.ДиагностикаСоединения(СерверВходящейПочты);
ТехническиеПодробности.Добавить(ДиагностикаСоединения.ЖурналДиагностики);
КонецЕсли;
КонецЕсли; КонецЕсли;
Иначе Иначе
ВыполненныеПроверки.Добавить("- " + НСтр("ru = 'Выполнено подключение к серверу входящей почты.'")); ВыполненныеПроверки.Добавить("- " + НСтр("ru = 'Выполнено подключение к серверу входящей почты.'"));
@@ -957,12 +1112,20 @@
КонецЕсли; КонецЕсли;
ТехническиеПодробности.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Адрес почты: %1'"), АдресЭлектроннойПочты));
ТехническиеПодробности.Добавить(ОписаниеНастроек(ПрофильИсходящейПочты, ПрофильВходящейПочты));
ТехническиеПодробности.Добавить(ИнформацияОПрограмме());
ОшибкиПодключения = ""; ОшибкиПодключения = "";
Если ЗначениеЗаполнено(ТекстСообщения) Тогда Если ЗначениеЗаполнено(ТекстСообщения) Тогда
ЧастиАдреса = СтрРазделить(НастройкиУчетнойЗаписи.АдресЭлектроннойПочты, "@", Истина); ЧастиАдреса = СтрРазделить(АдресЭлектроннойПочты, "@", Истина);
ДоменноеИмя = ЧастиАдреса[ЧастиАдреса.ВГраница()]; ДоменноеИмя = ЧастиАдреса[ЧастиАдреса.ВГраница()];
ТекстСообщения = СтрСоединить(ТекстСообщения, Символы.ПС); ТекстСообщения = СтрСоединить(ТекстСообщения, Символы.ПС);
ТехническиеПодробности = СтрСоединить(ТехническиеПодробности, Символы.ПС + Символы.ПС); ТехническиеПодробности = СтрСоединить(ТехническиеПодробности, Символы.ПС + Символы.ПС);
Рекомендации = Новый Массив; Рекомендации = Новый Массив;
@@ -975,6 +1138,10 @@
Если ТребуетсяПроверкаНастроекВходящейПочты Тогда Если ТребуетсяПроверкаНастроекВходящейПочты Тогда
Рекомендации.Добавить(НСтр("ru = 'Проверьте настройки подключения к серверу входящей почты.'")); Рекомендации.Добавить(НСтр("ru = 'Проверьте настройки подключения к серверу входящей почты.'"));
КонецЕсли; КонецЕсли;
Если ТребуетсяПроверкаНастроекИсходящейПочты Или ТребуетсяПроверкаНастроекВходящейПочты Тогда
Рекомендации.Добавить(НСтр("ru = 'Обратитесь к администратору локальной сети.'"));
КонецЕсли;
Рекомендации = СтрСоединить(Рекомендации, Символы.ПС); Рекомендации = СтрСоединить(Рекомендации, Символы.ПС);
ОшибкиПодключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1 ОшибкиПодключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1
@@ -982,8 +1149,10 @@
|%2 |%2
| |
|Обратитесь к администратору почтового сервера ""%3"". |Обратитесь к администратору почтового сервера ""%3"".
|--- |
|Технические подробности: |============================
|
|Информация для техподдержки:
| |
|%4'"), ТекстСообщения, Рекомендации, ДоменноеИмя, ТехническиеПодробности); |%4'"), ТекстСообщения, Рекомендации, ДоменноеИмя, ТехническиеПодробности);
КонецЕсли; КонецЕсли;
@@ -998,6 +1167,80 @@
КонецФункции КонецФункции
Функция ОписаниеНастроек(ПрофильИсходящейПочты, ПрофильВходящейПочты)
ОписаниеНастроек = Новый Массив;
СписокСвойствIMAP = "АдресСервераIMAP,ПортIMAP,ИспользоватьSSLIMAP,ПользовательIMAP";
СписокСвойствPOP3 = "АдресСервераPOP3,ПортPOP3,ИспользоватьSSLPOP3,Пользователь";
СписокСвойствSMTP = "АдресСервераSMTP,ПортSMTP,ИспользоватьSSLSMTP,ПользовательSMTP,POP3ПередSMTP";
Профиль = Новый ИнтернетПочтовыйПрофиль();
Если ПрофильВходящейПочты <> Неопределено Тогда
ЗаполнитьЗначенияСвойств(Профиль, ПрофильВходящейПочты);
КонецЕсли;
Если ПрофильИсходящейПочты <> Неопределено Тогда
ЗаполнитьЗначенияСвойств(Профиль, ПрофильИсходящейПочты, , СписокСвойствPOP3);
КонецЕсли;
Если ЗначениеЗаполнено(Профиль.АдресСервераSMTP) Тогда
Настройки = Новый Массив;
Для Каждого ИмяСвойства Из СтрРазделить(СписокСвойствSMTP, ",", Ложь) Цикл
Настройки.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1=""%2""'"), ИмяСвойства, Профиль[ИмяСвойства]));
КонецЦикла;
ОписаниеНастроек.Добавить(СтрСоединить(Настройки, ", "));
КонецЕсли;
Если ЗначениеЗаполнено(Профиль.АдресСервераIMAP) Тогда
Настройки = Новый Массив;
Для Каждого ИмяСвойства Из СтрРазделить(СписокСвойствIMAP, ",", Ложь) Цикл
Настройки.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1=""%2""'"), ИмяСвойства, Профиль[ИмяСвойства]));
КонецЦикла;
ОписаниеНастроек.Добавить(СтрСоединить(Настройки, ", "));
КонецЕсли;
Если ЗначениеЗаполнено(Профиль.АдресСервераPOP3) Тогда
Настройки = Новый Массив;
Для Каждого ИмяСвойства Из СтрРазделить(СписокСвойствPOP3, ",", Ложь) Цикл
Настройки.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1=""%2""'"), ИмяСвойства, Профиль[ИмяСвойства]));
КонецЦикла;
ОписаниеНастроек.Добавить(СтрСоединить(Настройки, ", "));
КонецЕсли;
Возврат СтрСоединить(ОписаниеНастроек, Символы.ПС);
КонецФункции
Функция ИнформацияОПрограмме()
СистемнаяИнформация = Новый СистемнаяИнформация;
Результат = Новый Массив;
Результат.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Операционная система: %1'"), СистемнаяИнформация.ВерсияОС));
Результат.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Платформа: %1 (%2)'"),
СистемнаяИнформация.ВерсияПриложения, СистемнаяИнформация.ТипПлатформы));
Результат.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Конфигурация: %1 (%2)'"),
?(ЗначениеЗаполнено(Метаданные.Синоним), Метаданные.Синоним, Метаданные.Имя), Метаданные.Версия));
Результат.Добавить(Символы.ПС + НСтр("ru = 'Расширения:'"));
УстановитьПривилегированныйРежим(Истина);
Для Каждого Расширение Из РасширенияКонфигурации.Получить() Цикл
Если Расширение.Активно Тогда
Результат.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1 (%2)'"),
?(ЗначениеЗаполнено(Расширение.Синоним), Расширение.Синоним, Расширение.Имя), Расширение.Версия));
КонецЕсли;
КонецЦикла;
УстановитьПривилегированныйРежим(Ложь);
Возврат СтрСоединить(Результат, Символы.ПС);
КонецФункции
#КонецОбласти #КонецОбласти
#КонецЕсли #КонецЕсли
@@ -443,7 +443,7 @@
// * Ссылка - ОпределяемыйТип.КонтактВзаимодействия - // * Ссылка - ОпределяемыйТип.КонтактВзаимодействия -
// //
&НаКлиенте &НаКлиенте
Функция ДанныеСтрокиНайденныеКонтакты() Экспорт Функция ДанныеСтрокиНайденныеКонтакты()
Данные = Новый Структура; Данные = Новый Структура;
Данные.Вставить("Ссылка", Неопределено); Данные.Вставить("Ссылка", Неопределено);
@@ -1,15 +1,23 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
<p>При копировании информационной базы в другое местоположение возможны ситуации, когда обе информационные базы (и исходная и скопированная) продолжают взаимодействовать с внешними ресурсами (например, выполнение рассылки отчетов, синхронизация данных с другими программами, отправка или получение почты и т.п.). Для предотвращения таких ситуаций при изменении местоположения информационной базы блокируются все подобные регламентные задания. При первом входе в перемещенную базу администратор должен принять решение о ее роли: информационная база была перемещена (тогда работа с внешними ресурсами будет возобновлена) или это копия информационной базы (сохраняется блокировка работы с внешними ресурсами).</p> <p>При копировании информационной базы в другое местоположение возможны ситуации, когда обе информационные базы (и исходная и скопированная) продолжают взаимодействовать с внешними ресурсами (например, выполнение рассылки отчетов, синхронизация данных с другими программами, отправка или получение почты и т.п.). Для предотвращения таких ситуаций при изменении местоположения информационной базы блокируются все подобные регламентные задания. При первом входе в перемещенную базу администратор должен принять решение о ее роли: информационная база была перемещена (тогда работа с внешними ресурсами будет возобновлена) или это копия информационной базы (сохраняется блокировка работы с внешними ресурсами).</p>
<h3>Как определяется факт перемещения информационной базы</h3> <h3>Как определяется факт перемещения информационной базы</h3>
<p>При определении факта перемещения информационной базы в первую очередь проверяется изменение типа расположения информационной базы: с файлового на клиент-сверверный и наоборот. Если тип расположения изменился, то она считается перемещенной. Если тип расположения не изменился, то сравнивается строка соединения информационной базы. Если строка соединения не изменилась, то дальнейшая проверка прекращается и база считается не перемещенной. Дальнейшая проверка зависит от типа расположения базы:</p> <p>При определении факта перемещения информационной базы в первую очередь проверяется изменение типа расположения информационной базы: с файлового на клиент-серверный и наоборот. Если тип расположения изменился, то она считается перемещенной. Если тип расположения не изменился, то сравнивается строка соединения информационной базы. Если строка соединения не изменилась, то дальнейшая проверка прекращается и база считается не перемещенной. Дальнейшая проверка зависит от типа расположения базы:</p>
<li> <li>
<div>В файловой информационной базе факт перемещения определяется по служебному файлу <strong>DoNotCopy.txt</strong>, автоматически создаваемому программой в каталоге информационной базы. Внутри файла находится идентификатор информационной базы. Если файл отсутствует или идентификатор в файле отличается от идентификатора в базе, то информационна база считается перемещенной.</div> <div>В файловой информационной базе факт перемещения определяется по служебному файлу <strong>DoNotCopy.txt</strong>, автоматически создаваемому программой в каталоге информационной базы. Внутри файла находится идентификатор информационной базы. Если файл отсутствует или идентификатор в файле отличается от идентификатора в базе, то информационная база считается перемещенной.</div>
</li><li> </li>
<div>В клиент-серверной информационной базе факт перемещения определяется:</div> <div>В клиент-серверной информационной базе факт перемещения определяется:</div>
<ul><li> <ul><li>
<div>По изменению имени информационной базы. Например, если имя информационной базы было "base_bp", а стало "base_bp_test".</div> <div>По изменению имени информационной базы. Например, если имя информационной базы было "base_bp", а стало "base_bp_test".</div></li>
</li><li> <li>
<div>Или по изменению имени компьютера и имени сервера. Например, если имя компьютера было "main_server", а стало "test_server", а также изменилось имя сервера с "main" на "test".</div></li></ul><p>При работе в модели сервиса признак перемещения приложения устанавливается Менеджером сервиса. Если информационна база загружается в приложение или выгружается из него, то этот факт определяется автоматически.</p> <div>Или по изменению имени компьютера и имени сервера. Например, если имя компьютера было "main_server", а стало "test_server", а также изменилось имя сервера с "main" на "test".</div></li></ul><p>При работе в модели сервиса признак перемещения приложения устанавливается Менеджером сервиса. Если информационная база загружается в приложение или выгружается из него, то этот факт определяется автоматически.</p>
<h3>См. также:</h3> <h3>Действия по разблокированию информационной базы</h3>
<ul><li>Если информационная база будет использоваться для ведения учета, нажмите кнопку <b>Информационная база перемещена</b>.</li>
<li>Если это копия информационная базы, нажмите кнопку <b>Это копия информационной базы</b>.</li></ul><div>В серверной информационной базе:</div>
<div>
<ul><li>Для того чтобы окно о перемещении информационной базы не появлялось у всех пользователей, необходимо первому пользователю, у которого появилось данное окно, выключить флажок <b>Еще - Проверять имя сервера</b>. </li>
<li>Данная настройка перенесется остальным пользователям централизованно.</li></ul></div>
<p></p>
<div><span style="font-size: 13.4399995803833px; font-weight: bold;">См. также:</span></div>
<p></p>
<ul><li> <ul><li>
<div><a href="v8help://frame/form_common">Работа с формами</a>.</div></li></ul></li></body></html> <div><a href="v8help://frame/form_common">Работа с формами</a>.</div></li></ul></body></html>
@@ -192,7 +192,7 @@
// * ПредставлениеНаименования - Строка - // * ПредставлениеНаименования - Строка -
// //
&НаКлиенте &НаКлиенте
Функция ДанныеКонтактыПоПредмету() Экспорт Функция ДанныеКонтактыПоПредмету()
Данные = Новый Структура; Данные = Новый Структура;
Данные.Вставить("Ссылка", Неопределено); Данные.Вставить("Ссылка", Неопределено);
@@ -487,6 +487,10 @@
<items xsi:type="form:Button"> <items xsi:type="form:Button">
<name>ОчиститьРабочийКаталог</name> <name>ОчиститьРабочийКаталог</name>
<id>13</id> <id>13</id>
<title>
<key>ru</key>
<value>Очистить</value>
</title>
<visible>true</visible> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
@@ -542,7 +546,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group> <group>AlwaysHorizontal</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -4,11 +4,12 @@
<p>Открывается по ссылке <strong>Настройка рабочего каталога</strong> в персональных настройках программы (вкладка <strong>Работа с файлами</strong>).</p> <p>Открывается по ссылке <strong>Настройка рабочего каталога</strong> в персональных настройках программы (вкладка <strong>Работа с файлами</strong>).</p>
<h3>Расположение рабочего каталога</h3> <h3>Расположение рабочего каталога</h3>
<ul><li>В поле <strong>Расположение</strong> указывается путь к основному рабочему каталогу на Вашем персональном компьютере. <ul><li>В поле <strong>Расположение</strong> указывается путь к основному рабочему каталогу на Вашем персональном компьютере.
</li><li>Устанавливается программой автоматически, но может быть изменен при необходимости. Для этого <img src="StdPicture.InputFieldSelect"></img> <strong>Выберите</strong> другую папку на компьютере. При выборе другого пути к основному рабочему каталогу надо выбирать пустой каталог (не содержащий файлов или подкаталогов). </li>
</li><li>Для того чтобы вернуться к первоначальным настройкам программы, нажмите кнопку <strong><img src="CommonPicture.РабочийКаталогПоУмолчанию"></img> Восстановить значение по умолчанию</strong>.</li></ul><h3>Максимальный размер</h3> <li>Устанавливается программой автоматически, но может быть изменен при необходимости. Для этого <img src="StdPicture.InputFieldSelect"></img> <strong>Выберите</strong> другую папку на компьютере. При выборе другого пути к основному рабочему каталогу надо выбирать пустой каталог (не содержащий файлов или подкаталогов).
</li>
<li>Для того чтобы вернуться к первоначальным настройкам программы, нажмите кнопку <strong><img src="CommonPicture.РабочийКаталогПоУмолчанию"></img> Восстановить значение по умолчанию</strong>.</li></ul><h3>Максимальный размер</h3>
<ul><li>В поле <strong>Максимальный размер (Мб)</strong> установите предел суммарного объема всех файлов в <span lang="RU">основном рабочем каталоге</span> (по умолчанию 100 Мб). Если установлен равным 0, то объем файлов не ограничен. Размер указывается в мегабайтах (Мб).</li></ul><h3>Запрос программы на удаление файлов</h3> <ul><li>В поле <strong>Максимальный размер (Мб)</strong> установите предел суммарного объема всех файлов в <span lang="RU">основном рабочем каталоге</span> (по умолчанию 100 Мб). Если установлен равным 0, то объем файлов не ограничен. Размер указывается в мегабайтах (Мб).</li></ul><h3>Запрос программы на удаление файлов</h3>
<ul><li>Если установлен флажок <strong>Подтверждать при удалении из рабочего каталога</strong>, то перед удалением каждого файла будет выдаваться запрос на удаление файла. По умолчанию флажок снят.</li></ul><h3>Удаление файлов после редактирования</h3> <ul><li>Если установлен флажок <strong>Подтверждать при удалении из рабочего каталога</strong>, то перед удалением каждого файла будет выдаваться запрос на удаление файла. По умолчанию флажок снят.</li></ul><h3>Удаление файлов после редактирования</h3>
<ul><li>Если установлен флажок <strong>Удалять файлы при завершении редактирования</strong>, то после переносав программу файл удаляется на Вашем персональном компьютере. Используйте эту настройку для экономии места на жестком диске или в целях повышения безопасности. По умолчанию флажок снят.</li></ul><h3>Текущее состояние</h3> <ul><li>Если установлен флажок <strong>Удалять файлы при завершении редактирования</strong>, то после переносав программу файл удаляется на Вашем персональном компьютере. Используйте эту настройку для экономии места на жестком диске или в целях повышения безопасности. По умолчанию флажок снят.</li></ul><h3>Текущее состояние</h3>
<ul><li>Программа показывает <strong>Текущее состояние</strong> основного рабочего каталога - количество <strong>Файлов</strong>, содержащихся в нем и их <strong>Общий объем (Мб)</strong>.</li></ul><h3><span lang="RU">Просмотр списка файлов в основном рабочем каталоге</span></h3> <ul><li>Программа показывает <strong>Текущее состояние</strong> основного рабочего каталога - количество <strong>Файлов</strong>, содержащихся в нем и их <strong>Общий объем (Мб)</strong>.</li></ul><h3>Очистка основного рабочего каталога</h3>
<ul><li><span lang="RU">Нажмите <strong>Открыть список файлов</strong>, для того чтобы просмотреть <span lang="RU"><a href="DataProcessor.РаботаСФайлами.Form.ФайлыВОсновномРабочемКаталоге/Help">список файлов</a>, которые в настоящий момент размещены в <span lang="RU">основном рабочем каталоге</span>.</span></span></li></ul><h3>Очистка основного рабочего каталога</h3>
<ul><li>Нажмите <strong>Очистить </strong><span lang="RU"><strong>рабочий каталог</strong>, для того чтобы удалить все файлы в <span lang="RU">основном рабочем каталоге,</span> кроме занятых Вами для редактирования. Для подтверждения очистки нажмите <strong>Да</strong>.</span></li></ul></body></html> <ul><li>Нажмите <strong>Очистить </strong><span lang="RU"><strong>рабочий каталог</strong>, для того чтобы удалить все файлы в <span lang="RU">основном рабочем каталоге,</span> кроме занятых Вами для редактирования. Для подтверждения очистки нажмите <strong>Да</strong>.</span></li></ul></body></html>
@@ -24,6 +24,8 @@
Элементы.РабочийКаталогПользователя.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Верх; Элементы.РабочийКаталогПользователя.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Верх;
КонецЕсли; КонецЕсли;
Элементы.СписокФайлов.Видимость = Ложь;
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
@@ -250,7 +250,7 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Файл = Новый Файл(ПолныйПуть + "\" + МассивКаталогов[0]); Файл = Новый Файл(ПолныйПуть + ПолучитьРазделительПути() + МассивКаталогов[0]);
ТекущийМассив = Новый Массив; ТекущийМассив = Новый Массив;
ТекущийМассив.Добавить(МассивКаталогов[0]); ТекущийМассив.Добавить(МассивКаталогов[0]);
@@ -267,18 +267,6 @@
Элемент = УсловноеОформление.Элементы.Добавить(); Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКонтактов.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаКонтактов.Адрес");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("Доступность", Ложь);
//
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКонтактовИзменять.Имя); ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТаблицаКонтактовИзменять.Имя);
@@ -316,7 +304,7 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура СохранитьИЗакрыть(Результат = Неопределено, ДополнительныеПараметры = Неопределено) Экспорт Процедура СохранитьИЗакрыть(Результат = Неопределено, ДополнительныеПараметры = Неопределено)
РезультатВыбора = Новый Массив; РезультатВыбора = Новый Массив;
ЕстьКонтактнаяИнформацияДляИзменения = Ложь; ЕстьКонтактнаяИнформацияДляИзменения = Ложь;
@@ -866,8 +854,10 @@
&НаКлиенте &НаКлиенте
Процедура УстановитьСнятьПризнакИзменятьЕслиНеобходимо(ТекущиеДанные) Процедура УстановитьСнятьПризнакИзменятьЕслиНеобходимо(ТекущиеДанные)
Если (НЕ ЗначениеЗаполнено(ТекущиеДанные.Адрес) ИЛИ Не ЗначениеЗаполнено(ТекущиеДанные.Контакт) Если (Не ЗначениеЗаполнено(ТекущиеДанные.Адрес)
ИЛИ ВРег(ТекущиеДанные.Адрес) = ВРег(ТекущиеДанные.ТекущийАдресКонтакта)) Тогда Или Не ЗначениеЗаполнено(ТекущиеДанные.Контакт)
Или ВРег(ТекущиеДанные.Адрес) = ВРег(ТекущиеДанные.ТекущийАдресКонтакта)
Или Не ТекущиеДанные.ДоступноИзменение) Тогда
ТекущиеДанные.Изменять = Ложь; ТекущиеДанные.Изменять = Ложь;
@@ -901,7 +891,6 @@
Если Не ЗначениеЗаполнено(СтрокаКонтакт.Контакт) Тогда Если Не ЗначениеЗаполнено(СтрокаКонтакт.Контакт) Тогда
СтрокаКонтакт.Изменять = Ложь;
СтрокаКонтакт.ДоступноИзменение = Ложь; СтрокаКонтакт.ДоступноИзменение = Ложь;
Иначе Иначе
@@ -909,11 +898,17 @@
ПравоИзменения = ПравоДоступа("Изменение", Метаданные.НайтиПоТипу(ТипЗнч(СтрокаКонтакт.Контакт))); ПравоИзменения = ПравоДоступа("Изменение", Метаданные.НайтиПоТипу(ТипЗнч(СтрокаКонтакт.Контакт)));
СтрокаКонтакт.ДоступноИзменение = ПравоИзменения; СтрокаКонтакт.ДоступноИзменение = ПравоИзменения;
Если Не ПравоИзменения Тогда Если Не ПравоИзменения Тогда
СтрокаКонтакт.Изменять = Ложь; СтрокаКонтакт.ДоступноИзменение = Ложь;
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
Если Не СтрокаКонтакт.ДоступноИзменение Тогда
СтрокаКонтакт.Изменять = Ложь;
КонецЕсли;
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
@@ -61,44 +61,11 @@
// //
Функция КодРегионаПоНаименованию(Название) Экспорт Функция КодРегионаПоНаименованию(Название) Экспорт
Запрос = Новый Запрос(" СписокРегионов = АдресныйКлассификаторПовтИсп.СписокРегионов();
|ВЫБРАТЬ КодСубъектаРФ = СписокРегионов.Получить(Название);
| Варианты.КодСубъектаРФ
|ИЗ (
| ВЫБРАТЬ ПЕРВЫЕ 1
| 1 КАК Порядок,
| КодСубъектаРФ КАК КодСубъектаРФ
| ИЗ
| РегистрСведений.АдресныеОбъекты
| ГДЕ
| Уровень = 1
| И Наименование = &Название
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ ПЕРВЫЕ 1
| 2 КАК Порядок,
| КодСубъектаРФ КАК КодСубъектаРФ
| ИЗ
| РегистрСведений.АдресныеОбъекты
| ГДЕ
| Уровень = 1
| И Наименование = &Наименование
| И Сокращение = &Сокращение
|) КАК Варианты
|
|УПОРЯДОЧИТЬ ПО
| Варианты.Порядок
|");
ЧастиСлова = АдресныйКлассификаторСлужебный.НаименованиеИСокращение(Название); Если КодСубъектаРФ <> Неопределено Тогда
Запрос.УстановитьПараметр("Наименование", ЧастиСлова.Наименование); Возврат КодСубъектаРФ;
Запрос.УстановитьПараметр("Сокращение", ЧастиСлова.Сокращение);
Запрос.УстановитьПараметр("Название", Название);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка.КодСубъектаРФ;
КонецЕсли; КонецЕсли;
// Если не нашли, то подсмотрим еще и в классификаторе - макете. // Если не нашли, то подсмотрим еще и в классификаторе - макете.
@@ -107,6 +74,7 @@
Фильтр = Новый Структура("Наименование", Название); Фильтр = Новый Структура("Наименование", Название);
Варианты = Классификатор.НайтиСтроки(Фильтр); Варианты = Классификатор.НайтиСтроки(Фильтр);
Если Варианты.Количество() = 0 Тогда Если Варианты.Количество() = 0 Тогда
ЧастиСлова = АдресныйКлассификаторСлужебный.НаименованиеИСокращение(Название);
Фильтр.Вставить("Наименование", ЧастиСлова.Наименование); Фильтр.Вставить("Наименование", ЧастиСлова.Наименование);
Фильтр.Вставить("Сокращение", ЧастиСлова.Сокращение); Фильтр.Вставить("Сокращение", ЧастиСлова.Сокращение);
Варианты = Классификатор.НайтиСтроки(Фильтр); Варианты = Классификатор.НайтиСтроки(Фильтр);
@@ -117,6 +85,7 @@
КонецЕсли; КонецЕсли;
Возврат Неопределено; Возврат Неопределено;
КонецФункции КонецФункции
// Возвращает информацию о субъектах РФ определенных в федеральной информационной адресной системе. // Возвращает информацию о субъектах РФ определенных в федеральной информационной адресной системе.
@@ -162,4 +162,131 @@
КонецФункции КонецФункции
Функция НаименованиеВладенийИСтроений() Экспорт
Результат = Новый Структура("Владения, Строения", Новый Соответствие, Новый Соответствие);
Результат.Владения.Вставить(0, "Дом");
Результат.Строения.Вставить(0, "Строение");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СлужебныеАдресныеСведения.Тип КАК Тип,
| СлужебныеАдресныеСведения.Идентификатор КАК Идентификатор,
| СлужебныеАдресныеСведения.Ключ КАК Ключ,
| СлужебныеАдресныеСведения.Значение КАК Значение
|ИЗ
| РегистрСведений.СлужебныеАдресныеСведения КАК СлужебныеАдресныеСведения
|ГДЕ
| СлужебныеАдресныеСведения.Тип = ""ESTSTAT""
| ИЛИ СлужебныеАдресныеСведения.Тип = ""STRSTAT""";
РезультатЗапроса = Запрос.Выполнить().Выбрать();
Пока РезультатЗапроса.Следующий() Цикл
Если РезультатЗапроса.Тип = "ESTSTAT" Тогда
Результат.Владения.Вставить(РезультатЗапроса.Идентификатор, РезультатЗапроса.Значение);
ИначеЕсли РезультатЗапроса.Тип = "STRSTAT" Тогда
Результат.Строения.Вставить(РезультатЗапроса.Идентификатор, РезультатЗапроса.Значение);
КонецЕсли;
КонецЦикла;
Возврат Новый ФиксированнаяСтруктура(Результат);
КонецФункции
// Параметры:
// НаименованиеРегиона - Строка - Полное наименование региона
//
// Возвращаемое значение:
// ФиксированнаяСтруктура - где:
// * Загружен - Булево -
// * Устарел - Булево -
// * КодСубъектаРФ - Число -
//
Функция СведенияОРегионе(Знач НаименованиеРегиона) Экспорт
Результат = Новый Структура("Загружен, Устарел, КодСубъектаРФ", Ложь, Ложь, Неопределено);
СведенияОРегионе = АдресныйКлассификаторСлужебный.НаименованиеИСокращение(НаименованиеРегиона);
РезультатЗапроса = АдресныйКлассификаторСлужебный.АктуальныеДанныеОРегионе(СведенияОРегионе);
Если РезультатЗапроса.Пустой() Тогда
АдресныйКлассификаторСлужебный.ВыполнитьНачальноеЗаполнение();
РезультатЗапроса = АдресныйКлассификаторСлужебный.АктуальныеДанныеОРегионе(СведенияОРегионе);
Если РезультатЗапроса.Пустой() Тогда
АдресныйКлассификаторСлужебный.ПроверкаНаУстаревшийРегион(Результат, СведенияОРегионе);
Возврат Новый ФиксированнаяСтруктура(Результат);
КонецЕсли;
КонецЕсли;
ИнформацияОРегионе = РезультатЗапроса.Выбрать();
Если ИнформацияОРегионе.Следующий() Тогда
Результат.Загружен = ИнформацияОРегионе.РегионЗагружен;
Результат.КодСубъектаРФ = ИнформацияОРегионе.КодСубъектаРФ;
КонецЕсли;
Возврат Новый ФиксированнаяСтруктура(Результат);
КонецФункции
Функция СписокРегионов() Экспорт
Результат = Новый Соответствие;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| АдресныеОбъекты.КодСубъектаРФ КАК КодСубъектаРФ,
| АдресныеОбъекты.Наименование КАК Наименование,
| АдресныеОбъекты.Наименование + "" "" + АдресныеОбъекты.Сокращение КАК ПолноеНаименование
|ИЗ
| РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты
|ГДЕ
| АдресныеОбъекты.Уровень = 1";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Результат.Вставить(ВыборкаДетальныеЗаписи.Наименование, ВыборкаДетальныеЗаписи.КодСубъектаРФ);
Результат.Вставить(ВыборкаДетальныеЗаписи.ПолноеНаименование, ВыборкаДетальныеЗаписи.КодСубъектаРФ);
КонецЦикла;
Возврат Новый ФиксированноеСоответствие(Результат);
КонецФункции
Функция СписокСокращений() Экспорт
Результат = Новый Соответствие;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| УровниСокращенийАдресныхСведений.Сокращение КАК Сокращение,
| УровниСокращенийАдресныхСведений.Уровень КАК Уровень,
| УровниСокращенийАдресныхСведений.Значение КАК Значение
|ИЗ
| РегистрСведений.УровниСокращенийАдресныхСведений КАК УровниСокращенийАдресныхСведений";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Результат.Вставить(Строка(ВыборкаДетальныеЗаписи.Уровень) + ВыборкаДетальныеЗаписи.Сокращение,
ВыборкаДетальныеЗаписи.Значение);
КонецЦикла;
Возврат Новый ФиксированноеСоответствие(Результат);
КонецФункции
#КонецОбласти #КонецОбласти
@@ -41,12 +41,12 @@
ПараметрыБлокировки = СохраненныеПараметрыБлокировки(); ПараметрыБлокировки = СохраненныеПараметрыБлокировки();
ВключитьОтключенныеРегламентныеЗадания(ПараметрыБлокировки); ВключитьОтключенныеРегламентныеЗадания(ПараметрыБлокировки);
ПараметрыБлокировки = ТекущиеПараметрыБлокировки(); НовыеПараметрыБлокировки = ТекущиеПараметрыБлокировки();
ПараметрыБлокировки.ПроверятьИмяСервера = ПараметрыБлокировки.ПроверятьИмяСервера; НовыеПараметрыБлокировки.ПроверятьИмяСервера = ПараметрыБлокировки.ПроверятьИмяСервера;
СохранитьПараметрыБлокировки(ПараметрыБлокировки); СохранитьПараметрыБлокировки(НовыеПараметрыБлокировки);
Если ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда Если ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда
ЗаписатьИдентификаторФайловойБазыВФайлПроверки(ПараметрыБлокировки.ИдентификаторБазы); ЗаписатьИдентификаторФайловойБазыВФайлПроверки(НовыеПараметрыБлокировки.ИдентификаторБазы);
КонецЕсли; КонецЕсли;
ЗафиксироватьТранзакцию(); ЗафиксироватьТранзакцию();
@@ -567,7 +567,15 @@
Запрос = Новый Запрос; Запрос = Новый Запрос;
ШаблонЗапроса = ШаблонЗапроса =
"ВЫБРАТЬ "ВЫБРАТЬ
| ЕСТЬNULL(ВариантыОтчетов.Отчет.Имя, ВариантыОтчетов.Отчет.ИмяОбъекта) КАК ИмяОтчета, | ВЫБОР
| КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетов.Отчет) = ТИП(Справочник.ИдентификаторыОбъектовМетаданных)
| ТОГДА ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК Справочник.ИдентификаторыОбъектовМетаданных).Имя
| КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетов.Отчет) = ТИП(Справочник.ИдентификаторыОбъектовРасширений)
| ТОГДА ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК Справочник.ИдентификаторыОбъектовРасширений).Имя
| КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетов.Отчет) = ТИП(Справочник.ДополнительныеОтчетыИОбработки)
| ТОГДА ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК Справочник.ДополнительныеОтчетыИОбработки).ИмяОбъекта
| ИНАЧЕ ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК СТРОКА(150))
| КОНЕЦ КАК ИмяОтчета,
| ВариантыОтчетов.КлючВарианта | ВариантыОтчетов.КлючВарианта
|ИЗ |ИЗ
| Справочник.ВариантыОтчетов КАК ВариантыОтчетов | Справочник.ВариантыОтчетов КАК ВариантыОтчетов
@@ -3263,7 +3271,7 @@
Блокировка.Заблокировать(); Блокировка.Заблокировать();
Пользователь = Выборка.Ссылка.ПолучитьОбъект(); Пользователь = Выборка.Ссылка.ПолучитьОбъект();
Пользователь.Удалить(); ОбновлениеИнформационнойБазы.УдалитьДанные(Пользователь);
ЗафиксироватьТранзакцию(); ЗафиксироватьТранзакцию();
Исключение Исключение
@@ -4170,6 +4178,8 @@
ЗаписатьВЖурналЗапускПроцедуры(ПредставлениеПроцедуры); ЗаписатьВЖурналЗапускПроцедуры(ПредставлениеПроцедуры);
Запрос = Новый Запрос; Запрос = Новый Запрос;
// АПК:1377-выкл Рекизит Отчет состоит из четырех типов и для данного сценария разыменование не критично.
ТекстЗапроса = ТекстЗапроса =
"ВЫБРАТЬ "ВЫБРАТЬ
| ВариантыОтчетов.Ссылка КАК Ссылка | ВариантыОтчетов.Ссылка КАК Ссылка
@@ -4179,6 +4189,7 @@
| НЕ ВариантыОтчетов.ПометкаУдаления | НЕ ВариантыОтчетов.ПометкаУдаления
| И ВариантыОтчетов.ТипОтчета = &ТипОтчета | И ВариантыОтчетов.ТипОтчета = &ТипОтчета
| И ЕСТЬNULL(ВариантыОтчетов.Отчет.ПометкаУдаления, ИСТИНА)"; | И ЕСТЬNULL(ВариантыОтчетов.Отчет.ПометкаУдаления, ИСТИНА)";
// АПК:1377-вкл
ИмяТаблицы = "Справочник.ВариантыОтчетов"; ИмяТаблицы = "Справочник.ВариантыОтчетов";
Если Режим = "ОбщиеДанныеКонфигурации" Тогда Если Режим = "ОбщиеДанныеКонфигурации" Тогда
@@ -4196,6 +4207,7 @@
КонецЕсли; КонецЕсли;
Запрос.Текст = ТекстЗапроса; Запрос.Текст = ТекстЗапроса;
СсылкиУдаляемыхВариантов = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"); СсылкиУдаляемыхВариантов = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
Для Каждого ВариантСсылка Из СсылкиУдаляемыхВариантов Цикл Для Каждого ВариантСсылка Из СсылкиУдаляемыхВариантов Цикл
Результат.ЕстьИзменения = Истина; Результат.ЕстьИзменения = Истина;
@@ -5658,8 +5670,19 @@
| ВЫБОР | ВЫБОР
| КОГДА &НеПолучатьОписания | КОГДА &НеПолучатьОписания
| ТОГДА НЕОПРЕДЕЛЕНО | ТОГДА НЕОПРЕДЕЛЕНО
| КОГДА ВариантыОтчетов.Пользовательский | КОГДА &ЭтоОсновнойЯзык
| ИЛИ ВариантыОтчетов.ПредопределенныйВариант В (НЕОПРЕДЕЛЕНО, ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетов.ПустаяСсылка), ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетовРасширений.ПустаяСсылка)) | И (ВариантыОтчетов.Пользовательский
| ИЛИ ВариантыОтчетов.ПредопределенныйВариант В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетов.ПустаяСсылка),
| ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетовРасширений.ПустаяСсылка)))
| ТОГДА ВариантыОтчетов.Наименование
| КОГДА НЕ &ЭтоОсновнойЯзык
| И (ВариантыОтчетов.Пользовательский
| ИЛИ ВариантыОтчетов.ПредопределенныйВариант В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетов.ПустаяСсылка),
| ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетовРасширений.ПустаяСсылка)))
| ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ПредставленияВариантов.Наименование, ВариантыОтчетов.Наименование) КАК СТРОКА(1000)) | ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ПредставленияВариантов.Наименование, ВариантыОтчетов.Наименование) КАК СТРОКА(1000))
| КОГДА &ЭтоОсновнойЯзык | КОГДА &ЭтоОсновнойЯзык
| ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ЕСТЬNULL(ВариантыКонфигурации.Наименование, ВариантыРасширений.Наименование), ВариантыОтчетов.Наименование) КАК СТРОКА(1000)) | ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ЕСТЬNULL(ВариантыКонфигурации.Наименование, ВариантыРасширений.Наименование), ВариантыОтчетов.Наименование) КАК СТРОКА(1000))
@@ -5701,8 +5724,19 @@
| ВЫБОР | ВЫБОР
| КОГДА &НеПолучатьОписания | КОГДА &НеПолучатьОписания
| ТОГДА НЕОПРЕДЕЛЕНО | ТОГДА НЕОПРЕДЕЛЕНО
| КОГДА ВариантыОтчетов.Пользовательский | КОГДА &ЭтоОсновнойЯзык
| ИЛИ ВариантыОтчетов.ПредопределенныйВариант В (НЕОПРЕДЕЛЕНО, ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетов.ПустаяСсылка), ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетовРасширений.ПустаяСсылка)) | И (ВариантыОтчетов.Пользовательский
| ИЛИ ВариантыОтчетов.ПредопределенныйВариант В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетов.ПустаяСсылка),
| ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетовРасширений.ПустаяСсылка)))
| ТОГДА ВЫРАЗИТЬ(ВариантыОтчетов.Описание КАК СТРОКА(1000))
| КОГДА НЕ &ЭтоОсновнойЯзык
| И (ВариантыОтчетов.Пользовательский
| ИЛИ ВариантыОтчетов.ПредопределенныйВариант В (
| НЕОПРЕДЕЛЕНО,
| ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетов.ПустаяСсылка),
| ЗНАЧЕНИЕ(Справочник.ПредопределенныеВариантыОтчетовРасширений.ПустаяСсылка)))
| ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ПредставленияВариантов.Описание, ВариантыОтчетов.Описание) КАК СТРОКА(1000)) | ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ПредставленияВариантов.Описание, ВариантыОтчетов.Описание) КАК СТРОКА(1000))
| КОГДА &ЭтоОсновнойЯзык | КОГДА &ЭтоОсновнойЯзык
| И ПОДСТРОКА(ВариантыОтчетов.Описание, 1, 1) = """" | И ПОДСТРОКА(ВариантыОтчетов.Описание, 1, 1) = """"
@@ -6046,8 +6080,14 @@
| КОНЕЦ КАК АвторПредставление, | КОНЕЦ КАК АвторПредставление,
| ВариантыОтчетов.Отчет КАК Отчет, | ВариантыОтчетов.Отчет КАК Отчет,
| ВЫБОР | ВЫБОР
| КОГДА &ПолучатьИтоговуюТаблицу | КОГДА &ПолучатьИтоговуюТаблицу И ТИПЗНАЧЕНИЯ(ВариантыОтчетов.Отчет) = ТИП(Справочник.ИдентификаторыОбъектовМетаданных)
| ТОГДА ВариантыОтчетов.Отчет.Имя | ТОГДА ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК Справочник.ИдентификаторыОбъектовМетаданных).Имя
| КОГДА &ПолучатьИтоговуюТаблицу И ТИПЗНАЧЕНИЯ(ВариантыОтчетов.Отчет) = ТИП(Справочник.ИдентификаторыОбъектовРасширений)
| ТОГДА ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК Справочник.ИдентификаторыОбъектовРасширений).Имя
| КОГДА &ПолучатьИтоговуюТаблицу И ТИПЗНАЧЕНИЯ(ВариантыОтчетов.Отчет) = ТИП(Справочник.ДополнительныеОтчетыИОбработки)
| ТОГДА ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК Справочник.ДополнительныеОтчетыИОбработки).ИмяОбъекта
| КОГДА &ПолучатьИтоговуюТаблицу И ТИПЗНАЧЕНИЯ(ВариантыОтчетов.Отчет) = ТИП(СТРОКА)
| ТОГДА ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК СТРОКА(150))
| ИНАЧЕ НЕОПРЕДЕЛЕНО | ИНАЧЕ НЕОПРЕДЕЛЕНО
| КОНЕЦ КАК ИмяОтчета, | КОНЕЦ КАК ИмяОтчета,
| ВариантыОтчетов.КлючВарианта КАК КлючВарианта, | ВариантыОтчетов.КлючВарианта КАК КлючВарианта,
@@ -2232,6 +2232,11 @@
МодульРаботаСФайламиСлужебный.ПриОпределенииПроверок(ГруппыПроверок, Проверки); МодульРаботаСФайламиСлужебный.ПриОпределенииПроверок(ГруппыПроверок, Проверки);
КонецЕсли; КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
МодульУправлениеКонтактнойИнформациейСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеКонтактнойИнформациейСлужебный");
МодульУправлениеКонтактнойИнформациейСлужебный.ПриОпределенииПроверок(ГруппыПроверок, Проверки);
КонецЕсли;
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииПроверок Тогда Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииПроверок Тогда
МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС"); МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС");
МодульИнтеграцияПодсистемБТС.ПриОпределенииПроверок(ГруппыПроверок, Проверки); МодульИнтеграцияПодсистемБТС.ПриОпределенииПроверок(ГруппыПроверок, Проверки);
@@ -380,8 +380,8 @@
// Записывает результат выполнения проверки. // Записывает результат выполнения проверки.
// //
// Параметры: // Параметры:
// Проблема - см. КонтрольВеденияУчета.ОписаниеПроблемы // Проблема - см. КонтрольВеденияУчета.ОписаниеПроблемы.
// ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы.ПараметрыПроверки // ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы.ПараметрыПроверки.
// //
Процедура ЗаписатьПроблему(Проблема, ПараметрыПроверки = Неопределено) Экспорт Процедура ЗаписатьПроблему(Проблема, ПараметрыПроверки = Неопределено) Экспорт
@@ -940,6 +940,130 @@
#КонецОбласти #КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
Функция ПроблемныеОбъекты(ПравилоПроверки, Смещение = Неопределено, Порция = 1000) Экспорт
Запрос = Новый Запрос;
ТекстЗапроса = "ВЫБРАТЬ ПЕРВЫЕ 1000
| РезультатыПроверкиУчета.ПроблемныйОбъект КАК ПроблемныйОбъект,
| РезультатыПроверкиУчета.ПравилоПроверки КАК ПравилоПроверки,
| РезультатыПроверкиУчета.ВидПроверки КАК ВидПроверки,
| РезультатыПроверкиУчета.КлючУникальности КАК КлючУникальности
|ИЗ
| РегистрСведений.РезультатыПроверкиУчета КАК РезультатыПроверкиУчета
|ГДЕ
| РезультатыПроверкиУчета.ПравилоПроверки = &ПравилоПроверки
| И НЕ РезультатыПроверкиУчета.ИгнорироватьПроблему
| И РезультатыПроверкиУчета.ПроблемныйОбъект > &ПроблемныйОбъект
|
|УПОРЯДОЧИТЬ ПО
| РезультатыПроверкиУчета.ПроблемныйОбъект";
Если Порция = 1000 Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "1000", Формат(Порция, "ЧГ=0"));
КонецЕсли;
Запрос.Текст = ТекстЗапроса;
Если Смещение = Неопределено Тогда
Смещение = "";
КонецЕсли;
Запрос.УстановитьПараметр("ПравилоПроверки", ПравилоПроверки);
Запрос.УстановитьПараметр("ПроблемныйОбъект", Смещение);
Возврат Запрос.Выполнить().Выгрузить();
КонецФункции
Функция ПроблемныеОбъектыПоВидуПроверки(ВидПроверки, Смещение = Неопределено, Порция = 1000) Экспорт
Запрос = Новый Запрос;
ТекстЗапроса = "ВЫБРАТЬ ПЕРВЫЕ 1000
| РезультатыПроверкиУчета.ПроблемныйОбъект КАК ПроблемныйОбъект,
| РезультатыПроверкиУчета.ПравилоПроверки КАК ПравилоПроверки,
| РезультатыПроверкиУчета.ВидПроверки КАК ВидПроверки,
| РезультатыПроверкиУчета.КлючУникальности КАК КлючУникальности
|ИЗ
| РегистрСведений.РезультатыПроверкиУчета КАК РезультатыПроверкиУчета
|ГДЕ
| РезультатыПроверкиУчета.ВидПроверки = &ВидПроверки
| И НЕ РезультатыПроверкиУчета.ИгнорироватьПроблему
| И РезультатыПроверкиУчета.ПроблемныйОбъект > &ПроблемныйОбъект
|
|УПОРЯДОЧИТЬ ПО
| РезультатыПроверкиУчета.ПроблемныйОбъект";
Если Порция = 1000 Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "1000", Формат(Порция, "ЧГ=0"));
КонецЕсли;
Запрос.Текст = ТекстЗапроса;
Если Смещение = Неопределено Тогда
Смещение = "";
КонецЕсли;
Запрос.УстановитьПараметр("ВидПроверки", ВидПроверки);
Запрос.УстановитьПараметр("ПроблемныйОбъект", Смещение);
Возврат Запрос.Выполнить().Выгрузить();
КонецФункции
Процедура ОчиститьРезультатПоВидуПроверки(ПроблемныйОбъект, ВидПроверки) Экспорт
НачатьТранзакцию();
Попытка
БлокировкаДанных = Новый БлокировкаДанных;
ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.РезультатыПроверкиУчета");
ЭлементБлокировкиДанных.УстановитьЗначение("ПроблемныйОбъект", ПроблемныйОбъект);
ЭлементБлокировкиДанных.УстановитьЗначение("ВидПроверки", ВидПроверки);
БлокировкаДанных.Заблокировать();
Набор = РегистрыСведений.РезультатыПроверкиУчета.СоздатьНаборЗаписей();
Набор.Отбор.ПроблемныйОбъект.Установить(ПроблемныйОбъект);
Набор.Отбор.ВидПроверки.Установить(ВидПроверки);
Набор.Очистить();
Набор.Записать();
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
КонецПроцедуры
Процедура ОчиститьРезультатПроверки(ПроблемныйОбъект, ПравилоПроверки) Экспорт
НачатьТранзакцию();
Попытка
БлокировкаДанных = Новый БлокировкаДанных;
ЭлементБлокировкиДанных = БлокировкаДанных.Добавить("РегистрСведений.РезультатыПроверкиУчета");
ЭлементБлокировкиДанных.УстановитьЗначение("ПроблемныйОбъект", ПроблемныйОбъект);
ЭлементБлокировкиДанных.УстановитьЗначение("ПравилоПроверки", ПравилоПроверки);
БлокировкаДанных.Заблокировать();
Набор = РегистрыСведений.РезультатыПроверкиУчета.СоздатьНаборЗаписей();
Набор.Отбор.ПроблемныйОбъект.Установить(ПроблемныйОбъект);
Набор.Отбор.ПравилоПроверки.Установить(ПравилоПроверки);
Набор.Очистить();
Набор.Записать();
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
Процедура ПроверитьПараметрыВыполненияПроверки(ПараметрыВыполненияПроверки, ИмяПроцедурыИлиФункции) Процедура ПроверитьПараметрыВыполненияПроверки(ПараметрыВыполненияПроверки, ИмяПроцедурыИлиФункции)
@@ -970,5 +1094,12 @@
КонецПроцедуры КонецПроцедуры
Функция СобытиеЖурналаРегистрации()
Возврат НСтр("ru = 'Контроль ведения учета'", ОбщегоНазначения.КодОсновногоЯзыка());
КонецФункции
#КонецОбласти #КонецОбласти
@@ -287,6 +287,10 @@
СводнаяИнформация.Вставить("Количество", 0); СводнаяИнформация.Вставить("Количество", 0);
СводнаяИнформация.Вставить("ЕстьОшибки", Ложь); СводнаяИнформация.Вставить("ЕстьОшибки", Ложь);
Если Не ПравоДоступа("Чтение", Метаданные.РегистрыСведений.РезультатыПроверкиУчета) Тогда
Возврат СводнаяИнформация;
КонецЕсли;
ВидыПроверок = Новый Массив; ВидыПроверок = Новый Массив;
Если ТипЗнч(ВидПроверок) = Тип("СправочникСсылка.ВидыПроверок") Тогда Если ТипЗнч(ВидПроверок) = Тип("СправочникСсылка.ВидыПроверок") Тогда
@@ -608,6 +608,7 @@
Объект = СсылкаНаОбъект.Ссылка.ПолучитьОбъект(); Объект = СсылкаНаОбъект.Ссылка.ПолучитьОбъект();
Если Объект = Неопределено Тогда // объект может быть уже удален в других сеансах Если Объект = Неопределено Тогда // объект может быть уже удален в других сеансах
ЗафиксироватьТранзакцию();
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ЗаблокироватьДанныеДляРедактирования(СсылкаНаОбъект.Ссылка); ЗаблокироватьДанныеДляРедактирования(СсылкаНаОбъект.Ссылка);
@@ -656,35 +656,51 @@
// //
ИначеЕсли ОтправкаЭлемента = ОтправкаЭлементаДанных.Удалить ИначеЕсли ОтправкаЭлемента = ОтправкаЭлементаДанных.Удалить
ИЛИ ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать Тогда Или ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать Тогда
// Стандартную обработку не переопределяем // Стандартную обработку не переопределяем.
ИначеЕсли СозданиеНачальногоОбраза ИначеЕсли СозданиеНачальногоОбраза
И ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.РазделениеВключено()
И АвтономнаяРаботаСлужебный.ЭтоУзелАвтономногоРабочегоМеста(Получатель.Ссылка) Тогда И АвтономнаяРаботаСлужебный.ЭтоУзелАвтономногоРабочегоМеста(Получатель.Ссылка) Тогда
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса"); МетаданныеЭлемента = ЭлементДанных.Метаданные();
Если МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(ЭлементДанных.Метаданные()) Тогда СвойстваМетаданных = Получатель.ДополнительныеСвойства.СвойстваМетаданных.Получить(МетаданныеЭлемента);
Если СвойстваМетаданных = Неопределено Тогда
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
РазделительВспомогательныхДанных = МодульРаботаВМоделиСервиса.РазделительВспомогательныхДанных();
СвойстваМетаданных = Новый Структура;
СвойстваМетаданных.Вставить("ЭтоРазделенныйОбъектМетаданных",
МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(МетаданныеЭлемента));
СвойстваМетаданных.Вставить("ЭтоРазделенныйОбъектМетаданныхВспомогательныеДанные",
МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(МетаданныеЭлемента, РазделительВспомогательныхДанных));
Если СвойстваМетаданных.ЭтоРазделенныйОбъектМетаданныхВспомогательныеДанные Тогда
СвойстваМетаданных.Вставить("РазделительВспомогательныхДанных", РазделительВспомогательныхДанных);
СвойстваМетаданных.Вставить("ЭтоНаборЗаписей",
ОбщегоНазначения.ЭтоРегистр(МетаданныеЭлемента)
Или ОбщегоНазначения.ЭтоПоследовательность(МетаданныеЭлемента)
Или ОбщегоНазначения.ИмяБазовогоТипаПоОбъектуМетаданных(МетаданныеЭлемента) = "Перерасчеты");
КонецЕсли;
Получатель.ДополнительныеСвойства.СвойстваМетаданных[МетаданныеЭлемента] = СвойстваМетаданных;
КонецЕсли;
Если СвойстваМетаданных.ЭтоРазделенныйОбъектМетаданных Тогда
ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать; ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать;
Если МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(ЭлементДанных.Метаданные(), Если СвойстваМетаданных.ЭтоРазделенныйОбъектМетаданныхВспомогательныеДанные Тогда
МодульРаботаВМоделиСервиса.РазделительВспомогательныхДанных()) Тогда
МетаданныеЭлемента = ЭлементДанных.Метаданные(); Если СвойстваМетаданных.ЭтоНаборЗаписей Тогда
Если ОбщегоНазначения.ЭтоРегистр(МетаданныеЭлемента)
Или ОбщегоНазначения.ЭтоПоследовательность(МетаданныеЭлемента)
Или ОбщегоНазначения.ИмяБазовогоТипаПоОбъектуМетаданных(МетаданныеЭлемента) = "Перерасчеты" Тогда
Для Каждого Запись Из ЭлементДанных Цикл Для Каждого Запись Из ЭлементДанных Цикл
Запись[МодульРаботаВМоделиСервиса.РазделительВспомогательныхДанных()] = 0; Запись[СвойстваМетаданных.РазделительВспомогательныхДанных] = 0;
КонецЦикла; КонецЦикла;
Иначе Иначе
ЭлементДанных[МодульРаботаВМоделиСервиса.РазделительВспомогательныхДанных()] = 0; ЭлементДанных[СвойстваМетаданных.РазделительВспомогательныхДанных] = 0;
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы"; Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.2.281"; Описание.Версия = "3.1.2.291";
Описание.ИдентификаторИнтернетПоддержки = "SSL"; Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно"; Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0"; Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -1410,6 +1410,14 @@
Функция ВыполнитьДействияПриОбновленииИнформационнойБазы(ПараметрыОбновления, ДополнительныеПараметры) Функция ВыполнитьДействияПриОбновленииИнформационнойБазы(ПараметрыОбновления, ДополнительныеПараметры)
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда
// Установка привилегированного режима для возможности обновления ИБ в модели сервиса,
// в случае когда администратор области данных выполняет вход в область до завершения обновления области.
Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
УстановитьПривилегированныйРежим(Истина);
КонецЕсли;
КонецЕсли;
РежимОбновленияДанных = ДополнительныеПараметры.РежимОбновленияДанных; РежимОбновленияДанных = ДополнительныеПараметры.РежимОбновленияДанных;
ИтерацииОбновления = ДополнительныеПараметры.ИтерацииОбновления; ИтерацииОбновления = ДополнительныеПараметры.ИтерацииОбновления;
БлокировкаИБ = ДополнительныеПараметры.БлокировкаИБ; БлокировкаИБ = ДополнительныеПараметры.БлокировкаИБ;
@@ -1486,6 +1494,15 @@
Процедура ВыполнитьДействияПослеОбновленияИнформационнойБазы(ДополнительныеПараметры) Процедура ВыполнитьДействияПослеОбновленияИнформационнойБазы(ДополнительныеПараметры)
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда
// Установка привилегированного режима для возможности обновления ИБ в модели сервиса,
// в случае когда администратор области данных выполняет вход в область до завершения обновления области.
Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
УстановитьПривилегированныйРежим(Истина);
КонецЕсли;
КонецЕсли;
РежимОбновленияДанных = ДополнительныеПараметры.РежимОбновленияДанных; РежимОбновленияДанных = ДополнительныеПараметры.РежимОбновленияДанных;
ИтерацииОбновления = ДополнительныеПараметры.ИтерацииОбновления; ИтерацииОбновления = ДополнительныеПараметры.ИтерацииОбновления;
БлокировкаИБ = ДополнительныеПараметры.БлокировкаИБ; БлокировкаИБ = ДополнительныеПараметры.БлокировкаИБ;
@@ -4955,12 +4972,6 @@
Процедура ВыполнитьОбработчикиПослеОбновленияИнформационнойБазы(Знач ИтерацииОбновления, Знач ЗаписыватьВЖурнал, ВыводитьОписаниеОбновлений, Знач ОперативноеОбновление) Процедура ВыполнитьОбработчикиПослеОбновленияИнформационнойБазы(Знач ИтерацииОбновления, Знач ЗаписыватьВЖурнал, ВыводитьОписаниеОбновлений, Знач ОперативноеОбновление)
// Установка привилегированного режима для возможности обновления ИБ в модели сервиса,
// в случае когда администратор области данных выполняет вход в область до завершения обновления области.
Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
УстановитьПривилегированныйРежим(Истина);
КонецЕсли;
Для Каждого ИтерацияОбновления Из ИтерацииОбновления Цикл Для Каждого ИтерацияОбновления Из ИтерацииОбновления Цикл
Если ЗаписыватьВЖурнал Тогда Если ЗаписыватьВЖурнал Тогда
@@ -106,7 +106,7 @@
// * ПеревестиВТранслит - Булево - Истина, если требуется переводить текст сообщения в транслит перед отправкой; // * ПеревестиВТранслит - Булево - Истина, если требуется переводить текст сообщения в транслит перед отправкой;
// * Предмет - ЛюбаяСсылка - предмет, с которым связана отправка SMS. // * Предмет - ЛюбаяСсылка - предмет, с которым связана отправка SMS.
// //
Функция ПараметрыОтправки() Экспорт Функция ПараметрыОтправки()
Результат = Новый Структура; Результат = Новый Структура;
Результат.Вставить("НомераПолучателей", ""); Результат.Вставить("НомераПолучателей", "");
@@ -180,7 +180,7 @@
// //
Функция Разрешения() Экспорт Функция Разрешения() Экспорт
Протокол = "HTTPS"; Протокол = "HTTPS";
Адрес = "https://mcommunicator.ru"; Адрес = "mcommunicator.ru";
Порт = Неопределено; Порт = Неопределено;
Описание = НСтр("ru = 'Отправка SMS через МТС.'"); Описание = НСтр("ru = 'Отправка SMS через МТС.'");
@@ -40,6 +40,12 @@
Обработчик.НачальноеЗаполнение = Истина; Обработчик.НачальноеЗаполнение = Истина;
Обработчик.Процедура = "ОценкаПроизводительностиСлужебный.ПервоначальноеЗаполнение"; Обработчик.Процедура = "ОценкаПроизводительностиСлужебный.ПервоначальноеЗаполнение";
Обработчик = Обработчики.Добавить();
Обработчик.РежимВыполнения = "Оперативно";
Обработчик.ОбщиеДанные = Истина;
Обработчик.Версия = "3.1.2.284";
Обработчик.Процедура = "ОценкаПроизводительностиСлужебный.УстановитьЗначенияКонстанты_3_1_2_284";
КонецПроцедуры КонецПроцедуры
// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииОбработчиковУстановкиПараметровСеанса. // См. ОбщегоНазначенияПереопределяемый.ПриДобавленииОбработчиковУстановкиПараметровСеанса.
@@ -349,6 +355,14 @@
КонецФункции КонецФункции
Процедура УстановитьЗначенияКонстанты_3_1_2_284() Экспорт
Если Константы.ПериодХраненияЗамеров.Получить() = 3650 Тогда
Константы.ПериодХраненияЗамеров.Установить(100);
КонецЕсли;
КонецПроцедуры
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Локальные служебные процедуры и функции. // Локальные служебные процедуры и функции.
@@ -152,10 +152,18 @@
УсловиеВыполняется = ЗначенияРеквизитов[ИмяРеквизита] <> Условие.Значение; УсловиеВыполняется = ЗначенияРеквизитов[ИмяРеквизита] <> Условие.Значение;
ИначеЕсли Условие.ВидСравнения = ВидСравнения.ВСписке ИначеЕсли Условие.ВидСравнения = ВидСравнения.ВСписке
Или Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке Тогда Или Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке Тогда
Если ТипЗнч(Условие.Значение) = Тип("СписокЗначений") Тогда
УсловиеВыполняется = Условие.Значение.НайтиПоЗначению(ЗначенияРеквизитов[ИмяРеквизита]) <> Неопределено;
Иначе // Массив
УсловиеВыполняется = Условие.Значение.Найти(ЗначенияРеквизитов[ИмяРеквизита]) <> Неопределено; УсловиеВыполняется = Условие.Значение.Найти(ЗначенияРеквизитов[ИмяРеквизита]) <> Неопределено;
КонецЕсли;
ИначеЕсли Условие.ВидСравнения = ВидСравнения.НеВСписке ИначеЕсли Условие.ВидСравнения = ВидСравнения.НеВСписке
Или Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке Тогда Или Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке Тогда
Если ТипЗнч(Условие.Значение) = Тип("СписокЗначений") Тогда
УсловиеВыполняется = Условие.Значение.НайтиПоЗначению(ЗначенияРеквизитов[ИмяРеквизита]) = Неопределено;
Иначе // Массив
УсловиеВыполняется = Условие.Значение.Найти(ЗначенияРеквизитов[ИмяРеквизита]) = Неопределено; УсловиеВыполняется = Условие.Значение.Найти(ЗначенияРеквизитов[ИмяРеквизита]) = Неопределено;
КонецЕсли;
ИначеЕсли Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено Тогда ИначеЕсли Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено Тогда
УсловиеВыполняется = ЗначениеЗаполнено(ЗначенияРеквизитов[ИмяРеквизита]); УсловиеВыполняется = ЗначениеЗаполнено(ЗначенияРеквизитов[ИмяРеквизита]);
ИначеЕсли Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено Тогда ИначеЕсли Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено Тогда
@@ -228,7 +228,7 @@
СоединениеЧерезПрокси = СостояниеНастроекПрокси.СоединениеЧерезПрокси; СоединениеЧерезПрокси = СостояниеНастроекПрокси.СоединениеЧерезПрокси;
Журнал.Добавить(СостояниеНастроекПрокси.Представление); Журнал.Добавить(СостояниеНастроекПрокси.Представление);
Если СоединениеЧерезПрокси Тогда Если СоединениеЧерезПрокси И Не СостояниеНастроекПрокси.ИспользуютсяСистемныеНастройкиПрокси Тогда
Описание.Добавить( Описание.Добавить(
НСтр("ru = 'Диагностика соединения не выполнена, т.к. настроен прокси-сервер. НСтр("ru = 'Диагностика соединения не выполнена, т.к. настроен прокси-сервер.
@@ -911,13 +911,13 @@
Если СоединениеЧерезПрокси Тогда Если СоединениеЧерезПрокси Тогда
Журнал.Добавить(НСтр("ru = 'Соединение выполняется через прокси-сервер:'")); Журнал.Добавить(НСтр("ru = 'Соединение выполняется через прокси-сервер:'"));
Журнал.Добавить(ПредставлениеИнтернетПрокси(Прокси)); Журнал.Добавить(ПредставлениеИнтернетПрокси(Прокси));
Иначе
Журнал.Добавить(НСтр("ru = 'Соединение выполняется без использования прокси-сервера.'"));
КонецЕсли; КонецЕсли;
Результат = Новый Структура; Результат = Новый Структура;
Результат.Вставить("СоединениеЧерезПрокси", СоединениеЧерезПрокси); Результат.Вставить("СоединениеЧерезПрокси", СоединениеЧерезПрокси);
Результат.Вставить("Представление", СтрСоединить(Журнал, Символы.ПС)); Результат.Вставить("Представление", СтрСоединить(Журнал, Символы.ПС));
Результат.Вставить("ИспользуютсяСистемныеНастройкиПрокси", НастройкиПрокси = Неопределено Или НастройкиПрокси["ИспользоватьСистемныеНастройки"] = Истина);
Возврат Результат; Возврат Результат;
КонецФункции КонецФункции
@@ -3079,6 +3079,8 @@
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ПользовательИлиГруппа", ПользовательИлиГруппа); Запрос.УстановитьПараметр("ПользовательИлиГруппа", ПользовательИлиГруппа);
// АПК:1377-выкл - №654.2.1 Использование 5 типов "через точку" необходимо
// и допустимо, так как объем данных небольшой (от единиц до тысяч).
Запрос.Текст = Запрос.Текст =
"ВЫБРАТЬ "ВЫБРАТЬ
| СоставыГруппПользователей.ГруппаПользователей, | СоставыГруппПользователей.ГруппаПользователей,
@@ -3105,6 +3107,7 @@
| ТОГДА ЛОЖЬ | ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА | ИНАЧЕ ИСТИНА
| КОНЕЦ <> СоставыГруппПользователей.Используется"; | КОНЕЦ <> СоставыГруппПользователей.Используется";
// АПК:1377-вкл.
Блокировка = Новый БлокировкаДанных; Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.СоставыГруппПользователей"); ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.СоставыГруппПользователей");
@@ -3611,10 +3614,11 @@
НачатьТранзакцию(); НачатьТранзакцию();
Попытка Попытка
ОбъектаАвторизации = ОбъектаАвторизации(СсылкаНаОбъектАвторизации, СсылкаНаТекущегоВнешнегоПользователя); СвойстваОбъектаАвторизации = СвойстваОбъектаАвторизации(СсылкаНаОбъектАвторизации,
СсылкаНаТекущегоВнешнегоПользователя);
Если ОбъектаАвторизации.Используется Тогда Если СвойстваОбъектаАвторизации.Используется Тогда
НайденныйВнешнийПользователь = ОбъектаАвторизации.Ссылка; НайденныйВнешнийПользователь = СвойстваОбъектаАвторизации.Ссылка;
КонецЕсли; КонецЕсли;
ЗафиксироватьТранзакцию(); ЗафиксироватьТранзакцию();
@@ -3623,13 +3627,13 @@
ВызватьИсключение; ВызватьИсключение;
КонецПопытки; КонецПопытки;
Если ОбъектаАвторизации.Используется Тогда Если СвойстваОбъектаАвторизации.Используется Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Уже существует внешний пользователь, связанный с объектом ""%1"".'"), НСтр("ru = 'Уже существует внешний пользователь, связанный с объектом ""%1"".'"),
СсылкаНаОбъектАвторизации); СсылкаНаОбъектАвторизации);
КонецЕсли; КонецЕсли;
Возврат ОбъектаАвторизации.Используется; Возврат СвойстваОбъектаАвторизации.Используется;
КонецФункции КонецФункции
@@ -3644,7 +3648,7 @@
// * Используется - Булево - // * Используется - Булево -
// * Ссылка - СправочникСсылка.ВнешниеПользователи - // * Ссылка - СправочникСсылка.ВнешниеПользователи -
// //
Функция ОбъектаАвторизации(СсылкаНаОбъектАвторизации, СсылкаНаТекущегоВнешнегоПользователя) Функция СвойстваОбъектаАвторизации(СсылкаНаОбъектАвторизации, СсылкаНаТекущегоВнешнегоПользователя)
Запрос = Новый Запрос( Запрос = Новый Запрос(
"ВЫБРАТЬ ПЕРВЫЕ 1 "ВЫБРАТЬ ПЕРВЫЕ 1
@@ -3660,11 +3664,11 @@
Выборка = Запрос.Выполнить().Выбрать(); Выборка = Запрос.Выполнить().Выбрать();
ОбъектаАвторизации = Новый Структура; СвойстваОбъектаАвторизации = Новый Структура;
ОбъектаАвторизации.Вставить("Используется", Выборка.Следующий()); СвойстваОбъектаАвторизации.Вставить("Используется", Выборка.Следующий());
ОбъектаАвторизации.Вставить("Ссылка", Выборка.Ссылка); СвойстваОбъектаАвторизации.Вставить("Ссылка", Выборка.Ссылка);
Возврат ОбъектаАвторизации; Возврат СвойстваОбъектаАвторизации;
КонецФункции КонецФункции
File diff suppressed because it is too large. Load diff
@@ -206,4 +206,17 @@
КонецФункции КонецФункции
Процедура ПолеПароляНачалоВыбора(Элемент, Реквизит, СтандартнаяОбработка) Экспорт
СтандартнаяОбработка = Ложь;
Реквизит = Элемент.ТекстРедактирования;
Элемент.РежимПароля = Не Элемент.РежимПароля;
Если Элемент.РежимПароля Тогда
Элемент.КартинкаКнопкиВыбора = БиблиотекаКартинок.ВводимыеСимволыСкрыты;
Иначе
Элемент.КартинкаКнопкиВыбора = БиблиотекаКартинок.ВводимыеСимволыВидны;
КонецЕсли;
КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -1070,42 +1070,42 @@
"ВЫБРАТЬ "ВЫБРАТЬ
| ТаблицаПолучателей.Получатель, | ТаблицаПолучателей.Получатель,
| ТаблицаПолучателей.Исключен | ТаблицаПолучателей.Исключен
|ПОМЕСТИТЬ втТаблицаПолучателей |ПОМЕСТИТЬ ТаблицаПолучателей
|ИЗ |ИЗ
| &ТаблицаПолучателей КАК ТаблицаПолучателей | &ТаблицаПолучателей КАК ТаблицаПолучателей
|; |;
| |
|//////////////////////////////////////////////////////////////////////////////// |////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| МАКСИМУМ(РассылкиОтчетовПолучатели.Исключен) КАК Исключен, | ТаблицаПолучателей.Получатель,
| СоставыГруппПользователей.Пользователь | МАКСИМУМ(ТаблицаПолучателей.Исключен) КАК Исключен
|ПОМЕСТИТЬ втПолучатели |ПОМЕСТИТЬ Получатели
|ИЗ |ИЗ
| втТаблицаПолучателей КАК РассылкиОтчетовПолучатели | ТаблицаПолучателей КАК ТаблицаПолучателей
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
| ПО РассылкиОтчетовПолучатели.Получатель = СоставыГруппПользователей.ГруппаПользователей | ПО СоставыГруппПользователей.ГруппаПользователей = ТаблицаПолучателей.Получатель
| И (СоставыГруппПользователей.ГруппаПользователей.ПометкаУдаления = ЛОЖЬ) | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи
| ПО Пользователи.Ссылка = СоставыГруппПользователей.Пользователь
|ГДЕ |ГДЕ
| СоставыГруппПользователей.Пользователь ССЫЛКА Справочник.Пользователи | НЕ Пользователи.ПометкаУдаления
| И СоставыГруппПользователей.Пользователь.ПометкаУдаления = ЛОЖЬ | И НЕ Пользователи.Недействителен
| И СоставыГруппПользователей.Пользователь.Недействителен = ЛОЖЬ | И НЕ Пользователи.Служебный
| И СоставыГруппПользователей.Пользователь.Служебный = ЛОЖЬ
| |
|СГРУППИРОВАТЬ ПО |СГРУППИРОВАТЬ ПО
| СоставыГруппПользователей.Пользователь | ТаблицаПолучателей.Получатель
|; |;
| |
|//////////////////////////////////////////////////////////////////////////////// |////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| втПолучатели.Пользователь КАК Получатель, | Получатели.Получатель,
| КонтактнаяИнформацияПользователя.Представление КАК EMail | Контакты.Представление КАК EMail
|ИЗ |ИЗ
| втПолучатели КАК втПолучатели | Получатели КАК Получатели
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи.КонтактнаяИнформация КАК КонтактнаяИнформацияПользователя | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи.КонтактнаяИнформация КАК Контакты
| ПО втПолучатели.Пользователь = КонтактнаяИнформацияПользователя.Ссылка | ПО Контакты.Ссылка = Получатели.Получатель
|ГДЕ |ГДЕ
| втПолучатели.Исключен = ЛОЖЬ | НЕ Получатели.Исключен
| И КонтактнаяИнформацияПользователя.Вид = &ВидПочтовогоАдресаПолучателей"; | И Контакты.Вид = &ВидПочтовогоАдресаПолучателей";
Иначе Иначе
@@ -1113,36 +1113,36 @@
"ВЫБРАТЬ "ВЫБРАТЬ
| ТаблицаПолучателей.Получатель, | ТаблицаПолучателей.Получатель,
| ТаблицаПолучателей.Исключен | ТаблицаПолучателей.Исключен
|ПОМЕСТИТЬ втТаблицаПолучателей |ПОМЕСТИТЬ ТаблицаПолучателей
|ИЗ |ИЗ
| &ТаблицаПолучателей КАК ТаблицаПолучателей | &ТаблицаПолучателей КАК ТаблицаПолучателей
|; |;
| |
|//////////////////////////////////////////////////////////////////////////////// |////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| ПолучателиРассылки.Ссылка КАК Получатель, | Получатели.Ссылка КАК Получатель,
| КонтактнаяИнформацияПолучателя.Представление КАК EMail | Контакты.Представление КАК EMail
|ИЗ |ИЗ
| Справочник.Пользователи КАК ПолучателиРассылки | Справочник.Пользователи КАК Получатели
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи.КонтактнаяИнформация КАК КонтактнаяИнформацияПолучателя | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи.КонтактнаяИнформация КАК Контакты
| ПО (КонтактнаяИнформацияПолучателя.Ссылка = ПолучателиРассылки.Ссылка) | ПО Контакты.Ссылка = Получатели.Ссылка
| И (КонтактнаяИнформацияПолучателя.Вид = &ВидПочтовогоАдресаПолучателей)
|ГДЕ |ГДЕ
| ПолучателиРассылки.Ссылка В ИЕРАРХИИ | Контакты.Вид = &ВидПочтовогоАдресаПолучателей
| И Получатели.Ссылка В ИЕРАРХИИ
| (ВЫБРАТЬ | (ВЫБРАТЬ
| Получатели.Получатель | Получатель
| ИЗ | ИЗ
| втТаблицаПолучателей КАК Получатели | ТаблицаПолучателей
| ГДЕ | ГДЕ
| Получатели.Исключен = ЛОЖЬ) | НЕ Исключен)
| И (НЕ ПолучателиРассылки.Ссылка В ИЕРАРХИИ | И НЕ Получатели.Ссылка В ИЕРАРХИИ
| (ВЫБРАТЬ | (ВЫБРАТЬ
| ИсключенияПолучателей.Получатель | Получатель
| ИЗ | ИЗ
| втТаблицаПолучателей КАК ИсключенияПолучателей | ТаблицаПолучателей
| ГДЕ | ГДЕ
| ИсключенияПолучателей.Исключен = ИСТИНА)) | Исключен)
| И ПолучателиРассылки.ПометкаУдаления = ЛОЖЬ | И НЕ Получатели.ПометкаУдаления
| И &ЭтоНеГруппа"; | И &ЭтоНеГруппа";
Если Не ПолучателиМетаданные.Иерархический Тогда Если Не ПолучателиМетаданные.Иерархический Тогда
@@ -1154,7 +1154,7 @@
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &ЭтоНеГруппа", ""); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &ЭтоНеГруппа", "");
Иначе Иначе
// Иерархия групп // Иерархия групп
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &ЭтоНеГруппа", "И ПолучателиРассылки.ЭтоГруппа = ЛОЖЬ"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &ЭтоНеГруппа", "И НЕ ПолучателиРассылки.ЭтоГруппа");
КонецЕсли; КонецЕсли;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "Справочник.Пользователи", ПолучателиМетаданные.ПолноеИмя()); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "Справочник.Пользователи", ПолучателиМетаданные.ПолноеИмя());
@@ -9831,6 +9831,7 @@
Свойства.Вставить("НачалоСеанса", '00010101'); Свойства.Вставить("НачалоСеанса", '00010101');
Свойства.Вставить("ИмяКомпьютера", ""); Свойства.Вставить("ИмяКомпьютера", "");
Свойства.Вставить("ОбновлениеДоступаЗапрещено", Ложь); Свойства.Вставить("ОбновлениеДоступаЗапрещено", Ложь);
Свойства.Вставить("БалансировкаНагрузкиНаДиск", Истина);
Свойства.Вставить("ИдентификаторФоновогоЗадания", Свойства.Вставить("ИдентификаторФоновогоЗадания",
ОбщегоНазначенияКлиентСервер.ПустойУникальныйИдентификатор()); ОбщегоНазначенияКлиентСервер.ПустойУникальныйИдентификатор());
Свойства.Вставить("ПоследнееПланированиеОбработкиУстаревшихЭлементов", '00010101'); Свойства.Вставить("ПоследнееПланированиеОбработкиУстаревшихЭлементов", '00010101');
@@ -10126,6 +10127,8 @@
Контекст.Вставить("ОбновлениеОтменено", Ложь); Контекст.Вставить("ОбновлениеОтменено", Ложь);
Контекст.Вставить("МаксимумПорцийИзИсходной", 0); Контекст.Вставить("МаксимумПорцийИзИсходной", 0);
Контекст.Вставить("КоличествоДополнительныхПорций", 0); Контекст.Вставить("КоличествоДополнительныхПорций", 0);
Контекст.Вставить("ЕстьДлительноеЗаданиеПолученияПорцийЭлементовДанных", Ложь);
Контекст.Вставить("МаксимальноеКоличествоСекундБыстрогоПолученияПорцийЭлементовДанных", 0);
Контекст.Вставить("ИдентификаторыОтключенныхОбъектовМетаданных", Новый Соответствие); Контекст.Вставить("ИдентификаторыОтключенныхОбъектовМетаданных", Новый Соответствие);
Контекст.Вставить("ИдентификаторСправочникаНаборыГруппДоступа", Контекст.Вставить("ИдентификаторСправочникаНаборыГруппДоступа",
ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Справочник.НаборыГруппДоступа")); ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Справочник.НаборыГруппДоступа"));
@@ -10275,6 +10278,48 @@
КонецПроцедуры КонецПроцедуры
// Для процедуры ЗаполнитьКоличествоПотоков и формы ОбновлениеДоступаНаУровнеЗаписей.
Функция ДоступнаБалансировкаНагрузкиНаДиск() Экспорт
Возврат МаксимальноеКоличествоСекундБыстрогоПолученияПорцийЭлементовДанных() > 0
И УправлениеДоступомСлужебныйПовтИсп.ДоступнаБалансировкаНагрузкиНаДиск();
КонецФункции
// Для процедуры ЗаполнитьКоличествоПотоков и формы ОбновлениеДоступаНаУровнеЗаписей.
Функция БалансировкаНагрузкиНаДиск() Экспорт
ЗначениеКонстанты = Константы.ПоследнееОбновлениеДоступа.Получить();
ПоследнееОбновлениеДоступа = ПоследнееОбновлениеДоступа(ЗначениеКонстанты);
Возврат ПоследнееОбновлениеДоступа.БалансировкаНагрузкиНаДиск;
КонецФункции
// Для формы ОбновлениеДоступаНаУровнеЗаписей.
Процедура УстановитьБалансировкуНагрузкиНаДиск(Использование) Экспорт
БлокировкаДанных = Новый БлокировкаДанных;
БлокировкаДанных.Добавить("Константа.ПоследнееОбновлениеДоступа");
НачатьТранзакцию();
Попытка
БлокировкаДанных.Заблокировать();
ЗначениеКонстанты = Константы.ПоследнееОбновлениеДоступа.Получить();
ПоследнееОбновлениеДоступа = ПоследнееОбновлениеДоступа(ЗначениеКонстанты);
Если ПоследнееОбновлениеДоступа.БалансировкаНагрузкиНаДиск <> Использование Тогда
ПоследнееОбновлениеДоступа.БалансировкаНагрузкиНаДиск = Использование;
Константы.ПоследнееОбновлениеДоступа.Установить(
Новый ХранилищеЗначения(ПоследнееОбновлениеДоступа));
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
// Для процедуры ВыполнитьОбновлениеДоступа. // Для процедуры ВыполнитьОбновлениеДоступа.
Функция ТаблицаЗаданийОбновления() Функция ТаблицаЗаданийОбновления()
@@ -10496,6 +10541,17 @@
Контекст.КоличествоПотоков = КоличествоПотоков; Контекст.КоличествоПотоков = КоличествоПотоков;
Если Контекст.ОбновлениеВЭтомСеансе Тогда
Возврат;
КонецЕсли;
Если ДоступнаБалансировкаНагрузкиНаДиск() И БалансировкаНагрузкиНаДиск() Тогда
Контекст.МаксимальноеКоличествоСекундБыстрогоПолученияПорцийЭлементовДанных =
МаксимальноеКоличествоСекундБыстрогоПолученияПорцийЭлементовДанных();
Иначе
Контекст.МаксимальноеКоличествоСекундБыстрогоПолученияПорцийЭлементовДанных = 0;
КонецЕсли;
КонецПроцедуры КонецПроцедуры
// Для процедуры ВыполнитьОбновлениеДоступа. // Для процедуры ВыполнитьОбновлениеДоступа.
@@ -11209,6 +11265,18 @@
Возврат Истина; Возврат Истина;
КонецЕсли; КонецЕсли;
Если Контекст.ЕстьДлительноеЗаданиеПолученияПорцийЭлементовДанных
И Не Задание.ЭтоОбновлениеПрав
И Не Задание.ЭтоОбработкаУстаревшихЭлементов
И ОбщиеПараметрыОбновления.Свойство("ПолучитьПорции")
И ОбщиеПараметрыОбновления.ПолучитьПорции > 0 Тогда
Если Не Задание.ЕстьТочечноеЗадание Тогда
Возврат Ложь;
КонецЕсли;
ОбщиеПараметрыОбновления.ПолучитьПорции = 0;
КонецЕсли;
Если Задание.ЕстьТочечноеЗадание Тогда Если Задание.ЕстьТочечноеЗадание Тогда
Задание.ЕстьТочечноеЗадание = Ложь; Задание.ЕстьТочечноеЗадание = Ложь;
ОбновитьСвойствоЭтоОбработкаУстаревшихЭлементов(Задание); ОбновитьСвойствоЭтоОбработкаУстаревшихЭлементов(Задание);
@@ -11530,6 +11598,30 @@
КонецЦикла; КонецЦикла;
КонецЕсли; КонецЕсли;
Контекст.ЕстьДлительноеЗаданиеПолученияПорцийЭлементовДанных = Ложь;
ЗадержкаЗапроса = Контекст.МаксимальноеКоличествоСекундБыстрогоПолученияПорцийЭлементовДанных;
Если ЗадержкаЗапроса > 0 Тогда
Для Каждого ОписаниеПотока Из Контекст.ЗанятыеПотоки Цикл
Поток = ОписаниеПотока.Значение;
Если Поток.ПорцияИзНабора <> Неопределено
Или Поток.Задание.ЭтоОбновлениеПрав
Или Поток.Задание.ЭтоОбработкаУстаревшихЭлементов Тогда
Продолжить;
КонецЕсли;
Если ТекущаяДатаСеанса() - Поток.Задание.ДатаПоследнегоЗапускаОбщегоЗадания < ЗадержкаЗапроса Тогда
Продолжить;
КонецЕсли;
Если Не Контекст.ЕстьДлительноеЗаданиеПолученияПорцийЭлементовДанных Тогда
Контекст.ЕстьДлительноеЗаданиеПолученияПорцийЭлементовДанных = Истина;
ЗадержкаЗапроса = ЗадержкаЗапроса / 2;
Продолжить;
КонецЕсли;
ОтменитьФоновоеЗаданиеПотока(Поток, Контекст);
УдалитьПоток(Поток, Контекст);
Контекст.ЗанятыеПотоки.Удалить(Поток.ИдентификаторПотока);
КонецЦикла;
КонецЕсли;
Если ТекущаяДатаСеанса() > Контекст.ГраницаОбновленияЗаданий Тогда Если ТекущаяДатаСеанса() > Контекст.ГраницаОбновленияЗаданий Тогда
Контекст.ГраницаОбновленияЗаданий = ТекущаяДатаСеанса() + 2; Контекст.ГраницаОбновленияЗаданий = ТекущаяДатаСеанса() + 2;
УдалитьОстановленныеПотоки(Контекст, Контекст.ЗанятыеПотоки); УдалитьОстановленныеПотоки(Контекст, Контекст.ЗанятыеПотоки);
@@ -19737,6 +19829,12 @@
КонецФункции КонецФункции
Функция МаксимальноеКоличествоСекундБыстрогоПолученияПорцийЭлементовДанных()
Возврат 6; // 0 - отключить балансировку нагрузки на диск.
КонецФункции
Функция КоличествоЭлементовДанныхВЗапросе() Функция КоличествоЭлементовДанныхВЗапросе()
Возврат 1000; Возврат 1000;
@@ -981,6 +981,14 @@
КонецФункции КонецФункции
Функция ДоступнаБалансировкаНагрузкиНаДиск() Экспорт
ВидСУБД = ВидСУБД();
Возврат ВидСУБД <> "File" И ВидСУБД <> "IBMDB2";
КонецФункции
#КонецОбласти #КонецОбласти
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
@@ -1134,12 +1142,9 @@
| |
|//////////////////////////////////////////////////////////////////////////////// |////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ |ВЫБРАТЬ
| Таблица.Поле КАК Поле | ИСТИНА КАК Поле
|ИЗ
| (ВЫБРАТЬ
| ""Yes_"" КАК Поле) КАК Таблица
|ГДЕ |ГДЕ
| Таблица.Поле ПОДОБНО ""Yes[\_]"""; | "" "" ПОДОБНО ""[^t]"" СПЕЦСИМВОЛ ""^""";
РезультатыЗапроса = Запрос.ВыполнитьПакет(); РезультатыЗапроса = Запрос.ВыполнитьПакет();
@@ -1151,7 +1156,7 @@
Возврат "IBMDB2"; Возврат "IBMDB2";
КонецЕсли; КонецЕсли;
Если РезультатыЗапроса[2].Пустой() Тогда Если Не РезультатыЗапроса[2].Пустой() Тогда
Возврат "PostgreSQL"; Возврат "PostgreSQL";
КонецЕсли; КонецЕсли;
@@ -4194,8 +4194,10 @@
Если Метаданные.Обработки.Найти("РасширенныйВводКонтактнойИнформации") <> Неопределено Тогда Если Метаданные.Обработки.Найти("РасширенныйВводКонтактнойИнформации") <> Неопределено Тогда
СписокОшибок = Обработки["РасширенныйВводКонтактнойИнформации"].ОшибкиЗаполненияАдресаXDTO(Источник, ВидИнформации); СписокОшибок = Обработки["РасширенныйВводКонтактнойИнформации"].ОшибкиЗаполненияАдресаXDTO(Источник, ВидИнформации);
Для Каждого Элемент Из СписокОшибок Цикл Для Каждого Элемент Из СписокОшибок Цикл
ВывестиСообщениеПользователю(Элемент.Представление, ИмяРеквизита, ПолеРеквизита);
ВывестиСообщениеПользователю(Элемент.ТекстОшибки, ИмяРеквизита, ПолеРеквизита);
ЕстьОшибки = Истина; ЕстьОшибки = Истина;
КонецЦикла; КонецЦикла;
КонецЕсли; КонецЕсли;
@@ -222,6 +222,40 @@
Обработчики.Вставить("ИнтерактивнаяПроверкаЗаполненияКонтактнойИнформации", "УправлениеКонтактнойИнформациейСлужебный.УстановкаПараметровСеанса"); Обработчики.Вставить("ИнтерактивнаяПроверкаЗаполненияКонтактнойИнформации", "УправлениеКонтактнойИнформациейСлужебный.УстановкаПараметровСеанса");
КонецПроцедуры КонецПроцедуры
// см. КонтрольВеденияУчетаПереопределяемый.ПриОпределенииПроверок
//
// Параметры:
// ГруппыПроверок - см. КонтрольВеденияУчетаПереопределяемый.ПриОпределенииПроверок.ГруппыПроверок
// Проверки - см. КонтрольВеденияУчетаПереопределяемый.ПриОпределенииПроверок.Проверки
//
Процедура ПриОпределенииПроверок(ГруппыПроверок, Проверки) Экспорт
ГруппаПроверок = ГруппыПроверок.Добавить();
ГруппаПроверок.Наименование = НСтр("ru = 'Контактная информация'");
ГруппаПроверок.Идентификатор = "КонтактнаяИнформация";
ГруппаПроверок.КонтекстПроверокВеденияУчета = "_КонтактнаяИнформация";
Проверка = Проверки.Добавить();
Проверка.ИдентификаторГруппы = "КонтактнаяИнформация";
Проверка.Наименование = НСтр("ru = 'Выявление некорректных настроек видов контактной информации'");
Проверка.Причины = НСтр("ru = 'В карточке или документе отсутствуют поля контактной информации, или возникает ситуация, блокирующая работу с ними.'");
Проверка.Рекомендация = НСтр("ru = 'Выполнить частичное автоматическое восстановление видов контактной информации (для этого нажать ссылку ниже).
|
|Если работа ведется в распределенной информационной базе (РИБ), то исправление следует запускать только в главном узле.
|Затем выполнить синхронизацию с подчиненными узлами.'");
Проверка.Идентификатор = "КонтактнаяИнформация.ПроверитьИИсправитьВидыКонтактнойИнформации";
Проверка.ОбработчикПроверки = "УправлениеКонтактнойИнформациейСлужебный.ПроверитьВидыКонтактнойИнформации";
Проверка.ОбработчикПереходаКИсправлению = "Справочник.ВидыКонтактнойИнформации.Форма.ИсправлениеВидовКонтактнойИнформации";
Проверка.КонтекстПроверокВеденияУчета = "_КонтактнаяИнформация";
Проверка.Отключена = Истина;
Если Метаданные.ОбщиеМодули.Найти("РаботаСАдресами") <> Неопределено Тогда
МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами");
МодульРаботаСАдресами.ПриОпределенииПроверок(ГруппыПроверок, Проверки);
КонецЕсли;
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
@@ -323,6 +357,251 @@
Возврат СтрСравнить(ЗначениеТипа, Строка(ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Адрес"))) = 0; Возврат СтрСравнить(ЗначениеТипа, Строка(ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Адрес"))) = 0;
КонецФункции КонецФункции
Функция ИсправитьПорциюВидовКонтактнойИнформации(Знач ПроблемныеОбъекты, Проверка)
ИсправленоОбъектов = 0;
ТекстЗапроса = "ВЫБРАТЬ
| ПроблемныеОбъекты.ПроблемныйОбъект КАК Ссылка
|ПОМЕСТИТЬ ПроблемныеОбъекты
|ИЗ
| &ПроблемныеОбъекты КАК ПроблемныеОбъекты
|ИНДЕКСИРОВАТЬ ПО
| ПроблемныйОбъект
|;
|
|ВЫБРАТЬ
| ВидыКонтактнойИнформации.Ссылка КАК Ссылка,
|ВЫБОР
| КОГДА ВидыКонтактнойИнформации.ИмяПредопределенногоВида <> """"
| ТОГДА ВидыКонтактнойИнформации.ИмяПредопределенногоВида
| ИНАЧЕ ВидыКонтактнойИнформации.ИмяПредопределенныхДанных
|КОНЕЦ КАК ИмяПредопределенногоВида
|ИЗ
| Справочник.ВидыКонтактнойИнформации КАК ВидыКонтактнойИнформации
|ГДЕ
| ВидыКонтактнойИнформации.ЭтоГруппа = ИСТИНА
|;";
ОбъектыМетаданных = ОбъектыСодержащиеКонтактнуюИнформацию();
НаборТекстаЗапроса = Новый Массив;
ШаблонЗапроса = "ВЫБРАТЬ
| МАКСИМУМ(КонтактнаяИнформация.Ссылка) КАК Ссылка,
| КонтактнаяИнформация.Вид КАК Вид
|ИЗ
| ПроблемныеОбъекты КАК ПроблемныеОбъекты
| ЛЕВОЕ СОЕДИНЕНИЕ &ПолноеИмяОбъектаCКонтактнойИнформацией КАК КонтактнаяИнформация
| ПО (КонтактнаяИнформация.Вид = ПроблемныеОбъекты.Ссылка)
|ГДЕ
| НЕ КонтактнаяИнформация.Ссылка ЕСТЬ NULL
|
|СГРУППИРОВАТЬ ПО
| КонтактнаяИнформация.Вид";
Для каждого ОбъектМетаданных Из ОбъектыМетаданных Цикл
НаборТекстаЗапроса.Добавить(СтрЗаменить(ШаблонЗапроса, "&ПолноеИмяОбъектаCКонтактнойИнформацией",
ОбъектМетаданных.Метаданные().ПолноеИмя() + ".КонтактнаяИнформация"));
КонецЦикла;
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса + СтрСоединить(НаборТекстаЗапроса, Символы.ПС + " ОБЪЕДИНИТЬ ВСЕ " + Символы.ПС);
Запрос.Параметры.Вставить("ПроблемныеОбъекты", ПроблемныеОбъекты);
РезультатыЗапроса = Запрос.ВыполнитьПакет();
ИменаГрупп = РезультатыЗапроса.Получить(1).Выгрузить();
ИменаГрупп.Индексы.Добавить("ИмяПредопределенногоВида");
РезультатЗапроса = РезультатыЗапроса.Получить(2);
Если РезультатЗапроса.Пустой() Тогда
Возврат ИсправленоОбъектов;
КонецЕсли;
СтрокаЗапроса = РезультатЗапроса.Выбрать();
Пока СтрокаЗапроса.Следующий() Цикл
СсылкаНаЭлемент = СтрокаЗапроса.Ссылка;
ПолноеИмя = СсылкаНаЭлемент.Метаданные().ПолноеИмя();
СтрокаСИменемГруппы = ИменаГрупп.Найти(СтрЗаменить(ПолноеИмя, ".", ""), "ИмяПредопределенногоВида");
Если СтрокаСИменемГруппы <> Неопределено Тогда
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Справочник.ВидыКонтактнойИнформации");
ЭлементБлокировки.УстановитьЗначение("Ссылка", СтрокаЗапроса.Вид);
Блокировка.Заблокировать();
Объект = СтрокаЗапроса.Вид.ПолучитьОбъект();
Если Объект = Неопределено Тогда
ЗафиксироватьТранзакцию();
Продолжить;
КонецЕсли;
ЗаблокироватьДанныеДляРедактирования(СтрокаЗапроса.Вид);
Объект.Родитель = СтрокаСИменемГруппы.Ссылка;
ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект);
ИсправленоОбъектов = ИсправленоОбъектов + 1;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
Продолжить;
КонецПопытки;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтрольВеденияУчета") Тогда
МодульКонтрольВеденияУчета = ОбщегоНазначения.ОбщийМодуль("КонтрольВеденияУчета");
МодульКонтрольВеденияУчета.ОчиститьРезультатПроверки(СтрокаЗапроса.Вид, Проверка);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат ИсправленоОбъектов;
КонецФункции
Функция ОбъектыСодержащиеКонтактнуюИнформацию() Экспорт
ОбъектыМетаданных = Новый Массив; // Массив из СправочникСсылка, ДокументСсылка
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВидыКонтактнойИнформации.Ссылка,
|ВЫБОР
| КОГДА ВидыКонтактнойИнформации.ИмяПредопределенногоВида <> """"
| ТОГДА ВидыКонтактнойИнформации.ИмяПредопределенногоВида
| ИНАЧЕ ВидыКонтактнойИнформации.ИмяПредопределенныхДанных
|КОНЕЦ КАК ИмяПредопределенногоВида
|ИЗ
| Справочник.ВидыКонтактнойИнформации КАК ВидыКонтактнойИнформации
|ГДЕ
| ВидыКонтактнойИнформации.ЭтоГруппа = ИСТИНА";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если СтрНачинаетсяС(ВыборкаДетальныеЗаписи.ИмяПредопределенногоВида, "Справочник") Тогда
ИмяОбъекта = Сред(ВыборкаДетальныеЗаписи.ИмяПредопределенногоВида, СтрДлина("Справочник") + 1);
ОбъектыМетаданных.Добавить(Справочники[ИмяОбъекта].ПустаяСсылка());
ИначеЕсли СтрНачинаетсяС(ВыборкаДетальныеЗаписи.ИмяПредопределенногоВида, "Документ") Тогда
ИмяОбъекта = Сред(ВыборкаДетальныеЗаписи.ИмяПредопределенногоВида, СтрДлина("Документ") + 1);
Если Метаданные.Документы.Найти(ИмяОбъекта) <> Неопределено Тогда
ОбъектыМетаданных.Добавить(Документы[ИмяОбъекта].ПустаяСсылка());
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат ОбъектыМетаданных;
КонецФункции
Процедура ИсправитьВидыКонтактнойИнформацииВФоне(Знач ПараметрыПроверки, АдресХранилища = Неопределено) Экспорт
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтрольВеденияУчета") Тогда
Возврат;
КонецЕсли;
МодульКонтрольВеденияУчета = ОбщегоНазначения.ОбщийМодуль("КонтрольВеденияУчета");
Проверка = МодульКонтрольВеденияУчета.ПроверкаПоИдентификатору(ПараметрыПроверки.ИдентификаторПроверки);
Если Не ЗначениеЗаполнено(Проверка) Тогда
Возврат;
КонецЕсли;
ПроблемныеОбъекты = МодульКонтрольВеденияУчета.ПроблемныеОбъекты(Проверка);
ВсегоОбъектов = 0;
ИсправленоОбъектов = 0;
Пока ПроблемныеОбъекты.Количество() > 0 Цикл
ПоследнийПроблемныйОбъект = ПроблемныеОбъекты.Получить(ПроблемныеОбъекты.Количество() - 1).ПроблемныйОбъект;
ВсегоОбъектов = ВсегоОбъектов + ПроблемныеОбъекты.Количество();
ИсправленоОбъектов = ИсправленоОбъектов + ИсправитьПорциюВидовКонтактнойИнформации(ПроблемныеОбъекты, Проверка);
ПроблемныеОбъекты = МодульКонтрольВеденияУчета.ПроблемныеОбъекты(Проверка, ПоследнийПроблемныйОбъект);
КонецЦикла;
Результат = Новый Структура;
Результат.Вставить("ВсегоОбъектов", ВсегоОбъектов);
Результат.Вставить("ИсправленоОбъектов", ИсправленоОбъектов);
ПоместитьВоВременноеХранилище(Результат, АдресХранилища);
КонецПроцедуры
// Выполняет проверку и исправление некорректных видов контактной информации.
//
// Параметры:
// Проверка - СправочникСсылка.ПравилаПроверкиУчета - исполняемая проверка.
// ПараметрыПроверки - см. КонтрольВеденияУчета.ОписаниеПроблемы.ПараметрыПроверки
//
Процедура ПроверитьВидыКонтактнойИнформации(Проверка, ПараметрыПроверки) Экспорт
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтрольВеденияУчета") Тогда
Возврат;
КонецЕсли;
МодульКонтрольВеденияУчета = ОбщегоНазначения.ОбщийМодуль("КонтрольВеденияУчета");
ПроверяемыеОбъекты = Неопределено;
ПараметрыПроверки.Свойство("ПроверяемыеОбъекты", ПроверяемыеОбъекты);
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ВидыКонтактнойИнформации.Ссылка КАК Ссылка,
| ВидыКонтактнойИнформации.Ссылка КАК Наименование,
|ВЫБОР
| КОГДА ВидыКонтактнойИнформации.ИмяПредопределенногоВида <> """"
| ТОГДА ВидыКонтактнойИнформации.ИмяПредопределенногоВида
| ИНАЧЕ ВидыКонтактнойИнформации.ИмяПредопределенныхДанных
|КОНЕЦ КАК ИмяПредопределенногоВида
|ИЗ
| Справочник.ВидыКонтактнойИнформации КАК ВидыКонтактнойИнформации
|ГДЕ
| ВидыКонтактнойИнформации.ЭтоГруппа = ЛОЖЬ
| И (ВидыКонтактнойИнформации.Родитель = &ПустоеЗначение ИЛИ ВидыКонтактнойИнформации.Родитель = &Неопределено)
|";
Запрос.УстановитьПараметр("Неопределено", Неопределено);
Запрос.УстановитьПараметр("ПустоеЗначение", Справочники.ВидыКонтактнойИнформации.ПустаяСсылка());
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Возврат;
КонецЕсли;
СтрокаИзЗапроса = РезультатЗапроса.Выбрать();
ПараметрыВыполненияПроверки = МодульКонтрольВеденияУчета.ПараметрыВыполненияПроверки("КонтактнаяИнформация", НСтр("ru='Виды контактной информации'", ОбщегоНазначения.КодОсновногоЯзыка()));
МодульКонтрольВеденияУчета.ОчиститьРезультатыПредыдущихПроверок(Проверка, ПараметрыВыполненияПроверки);
ВидПроверки = МодульКонтрольВеденияУчета.ВидПроверки(ПараметрыВыполненияПроверки);
Пока СтрокаИзЗапроса.Следующий() Цикл
Если СтрНачинаетсяС(СтрокаИзЗапроса.ИмяПредопределенногоВида, "Удалить") Тогда
Продолжить;
КонецЕсли;
Проблема = МодульКонтрольВеденияУчета.ОписаниеПроблемы(СтрокаИзЗапроса.Ссылка, ПараметрыПроверки);
Проблема.ВидПроверки = ВидПроверки;
Проблема.УточнениеПроблемы = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не заполнена группа определяющая владельца контактной информации'"), СтрокаИзЗапроса.Наименование);
МодульКонтрольВеденияУчета.ЗаписатьПроблему(Проблема, ПараметрыПроверки);
КонецЦикла;
КонецПроцедуры
#Область ОбновлениеИнформационнойБазы #Область ОбновлениеИнформационнойБазы
Процедура ОбновитьСуществующиеСтраныМира() Экспорт Процедура ОбновитьСуществующиеСтраныМира() Экспорт
@@ -359,7 +638,7 @@
Если Не Страна.ЭтоНовый() Тогда Если Не Страна.ЭтоНовый() Тогда
ЗаблокироватьДанныеДляРедактирования(Страна.Ссылка); ЗаблокироватьДанныеДляРедактирования(Страна.Ссылка);
КонецЕсли; КонецЕсли;
ЗаполнитьЗначенияСвойств(Страна, СтрокаКлассификатора, "Код, Наименование, КодАльфа2, КодАльфа3, НаименованиеПолное, МеждународноеНаименование"); ЗаполнитьЗначенияСвойств(Страна, СтрокаКлассификатора);
Страна.ДополнительныеСвойства.Вставить("НеПроверятьУникальность"); Страна.ДополнительныеСвойства.Вставить("НеПроверятьУникальность");
Страна.Записать(); Страна.Записать();
ЗафиксироватьТранзакцию(); ЗафиксироватьТранзакцию();
@@ -472,9 +751,10 @@
// Контактная информация подключена к объекту. // Контактная информация подключена к объекту.
Проверка = Новый Структура; Проверка = Новый Структура;
Проверка.Вставить("КонтактнаяИнформация", Неопределено); Проверка.Вставить("КонтактнаяИнформация", Неопределено);
Проверка.Вставить("ЭтоГруппа", Ложь);
ЗаполнитьЗначенияСвойств(Проверка, Источник); ЗаполнитьЗначенияСвойств(Проверка, Источник);
Если Проверка.КонтактнаяИнформация = Неопределено Тогда Если Проверка.КонтактнаяИнформация = Неопределено Или Проверка.ЭтоГруппа Тогда
Возврат; // Табличная часть контактная информация отсутствует у объекта. Возврат; // Табличная часть контактная информация отсутствует у объекта.
КонецЕсли; КонецЕсли;
@@ -590,7 +870,7 @@
#Область ОбщиеСлужебныеПроцедурыИФункции #Область ОбщиеСлужебныеПроцедурыИФункции
Функция СобытиеЖурналаРегистрации() Функция СобытиеЖурналаРегистрации() Экспорт
Возврат НСтр("ru = 'Контактная информация'", ОбщегоНазначения.КодОсновногоЯзыка()); Возврат НСтр("ru = 'Контактная информация'", ОбщегоНазначения.КодОсновногоЯзыка());
@@ -1760,8 +1760,9 @@
// Параметры сбора производительности. // Параметры сбора производительности.
// Если параметр ОценкаПроизводительностиВключена равен нулю, тогда выключена. // Если параметр ОценкаПроизводительностиВключена равен нулю, тогда выключена.
// Если параметр ОценкаПроизводительностиВключена равна единице, тогда включена центром мониторинга. // Если параметр ОценкаПроизводительностиВключена равен единице, тогда включена центром мониторинга.
// Если параметр ОценкаПроизводительностиВключена равна двум, тогда включена оценкой производительности. // Если параметр ОценкаПроизводительностиВключена равен двум, тогда включена оценкой производительности.
// Если параметр ОценкаПроизводительностиВключена равен трем, тогда выключена оценкой производительности.
// //
ПараметрыКонстанты.Вставить("ОценкаПроизводительностиВключена", 0); ПараметрыКонстанты.Вставить("ОценкаПроизводительностиВключена", 0);
@@ -1969,18 +1970,21 @@
// Включена оценкой производительности. // Включена оценкой производительности.
ИначеЕсли ПараметрыОтправки.ОценкаПроизводительностиВключена = 0 И ПараметрыОтправки.ВыполнятьЗамерыПроизводительности Тогда ИначеЕсли ПараметрыОтправки.ОценкаПроизводительностиВключена = 0 И ПараметрыОтправки.ВыполнятьЗамерыПроизводительности Тогда
ПараметрыОтправки.ОценкаПроизводительностиВключена = 2; ПараметрыОтправки.ОценкаПроизводительностиВключена = 2;
// Включена центром мониторинга. // Включена центром мониторинга ранее и отключен позже, то выключаем сбор
ИначеЕсли ПараметрыОтправки.ОценкаПроизводительностиВключена = 1 И НЕ ПараметрыОтправки.ВыполнятьЗамерыПроизводительности Тогда ИначеЕсли ПараметрыОтправки.ОценкаПроизводительностиВключена = 1 И НЕ ПараметрыОтправки.ВыполнятьЗамерыПроизводительности Тогда
ПараметрыОтправки.ОценкаПроизводительностиВключена = 1; ПараметрыОтправки.ОценкаПроизводительностиВключена = 3;
// Включена центром мониторинга. // Включена центром мониторинга.
ИначеЕсли ПараметрыОтправки.ОценкаПроизводительностиВключена = 1 И ПараметрыОтправки.ВыполнятьЗамерыПроизводительности Тогда ИначеЕсли ПараметрыОтправки.ОценкаПроизводительностиВключена = 1 И ПараметрыОтправки.ВыполнятьЗамерыПроизводительности Тогда
ПараметрыОтправки.ОценкаПроизводительностиВключена = 1; ПараметрыОтправки.ОценкаПроизводительностиВключена = 1;
// Включен был оценкой производительности, но потом выключен. // Включен был оценкой производительности, но потом выключен.
ИначеЕсли ПараметрыОтправки.ОценкаПроизводительностиВключена = 2 И НЕ ПараметрыОтправки.ВыполнятьЗамерыПроизводительности Тогда ИначеЕсли ПараметрыОтправки.ОценкаПроизводительностиВключена = 2 И НЕ ПараметрыОтправки.ВыполнятьЗамерыПроизводительности Тогда
ПараметрыОтправки.ОценкаПроизводительностиВключена = 0; ПараметрыОтправки.ОценкаПроизводительностиВключена = 3;
// Включен оценкой производительности. // Включен оценкой производительности.
ИначеЕсли ПараметрыОтправки.ОценкаПроизводительностиВключена = 2 И ПараметрыОтправки.ВыполнятьЗамерыПроизводительности Тогда ИначеЕсли ПараметрыОтправки.ОценкаПроизводительностиВключена = 2 И ПараметрыОтправки.ВыполнятьЗамерыПроизводительности Тогда
ПараметрыОтправки.ОценкаПроизводительностиВключена = 2; ПараметрыОтправки.ОценкаПроизводительностиВключена = 2;
// Был выключен, но потом включили в оценке производительности.
ИначеЕсли ПараметрыОтправки.ОценкаПроизводительностиВключена = 3 И ПараметрыОтправки.ВыполнятьЗамерыПроизводительности Тогда
ПараметрыОтправки.ОценкаПроизводительностиВключена = 2;
КонецЕсли; КонецЕсли;
Иначе Иначе
// Подсистемы оценки производительности нет. // Подсистемы оценки производительности нет.
@@ -2004,6 +2008,9 @@
// Включен оценкой производительности. // Включен оценкой производительности.
ИначеЕсли ПараметрыОтправки.ОценкаПроизводительностиВключена = 2 И ПараметрыОтправки.ВыполнятьЗамерыПроизводительности Тогда ИначеЕсли ПараметрыОтправки.ОценкаПроизводительностиВключена = 2 И ПараметрыОтправки.ВыполнятьЗамерыПроизводительности Тогда
ПараметрыОтправки.ОценкаПроизводительностиВключена = 2; ПараметрыОтправки.ОценкаПроизводительностиВключена = 2;
// Был выключен, но потом включили в оценке производительности.
ИначеЕсли ПараметрыОтправки.ОценкаПроизводительностиВключена = 3 И ПараметрыОтправки.ВыполнятьЗамерыПроизводительности Тогда
ПараметрыОтправки.ОценкаПроизводительностиВключена = 2;
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
@@ -2098,7 +2098,7 @@
КонецФункции КонецФункции
Функция ИмяУзлаОбщихРеквизитов() Экспорт Функция ИмяУзлаОбщихРеквизитов()
Возврат НСтр("ru = 'ОбщиеРеквизиты'"); Возврат НСтр("ru = 'ОбщиеРеквизиты'");
КонецФункции КонецФункции
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonPicture xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="716302cc-ad47-4823-a81a-4c58857aa0a4">
<name>ВводимыеСимволыВидны</name>
<synonym>
<key>ru</key>
<value>Вводимые символы видны</value>
</synonym>
</mdclass:CommonPicture>
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonPicture xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="d0f3824e-ddfb-491d-8aea-e4e4806dc3ee">
<name>ВводимыеСимволыСкрыты</name>
<synonym>
<key>ru</key>
<value>Вводимые символы скрыты</value>
</synonym>
</mdclass:CommonPicture>
+11 -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="a5d160c8-3ea8-45fe-a4c3-44b882fe0b7d"> <mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="8d69168b-9e83-4290-b54b-69e6223871bf">
<name>БиблиотекаСтандартныхПодсистем</name> <name>БиблиотекаСтандартныхПодсистем</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value> <value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym> </synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="652cd616-4c7a-413a-ba16-45542810ca42"/> <containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="e4354c72-6ebf-4db1-9058-15f48678cd55"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="c1671bff-3b22-4c2e-802d-963c9d75e2c7"/> <containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="6d613639-4bed-44ee-85e6-8c35891d53ea"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="6bf44744-5a00-4f23-85bd-2edaa4551ae1"/> <containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="7e873949-b371-49c1-b9f5-13652e23f414"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="c6b0f633-b898-4a0c-90d2-abe086ad665e"/> <containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="9a30c41c-ad92-4039-8e5b-2e84a6f6ab39"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="41a7441f-2cc6-490b-904c-18014f3c6837"/> <containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="0d83e7bb-e173-4e0e-b85b-06d1810152f0"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="c486ab09-1f34-4277-961d-3344c3acca67"/> <containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="86685c91-b887-466d-ac7d-db7089214565"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="45d66710-9ace-41b1-ba6c-3c90b8706c54"/> <containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="914a3789-fe4b-4a36-a836-bfaae7baf2d0"/>
<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.1.2.281</version> <version>3.1.2.291</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>
@@ -133,6 +133,8 @@
<commonPictures>CommonPicture.БыстрыйДоступСФлажком</commonPictures> <commonPictures>CommonPicture.БыстрыйДоступСФлажком</commonPictures>
<commonPictures>CommonPicture.БыстрыйДоступУдалить</commonPictures> <commonPictures>CommonPicture.БыстрыйДоступУдалить</commonPictures>
<commonPictures>CommonPicture.ВариантыОтчетовДоступныеВсемПользователям</commonPictures> <commonPictures>CommonPicture.ВариантыОтчетовДоступныеВсемПользователям</commonPictures>
<commonPictures>CommonPicture.ВводимыеСимволыВидны</commonPictures>
<commonPictures>CommonPicture.ВводимыеСимволыСкрыты</commonPictures>
<commonPictures>CommonPicture.ВертикальноеПоложениеВерх</commonPictures> <commonPictures>CommonPicture.ВертикальноеПоложениеВерх</commonPictures>
<commonPictures>CommonPicture.ВертикальноеПоложениеНиз</commonPictures> <commonPictures>CommonPicture.ВертикальноеПоложениеНиз</commonPictures>
<commonPictures>CommonPicture.ВертикальноеПоложениеЦентр</commonPictures> <commonPictures>CommonPicture.ВертикальноеПоложениеЦентр</commonPictures>
@@ -1 +1 @@
{6,1,1,dc54fc03-58ea-45c4-abde-905b99fccc30,1,02413631-2e44-4156-98e7-f6fb9f956a99,"3.1.2.281","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5912,1,0,a5d160c8-3ea8-45fe-a4c3-44b882fe0b7d,a5d160c8-3ea8-45fe-a4c3-44b882fe0b7d,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,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,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,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-4558-8a28-7079ccf28b89,1,0,2009c673-c1a5-45fc-8da2-a36c435085a6,2009c673-c1a5Line truncated {6,1,1,58561ec3-72fc-443a-b2ac-c7edadac1e3d,1,dca7efba-803e-47db-9ace-462f548bf619,"3.1.2.291","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5916,1,0,8d69168b-9e83-4290-b54b-69e6223871bf,8d69168b-9e83-4290-b54b-69e6223871bf,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,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,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,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-4558-8a28-7079ccf28b89,1,0,2009c673-c1a5-45fc-8da2-a36c435085a6,2009c673-c1a5Line truncated
@@ -45,7 +45,7 @@
Функция ВерсияКалендарей() Экспорт Функция ВерсияКалендарей() Экспорт
Возврат 35; Возврат 36;
КонецФункции КонецФункции
@@ -57,7 +57,7 @@
Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт
Возврат "3.1.2.194"; Возврат "3.1.2.290";
КонецФункции КонецФункции
@@ -81,6 +81,8 @@
<Item Calendar="04" Year="2019" DayType="Предпраздничный" Date="20190208" SwapDate=""/> <Item Calendar="04" Year="2019" DayType="Предпраздничный" Date="20190208" SwapDate=""/>
<Item Calendar="04" Year="2019" DayType="Праздник" Date="20190209" SwapDate="20190211"/> <Item Calendar="04" Year="2019" DayType="Праздник" Date="20190209" SwapDate="20190211"/>
<Item Calendar="04" Year="2019" DayType="Суббота" Date="20190211" SwapDate="20190209"/> <Item Calendar="04" Year="2019" DayType="Суббота" Date="20190211" SwapDate="20190209"/>
<Item Calendar="04" Year="2020" DayType="Праздник" Date="20200224" SwapDate="20200225"/>
<Item Calendar="04" Year="2020" DayType="Воскресенье" Date="20200225" SwapDate="20200223"/>
<Item Calendar="05" Year="2016" DayType="Предпраздничный" Date="20160705" SwapDate=""/> <Item Calendar="05" Year="2016" DayType="Предпраздничный" Date="20160705" SwapDate=""/>
<Item Calendar="05" Year="2016" DayType="Праздник" Date="20160706" SwapDate=""/> <Item Calendar="05" Year="2016" DayType="Праздник" Date="20160706" SwapDate=""/>
<Item Calendar="05" Year="2016" DayType="Праздник" Date="20160707" SwapDate=""/> <Item Calendar="05" Year="2016" DayType="Праздник" Date="20160707" SwapDate=""/>
@@ -220,8 +222,12 @@
<Item Calendar="08" Year="2020" DayType="Воскресенье" Date="20200225" SwapDate="20200224"/> <Item Calendar="08" Year="2020" DayType="Воскресенье" Date="20200225" SwapDate="20200224"/>
<Item Calendar="08" Year="2020" DayType="Праздник" Date="20200405" SwapDate="20200406"/> <Item Calendar="08" Year="2020" DayType="Праздник" Date="20200405" SwapDate="20200406"/>
<Item Calendar="08" Year="2020" DayType="Воскресенье" Date="20200406" SwapDate="20200405"/> <Item Calendar="08" Year="2020" DayType="Воскресенье" Date="20200406" SwapDate="20200405"/>
<Item Calendar="08" Year="2020" DayType="Предпраздничный" Date="20200604" SwapDate=""/>
<Item Calendar="08" Year="2020" DayType="Праздник" Date="20200605" SwapDate=""/>
<Item Calendar="08" Year="2020" DayType="Праздник" Date="20200705" SwapDate="20200706"/> <Item Calendar="08" Year="2020" DayType="Праздник" Date="20200705" SwapDate="20200706"/>
<Item Calendar="08" Year="2020" DayType="Воскресенье" Date="20200706" SwapDate="20200705"/> <Item Calendar="08" Year="2020" DayType="Воскресенье" Date="20200706" SwapDate="20200705"/>
<Item Calendar="08" Year="2020" DayType="Предпраздничный" Date="20201209" SwapDate=""/>
<Item Calendar="08" Year="2020" DayType="Праздник" Date="20201210" SwapDate=""/>
<Item Calendar="08" Year="2020" DayType="Нерабочий" Date="20201228" SwapDate=""/> <Item Calendar="08" Year="2020" DayType="Нерабочий" Date="20201228" SwapDate=""/>
<Item Calendar="09" Year="2016" DayType="Праздник" Date="20160503" SwapDate="20160504"/> <Item Calendar="09" Year="2016" DayType="Праздник" Date="20160503" SwapDate="20160504"/>
<Item Calendar="09" Year="2016" DayType="Суббота" Date="20160504" SwapDate="20160503"/> <Item Calendar="09" Year="2016" DayType="Суббота" Date="20160504" SwapDate="20160503"/>
@@ -3843,6 +3843,186 @@
<currentRowUse>Auto</currentRowUse> <currentRowUse>Auto</currentRowUse>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:FormGroup">
<name>БИПГруппаИнтеграцияСКоннект</name>
<id>1925</id>
<items xsi:type="form:FormGroup">
<name>БИПГруппаСервисКоннект</name>
<id>1927</id>
<items xsi:type="form:FormField">
<name>БИПИнтеграцияСКоннект</name>
<id>1929</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>
<handlers>
<event>OnChange</event>
<name>БИПИнтеграцияСКоннектПриИзменении</name>
</handlers>
<extendedTooltip>
<name>БИПИнтеграцияСКоннектРасширеннаяПодсказка</name>
<id>1931</id>
<title>
<key>ru</key>
<value>Сервис 1С-Коннект позволяет быть на связи с компанией или отделом где угодно – на рабочем месте, в дороге или из дома, видеть список коллег, писать и звонить нужными сотрудникам.</value>
</title>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>БИПИнтеграцияСКоннектКонтекстноеМеню</name>
<id>1930</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Сервис коннект</value>
</title>
<width>43</width>
<extendedTooltip>
<name>БИПГруппаСервисКоннектРасширеннаяПодсказка</name>
<id>1928</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>HorizontalIfPossible</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>БИПГруппаНастройкаКоннект</name>
<id>1932</id>
<items xsi:type="form:Button">
<name>БИПНастройкаИнтеграцииСКоннект</name>
<id>1934</id>
<title>
<key>ru</key>
<value>Настройка интеграции</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>БИПНастройкаИнтеграцииСКоннектРасширеннаяПодсказка</name>
<id>1935</id>
<title>
<key>ru</key>
<value>Настройка запуска приложения на этом компьютере.</value>
</title>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Hyperlink</type>
<commandName>Form.Command.БИПНастройкаИнтеграцииСКоннект</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<toolTipRepresentation>ShowBottom</toolTipRepresentation>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>БИП Группа настройка коннект</value>
</title>
<extendedTooltip>
<name>БИПГруппаНастройкаКоннектРасширеннаяПодсказка</name>
<id>1933</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>HorizontalIfPossible</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>1С-Коннект</value>
</title>
<extendedTooltip>
<name>БИПГруппаИнтеграцияСКоннектРасширеннаяПодсказка</name>
<id>1926</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>Collapsible</behavior>
<collapsed>true</collapsed>
<controlRepresentation>Button</controlRepresentation>
<representation>NormalSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<showTitle>auto</showTitle>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<autoCommandBar> <autoCommandBar>
<name>ФормаКоманднаяПанель</name> <name>ФормаКоманднаяПанель</name>
<id>-1</id> <id>-1</id>
@@ -4152,6 +4332,23 @@
<common>true</common> <common>true</common>
</edit> </edit>
</attributes> </attributes>
<attributes>
<name>БИПИнтеграцияСКоннект</name>
<title>
<key>ru</key>
<value>Сервис 1С-Коннект</value>
</title>
<id>5</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands> <formCommands>
<name>БИПВойтиИлиВыйти</name> <name>БИПВойтиИлиВыйти</name>
<title> <title>
@@ -4374,6 +4571,28 @@
<currentRowUse>Auto</currentRowUse> <currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse> <selectedRowsUse>Auto</selectedRowsUse>
</formCommands> </formCommands>
<formCommands>
<name>БИПНастройкаИнтеграцииСКоннект</name>
<title>
<key>ru</key>
<value>БИПНастройка интеграции с коннект</value>
</title>
<id>12</id>
<toolTip>
<key>ru</key>
<value>БИПНастройка интеграции с коннект</value>
</toolTip>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>БИПНастройкаИнтеграцииСКоннект</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<commandInterface> <commandInterface>
<navigationPanel/> <navigationPanel/>
<commandBar/> <commandBar/>
@@ -135,6 +135,7 @@
Элементы.БИПГруппаОбновлениеКлассификаторов.Видимость = Ложь; Элементы.БИПГруппаОбновлениеКлассификаторов.Видимость = Ложь;
Элементы.БИПГруппаПроверкаКонтрагентов.Видимость = Ложь; Элементы.БИПГруппаПроверкаКонтрагентов.Видимость = Ложь;
Элементы.БИПГруппаСПАРКРиски.Видимость = Ложь; Элементы.БИПГруппаСПАРКРиски.Видимость = Ложь;
Элементы.БИПГруппаИнтеграцияСКоннект.Видимость = Ложь;
КонецЕсли; КонецЕсли;
НастройкиПрограммыПереопределяемый.ИнтернетПоддержкаИСервисыПриСозданииНаСервере(ЭтотОбъект); НастройкиПрограммыПереопределяемый.ИнтернетПоддержкаИСервисыПриСозданииНаСервере(ЭтотОбъект);
@@ -401,6 +402,18 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура БИПИнтеграцияСКоннектПриИзменении(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ИнтеграцияСКоннект") Тогда
МодульИнтеграцияСКоннектКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияСКоннектКлиент");
МодульИнтеграцияСКоннектКлиент.ИнтернетПоддержкаИСервисы_БИПИнтеграцияСКоннектПриИзменении(
ЭтотОбъект,
Элемент);
КонецЕсли;
КонецПроцедуры
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти
@@ -559,6 +572,18 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура БИПНастройкаИнтеграцииСКоннект(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ИнтеграцияСКоннект") Тогда
МодульИнтеграцияСКоннектКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияСКоннектКлиент");
МодульИнтеграцияСКоннектКлиент.ИнтернетПоддержкаИСервисы_БИПНастройкаИнтеграцииСКоннект(
ЭтотОбъект,
Команда);
КонецЕсли;
КонецПроцедуры
#КонецОбласти #КонецОбласти
&НаКлиенте &НаКлиенте
@@ -635,6 +635,60 @@
</dataPath> </dataPath>
<titleLocation>None</titleLocation> <titleLocation>None</titleLocation>
<excludedCommands>Change</excludedCommands> <excludedCommands>Change</excludedCommands>
<items xsi:type="form:FormField">
<name>НайденныеДублиПометкаУдаления</name>
<id>471</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>НайденныеДубли.НомерКартинки</segments>
</dataPath>
<titleLocation>None</titleLocation>
<toolTip>
<key>ru</key>
<value>Состояние пометки удаления</value>
</toolTip>
<extendedTooltip>
<name>НайденныеДублиПометкаУдаленияРасширеннаяПодсказка</name>
<id>473</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>НайденныеДублиПометкаУдаленияКонтекстноеМеню</name>
<id>472</id>
<autoFill>true</autoFill>
</contextMenu>
<type>PictureField</type>
<editMode>Auto</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:ImageFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<valuesPicture xsi:type="core:PictureRef">
<picture>CommonPicture.ПиктограммыЭлементов</picture>
</valuesPicture>
<border xsi:type="core:BorderDef">
<style>Single</style>
<width>1</width>
</border>
<fileDragMode>AsFileRef</fileDragMode>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ИспользоватьНаименование</name>
<id>109</id>
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>НайденныеДублиОсновной</name> <name>НайденныеДублиОсновной</name>
<id>114</id> <id>114</id>
@@ -670,9 +724,6 @@
<readOnly>true</readOnly> <readOnly>true</readOnly>
<editMode>Auto</editMode> <editMode>Auto</editMode>
<showInHeader>true</showInHeader> <showInHeader>true</showInHeader>
<headerPicture xsi:type="core:PictureRef">
<picture>StdPicture.MoveRight</picture>
</headerPicture>
<headerHorizontalAlign>Left</headerHorizontalAlign> <headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter> <showInFooter>true</showInFooter>
<extInfo xsi:type="form:ImageFieldExtInfo"> <extInfo xsi:type="form:ImageFieldExtInfo">
@@ -689,9 +740,6 @@
</border> </border>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:FormGroup">
<name>ИспользоватьНаименование</name>
<id>109</id>
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>НайденныеДублиПометка</name> <name>НайденныеДублиПометка</name>
<id>103</id> <id>103</id>
@@ -1181,12 +1229,6 @@
<verticalStretch>true</verticalStretch> <verticalStretch>true</verticalStretch>
<enableStartDrag>true</enableStartDrag> <enableStartDrag>true</enableStartDrag>
<enableDrag>true</enableDrag> <enableDrag>true</enableDrag>
<rowPictureDataPath xsi:type="form:DataPath">
<segments>НайденныеДубли.НомерКартинки</segments>
</rowPictureDataPath>
<rowsPicture xsi:type="core:PictureRef">
<picture>CommonPicture.ПиктограммыЭлементов</picture>
</rowsPicture>
<autoMaxCardHeight>true</autoMaxCardHeight> <autoMaxCardHeight>true</autoMaxCardHeight>
</items> </items>
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
@@ -1280,20 +1280,6 @@
// 1. Строка с текущим основным элементом группы: // 1. Строка с текущим основным элементом группы:
// Картинка
//ЭлементОформления = ЭлементыУсловногоОформления.Добавить();
//
//ОтборОформления = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
//ОтборОформления.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("НайденныеДубли.Основной");
//ОтборОформления.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
//ОтборОформления.ПравоеЗначение = Истина;
//
//ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Истина);
//ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Отображать", Истина);
//
//ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
//ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("НайденныеДублиОсновной");
// Отсутствие пометки // Отсутствие пометки
ЭлементОформления = ЭлементыУсловногоОформления.Добавить(); ЭлементОформления = ЭлементыУсловногоОформления.Добавить();
@@ -1308,37 +1294,7 @@
ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить(); ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("НайденныеДублиПометка"); ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("НайденныеДублиПометка");
// 2. Строка с обычным элементом. // 2. Места использования
// Картинка
//ЭлементОформления = ЭлементыУсловногоОформления.Добавить();
//
//ОтборОформления = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
//ОтборОформления.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("НайденныеДубли.Основной");
//ОтборОформления.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
//ОтборОформления.ПравоеЗначение = Ложь;
//
//ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
//ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Отображать", Ложь);
//
//ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
//ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("НайденныеДублиОсновной");
// Наличие пометки
ЭлементОформления = ЭлементыУсловногоОформления.Добавить();
ОтборОформления = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборОформления.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("НайденныеДубли.Основной");
ОтборОформления.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборОформления.ПравоеЗначение = Ложь;
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Истина);
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Отображать", Истина);
ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("НайденныеДублиПометка");
// 3. Места использования
ЭлементОформления = ЭлементыУсловногоОформления.Добавить(); ЭлементОформления = ЭлементыУсловногоОформления.Добавить();
ОтборОформления = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ОтборОформления = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
@@ -123,8 +123,11 @@
СтрокаСоединения = "File = ""&КаталогИнформационнойБазы"""; СтрокаСоединения = "File = ""&КаталогИнформационнойБазы""";
СтрокаСоединения = СтрЗаменить(СтрокаСоединения, "&КаталогИнформационнойБазы", СокрЛП(КаталогНачальногоОбраза)); СтрокаСоединения = СтрЗаменить(СтрокаСоединения, "&КаталогИнформационнойБазы", СокрЛП(КаталогНачальногоОбраза));
ПотокПриемник = ФайловыеПотоки.Создать(ИмяФайлаДанныхНачальногоОбраза);
ВыгруженныеДанные = Новый ЗаписьXML; ВыгруженныеДанные = Новый ЗаписьXML;
ВыгруженныеДанные.ОткрытьФайл(ИмяФайлаДанныхНачальногоОбраза); ВыгруженныеДанные.ОткрытьПоток(ПотокПриемник);
ВыгруженныеДанные.ЗаписатьОбъявлениеXML(); ВыгруженныеДанные.ЗаписатьОбъявлениеXML();
ВыгруженныеДанные.ЗаписатьНачалоЭлемента("Data"); ВыгруженныеДанные.ЗаписатьНачалоЭлемента("Data");
ВыгруженныеДанные.ЗаписатьСоответствиеПространстваИмен("xsd", "http://www.w3.org/2001/XMLSchema"); ВыгруженныеДанные.ЗаписатьСоответствиеПространстваИмен("xsd", "http://www.w3.org/2001/XMLSchema");
@@ -134,6 +137,7 @@
АвтономноеРабочееМестоОбъект = АвтономноеРабочееМесто.ПолучитьОбъект(); АвтономноеРабочееМестоОбъект = АвтономноеРабочееМесто.ПолучитьОбъект();
АвтономноеРабочееМестоОбъект.ДополнительныеСвойства.Вставить("ВыгруженныеДанные", ВыгруженныеДанные); АвтономноеРабочееМестоОбъект.ДополнительныеСвойства.Вставить("ВыгруженныеДанные", ВыгруженныеДанные);
АвтономноеРабочееМестоОбъект.ДополнительныеСвойства.Вставить("РазмещатьФайлыВНачальномОбразе"); АвтономноеРабочееМестоОбъект.ДополнительныеСвойства.Вставить("РазмещатьФайлыВНачальномОбразе");
АвтономноеРабочееМестоОбъект.ДополнительныеСвойства.Вставить("СвойстваМетаданных", Новый Соответствие);
// Обновляем повторно используемые значения Механизма регистрации объектов. // Обновляем повторно используемые значения Механизма регистрации объектов.
ОбменДаннымиСлужебный.ПроверитьКэшМеханизмаРегистрацииОбъектов(); ОбменДаннымиСлужебный.ПроверитьКэшМеханизмаРегистрацииОбъектов();
@@ -159,6 +163,9 @@
ВыгруженныеДанные.ЗаписатьКонецЭлемента(); // Data ВыгруженныеДанные.ЗаписатьКонецЭлемента(); // Data
ВыгруженныеДанные.Закрыть(); ВыгруженныеДанные.Закрыть();
ПотокПриемник.Закрыть();
ПотокПриемник = Неопределено;
ИмяФайлаНачальногоОбраза = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла( ИмяФайлаНачальногоОбраза = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(
КаталогНачальногоОбраза, "1Cv8.1CD"); КаталогНачальногоОбраза, "1Cv8.1CD");
@@ -1571,11 +1571,13 @@
"ИмяФайлаНастроекПодключенияДляВыгрузки", "Видимость", СохранитьПараметрыПодключенияВФайл); "ИмяФайлаНастроекПодключенияДляВыгрузки", "Видимость", СохранитьПараметрыПодключенияВФайл);
Если СохранитьПараметрыПодключенияВФайл Если СохранитьПараметрыПодключенияВФайл
И (ВидПодключения = "ОбычныеКаналыСвязи") И (ВидПодключения = "ОбычныеКаналыСвязи") Тогда
Если ОбщегоНазначенияКлиент.ИнформационнаяБазаФайловая()
И ОбычныеКаналыСвязиFILEИспользование Тогда И ОбычныеКаналыСвязиFILEИспользование Тогда
ИмяФайлаНастроекПодключенияДляВыгрузки = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла( ИмяФайлаНастроекПодключенияДляВыгрузки = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(
ОбычныеКаналыСвязиFILEКаталог, ИмяФайлаНастроекДляПриемника + ".xml"); ОбычныеКаналыСвязиFILEКаталог, ИмяФайлаНастроекДляПриемника + ".xml");
КонецЕсли; КонецЕсли;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
"ГруппаНастройкиПрограммыПредставление", "Видимость", Не (ВидПодключения = "ПассивныйРежим")); "ГруппаНастройкиПрограммыПредставление", "Видимость", Не (ВидПодключения = "ПассивныйРежим"));
@@ -1440,7 +1440,7 @@
ИЗ ИЗ
РегистрСведений.СведенияОФайлах КАК СведенияОФайлах РегистрСведений.СведенияОФайлах КАК СведенияОФайлах
ГДЕ ГДЕ
НЕ СведенияОФайлах.Файл.Ссылка ЕСТЬ NULL </queryText> НЕ СведенияОФайлах.Файл ЕСТЬ NULL</queryText>
<mainTable>InformationRegister.СведенияОФайлах</mainTable> <mainTable>InformationRegister.СведенияОФайлах</mainTable>
<dynamicDataRead>true</dynamicDataRead> <dynamicDataRead>true</dynamicDataRead>
<autoFillAvailableFields>true</autoFillAvailableFields> <autoFillAvailableFields>true</autoFillAvailableFields>
@@ -157,7 +157,7 @@
ТекстЗапроса = ТекстЗапроса =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Файлы.ВладелецФайла КАК Папка, | Файлы.ВладелецФайла КАК Папка,
| Файлы.ВладелецФайла.Наименование КАК НаименованиеПапки, | ВЫРАЗИТЬ(Файлы.ВладелецФайла КАК Справочник.ПапкиФайлов).Наименование КАК НаименованиеПапки,
| &ТекущаяВерсия КАК ТекущаяВерсия, | &ТекущаяВерсия КАК ТекущаяВерсия,
| Файлы.Наименование КАК ПолноеНаименование, | Файлы.Наименование КАК ПолноеНаименование,
| Файлы.Расширение КАК Расширение, | Файлы.Расширение КАК Расширение,
@@ -2755,10 +2755,10 @@
КонецЕсли; КонецЕсли;
Если КоличествоОшибок = 1 Тогда Если КоличествоОшибок = 1 Тогда
МестоОшибки = СписокОшибок[0].Значение; МестоОшибки = СписокОшибок[0].ИмяПоля;
Если СписокОшибок[0].Пометка = Ложь И НЕ ВебСервисИспользуется Тогда Если СписокОшибок[0].АдресПроверен = Ложь И НЕ ВебСервисИспользуется Тогда
ТекстВопроса = НСтр("ru = 'Адрес не может быть проверен.'") + Символы.ПС ТекстВопроса = НСтр("ru = 'Адрес не может быть проверен.'") + Символы.ПС
+ СписокОшибок[0].Представление + Символы.ПС + НСтр("ru = 'Загрузить классификатор для проверки адреса?'"); + СписокОшибок[0].ТекстОшибки + Символы.ПС + НСтр("ru = 'Загрузить классификатор для проверки адреса?'");
ПредложениеЗагрузкиКлассификатора(ТекстВопроса); ПредложениеЗагрузкиКлассификатора(ТекстВопроса);
Возврат; Возврат;
ИначеЕсли ПустаяСтрока(МестоОшибки) Или МестоОшибки = "/" Тогда ИначеЕсли ПустаяСтрока(МестоОшибки) Или МестоОшибки = "/" Тогда
@@ -2772,7 +2772,7 @@
// Сообщаем список с привязкой к полям. // Сообщаем список с привязкой к полям.
Для Каждого Элемент Из СписокОшибок Цикл Для Каждого Элемент Из СписокОшибок Цикл
ОбщегоНазначенияКлиент.СообщитьПользователю( ОбщегоНазначенияКлиент.СообщитьПользователю(
Элемент.Представление,,, Элемент.Значение); Элемент.ТекстОшибки,,, Элемент.ИмяПоля);
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
@@ -0,0 +1,525 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
<items xsi:type="form:FormGroup">
<name>ПанельИндикаторов</name>
<id>7</id>
<items xsi:type="form:FormGroup">
<name>ГруппаИндикаторНачалаИсправления</name>
<id>9</id>
<items xsi:type="form:Decoration">
<name>Пояснение</name>
<id>11</id>
<title>
<key>ru</key>
<value>Исправление адресов вида контактной информации &quot;%1&quot; может занять продолжительное время. Продолжить?</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ПояснениеРасширеннаяПодсказка</name>
<id>13</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПояснениеКонтекстноеМеню</name>
<id>12</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<height>2</height>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
<verticalAlign>Center</verticalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Индикатор начала исправления</value>
</title>
<toolTip>
<key>ru</key>
<value>Группа индикатор исправления</value>
</toolTip>
<extendedTooltip>
<name>ГруппаИндикаторНачалаИсправленияРасширеннаяПодсказка</name>
<id>10</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo">
<group>HorizontalIfPossible</group>
<showTitle>auto</showTitle>
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаИндикаторИсправления</name>
<id>14</id>
<items xsi:type="form:Decoration">
<name>ДекорацияПрогресс</name>
<id>16</id>
<title>
<key>ru</key>
<value>Декорация прогресс</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДекорацияПрогрессExtendedTooltip</name>
<id>18</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДекорацияПрогрессКонтекстноеМеню</name>
<id>17</id>
<autoFill>true</autoFill>
</contextMenu>
<width>5</width>
<autoMaxWidth>true</autoMaxWidth>
<height>2</height>
<autoMaxHeight>true</autoMaxHeight>
<verticalStretch>true</verticalStretch>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.ДлительнаяОперация48</picture>
</picture>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ДекорацияВыполнениеИсправления</name>
<id>19</id>
<title>
<key>ru</key>
<value>Выполняется исправление адресов.
Пожалуйста, подождите...</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДекорацияВыполнениеИсправленияРасширеннаяПодсказка</name>
<id>21</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДекорацияВыполнениеИсправленияКонтекстноеМеню</name>
<id>20</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<maxWidth>26</maxWidth>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
<verticalAlign>Center</verticalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Индикатор исправления</value>
</title>
<extendedTooltip>
<name>ГруппаИндикаторИсправленияРасширеннаяПодсказка</name>
<id>15</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo">
<group>AlwaysHorizontal</group>
<showTitle>auto</showTitle>
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаИндикаторУспешноеИсправление</name>
<id>22</id>
<items xsi:type="form:Decoration">
<name>НадписьУспешноеИсправление</name>
<id>24</id>
<title>
<key>ru</key>
<value>Исправлено %1 из %2.</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>НадписьУспешноеИсправлениеРасширеннаяПодсказка</name>
<id>26</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>НадписьУспешноеИсправлениеКонтекстноеМеню</name>
<id>25</id>
<autoFill>true</autoFill>
</contextMenu>
<formatted>true</formatted>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<height>2</height>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
<verticalAlign>Center</verticalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Успешное исправление</value>
</title>
<toolTip>
<key>ru</key>
<value>Группа индикатор исправления</value>
</toolTip>
<extendedTooltip>
<name>ГруппаИндикаторУспешноеИсправлениеРасширеннаяПодсказка</name>
<id>23</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo">
<group>HorizontalIfPossible</group>
<showTitle>auto</showTitle>
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаИндикаторНеуспешноеИсправление</name>
<id>27</id>
<items xsi:type="form:Decoration">
<name>НадписьНеуспешноеИсправление</name>
<id>29</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<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>
<formatted>true</formatted>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<height>5</height>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
<verticalAlign>Center</verticalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Неуспешное исправление</value>
</title>
<toolTip>
<key>ru</key>
<value>Группа индикатор исправления</value>
</toolTip>
<extendedTooltip>
<name>ГруппаИндикаторНеуспешноеИсправлениеРасширеннаяПодсказка</name>
<id>28</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo">
<group>HorizontalIfPossible</group>
<showTitle>auto</showTitle>
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ПанельИндикаторовРасширеннаяПодсказка</name>
<id>8</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Pages</type>
<extInfo xsi:type="form:PagesGroupExtInfo">
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<commandBarLocation>Bottom</commandBarLocation>
<showCommandBar>true</showCommandBar>
<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.Command.ИсправитьАдреса</commandName>
<representation>Auto</representation>
<defaultButton>true</defaultButton>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>Закрыть</name>
<id>3</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ЗакрытьРасширеннаяПодсказка</name>
<id>4</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.StandardCommand.Close</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>ФормаСправка</name>
<id>5</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаСправкаРасширеннаяПодсказка</name>
<id>6</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.StandardCommand.Help</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<horizontalAlign>Right</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<excludedCommands>CustomizeForm</excludedCommands>
<windowOpeningMode>LockOwner</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<verticalAlign>Bottom</verticalAlign>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>auto</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>ДлительнаяОперация</name>
<id>1</id>
<valueType/>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>Контрагент</name>
<id>3</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</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>
<formCommands>
<name>ИсправитьАдреса</name>
<title>
<key>ru</key>
<value>Исправить адреса</value>
</title>
<id>1</id>
<toolTip>
<key>ru</key>
<value>Исправить адреса</value>
</toolTip>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ИсправитьАдреса</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<parameters>
<name>ВидПроверки</name>
<valueType/>
<keyParameter>true</keyParameter>
</parameters>
<parameters>
<name>ИдентификаторПроверки</name>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
</form:Form>
@@ -0,0 +1,143 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2020, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ИдентификаторПроверки = Параметры.ИдентификаторПроверки;
Если ИдентификаторПроверки = "РаботаСАдресами.ИсправитьТипЗданияЛитерВАдресах" Тогда
Заголовок = НСтр("ru='Исправление адресов с типом здания Литер'");
Элементы.Пояснение.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Элементы.Пояснение.Заголовок,
Строка(Параметры.ВидПроверки.Свойство2));
Иначе
Заголовок = НСтр("ru='Исправление устаревших адресов'");
Элементы.Пояснение.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Элементы.Пояснение.Заголовок,
Строка(Параметры.ВидПроверки.Свойство2));
КонецЕсли;
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Авто;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ИсправитьАдреса(Команда)
Если ИдентификаторПроверки = "РаботаСАдресами.ИсправитьТипЗданияЛитерВАдресах" Тогда
ДлительнаяОперация = ИсправитьАдресаСТипомЛитерВФоне(ИдентификаторПроверки);
Иначе
ДлительнаяОперация = ИсправитьУстаревшиеАдресаВФоне(ИдентификаторПроверки);
КонецЕсли;
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ОповещениеОЗавершении = Новый ОписаниеОповещения("ИсправитьПроблемуВФонеЗавершение", ЭтотОбъект);
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьТекущуюСтраницу(Форма, ИмяСтраницы)
ЭлементыФормы = Форма.Элементы;
Если ИмяСтраницы = "ИдетИсправлениеПроблемы" Тогда
ЭлементыФормы.ГруппаИндикаторИсправления.Видимость = Истина;
ЭлементыФормы.ГруппаИндикаторНачалаИсправления.Видимость = Ложь;
ЭлементыФормы.ГруппаИндикаторУспешноеИсправление.Видимость = Ложь;
ЭлементыФормы.Исправить.Видимость = Истина;
ИначеЕсли ИмяСтраницы = "ИсправлениеУспешноВыполнено" Тогда
ЭлементыФормы.ГруппаИндикаторИсправления.Видимость = Ложь;
ЭлементыФормы.ГруппаИндикаторНачалаИсправления.Видимость = Ложь;
ЭлементыФормы.ГруппаИндикаторУспешноеИсправление.Видимость = Истина;
ЭлементыФормы.Закрыть.КнопкаПоУмолчанию = Истина;
ЭлементыФормы.Исправить.Видимость = Ложь;
Иначе // "Вопрос"
ЭлементыФормы.ГруппаИндикаторИсправления.Видимость = Ложь;
ЭлементыФормы.ГруппаИндикаторНачалаИсправления.Видимость = Истина;
ЭлементыФормы.ГруппаИндикаторУспешноеИсправление.Видимость = Ложь;
ЭлементыФормы.Исправить.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ИсправитьУстаревшиеАдресаВФоне(ИдентификаторПроверки)
Если ДлительнаяОперация <> Неопределено Тогда
ДлительныеОперации.ОтменитьВыполнениеЗадания(ДлительнаяОперация.ИдентификаторЗадания);
КонецЕсли;
УстановитьТекущуюСтраницу(ЭтотОбъект, "ИдетИсправлениеПроблемы");
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Исправление устаревших адресов контактной информации'");
ПараметрыВыполненияФоновогоЗадания = Новый Структура;
ПараметрыВыполненияФоновогоЗадания.Вставить("ИдентификаторПроверки", ИдентификаторПроверки);
ПараметрыВыполненияФоновогоЗадания.Вставить("ВидПроверки", Параметры.ВидПроверки);
Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСАдресами.ИсправитьУстаревшиеАдресаВФоне",
ПараметрыВыполненияФоновогоЗадания, ПараметрыВыполнения);
КонецФункции
&НаСервере
Функция ИсправитьАдресаСТипомЛитерВФоне(ИдентификаторПроверки)
Если ДлительнаяОперация <> Неопределено Тогда
ДлительныеОперации.ОтменитьВыполнениеЗадания(ДлительнаяОперация.ИдентификаторЗадания);
КонецЕсли;
УстановитьТекущуюСтраницу(ЭтотОбъект, "ИдетИсправлениеПроблемы");
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Исправление адресов контактной информации с типом здания Литер'");
ПараметрыВыполненияФоновогоЗадания = Новый Структура;
ПараметрыВыполненияФоновогоЗадания.Вставить("ИдентификаторПроверки", ИдентификаторПроверки);
ПараметрыВыполненияФоновогоЗадания.Вставить("ВидПроверки", Параметры.ВидПроверки);
Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСАдресами.ИсправитьТипЗданияЛитерВАдресахВФоне",
ПараметрыВыполненияФоновогоЗадания, ПараметрыВыполнения);
КонецФункции
&НаКлиенте
Процедура ИсправитьПроблемуВФонеЗавершение(Результат, ДополнительныеПараметры) Экспорт
ДлительнаяОперация = Неопределено;
Если Результат = Неопределено Тогда
УстановитьТекущуюСтраницу(ЭтотОбъект, "ИдетИсправлениеПроблемы");
Возврат;
ИначеЕсли Результат.Статус = "Ошибка" Тогда
УстановитьТекущуюСтраницу(ЭтотОбъект, "Вопрос");
ВызватьИсключение Результат.КраткоеПредставлениеОшибки;
ИначеЕсли Результат.Статус = "Выполнено" Тогда
Результат = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
Если ТипЗнч(Результат) = Тип("Структура") Тогда
Элементы.НадписьУспешноеИсправление.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
Элементы.НадписьУспешноеИсправление.Заголовок, Результат.ИсправленоОбъектов, Результат.ВсегоОбъектов);
КонецЕсли;
УстановитьТекущуюСтраницу(ЭтотОбъект, "ИсправлениеУспешноВыполнено");
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -222,19 +222,22 @@
ПараметрыПроверки.Вставить("ТолькоНациональныйАдрес ", ТолькоНациональныйАдрес); ПараметрыПроверки.Вставить("ТолькоНациональныйАдрес ", ТолькоНациональныйАдрес);
СписокОшибок = ОшибкиЗаполненияАдресаXDTO(Адрес, ПараметрыПроверки); СписокОшибок = ОшибкиЗаполненияАдресаXDTO(Адрес, ПараметрыПроверки);
ОписаниеОшибок = Новый СписокЗначений;
Если СписокОшибок.Количество() = 0 Тогда Если СписокОшибок.Количество() = 0 Тогда
РезультатПроверки.Результат = "Корректный"; РезультатПроверки.Результат = "Корректный";
Иначе Иначе
Если НЕ СписокОшибок[0].Пометка Тогда Если НЕ СписокОшибок[0].АдресПроверен Тогда
РезультатПроверки.Результат = "НеПроверен"; РезультатПроверки.Результат = "НеПроверен";
Иначе Иначе
РезультатПроверки.Результат = "СодержитОшибки"; РезультатПроверки.Результат = "СодержитОшибки";
КонецЕсли; КонецЕсли;
Для каждого ОписаниеОшибки Из СписокОшибок Цикл
ОписаниеОшибок.Добавить(ОписаниеОшибки.ИмяПоля, ОписаниеОшибки.ТекстОшибки, ОписаниеОшибки.АдресПроверен);
КонецЦикла;
КонецЕсли; КонецЕсли;
РезультатПроверки.СписокОшибок = СписокОшибок; РезультатПроверки.СписокОшибок = ОписаниеОшибок;
КонецПроцедуры КонецПроцедуры
@@ -1119,6 +1122,10 @@
КонецПроцедуры КонецПроцедуры
//======================================================================================================================
// Проверка адреса
//====================================================================================================================== //======================================================================================================================
// Проверка адреса // Проверка адреса
@@ -1148,18 +1155,18 @@
// *** ИмяПоля - Строка - внутренний идентификатор ошибочного элемента адреса. // *** ИмяПоля - Строка - внутренний идентификатор ошибочного элемента адреса.
// *** Сообщение - Строка - подробный текст ошибки для этого поля. // *** Сообщение - Строка - подробный текст ошибки для этого поля.
// //
Функция ОшибкиЗаполненияАдресаXDTO(Знач Адрес, ВидИнформации, РезультатГруппами = Ложь) Экспорт Функция ОшибкиЗаполненияАдресаXDTO(Знач Адрес, ВидИнформации) Экспорт
Если ТипЗнч(Адрес) = Тип("Строка") Тогда
Адрес = УправлениеКонтактнойИнформациейСлужебный.JSONВКонтактнуюИнформациюПоПолям(Адрес, Перечисления.ТипыКонтактнойИнформации.Адрес);
КонецЕсли;
Если ТипЗнч(Адрес) = Тип("ОбъектXDTO") Тогда Если ТипЗнч(Адрес) = Тип("ОбъектXDTO") Тогда
АдресXML = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияXDTOВXML(Адрес); АдресXML = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияXDTOВXML(Адрес);
Адрес = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(АдресXML); Адрес = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(АдресXML);
КонецЕсли; КонецЕсли;
Результат = ?(РезультатГруппами, Новый Массив, Новый СписокЗначений); Если ТипЗнч(Адрес) = Тип("Строка") Тогда
Адрес = УправлениеКонтактнойИнформациейСлужебный.JSONВКонтактнуюИнформациюПоПолям(Адрес, Перечисления.ТипыКонтактнойИнформации.Адрес);
КонецЕсли;
СписокОшибок = Новый Массив;
// Флаги проверки // Флаги проверки
Если ТипЗнч(ВидИнформации) = Тип("СправочникСсылка.ВидыКонтактнойИнформации") Тогда Если ТипЗнч(ВидИнформации) = Тип("СправочникСсылка.ВидыКонтактнойИнформации") Тогда
@@ -1176,7 +1183,7 @@
Если ВидИнформации.ВключатьСтрануВПредставление Тогда Если ВидИнформации.ВключатьСтрануВПредставление Тогда
ПредставлениеАдреса = СтрЗаменить(ПредставлениеАдреса, Адрес.country, ""); ПредставлениеАдреса = СтрЗаменить(ПредставлениеАдреса, Адрес.country, "");
КонецЕсли; КонецЕсли;
ТолькоЛатиницаВСтроке(ПредставлениеАдреса, Результат, РезультатГруппами); ТолькоЛатиницаВСтроке(ПредставлениеАдреса, СписокОшибок);
Иначе Иначе
@@ -1184,8 +1191,8 @@
Для каждого ИмяУровня Из ИменаУровней Цикл Для каждого ИмяУровня Из ИменаУровней Цикл
ТолькоЛатиницаВСтроке(Адрес[ИмяУровня], Результат, РезультатГруппами); ТолькоЛатиницаВСтроке(Адрес[ИмяУровня], СписокОшибок);
Если Результат.Количество() > 0 Тогда Если СписокОшибок.Количество() > 0 Тогда
Прервать; Прервать;
КонецЕсли; КонецЕсли;
@@ -1193,7 +1200,7 @@
КонецЕсли; КонецЕсли;
Возврат Результат; Возврат СписокОшибок;
КонецЕсли; КонецЕсли;
Если НЕ УправлениеКонтактнойИнформациейСлужебный.ЭтоНациональныйАдрес(Адрес) Тогда Если НЕ УправлениеКонтактнойИнформациейСлужебный.ЭтоНациональныйАдрес(Адрес) Тогда
@@ -1201,105 +1208,67 @@
// Адрес за пределами РФ // Адрес за пределами РФ
Если ФлагиПроверки.ТолькоНациональныйАдрес Тогда Если ФлагиПроверки.ТолькоНациональныйАдрес Тогда
ТекстОшибки = НСтр("ru = 'Адрес должен быть только российским.'"); ТекстОшибки = НСтр("ru = 'Адрес должен быть только российским.'");
Если РезультатГруппами Тогда СписокОшибок.Добавить(ПоляОшибки(ТекстОшибки, Ложь));
Результат.Добавить(Новый Структура("Поля, ТипОшибки, Сообщение", Новый Массив,
"НеЗаполненыОбязательныеПоля", ТекстОшибки));
Иначе
Результат.Добавить("/", ТекстОшибки);
КонецЕсли;
КонецЕсли; КонецЕсли;
Возврат Результат; Возврат СписокОшибок;
КонецЕсли; КонецЕсли;
// Отдельно проверяем пустой адрес, если необходимо его заполнение. // Адрес пустой
Если Не УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияЗаполнена(Адрес) Тогда Если Не УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияЗаполнена(Адрес) Тогда
// Адрес пуст
Если ФлагиПроверки.ОбязательноеЗаполнение Тогда Если ФлагиПроверки.ОбязательноеЗаполнение Тогда
// Но должен быть заполнен // Но должен быть заполнен
ТекстОшибки = НСтр("ru = 'Адрес не заполнен.'"); ТекстОшибки = НСтр("ru = 'Адрес не заполнен.'");
СписокОшибок.Добавить(ПоляОшибки(ТекстОшибки, Ложь));
Если РезультатГруппами Тогда
Результат = Новый Массив;
Результат.Добавить(Новый Структура("Поля, ТипОшибки, Сообщение", Новый Массив,
"НеЗаполненыОбязательныеПоля", ТекстОшибки));
Иначе
Результат = Новый СписокЗначений;
Результат.Добавить("/", ТекстОшибки);
КонецЕсли; КонецЕсли;
Возврат Результат Возврат СписокОшибок;
КонецЕсли;
// Адрес пуст и не должен быть заполнен - считаем его корректным.
Возврат ?(РезультатГруппами, Новый Массив, Новый СписокЗначений);
КонецЕсли; КонецЕсли;
ВсеОшибки = ОбщиеГруппыОшибокЗаполненияАдреса(Адрес, ФлагиПроверки); ВсеОшибки = ОбщиеГруппыОшибокЗаполненияАдреса(Адрес, ФлагиПроверки);
ПроверятьКлассификатор = ВсеОшибки.Количество() = 0;
ОшибкиКлассификатора = Новый СписокЗначений; Если ВсеОшибки.Количество() > 0 Тогда
Если ПроверятьКлассификатор И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
ЗаполнитьОшибкиАдресаПоКлассификатору(Адрес, ФлагиПроверки, ОшибкиКлассификатора);
КонецЕсли;
Если РезультатГруппами Тогда
НаименованиеГруппыОшибки = "ОшибкиПоКлассификатору";
КоличествоОшибок = ОшибкиКлассификатора.Количество();
Если КоличествоОшибок = 1 И ОшибкиКлассификатора[0].Значение <> Неопределено
И ОшибкиКлассификатора[0].Значение.ПутьXPath = Неопределено Тогда
ВсеОшибки.Добавить(ГруппаОшибокАдреса(НаименованиеГруппыОшибки, ОшибкиКлассификатора[0].Представление));
ИначеЕсли КоличествоОшибок > 0 Тогда
// Подробное описание ошибок
ВсеОшибки.Добавить(ГруппаОшибокАдреса(НаименованиеГруппыОшибки,
НСтр("ru = 'Части адреса не соответствуют адресному классификатору:'")));
ГруппаОшибокКлассификатора = ВсеОшибки[ВсеОшибки.ВГраница()];
СписокСущностей = "";
Для Каждого Элемент Из ОшибкиКлассификатора Цикл
ЭлементОшибки = Элемент.Значение;
Если ЭлементОшибки = Неопределено Тогда
// Абстрактная ошибка
ДобавитьОшибкуЗаполненияАдреса(ГруппаОшибокКлассификатора, "", Элемент.Представление);
Иначе
ДобавитьОшибкуЗаполненияАдреса(ГруппаОшибокКлассификатора, ЭлементОшибки.ПутьXPath, Элемент.Представление);
СписокСущностей = СписокСущностей + ", " + ЭлементОшибки.СущностьПоля;
КонецЕсли;
КонецЦикла;
ГруппаОшибокКлассификатора.Сообщение = ГруппаОшибокКлассификатора.Сообщение + Сред(СписокСущностей, 2);
КонецЕсли;
Возврат ВсеОшибки;
КонецЕсли;
// Объединяем все в список
Результат = Новый СписокЗначений;
Для Каждого Группа Из ВсеОшибки Цикл Для Каждого Группа Из ВсеОшибки Цикл
Для Каждого Поле Из Группа.Поля Цикл Для Каждого Поле Из Группа.Поля Цикл
Результат.Добавить(Поле.ИмяПоля, Поле.Сообщение, Истина); СписокОшибок.Добавить(ПоляОшибки( Поле.Сообщение, Истина, Поле.ИмяПоля));
КонецЦикла; КонецЦикла;
КонецЦикла; КонецЦикла;
Возврат СписокОшибок;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
ОшибкиКлассификатора = Новый СписокЗначений;
ЗаполнитьОшибкиАдресаПоКлассификатору(Адрес, ФлагиПроверки, ОшибкиКлассификатора);
Для Каждого ЭлементСписка Из ОшибкиКлассификатора Цикл Для Каждого ЭлементСписка Из ОшибкиКлассификатора Цикл
Результат.Добавить(ЭлементСписка.Значение.ПутьXPath, ЭлементСписка.Представление, ЭлементСписка.Значение.АдресПроверен); ДанныеОшибки = ЭлементСписка.Значение;
СписокОшибок.Добавить(ПоляОшибки(ЭлементСписка.Представление, ДанныеОшибки.АдресПроверен, ДанныеОшибки.ПутьXPath, ДанныеОшибки.Варианты));
КонецЦикла; КонецЦикла;
Возврат Результат; КонецЕсли;
Возврат СписокОшибок;
КонецФункции КонецФункции
Процедура ТолькоЛатиницаВСтроке(Значение, Знач Результат, Знач РезультатГруппами) Функция ПоляОшибки(ТекстОшибки, АдресПроверен, ИмяПоля = "Представление", ВариантАдреса = Неопределено)
Результат = Новый Структура;
Результат.Вставить("ТекстОшибки", ТекстОшибки);
Результат.Вставить("АдресПроверен", АдресПроверен);
Результат.Вставить("ИмяПоля", ИмяПоля);
Результат.Вставить("ВариантАдреса", ВариантАдреса);
Возврат Результат;
КонецФункции
Процедура ТолькоЛатиницаВСтроке(Значение, Знач Результат)
Если Не СтроковыеФункцииКлиентСервер.ТолькоЛатиницаВСтроке(Значение, Ложь, "1234567890,") Тогда Если Не СтроковыеФункцииКлиентСервер.ТолькоЛатиницаВСтроке(Значение, Ложь, "1234567890,") Тогда
ТекстОшибки = НСтр("ru = 'Адрес в международном формате должен быть набран латиницей.'"); ТекстОшибки = НСтр("ru = 'Адрес в международном формате должен быть набран латиницей.'");
Если РезультатГруппами Тогда Результат.Добавить(ПоляОшибки(ТекстОшибки, Истина));
Результат.Добавить(Новый Структура("Поля, ТипОшибки, Сообщение", Новый Массив,
"НеТолькоЛатиницаВАдресеМеждународногоФормата", ТекстОшибки));
Иначе
Результат.Добавить("/", ТекстОшибки).Пометка = Истина;
КонецЕсли;
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -1490,13 +1459,13 @@
Процедура ЗаполнитьОшибкиАдресаПоКлассификатору(АдресРФ, ФлагиПроверки, Результат) Процедура ЗаполнитьОшибкиАдресаПоКлассификатору(АдресРФ, ФлагиПроверки, Результат)
Адреса = Новый Массив; Адрес = Новый Массив;
Адреса.Добавить(Новый Структура("Адрес, ФорматАдреса", АдресРФ, "ФИАС")); Адрес.Добавить(Новый Структура("Адрес, ФорматАдреса", АдресРФ, "ФИАС"));
МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный"); МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный");
РезультатыАнализа = МодульАдресныйКлассификаторСлужебный.РезультатПроверкиАдресовПоКлассификатору(Адреса); РезультатыАнализа = МодульАдресныйКлассификаторСлужебный.РезультатПроверкиАдресовПоКлассификатору(Адрес);
Если РезультатыАнализа.Отказ Тогда Если РезультатыАнализа.Отказ Тогда
Результат.Добавить( Новый Структура("ПутьXPath, СущностьПоля, АдресПроверен", "/",, Ложь), РезультатыАнализа.КраткоеПредставлениеОшибки); Результат.Добавить(Новый Структура("ПутьXPath, СущностьПоля, АдресПроверен", "/",, Ложь), РезультатыАнализа.КраткоеПредставлениеОшибки);
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -1506,8 +1475,14 @@
Для Каждого ОшибкаАдреса Из РезультатПроверки.Ошибки Цикл Для Каждого ОшибкаАдреса Из РезультатПроверки.Ошибки Цикл
Ключ = ОшибкаАдреса.Ключ; Ключ = ОшибкаАдреса.Ключ;
Если Обработанные[Ключ] = Неопределено Тогда Если Обработанные[Ключ] = Неопределено Тогда
Результат.Добавить(Новый Структура("ПутьXPath, СущностьПоля, АдресПроверен", Ключ,, РезультатПроверки.АдресПроверен),
СокрЛП(ОшибкаАдреса.Текст + Символы.ПС + ОшибкаАдреса.Подсказка)); ОписаниеОшибки = Новый Структура;
ОписаниеОшибки.Вставить("ПутьXPath", Ключ);
ОписаниеОшибки.Вставить("СущностьПоля", Неопределено);
ОписаниеОшибки.Вставить("АдресПроверен", РезультатПроверки.АдресПроверен);
ОписаниеОшибки.Вставить("Варианты", РезультатПроверки.Варианты);
Результат.Добавить(ОписаниеОшибки, СокрЛП(ОшибкаАдреса.Текст + Символы.ПС + ОшибкаАдреса.Подсказка));
Обработанные[Ключ] = Истина; Обработанные[Ключ] = Истина;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
@@ -117,4 +117,13 @@
<usePurposes>PersonalComputer</usePurposes> <usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes> <usePurposes>MobileDevice</usePurposes>
</forms> </forms>
<forms uuid="c6a4d03d-f3b2-449c-8a2b-deb542dd2c99">
<name>ИсправлениеАдресов</name>
<synonym>
<key>ru</key>
<value>Исправление адресов</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
</mdclass:DataProcessor> </mdclass:DataProcessor>
@@ -1500,6 +1500,9 @@
</picture> </picture>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:FormGroup">
<name>ГруппаНадписиЗавершение</name>
<id>233</id>
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>ТекстОписанияЗагрузкиЗавершения</name> <name>ТекстОписанияЗагрузкиЗавершения</name>
<id>98</id> <id>98</id>
@@ -1540,6 +1543,62 @@
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:Button">
<name>ПроверитьВсеАдреса</name>
<id>237</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ПроверитьВсеАдресаРасширеннаяПодсказка</name>
<id>238</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Hyperlink</type>
<commandName>Form.Command.ПроверитьВсеАдреса</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Группа надписи завершение</value>
</title>
<extendedTooltip>
<name>ГруппаНадписиЗавершениеРасширеннаяПодсказка</name>
<id>234</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<visible>true</visible> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
@@ -2437,6 +2496,28 @@
<currentRowUse>DontUse</currentRowUse> <currentRowUse>DontUse</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse> <selectedRowsUse>Auto</selectedRowsUse>
</formCommands> </formCommands>
<formCommands>
<name>ПроверитьВсеАдреса</name>
<title>
<key>ru</key>
<value>Проверить все адреса...</value>
</title>
<id>8</id>
<toolTip>
<key>ru</key>
<value>Проверить все адреса</value>
</toolTip>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ПроверитьВсеАдреса</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<commandInterface> <commandInterface>
<navigationPanel/> <navigationPanel/>
<commandBar/> <commandBar/>
@@ -167,6 +167,8 @@
СохраняемыеВНастройкахДанныеМодифицированы = Истина; СохраняемыеВНастройкахДанныеМодифицированы = Истина;
КонецЕсли; КонецЕсли;
Элементы.ПроверитьВсеАдреса.Видимость = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтрольВеденияУчета");
КонецПроцедуры КонецПроцедуры
&НаСервере &НаСервере
@@ -370,6 +372,16 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ПроверитьВсеАдреса(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.КонтрольВеденияУчета") Тогда
МодульКонтрольВеденияУчетаСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("КонтрольВеденияУчетаСлужебныйКлиент");
МодульКонтрольВеденияУчетаСлужебныйКлиент.ОткрытьСписокПроверокВеденияУчета();
КонецЕсли;
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
@@ -934,5 +946,4 @@
КонецФункции КонецФункции
#КонецОбласти #КонецОбласти
@@ -65,10 +65,13 @@
ДвоичныеДанные = МенеджерЗаписиВерсииФайла.ХранимыйФайл.Получить(); ДвоичныеДанные = МенеджерЗаписиВерсииФайла.ХранимыйФайл.Получить();
МенеджерЗаписи = СоздатьМенеджерЗаписи(); НаборЗаписей = СоздатьНаборЗаписей();
МенеджерЗаписи.Файл = Выборка.Ссылка; НаборЗаписей.Отбор.Файл.Установить(Выборка.Ссылка);
МенеджерЗаписи.ДвоичныеДанныеФайла = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9));
МенеджерЗаписи.Записать(Истина); ЗаписьНабора = НаборЗаписей.Добавить();
ЗаписьНабора.Файл = Выборка.Ссылка;
ЗаписьНабора.ДвоичныеДанныеФайла = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9));
ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(НаборЗаписей, Истина);
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Выборка.Ссылка); ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Выборка.Ссылка);
ОбъектовОбработано = ОбъектовОбработано + 1; ОбъектовОбработано = ОбъектовОбработано + 1;
@@ -482,35 +482,45 @@
Если Не ОписаниеФайла.Статус Тогда Если Не ОписаниеФайла.Статус Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось получить файл описания web-сервиса НСтр("ru = 'Не удалось получить файл описания web-сервиса %1 по причине:
|по причине: |%2'"),
|%1'"), Адрес, ОписаниеФайла.СообщениеОбОшибке);
ОписаниеФайла.СообщениеОбОшибке);
КонецЕсли; КонецЕсли;
ИнтернетПрокси = Неопределено;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда
МодульПолучениеФайловИзИнтернета = ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернета");
ИнтернетПрокси = МодульПолучениеФайловИзИнтернета.ПолучитьПрокси(Адрес); ИнтернетПрокси = МодульПолучениеФайловИзИнтернета.ПолучитьПрокси(Адрес);
КонецЕсли;
Попытка Попытка
Определения = Новый WSОпределения(ОписаниеФайла.Путь, ИмяПользователя, Пароль, ИнтернетПрокси, Таймаут, ЗащищенноеСоединение); Определения = Новый WSОпределения(ОписаниеФайла.Путь, ИмяПользователя, Пароль, ИнтернетПрокси, Таймаут, ЗащищенноеСоединение);
Исключение Исключение
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( РезультатДиагностики = МодульПолучениеФайловИзИнтернета.ДиагностикаСоединения(Адрес);
НСтр("ru = 'Не удалось получить файл описания web-сервиса ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|по причине: НСтр("ru = 'Не удалось получить файл описания web-сервиса %1 по причине:
|Не удалось получить WS-определения для сохранения в кэше: |%2
|%1'"), |
КраткоеПредставлениеОшибки(ИнформацияОбОшибке())); |Результат диагностики:
|%3'"),
Адрес,
КраткоеПредставлениеОшибки(ИнформацияОбОшибке()),
РезультатДиагностики.ОписаниеОшибки);
СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1
|
|Трассировка:
|ЗащищенноеСоединение: %2
|Таймаут: %3'"),
ТекстОшибки,
Формат(ЗащищенноеСоединение, НСтр("ru = 'БЛ=Нет; БИ=Да'")),
Формат(Таймаут, "ЧГ=0"));
ЗаписьЖурналаРегистрации(НСтр("ru = 'Получение WSDL'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка, , , СообщениеОбОшибке);
ВызватьИсключение ТекстОшибки;
КонецПопытки; КонецПопытки;
Если Определения.Сервисы.Количество() = 0 Тогда Если Определения.Сервисы.Количество() = 0 Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось получить файл описания web-сервиса НСтр("ru = 'Не удалось получить файл описания web-сервиса по причине:
|по причине:
|В полученном файле не содержится ни одного описания сервиса. |В полученном файле не содержится ни одного описания сервиса.
|
|Возможно, адрес файла описания указан неверно: |Возможно, адрес файла описания указан неверно:
|%1'"), |%1'"),
Адрес); Адрес);
@@ -82,11 +82,14 @@
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый; ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый;
Блокировка.Заблокировать(); Блокировка.Заблокировать();
МенеджерЗаписиНаличиеФайлов = СоздатьМенеджерЗаписи(); НаборЗаписейНаличиеФайлов = СоздатьНаборЗаписей();
МенеджерЗаписиНаличиеФайлов.ОбъектСФайлами = ВладелецФайла; НаборЗаписейНаличиеФайлов.Отбор.ОбъектСФайлами.Установить(ВладелецФайла);
МенеджерЗаписиНаличиеФайлов.ЕстьФайлы = Истина;
МенеджерЗаписиНаличиеФайлов.ИдентификаторОбъекта = РаботаСФайламиСлужебный.ПолучитьОчереднойИдентификаторОбъекта(); ЗаписьНабораНаличиеФайлов = НаборЗаписейНаличиеФайлов.Добавить();
МенеджерЗаписиНаличиеФайлов.Записать(Истина); ЗаписьНабораНаличиеФайлов.ОбъектСФайлами = ВладелецФайла;
ЗаписьНабораНаличиеФайлов.ЕстьФайлы = Истина;
ЗаписьНабораНаличиеФайлов.ИдентификаторОбъекта = РаботаСФайламиСлужебный.ПолучитьОчереднойИдентификаторОбъекта();
ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(НаборЗаписейНаличиеФайлов, Истина);
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Выборка.Ссылка); ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Выборка.Ссылка);
ОбъектовОбработано = ОбъектовОбработано + 1; ОбъектовОбработано = ОбъектовОбработано + 1;
@@ -298,6 +298,7 @@
КонецЕсли; КонецЕсли;
Форма.Элементы.ГруппаОтветственные.Видимость = Не Форма.ЭтоПерсональнаяУчетнаяЗапись; Форма.Элементы.ГруппаОтветственные.Видимость = Не Форма.ЭтоПерсональнаяУчетнаяЗапись;
Форма.Элементы.УдалятьПисьмаПослеОтправки.Видимость = Не Форма.ЭтоПерсональнаяУчетнаяЗапись;
Форма.Элементы.ФорматПодписиДляНовыхСообщений.Доступность = Форма.Запись.ВключатьПодписьДляНовыхСообщений; Форма.Элементы.ФорматПодписиДляНовыхСообщений.Доступность = Форма.Запись.ВключатьПодписьДляНовыхСообщений;
Форма.Элементы.ФорматПодписиПриОтветеПересылке.Доступность = Форма.Запись.ВключатьПодписьПриОтветеПересылке; Форма.Элементы.ФорматПодписиПриОтветеПересылке.Доступность = Форма.Запись.ВключатьПодписьПриОтветеПересылке;
@@ -245,10 +245,13 @@
</items> </items>
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>ГруппаКоличествоПотоковОбновленияДоступа1</name> <name>ГруппаКоличествоПотоковОбновленияДоступа1</name>
<id>293</id> <id>309</id>
<items xsi:type="form:FormGroup">
<name>ГруппаКоличествоПотоковОбновленияДоступаПодсказка1</name>
<id>311</id>
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>КоличествоПотоковОбновленияДоступа1</name> <name>КоличествоПотоковОбновленияДоступа1</name>
<id>295</id> <id>313</id>
<visible>true</visible> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
@@ -257,14 +260,14 @@
<dataPath xsi:type="form:DataPath"> <dataPath xsi:type="form:DataPath">
<segments>КоличествоПотоковОбновленияДоступа</segments> <segments>КоличествоПотоковОбновленияДоступа</segments>
</dataPath> </dataPath>
<toolTipRepresentation>ShowAuto</toolTipRepresentation> <toolTipRepresentation>ShowBottom</toolTipRepresentation>
<handlers> <handlers>
<event>OnChange</event> <event>OnChange</event>
<name>КоличествоПотоковОбновленияДоступаПриИзменении</name> <name>КоличествоПотоковОбновленияДоступаПриИзменении</name>
</handlers> </handlers>
<extendedTooltip> <extendedTooltip>
<name>КоличествоПотоковОбновленияДоступа1РасширеннаяПодсказка</name> <name>КоличествоПотоковОбновленияДоступа1РасширеннаяПодсказка</name>
<id>297</id> <id>315</id>
<type>Label</type> <type>Label</type>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
@@ -274,7 +277,7 @@
</extendedTooltip> </extendedTooltip>
<contextMenu> <contextMenu>
<name>КоличествоПотоковОбновленияДоступа1КонтекстноеМеню</name> <name>КоличествоПотоковОбновленияДоступа1КонтекстноеМеню</name>
<id>296</id> <id>314</id>
<autoFill>true</autoFill> <autoFill>true</autoFill>
</contextMenu> </contextMenu>
<type>InputField</type> <type>InputField</type>
@@ -306,13 +309,10 @@
<userVisible> <userVisible>
<common>true</common> <common>true</common>
</userVisible> </userVisible>
<title> <toolTipRepresentation>ShowBottom</toolTipRepresentation>
<key>ru</key>
<value>1 поток</value>
</title>
<extendedTooltip> <extendedTooltip>
<name>ГруппаКоличествоПотоковОбновленияДоступа1РасширеннаяПодсказка</name> <name>ГруппаКоличествоПотоковОбновленияДоступаПодсказка1РасширеннаяПодсказка</name>
<id>294</id> <id>312</id>
<type>Label</type> <type>Label</type>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
@@ -322,7 +322,159 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>AlwaysHorizontal</group> <group>HorizontalIfPossible</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ВертикальныйОтступ1</name>
<id>316</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ВертикальныйОтступ1РасширеннаяПодсказка</name>
<id>318</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ВертикальныйОтступ1КонтекстноеМеню</name>
<id>317</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаБалансировкаНагрузкиНаДискПодсказка1</name>
<id>319</id>
<items xsi:type="form:FormField">
<name>БалансировкаНагрузкиНаДиск1</name>
<id>321</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>БалансировкаНагрузкиНаДиск</segments>
</dataPath>
<toolTipRepresentation>ShowBottom</toolTipRepresentation>
<handlers>
<event>OnChange</event>
<name>БалансировкаНагрузкиНаДискПриИзменении</name>
</handlers>
<extendedTooltip>
<name>БалансировкаНагрузкиНаДиск1РасширеннаяПодсказка</name>
<id>323</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>БалансировкаНагрузкиНаДиск1КонтекстноеМеню</name>
<id>322</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">
<width>12</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>false</horizontalStretch>
<wrap>true</wrap>
<listChoiceMode>true</listChoiceMode>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<choiceList>
<presentation>
<key>ru</key>
<value>Быстрый диск</value>
</presentation>
<value xsi:type="core:BooleanValue"/>
</choiceList>
<choiceList>
<presentation>
<key>ru</key>
<value>Медленный диск</value>
</presentation>
<value xsi:type="core:BooleanValue">
<value>true</value>
</value>
</choiceList>
<textSize>Normal</textSize>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<toolTipRepresentation>ShowBottom</toolTipRepresentation>
<extendedTooltip>
<name>ГруппаБалансировкаНагрузкиНаДискПодсказка1РасширеннаяПодсказка</name>
<id>320</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>HorizontalIfPossible</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>1 поток</value>
</title>
<extendedTooltip>
<name>ГруппаКоличествоПотоковОбновленияДоступа1РасширеннаяПодсказка</name>
<id>310</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<behavior>PopUp</behavior> <behavior>PopUp</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -556,10 +708,13 @@
</items> </items>
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>ГруппаКоличествоПотоковОбновленияДоступа2</name> <name>ГруппаКоличествоПотоковОбновленияДоступа2</name>
<id>298</id> <id>324</id>
<items xsi:type="form:FormGroup">
<name>ГруппаКоличествоПотоковОбновленияДоступаПодсказка2</name>
<id>326</id>
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>КоличествоПотоковОбновленияДоступа2</name> <name>КоличествоПотоковОбновленияДоступа2</name>
<id>300</id> <id>328</id>
<visible>true</visible> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
@@ -568,14 +723,14 @@
<dataPath xsi:type="form:DataPath"> <dataPath xsi:type="form:DataPath">
<segments>КоличествоПотоковОбновленияДоступа</segments> <segments>КоличествоПотоковОбновленияДоступа</segments>
</dataPath> </dataPath>
<toolTipRepresentation>ShowAuto</toolTipRepresentation> <toolTipRepresentation>ShowBottom</toolTipRepresentation>
<handlers> <handlers>
<event>OnChange</event> <event>OnChange</event>
<name>КоличествоПотоковОбновленияДоступаПриИзменении</name> <name>КоличествоПотоковОбновленияДоступаПриИзменении</name>
</handlers> </handlers>
<extendedTooltip> <extendedTooltip>
<name>КоличествоПотоковОбновленияДоступа2РасширеннаяПодсказка</name> <name>КоличествоПотоковОбновленияДоступа2РасширеннаяПодсказка</name>
<id>302</id> <id>330</id>
<type>Label</type> <type>Label</type>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
@@ -585,7 +740,7 @@
</extendedTooltip> </extendedTooltip>
<contextMenu> <contextMenu>
<name>КоличествоПотоковОбновленияДоступа2КонтекстноеМеню</name> <name>КоличествоПотоковОбновленияДоступа2КонтекстноеМеню</name>
<id>301</id> <id>329</id>
<autoFill>true</autoFill> <autoFill>true</autoFill>
</contextMenu> </contextMenu>
<type>InputField</type> <type>InputField</type>
@@ -617,13 +772,10 @@
<userVisible> <userVisible>
<common>true</common> <common>true</common>
</userVisible> </userVisible>
<title> <toolTipRepresentation>ShowBottom</toolTipRepresentation>
<key>ru</key>
<value>1 поток</value>
</title>
<extendedTooltip> <extendedTooltip>
<name>ГруппаКоличествоПотоковОбновленияДоступа2РасширеннаяПодсказка</name> <name>ГруппаКоличествоПотоковОбновленияДоступаПодсказка2РасширеннаяПодсказка</name>
<id>299</id> <id>327</id>
<type>Label</type> <type>Label</type>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
@@ -633,7 +785,159 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>AlwaysHorizontal</group> <group>HorizontalIfPossible</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ВертикальныйОтступ2</name>
<id>331</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ВертикальныйОтступ2РасширеннаяПодсказка</name>
<id>333</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ВертикальныйОтступ2КонтекстноеМеню</name>
<id>332</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаБалансировкаНагрузкиНаДискПодсказка2</name>
<id>334</id>
<items xsi:type="form:FormField">
<name>БалансировкаНагрузкиНаДиск2</name>
<id>336</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>БалансировкаНагрузкиНаДиск</segments>
</dataPath>
<toolTipRepresentation>ShowBottom</toolTipRepresentation>
<handlers>
<event>OnChange</event>
<name>БалансировкаНагрузкиНаДискПриИзменении</name>
</handlers>
<extendedTooltip>
<name>БалансировкаНагрузкиНаДиск2РасширеннаяПодсказка</name>
<id>338</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>БалансировкаНагрузкиНаДиск2КонтекстноеМеню</name>
<id>337</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">
<width>12</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>false</horizontalStretch>
<wrap>true</wrap>
<listChoiceMode>true</listChoiceMode>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<choiceList>
<presentation>
<key>ru</key>
<value>Быстрый диск</value>
</presentation>
<value xsi:type="core:BooleanValue"/>
</choiceList>
<choiceList>
<presentation>
<key>ru</key>
<value>Медленный диск</value>
</presentation>
<value xsi:type="core:BooleanValue">
<value>true</value>
</value>
</choiceList>
<textSize>Normal</textSize>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<toolTipRepresentation>ShowBottom</toolTipRepresentation>
<extendedTooltip>
<name>ГруппаБалансировкаНагрузкиНаДискПодсказка2РасширеннаяПодсказка</name>
<id>335</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>HorizontalIfPossible</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>1 поток</value>
</title>
<extendedTooltip>
<name>ГруппаКоличествоПотоковОбновленияДоступа2РасширеннаяПодсказка</name>
<id>325</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<behavior>PopUp</behavior> <behavior>PopUp</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -3406,6 +3710,24 @@
<common>true</common> <common>true</common>
</edit> </edit>
</attributes> </attributes>
<attributes>
<name>БалансировкаНагрузкиНаДиск</name>
<title>
<key>ru</key>
<value>Оптимизировать для базы данных
размещенной на диске</value>
</title>
<id>15</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands> <formCommands>
<name>РучноеУправление</name> <name>РучноеУправление</name>
<title> <title>
@@ -40,15 +40,31 @@
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
КоличествоПотоковОбновленияДоступа = Константы.КоличествоПотоковОбновленияДоступа.Получить(); КоличествоПотоковОбновленияДоступа = Константы.КоличествоПотоковОбновленияДоступа.Получить();
Если УправлениеДоступомСлужебный.ДоступнаБалансировкаНагрузкиНаДиск() Тогда
БалансировкаНагрузкиНаДиск = УправлениеДоступомСлужебный.БалансировкаНагрузкиНаДиск();
Иначе
БалансировкаНагрузкиНаДиск = Ложь;
Элементы.БалансировкаНагрузкиНаДиск1.Доступность = Ложь;
Элементы.БалансировкаНагрузкиНаДиск2.Доступность = Ложь;
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь); УстановитьПривилегированныйРежим(Ложь);
Если КоличествоПотоковОбновленияДоступа = 0 Тогда Если КоличествоПотоковОбновленияДоступа = 0 Тогда
КоличествоПотоковОбновленияДоступа = 1; КоличествоПотоковОбновленияДоступа = 1;
КонецЕсли; КонецЕсли;
Элементы.КоличествоПотоковОбновленияДоступа1.Подсказка = Элементы.ГруппаКоличествоПотоковОбновленияДоступаПодсказка1.Подсказка =
Метаданные.Константы.КоличествоПотоковОбновленияДоступа.Подсказка; Метаданные.Константы.КоличествоПотоковОбновленияДоступа.Подсказка;
Элементы.КоличествоПотоковОбновленияДоступа2.Подсказка = Элементы.ГруппаКоличествоПотоковОбновленияДоступаПодсказка2.Подсказка =
Метаданные.Константы.КоличествоПотоковОбновленияДоступа.Подсказка; Метаданные.Константы.КоличествоПотоковОбновленияДоступа.Подсказка;
Элементы.ГруппаБалансировкаНагрузкиНаДискПодсказка1.Подсказка =
НСтр("ru = 'Если при обновлении доступа скорость передачи данных
|с диска HDD уменьшается до 2-10 Мб/сек вместо
|40-150 мб/сек и диск занят на 100% в течении
|5-10 минут или более, то диск медленный.
|Прим: SSD диск считается быстрым.'");
Элементы.ГруппаБалансировкаНагрузкиНаДискПодсказка2.Подсказка =
Элементы.ГруппаБалансировкаНагрузкиНаДискПодсказка1.Подсказка;
Если ОбщегоНазначения.ИнформационнаяБазаФайловая() Если ОбщегоНазначения.ИнформационнаяБазаФайловая()
Или ОбщегоНазначения.РазделениеВключено() Тогда Или ОбщегоНазначения.РазделениеВключено() Тогда
@@ -135,6 +151,13 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура БалансировкаНагрузкиНаДискПриИзменении(Элемент)
БалансировкаНагрузкиНаДискПриИзмененииНаСервере(БалансировкаНагрузкиНаДиск);
КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура ПоследнееЗавершениеОбновленияДоступаОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) Процедура ПоследнееЗавершениеОбновленияДоступаОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
@@ -344,6 +367,14 @@
КонецПроцедуры КонецПроцедуры
&НаСервереБезКонтекста
Процедура БалансировкаНагрузкиНаДискПриИзмененииНаСервере(БалансировкаНагрузкиНаДиск)
УправлениеДоступомСлужебный.УстановитьБалансировкуНагрузкиНаДиск(БалансировкаНагрузкиНаДиск);
БалансировкаНагрузкиНаДиск = УправлениеДоступомСлужебный.БалансировкаНагрузкиНаДиск();
КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура ОбновитьЗаголовокГруппыКоличествоПотоковОбновленияДоступа() Процедура ОбновитьЗаголовокГруппыКоличествоПотоковОбновленияДоступа()
@@ -101,23 +101,27 @@
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый; ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый;
Блокировка.Заблокировать(); Блокировка.Заблокировать();
МенеджерЗаписи = СоздатьМенеджерЗаписи(); НаборЗаписей = СоздатьНаборЗаписей();
ЗаполнитьЗначенияСвойств(МенеджерЗаписи, Выборка.Ссылка); НаборЗаписей.Отбор.Файл.Установить(Выборка.Ссылка);
МенеджерЗаписи.Файл = Выборка.Ссылка;
ЗаписьНабора = НаборЗаписей.Добавить();
ЗаполнитьЗначенияСвойств(ЗаписьНабора, Выборка.Ссылка);
ЗаписьНабора.Файл = Выборка.Ссылка;
СтруктураРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Выборка.Ссылка, "Автор, ВладелецФайла"); СтруктураРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Выборка.Ссылка, "Автор, ВладелецФайла");
МенеджерЗаписи.Автор = СтруктураРеквизитов.Автор; ЗаписьНабора.Автор = СтруктураРеквизитов.Автор;
МенеджерЗаписи.ВладелецФайла = СтруктураРеквизитов.ВладелецФайла; ЗаписьНабора.ВладелецФайла = СтруктураРеквизитов.ВладелецФайла;
Если Выборка.Ссылка.ПодписанЭП И Выборка.Ссылка.Зашифрован Тогда Если Выборка.Ссылка.ПодписанЭП И Выборка.Ссылка.Зашифрован Тогда
МенеджерЗаписи.НомерКартинкиПодписанЗашифрован = 2; ЗаписьНабора.НомерКартинкиПодписанЗашифрован = 2;
ИначеЕсли Выборка.Ссылка.Зашифрован Тогда ИначеЕсли Выборка.Ссылка.Зашифрован Тогда
МенеджерЗаписи.НомерКартинкиПодписанЗашифрован = 1; ЗаписьНабора.НомерКартинкиПодписанЗашифрован = 1;
ИначеЕсли Выборка.Ссылка.ПодписанЭП Тогда ИначеЕсли Выборка.Ссылка.ПодписанЭП Тогда
МенеджерЗаписи.НомерКартинкиПодписанЗашифрован = 0; ЗаписьНабора.НомерКартинкиПодписанЗашифрован = 0;
Иначе Иначе
МенеджерЗаписи.НомерКартинкиПодписанЗашифрован = -1; ЗаписьНабора.НомерКартинкиПодписанЗашифрован = -1;
КонецЕсли; КонецЕсли;
МенеджерЗаписи.Записать(); ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(НаборЗаписей, Истина);
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Выборка.Ссылка); ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Выборка.Ссылка);
ОбъектовОбработано = ОбъектовОбработано + 1; ОбъектовОбработано = ОбъектовОбработано + 1;
@@ -201,12 +201,10 @@
| ГруппыДоступа.Ссылка КАК ГруппаДоступа, | ГруппыДоступа.Ссылка КАК ГруппаДоступа,
| ГруппыДоступа.Профиль КАК Профиль, | ГруппыДоступа.Профиль КАК Профиль,
| ГруппыДоступаПользователи.Пользователь КАК Пользователь, | ГруппыДоступаПользователи.Пользователь КАК Пользователь,
| ВЫБОР | НЕ ТИПЗНАЧЕНИЯ(ГруппыДоступаПользователи.Пользователь) В (
| КОГДА ТИПЗНАЧЕНИЯ(ГруппыДоступаПользователи.Пользователь) <> ТИП(Справочник.Пользователи) | ТИП(Справочник.Пользователи),
| И ТИПЗНАЧЕНИЯ(ГруппыДоступаПользователи.Пользователь) <> ТИП(Справочник.ВнешниеПользователи) | ТИП(Справочник.ВнешниеПользователи)) КАК ГрупповоеУчастие,
| ТОГДА ИСТИНА | ГруппыДоступа.Ответственный
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ГрупповоеУчастие
|ПОМЕСТИТЬ ГруппыДоступаПользователя |ПОМЕСТИТЬ ГруппыДоступаПользователя
|ИЗ |ИЗ
| Справочник.ГруппыДоступа КАК ГруппыДоступа | Справочник.ГруппыДоступа КАК ГруппыДоступа
@@ -233,10 +231,10 @@
| ГруппыДоступаПользователя.ГруппаДоступа КАК ГруппаДоступа, | ГруппыДоступаПользователя.ГруппаДоступа КАК ГруппаДоступа,
| ПРЕДСТАВЛЕНИЕ(ГруппыДоступаПользователя.ГруппаДоступа) КАК ПредставлениеГруппыДоступа, | ПРЕДСТАВЛЕНИЕ(ГруппыДоступаПользователя.ГруппаДоступа) КАК ПредставлениеГруппыДоступа,
| ГруппыДоступаПользователя.Пользователь КАК Участник, | ГруппыДоступаПользователя.Пользователь КАК Участник,
| ГруппыДоступаПользователя.Пользователь.Наименование КАК ПредставлениеУчастника, | ПРЕДСТАВЛЕНИЕ(ГруппыДоступаПользователя.Пользователь) КАК ПредставлениеУчастника,
| ГруппыДоступаПользователя.ГрупповоеУчастие КАК ГрупповоеУчастие, | ГруппыДоступаПользователя.ГрупповоеУчастие КАК ГрупповоеУчастие,
| ГруппыДоступаПользователя.ГруппаДоступа.Ответственный КАК Ответственный, | ГруппыДоступаПользователя.ГруппаДоступа.Ответственный КАК Ответственный,
| ГруппыДоступаПользователя.ГруппаДоступа.Ответственный.Наименование КАК ПредставлениеОтветственного, | ПРЕДСТАВЛЕНИЕ(ГруппыДоступаПользователя.Ответственный) КАК ПредставлениеОтветственного,
| ГруппыДоступаПользователя.ГруппаДоступа.Комментарий КАК Комментарий, | ГруппыДоступаПользователя.ГруппаДоступа.Комментарий КАК Комментарий,
| ГруппыДоступаПользователя.ГруппаДоступа.Профиль КАК Профиль, | ГруппыДоступаПользователя.ГруппаДоступа.Профиль КАК Профиль,
| ПРЕДСТАВЛЕНИЕ(ГруппыДоступаПользователя.ГруппаДоступа.Профиль) КАК ПредставлениеПрофиля | ПРЕДСТАВЛЕНИЕ(ГруппыДоступаПользователя.ГруппаДоступа.Профиль) КАК ПредставлениеПрофиля
@@ -288,7 +286,7 @@
| ИНАЧЕ ЛОЖЬ | ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ГрупповоеУчастие, | КОНЕЦ КАК ГрупповоеУчастие,
| НастройкиПравОбъектов.Пользователь КАК Пользователь, | НастройкиПравОбъектов.Пользователь КАК Пользователь,
| НастройкиПравОбъектов.Пользователь.Наименование КАК ПользовательНаименование, | ПРЕДСТАВЛЕНИЕ(НастройкиПравОбъектов.Пользователь) КАК ПользовательНаименование,
| НастройкиПравОбъектов.Право КАК Право, | НастройкиПравОбъектов.Право КАК Право,
| НастройкиПравОбъектов.ПравоЗапрещено КАК ПравоЗапрещено, | НастройкиПравОбъектов.ПравоЗапрещено КАК ПравоЗапрещено,
| НастройкиПравОбъектов.НаследованиеРазрешено КАК НаследованиеРазрешено | НастройкиПравОбъектов.НаследованиеРазрешено КАК НаследованиеРазрешено
@@ -412,14 +410,14 @@
| ПраваРолейПрофилей.Таблица.Имя КАК Объект, | ПраваРолейПрофилей.Таблица.Имя КАК Объект,
| ПраваРолейПрофилей.Таблица.Синоним КАК ПредставлениеОбъекта, | ПраваРолейПрофилей.Таблица.Синоним КАК ПредставлениеОбъекта,
| ПраваРолейПрофилей.Профиль КАК Профиль, | ПраваРолейПрофилей.Профиль КАК Профиль,
| ПраваРолейПрофилей.Профиль.Наименование КАК ПредставлениеПрофиля, | ПРЕДСТАВЛЕНИЕ(ПраваРолейПрофилей.Профиль) КАК ПредставлениеПрофиля,
| ПраваРолейПрофилей.Роль.Имя КАК Роль, | ПраваРолейПрофилей.Роль.Имя КАК Роль,
| ПраваРолейПрофилей.Роль.Синоним КАК ПредставлениеРоли, | ПраваРолейПрофилей.Роль.Синоним КАК ПредставлениеРоли,
| ПраваРолейПрофилей.ВидРолей КАК ВидРолей, | ПраваРолейПрофилей.ВидРолей КАК ВидРолей,
| ПраваРолейПрофилей.ЧтениеБезОграничения КАК ЧтениеБезОграничения, | ПраваРолейПрофилей.ЧтениеБезОграничения КАК ЧтениеБезОграничения,
| ПраваРолейПрофилей.Просмотр КАК Просмотр, | ПраваРолейПрофилей.Просмотр КАК Просмотр,
| ПраваРолейПрофилей.ГруппаДоступа КАК ГруппаДоступа, | ПраваРолейПрофилей.ГруппаДоступа КАК ГруппаДоступа,
| ПраваРолейПрофилей.ГруппаДоступа.Наименование КАК ПредставлениеГруппыДоступа, | ПРЕДСТАВЛЕНИЕ(ПраваРолейПрофилей.ГруппаДоступа) КАК ПредставлениеГруппыДоступа,
| ПраваРолейПрофилей.ВидДоступа КАК ВидДоступа, | ПраваРолейПрофилей.ВидДоступа КАК ВидДоступа,
| ПраваРолейПрофилей.ПредставлениеВидаДоступа КАК ПредставлениеВидаДоступа, | ПраваРолейПрофилей.ПредставлениеВидаДоступа КАК ПредставлениеВидаДоступа,
| ПраваРолейПрофилей.ВсеРазрешены КАК ВсеРазрешены, | ПраваРолейПрофилей.ВсеРазрешены КАК ВсеРазрешены,
@@ -513,7 +511,7 @@
| ПраваРолейПрофилей.Таблица.Имя КАК Объект, | ПраваРолейПрофилей.Таблица.Имя КАК Объект,
| ПраваРолейПрофилей.Таблица.Синоним КАК ПредставлениеОбъекта, | ПраваРолейПрофилей.Таблица.Синоним КАК ПредставлениеОбъекта,
| ПраваРолейПрофилей.Профиль КАК Профиль, | ПраваРолейПрофилей.Профиль КАК Профиль,
| ПраваРолейПрофилей.Профиль.Наименование КАК ПредставлениеПрофиля, | ПРЕДСТАВЛЕНИЕ(ПраваРолейПрофилей.Профиль) КАК ПредставлениеПрофиля,
| ПраваРолейПрофилей.Роль.Имя КАК Роль, | ПраваРолейПрофилей.Роль.Имя КАК Роль,
| ПраваРолейПрофилей.Роль.Синоним КАК ПредставлениеРоли, | ПраваРолейПрофилей.Роль.Синоним КАК ПредставлениеРоли,
| ПраваРолейПрофилей.ВидРолей КАК ВидРолей, | ПраваРолейПрофилей.ВидРолей КАК ВидРолей,
@@ -524,7 +522,7 @@
| ПраваРолейПрофилей.ИнтерактивноеДобавление КАК ИнтерактивноеДобавление, | ПраваРолейПрофилей.ИнтерактивноеДобавление КАК ИнтерактивноеДобавление,
| ПраваРолейПрофилей.Редактирование КАК Редактирование, | ПраваРолейПрофилей.Редактирование КАК Редактирование,
| ПраваРолейПрофилей.ГруппаДоступа КАК ГруппаДоступа, | ПраваРолейПрофилей.ГруппаДоступа КАК ГруппаДоступа,
| ПраваРолейПрофилей.ГруппаДоступа.Наименование КАК ПредставлениеГруппыДоступа, | ПРЕДСТАВЛЕНИЕ(ПраваРолейПрофилей.ГруппаДоступа) КАК ПредставлениеГруппыДоступа,
| ПраваРолейПрофилей.ВидДоступа КАК ВидДоступа, | ПраваРолейПрофилей.ВидДоступа КАК ВидДоступа,
| ПраваРолейПрофилей.ПредставлениеВидаДоступа КАК ПредставлениеВидаДоступа, | ПраваРолейПрофилей.ПредставлениеВидаДоступа КАК ПредставлениеВидаДоступа,
| ПраваРолейПрофилей.ВсеРазрешены КАК ВсеРазрешены, | ПраваРолейПрофилей.ВсеРазрешены КАК ВсеРазрешены,
@@ -697,7 +695,7 @@
Процедура ВывестиДоступныеДляПросмотра(Знач ВозможныеПрава, Знач Макет, Знач РезультатЗапроса, Знач УпрощенныйИнтерфейс) Процедура ВывестиДоступныеДляПросмотра(Знач ВозможныеПрава, Знач Макет, Знач РезультатЗапроса, Знач УпрощенныйИнтерфейс)
ОбластьОтступ = Макет.ПолучитьОбласть("Отступ"); ОбластьОтступ = Макет.ПолучитьОбласть("Отступ");
ПраваОбъектов = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); ПраваОбъектов = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); // ДеревоЗначений
ПраваОбъектов.Строки.Сортировать( ПраваОбъектов.Строки.Сортировать(
"ПорядокВидаОбъектов Возр, "ПорядокВидаОбъектов Возр,
@@ -947,7 +945,7 @@
Процедура ВывестиДоступныеДляРедактирования(Знач ВозможныеПрава, Знач Макет, Знач РезультатЗапроса, Знач УпрощенныйИнтерфейс) Процедура ВывестиДоступныеДляРедактирования(Знач ВозможныеПрава, Знач Макет, Знач РезультатЗапроса, Знач УпрощенныйИнтерфейс)
ОбластьОтступ = Макет.ПолучитьОбласть("Отступ"); ОбластьОтступ = Макет.ПолучитьОбласть("Отступ");
ПраваОбъектов = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); ПраваОбъектов = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); // ДеревоЗначений
ПраваОбъектов.Строки.Сортировать( ПраваОбъектов.Строки.Сортировать(
"ПорядокВидаОбъектов Возр, "ПорядокВидаОбъектов Возр,
|ПредставлениеОбъекта Возр, |ПредставлениеОбъекта Возр,
@@ -1278,7 +1276,7 @@
ОбластьОтступ = Макет.ПолучитьОбласть("Отступ"); ОбластьОтступ = Макет.ПолучитьОбласть("Отступ");
НастройкиПрав = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); НастройкиПрав = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); // ТаблицаЗначений
НастройкиПрав.Колонки.Добавить("ТипОбъектовПолноеИмя"); НастройкиПрав.Колонки.Добавить("ТипОбъектовПолноеИмя");
НастройкиПрав.Колонки.Добавить("ПредставлениеВидаОбъектов"); НастройкиПрав.Колонки.Добавить("ПредставлениеВидаОбъектов");
НастройкиПрав.Колонки.Добавить("ПолноеНаименование"); НастройкиПрав.Колонки.Добавить("ПолноеНаименование");
@@ -320,6 +320,7 @@
ТипСмещенияТабличногоДокумента.ПоВертикали); ТипСмещенияТабличногоДокумента.ПоВертикали);
ДокументРезультат.ФиксацияСверху = 0; ДокументРезультат.ФиксацияСверху = 0;
ДокументРезультат.ФиксацияСлева = 0;
Иначе Иначе
@@ -630,18 +630,14 @@
<dcscor:parameter>Размещение</dcscor:parameter> <dcscor:parameter>Размещение</dcscor:parameter>
<dcscor:value xsi:type="dcscor:DataCompositionTextPlacementType">Wrap</dcscor:value> <dcscor:value xsi:type="dcscor:DataCompositionTextPlacementType">Wrap</dcscor:value>
</dcscor:item> </dcscor:item>
<dcscor:item>
<dcscor:parameter>МинимальнаяШирина</dcscor:parameter>
<dcscor:value xsi:type="xs:decimal">2.75</dcscor:value>
</dcscor:item>
<dcscor:item>
<dcscor:parameter>МаксимальнаяШирина</dcscor:parameter>
<dcscor:value xsi:type="xs:decimal">2.75</dcscor:value>
</dcscor:item>
<dcscor:item> <dcscor:item>
<dcscor:parameter>РежимИзмененияРазмераКолонки</dcscor:parameter> <dcscor:parameter>РежимИзмененияРазмераКолонки</dcscor:parameter>
<dcscor:value xsi:type="v8ui:SizeChangeMode">QuickChange</dcscor:value> <dcscor:value xsi:type="v8ui:SizeChangeMode">QuickChange</dcscor:value>
</dcscor:item> </dcscor:item>
<dcscor:item>
<dcscor:parameter>РастягиватьПоГоризонтали</dcscor:parameter>
<dcscor:value xsi:type="xs:boolean">true</dcscor:value>
</dcscor:item>
<dcscor:item> <dcscor:item>
<dcscor:parameter>Картинка</dcscor:parameter> <dcscor:parameter>Картинка</dcscor:parameter>
<dcscor:value xsi:type="v8ui:Picture" ref="v8ui:Информация"/> <dcscor:value xsi:type="v8ui:Picture" ref="v8ui:Информация"/>
@@ -662,12 +658,8 @@
<dcscor:parameter>ОбъединятьПоГоризонтали</dcscor:parameter> <dcscor:parameter>ОбъединятьПоГоризонтали</dcscor:parameter>
<dcscor:value xsi:type="xs:boolean">true</dcscor:value> <dcscor:value xsi:type="xs:boolean">true</dcscor:value>
</dcscor:item> </dcscor:item>
</dcsat:appearance>
</dcsat:tableCell>
<dcsat:tableCell>
<dcsat:appearance>
<dcscor:item> <dcscor:item>
<dcscor:parameter>ОбъединятьПоГоризонтали</dcscor:parameter> <dcscor:parameter>РастягиватьПоГоризонтали</dcscor:parameter>
<dcscor:value xsi:type="xs:boolean">true</dcscor:value> <dcscor:value xsi:type="xs:boolean">true</dcscor:value>
</dcscor:item> </dcscor:item>
</dcsat:appearance> </dcsat:appearance>
@@ -678,12 +670,8 @@
<dcscor:parameter>ОбъединятьПоГоризонтали</dcscor:parameter> <dcscor:parameter>ОбъединятьПоГоризонтали</dcscor:parameter>
<dcscor:value xsi:type="xs:boolean">true</dcscor:value> <dcscor:value xsi:type="xs:boolean">true</dcscor:value>
</dcscor:item> </dcscor:item>
</dcsat:appearance>
</dcsat:tableCell>
<dcsat:tableCell>
<dcsat:appearance>
<dcscor:item> <dcscor:item>
<dcscor:parameter>ОбъединятьПоГоризонтали</dcscor:parameter> <dcscor:parameter>РастягиватьПоГоризонтали</dcscor:parameter>
<dcscor:value xsi:type="xs:boolean">true</dcscor:value> <dcscor:value xsi:type="xs:boolean">true</dcscor:value>
</dcscor:item> </dcscor:item>
</dcsat:appearance> </dcsat:appearance>
@@ -694,12 +682,8 @@
<dcscor:parameter>ОбъединятьПоГоризонтали</dcscor:parameter> <dcscor:parameter>ОбъединятьПоГоризонтали</dcscor:parameter>
<dcscor:value xsi:type="xs:boolean">true</dcscor:value> <dcscor:value xsi:type="xs:boolean">true</dcscor:value>
</dcscor:item> </dcscor:item>
</dcsat:appearance>
</dcsat:tableCell>
<dcsat:tableCell>
<dcsat:appearance>
<dcscor:item> <dcscor:item>
<dcscor:parameter>ОбъединятьПоГоризонтали</dcscor:parameter> <dcscor:parameter>РастягиватьПоГоризонтали</dcscor:parameter>
<dcscor:value xsi:type="xs:boolean">true</dcscor:value> <dcscor:value xsi:type="xs:boolean">true</dcscor:value>
</dcscor:item> </dcscor:item>
</dcsat:appearance> </dcsat:appearance>
@@ -710,6 +694,10 @@
<dcscor:parameter>ОбъединятьПоГоризонтали</dcscor:parameter> <dcscor:parameter>ОбъединятьПоГоризонтали</dcscor:parameter>
<dcscor:value xsi:type="xs:boolean">true</dcscor:value> <dcscor:value xsi:type="xs:boolean">true</dcscor:value>
</dcscor:item> </dcscor:item>
<dcscor:item>
<dcscor:parameter>РастягиватьПоГоризонтали</dcscor:parameter>
<dcscor:value xsi:type="xs:boolean">true</dcscor:value>
</dcscor:item>
</dcsat:appearance> </dcsat:appearance>
</dcsat:tableCell> </dcsat:tableCell>
<dcsat:tableCell> <dcsat:tableCell>
@@ -718,11 +706,81 @@
<dcscor:parameter>ОбъединятьПоГоризонтали</dcscor:parameter> <dcscor:parameter>ОбъединятьПоГоризонтали</dcscor:parameter>
<dcscor:value xsi:type="xs:boolean">true</dcscor:value> <dcscor:value xsi:type="xs:boolean">true</dcscor:value>
</dcscor:item> </dcscor:item>
<dcscor:item>
<dcscor:parameter>РастягиватьПоГоризонтали</dcscor:parameter>
<dcscor:value xsi:type="xs:boolean">true</dcscor:value>
</dcscor:item>
</dcsat:appearance>
</dcsat:tableCell>
<dcsat:tableCell>
<dcsat:appearance>
<dcscor:item>
<dcscor:parameter>ОбъединятьПоГоризонтали</dcscor:parameter>
<dcscor:value xsi:type="xs:boolean">true</dcscor:value>
</dcscor:item>
<dcscor:item>
<dcscor:parameter>РастягиватьПоГоризонтали</dcscor:parameter>
<dcscor:value xsi:type="xs:boolean">true</dcscor:value>
</dcscor:item>
</dcsat:appearance>
</dcsat:tableCell>
<dcsat:tableCell>
<dcsat:appearance>
<dcscor:item>
<dcscor:parameter>ОбъединятьПоГоризонтали</dcscor:parameter>
<dcscor:value xsi:type="xs:boolean">true</dcscor:value>
</dcscor:item>
<dcscor:item>
<dcscor:parameter>РастягиватьПоГоризонтали</dcscor:parameter>
<dcscor:value xsi:type="xs:boolean">true</dcscor:value>
</dcscor:item>
</dcsat:appearance>
</dcsat:tableCell>
<dcsat:tableCell>
<dcsat:appearance>
<dcscor:item>
<dcscor:parameter>ОбъединятьПоГоризонтали</dcscor:parameter>
<dcscor:value xsi:type="xs:boolean">true</dcscor:value>
</dcscor:item>
<dcscor:item>
<dcscor:parameter>РастягиватьПоГоризонтали</dcscor:parameter>
<dcscor:value xsi:type="xs:boolean">true</dcscor:value>
</dcscor:item>
</dcsat:appearance> </dcsat:appearance>
</dcsat:tableCell> </dcsat:tableCell>
</dcsat:item> </dcsat:item>
</template> </template>
</template> </template>
<template>
<name>Макет3</name>
<template xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template" xsi:type="dcsat:AreaTemplate">
<dcsat:item xsi:type="dcsat:TableRow">
<dcsat:tableCell>
<dcsat:item xsi:type="dcsat:Field">
<dcsat:value xsi:type="v8:LocalStringType">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Проверка ведения учета </v8:content>
</v8:item>
</dcsat:value>
</dcsat:item>
<dcsat:item xsi:type="dcsat:Field">
<dcsat:value xsi:type="dcscor:Parameter">ИнформацияОПоследнейПроверке</dcsat:value>
</dcsat:item>
<dcsat:appearance>
<dcscor:item>
<dcscor:parameter>РастягиватьПоГоризонтали</dcscor:parameter>
<dcscor:value xsi:type="xs:boolean">true</dcscor:value>
</dcscor:item>
</dcsat:appearance>
</dcsat:tableCell>
</dcsat:item>
</template>
<parameter xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template" xsi:type="dcsat:ExpressionAreaTemplateParameter">
<dcsat:name>ИнформацияОПоследнейПроверке</dcsat:name>
<dcsat:expression>ПараметрыДанных.ИнформацияОПоследнейПроверке</dcsat:expression>
</parameter>
</template>
<groupTemplate> <groupTemplate>
<groupName>Ответственный</groupName> <groupName>Ответственный</groupName>
<templateType>OverallFooter</templateType> <templateType>OverallFooter</templateType>
@@ -733,6 +791,11 @@
<templateType>Header</templateType> <templateType>Header</templateType>
<template>Макет2</template> <template>Макет2</template>
</groupTemplate> </groupTemplate>
<groupTemplate>
<groupName>ИнформацияОПоследнейПроверке</groupName>
<templateType>Header</templateType>
<template>Макет3</template>
</groupTemplate>
<settingsVariant> <settingsVariant>
<dcsset:name>Основной</dcsset:name> <dcsset:name>Основной</dcsset:name>
<dcsset:presentation xsi:type="v8:LocalStringType"> <dcsset:presentation xsi:type="v8:LocalStringType">
@@ -2626,6 +2626,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>
@@ -3165,93 +3252,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>InformationRegister.ПараметрыРаботыПрограммы</name> <name>InformationRegister.ПараметрыРаботыПрограммы</name>
<right> <right>
@@ -3737,6 +3737,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>InformationRegister.НеразделенныеПользователи</name> <name>InformationRegister.НеразделенныеПользователи</name>
<right> <right>
@@ -4430,45 +4469,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>Catalog.ЗначенияСвойствОбъектовИерархия</name> <name>Catalog.ЗначенияСвойствОбъектовИерархия</name>
<right> <right>
@@ -109,7 +109,15 @@
| ВариантыОтчетов.Автор, | ВариантыОтчетов.Автор,
| ВариантыОтчетов.Пользовательский, | ВариантыОтчетов.Пользовательский,
| ВариантыОтчетов.ТипОтчета, | ВариантыОтчетов.ТипОтчета,
| ВариантыОтчетов.Отчет.Имя КАК ИмяОтчета | ВЫБОР
| КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетов.Отчет) = ТИП(Справочник.ИдентификаторыОбъектовМетаданных)
| ТОГДА ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК Справочник.ИдентификаторыОбъектовМетаданных).Имя
| КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетов.Отчет) = ТИП(Справочник.ИдентификаторыОбъектовРасширений)
| ТОГДА ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК Справочник.ИдентификаторыОбъектовРасширений).Имя
| КОГДА ТИПЗНАЧЕНИЯ(ВариантыОтчетов.Отчет) = ТИП(Справочник.ДополнительныеОтчетыИОбработки)
| ТОГДА ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК Справочник.ДополнительныеОтчетыИОбработки).ИмяОбъекта
| ИНАЧЕ ВЫРАЗИТЬ(ВариантыОтчетов.Отчет КАК СТРОКА(150))
| КОНЕЦ КАК ИмяОтчета
|ИЗ |ИЗ
| Справочник.ВариантыОтчетов КАК ВариантыОтчетов | Справочник.ВариантыОтчетов КАК ВариантыОтчетов
|ГДЕ |ГДЕ
@@ -464,6 +464,15 @@
КонецЕсли; КонецЕсли;
Если НаименованиеМодифицировано Тогда
Поиск = Новый Структура("КодЯзыка", ТекущийЯзык().КодЯзыка);
НайденныеПредставления = Объект.Представления.НайтиСтроки(Поиск);
Если НайденныеПредставления.Количество() > 0 Тогда
НайденныеПредставления[0].Наименование = Объект.Наименование;
КонецЕсли;
КонецЕсли;
Доступен = ?(Объект.ТолькоДляАвтора, "ТолькоДляАвтора", "УказаннымПользователям"); Доступен = ?(Объект.ТолькоДляАвтора, "ТолькоДляАвтора", "УказаннымПользователям");
Если БудетЗаписанНовый Тогда Если БудетЗаписанНовый Тогда
@@ -747,8 +756,8 @@
&НаСервере &НаСервере
Процедура ЗаполнитьПредставления(Вариант) Процедура ЗаполнитьПредставления(Вариант)
Запрос = Новый Запрос(" Запрос = Новый Запрос(
|ВЫБРАТЬ РАЗРЕШЕННЫЕ "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| &КодОсновногоЯзыка КАК КодЯзыка, | &КодОсновногоЯзыка КАК КодЯзыка,
| ВЫБОР | ВЫБОР
| КОГДА НЕ ИзКонфигурации.Наименование ЕСТЬ NULL | КОГДА НЕ ИзКонфигурации.Наименование ЕСТЬ NULL
@@ -817,12 +826,21 @@
| ПО ПредставленияИзРасширений.Ссылка = Пользовательские.ПредопределенныйВариант | ПО ПредставленияИзРасширений.Ссылка = Пользовательские.ПредопределенныйВариант
| И ПредставленияИзРасширений.КодЯзыка <> &КодОсновногоЯзыка | И ПредставленияИзРасширений.КодЯзыка <> &КодОсновногоЯзыка
|ГДЕ |ГДЕ
| Пользовательские.Ссылка = &Вариант | Пользовательские.Ссылка = &Вариант");
|");
Запрос.УстановитьПараметр("Вариант", Вариант); Запрос.УстановитьПараметр("Вариант", Вариант);
Запрос.УстановитьПараметр("КодОсновногоЯзыка", ОбщегоНазначения.КодОсновногоЯзыка()); Запрос.УстановитьПараметр("КодОсновногоЯзыка", ОбщегоНазначения.КодОсновногоЯзыка());
Объект.Представления.Загрузить(Запрос.Выполнить().Выгрузить()); Объект.Представления.Очистить();
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Если ЗначениеЗаполнено(Выборка.КодЯзыка) Тогда
ЗаполнитьЗначенияСвойств(Объект.Представления.Добавить(), Выборка);
КонецЕсли;
КонецЦикла;
КонецПроцедуры КонецПроцедуры
@@ -23,5 +23,7 @@
<content>CommonModule.РаботаСПочтовымиСообщениямиПереопределяемый</content> <content>CommonModule.РаботаСПочтовымиСообщениямиПереопределяемый</content>
<content>CommonModule.РаботаСПочтовымиСообщениямиКлиентПереопределяемый</content> <content>CommonModule.РаботаСПочтовымиСообщениямиКлиентПереопределяемый</content>
<content>Role.ЧтениеУчетныхЗаписейЭлектроннойПочты</content> <content>Role.ЧтениеУчетныхЗаписейЭлектроннойПочты</content>
<content>CommonPicture.ВводимыеСимволыВидны</content>
<content>CommonPicture.ВводимыеСимволыСкрыты</content>
<parentSubsystem>Subsystem.СтандартныеПодсистемы</parentSubsystem> <parentSubsystem>Subsystem.СтандартныеПодсистемы</parentSubsystem>
</mdclass:Subsystem> </mdclass:Subsystem>