Skip to content

Commit

Permalink
#3 Обработка для групповой установки статуса объектов
Browse files Browse the repository at this point in the history
  • Loading branch information
BlizD committed Jan 6, 2017
1 parent bce9036 commit 85d3f42
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 40 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,13 @@
ПредметСогласования = ДопПараметры.ПредметСогласования;
Согласование = ДопПараметры.Согласование;

ТЗНеВыполненныеЗадачи = ПолучитьТЗНеВыполненныеЗадачи(ДопПараметры);
Если ТЗНеВыполненныеЗадачи.Количество() = 0 Тогда
ТЗНеВыполненныеЗадачи = ПолучитьТЗНеВыполненныеЗадачи(ДопПараметры);
ПараметрыОтбора=Новый Структура();
ПараметрыОтбора.Вставить("ОбъектБД",ОбъектБД);
НайденныеСтроки = ТЗНеВыполненныеЗадачи.НайтиСтроки(ПараметрыОтбора);
ВсегоНайденныеСтроки = НайденныеСтроки.Количество();

Если ВсегоНайденныеСтроки = 0 Тогда
Статус = ПредопределенноеЗначение("Справочник.бпсСтатусыОбъектов.Согласование_Отклонено");
ВТДопПараметры = Новый Структура();
ВТДопПараметры.Вставить("ОбъектБД",ОбъектБД);
Expand All @@ -60,7 +65,7 @@
Конецесли;

//Если есть не выполненные задачи по запущенному согласованию
Для каждого СтрокаТЗНеВыполненныеЗадачи из ТЗНеВыполненныеЗадачи цикл
Для каждого СтрокаТЗНеВыполненныеЗадачи из НайденныеСтроки цикл
ЗадачаСсылка = СтрокаТЗНеВыполненныеЗадачи.ЗадачаСсылка;
Если ЗадачаСсылка.Выполнена Тогда
Продолжить;
Expand Down Expand Up @@ -108,7 +113,13 @@
КонецПроцедуры

Процедура УстановитьСтатусВручную(ДопПараметры) Экспорт
ОбъектБД = ДопПараметры.ОбъектБД;
Если ДопПараметры.Свойство("МассивОбъектовБД") Тогда
МассивОбъектовБД = ДопПараметры.МассивОбъектовБД;
Иначе
МассивОбъектовБД = Новый Массив();
МассивОбъектовБД.Добавить(ДопПараметры.ОбъектБД);
Конецесли;

ПредметСогласования = ДопПараметры.ПредметСогласования;
Согласование = ДопПараметры.Согласование;
пСтатус = ДопПараметры.Статус;
Expand All @@ -121,33 +132,45 @@
Конецесли;

ВТДопПараметры = Новый Структура();
ВТДопПараметры.Вставить("ОбъектБД",ОбъектБД);
ВТДопПараметры.Вставить("МассивОбъектовБД",МассивОбъектовБД);
ВТДопПараметры.Вставить("ПредметСогласования",ПредметСогласования);
ВТДопПараметры.Вставить("Статус",пСтатус);
УстановитьСтатус(ВТДопПараметры);

Сообщить("Установлен статус ["+пСтатус+"] для "
+" ОбъектБД ["+ОбъектБД+"] "
+" ПредметСогласования ["+ПредметСогласования+"]");
Для каждого пОбъектБД из МассивОбъектовБД цикл
Сообщить("Установлен статус ["+пСтатус+"] для "
+" ОбъектБД ["+пОбъектБД+"] "
+" ПредметСогласования ["+ПредметСогласования+"]");
Конеццикла;
КонецПроцедуры

Процедура УстановитьСтатус(ВТДопПараметры)
ДопПараметры = Новый Структура();
ДопПараметры.Вставить("ДатаИзмененияСтатуса",ТекущаяДата());
ДопПараметры.Вставить("ПредметСогласования",ВТДопПараметры.ПредметСогласования);
ДопПараметры.Вставить("Статус",ВТДопПараметры.Статус);
ДопПараметры.Вставить("Комментарий","Отменено пользователем: " + ПараметрыСеанса.ТекущийПользователь);
Процедура УстановитьСтатус(ДопПараметры)


ТЗОбъектыБД = РегистрыСведений.бпсСтатусыОбъектов.ПолучитьОписаниеТЗОбъектыБД();

СтрокаТЗОбъектыБД = ТЗОбъектыБД.Добавить();
СтрокаТЗОбъектыБД.ОбъектБД = ВТДопПараметры.ОбъектБД;
СтрокаТЗОбъектыБД.ПредметСогласования = ВТДопПараметры.ПредметСогласования;
СтрокаТЗОбъектыБД.Статус = ВТДопПараметры.Статус;
Если ДопПараметры.Свойство("МассивОбъектовБД") Тогда
МассивОбъектовБД = ДопПараметры.МассивОбъектовБД;
Иначе
МассивОбъектовБД = Новый Массив();
МассивОбъектовБД.Добавить(ДопПараметры.ОбъектБД);
Конецесли;

Для каждого пОбъектБД из МассивОбъектовБД цикл
СтрокаТЗОбъектыБД = ТЗОбъектыБД.Добавить();
СтрокаТЗОбъектыБД.ОбъектБД = пОбъектБД;
СтрокаТЗОбъектыБД.ПредметСогласования = ДопПараметры.ПредметСогласования;
СтрокаТЗОбъектыБД.Статус = ДопПараметры.Статус;
Конеццикла;

ДопПараметры.Вставить("ТЗОбъектыБД",ТЗОбъектыБД);
ВТДопПараметры = Новый Структура();
ВТДопПараметры.Вставить("ДатаИзмененияСтатуса",ТекущаяДата());
ВТДопПараметры.Вставить("ПредметСогласования",ДопПараметры.ПредметСогласования);
ВТДопПараметры.Вставить("Статус",ДопПараметры.Статус);
ВТДопПараметры.Вставить("Комментарий","Отменено пользователем: " + ПараметрыСеанса.ТекущийПользователь);
ВТДопПараметры.Вставить("ТЗОбъектыБД",ТЗОбъектыБД);

Документы.бпсРегистрацияСтатусаОбъекта.УстановитьСтатусыОбъектов(ДопПараметры);
Документы.бпсРегистрацияСтатусаОбъекта.УстановитьСтатусыОбъектов(ВТДопПараметры);
КонецПроцедуры


Expand All @@ -156,6 +179,7 @@
Запрос = Новый Запрос("
|ВЫБРАТЬ
| Задача.Ссылка КАК ЗадачаСсылка,
| ВЫРАЗИТЬ(Задача.БизнесПроцесс КАК БизнесПроцесс.бпсСогласование).ОбъектБД КАК ОбъектБД,
| Задача.Пользователь,
| Задача.РольАдресации,
| Задача.ПодразделениеАдресации
Expand All @@ -164,11 +188,18 @@
|ГДЕ
| НЕ Задача.Выполнена
| И Задача.БизнесПроцесс ССЫЛКА БизнесПроцесс.бпсСогласование
| И ВЫРАЗИТЬ(Задача.БизнесПроцесс КАК БизнесПроцесс.бпсСогласование).ОбъектБД = &ОбъектБД
| И ВЫРАЗИТЬ(Задача.БизнесПроцесс КАК БизнесПроцесс.бпсСогласование).ОбъектБД В(&МассивОбъектовБД)
| И ВЫРАЗИТЬ(Задача.БизнесПроцесс КАК БизнесПроцесс.бпсСогласование).ПредметСогласования = &ПредметСогласования
|");

Запрос.УстановитьПараметр("ОбъектБД", ДопПараметры.ОбъектБД);
Если ДопПараметры.Свойство("МассивОбъектовБД") Тогда
МассивОбъектовБД = ДопПараметры.МассивОбъектовБД;
Иначе
МассивОбъектовБД = Новый Массив();
МассивОбъектовБД.Добавить(ДопПараметры.ОбъектБД);
Конецесли;

Запрос.УстановитьПараметр("МассивОбъектовБД", ДопПараметры.МассивОбъектовБД);
Запрос.УстановитьПараметр("ПредметСогласования", ДопПараметры.ПредметСогласования);

Возврат Запрос.Выполнить().Выгрузить();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.1">
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.2">
<Form uuid="9013c4a4-43d3-4819-98f6-1d1d102f7dbf">
<Properties>
<Name>Форма</Name>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.1">
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.2">
<VerticalScroll>useIfNecessary</VerticalScroll>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1">
<Autofill>false</Autofill>
Expand Down Expand Up @@ -98,6 +98,21 @@
<DataPath>Items.Список.CurrentData.Согласование</DataPath>
<ExtendedTooltip name="СписокОбщаяКомандабпсОтчетЛистСогласованияРасширеннаяПодсказка" id="52"/>
</Button>
<Button name="СписокКомандаУстановитьСтатус" id="58">
<Type>CommandBarButton</Type>
<UserVisible>
<xr:Common>true</xr:Common>
<xr:Value name="Role._ПолныеПрава">false</xr:Value>
<xr:Value name="Role._ЗапускТестов">false</xr:Value>
<xr:Value name="Role.бпсПользователь">false</xr:Value>
<xr:Value name="Role.бпсРедактированиеРегистраАдресации">false</xr:Value>
<xr:Value name="Role.бпсРедактированиеДокументаРегистрацияСтатусаОбъектов">true</xr:Value>
<xr:Value name="Role.бпсПолныеПрава">true</xr:Value>
</UserVisible>
<OnlyInAllActions>true</OnlyInAllActions>
<CommandName>Form.Command.КомандаУстановитьСтатус</CommandName>
<ExtendedTooltip name="СписокКомандаУстановитьСтатусРасширеннаяПодсказка" id="59"/>
</Button>
<Button name="СписокСоздать" id="28">
<Type>CommandBarButton</Type>
<OnlyInAllActions>false</OnlyInAllActions>
Expand Down Expand Up @@ -128,21 +143,6 @@
<CommandName>Form.Item.Список.StandardCommand.SetDeletionMark</CommandName>
<ExtendedTooltip name="СписокУстановитьПометкуУдаленияРасширеннаяПодсказка" id="40"/>
</Button>
<Button name="СписокКомандаУстановитьСтатус" id="58">
<Type>CommandBarButton</Type>
<UserVisible>
<xr:Common>true</xr:Common>
<xr:Value name="Role._ПолныеПрава">false</xr:Value>
<xr:Value name="Role._ЗапускТестов">false</xr:Value>
<xr:Value name="Role.бпсПользователь">false</xr:Value>
<xr:Value name="Role.бпсРедактированиеРегистраАдресации">false</xr:Value>
<xr:Value name="Role.бпсРедактированиеДокументаРегистрацияСтатусаОбъектов">true</xr:Value>
<xr:Value name="Role.бпсПолныеПрава">true</xr:Value>
</UserVisible>
<OnlyInAllActions>true</OnlyInAllActions>
<CommandName>Form.Command.КомандаУстановитьСтатус</CommandName>
<ExtendedTooltip name="СписокКомандаУстановитьСтатусРасширеннаяПодсказка" id="59"/>
</Button>
</ChildItems>
</AutoCommandBar>
<ExtendedTooltip name="СписокРасширеннаяПодсказка" id="7"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -271,8 +271,9 @@
Возврат;
Конецесли;

МассивОбъектовБД = Элементы.Список.ВыделенныеСтроки;
ДопПараметры = Новый Структура();
ДопПараметры.Вставить("ОбъектБД",СтрокаСписок.Ссылка);
ДопПараметры.Вставить("МассивОбъектовБД",МассивОбъектовБД);
ДопПараметры.Вставить("ПредметСогласования",Объект.ПредметСогласования);
ДопПараметры.Вставить("Согласование",СтрокаСписок.Согласование);

Expand Down

0 comments on commit 85d3f42

Please sign in to comment.