1
0
mirror of https://github.com/BlizD/Tasks.git synced 2025-03-17 20:58:01 +02:00

Текущие дела: Автоматическое сохранение, вопрос перед удалением

This commit is contained in:
Anton Ivanov 2018-01-27 14:57:41 +03:00
parent 29da3ab1eb
commit b882cb85c0
3 changed files with 88 additions and 3 deletions

View File

@ -102,6 +102,7 @@
Конецесли;
ТекущееДелоОбъект.Записать();
СтрокаТЧТекущиеДела.ТекущееДело = ТекущееДелоОбъект.Ссылка;
Конеццикла;
КонецПроцедуры
@ -130,6 +131,8 @@
КонецФункции
Процедура УбратьТекущееДело(МассивТекущихДел) Экспорт
СохранитьТекущиеДела();
Для каждого пТекущееДело из МассивТекущихДел цикл
Если НЕ ЗначениеЗаполнено(пТекущееДело) Тогда
Продолжить;
@ -137,6 +140,8 @@
ТекущееДелоОбъект = пТекущееДело.ПолучитьОбъект();
ТекущееДелоОбъект.Удалить();
Конеццикла;
ЗаполнитьТекущиеДела();
КонецПроцедуры
Процедура ОбновитьНаСервере() Экспорт

View File

@ -41,6 +41,11 @@
<CommandName>Form.Item.ТЧТекущиеДела.StandardCommand.MoveDown</CommandName>
<ExtendedTooltip name="ТЧТекущиеДелаПереместитьВнизРасширеннаяПодсказка" id="49"/>
</Button>
<Button name="ТЧТекущиеДелаКомандаСохранить" id="81">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.КомандаСохранить</CommandName>
<ExtendedTooltip name="ТЧТекущиеДелаКомандаСохранитьРасширеннаяПодсказка" id="82"/>
</Button>
<Button name="ТЧТекущиеДелаКомандаОбновить" id="65">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.КомандаОбновить</CommandName>
@ -225,6 +230,13 @@
<ContextMenu name="ТЧТекущиеДелаПорядокДопКонтекстноеМеню" id="79"/>
<ExtendedTooltip name="ТЧТекущиеДелаПорядокДопРасширеннаяПодсказка" id="80"/>
</InputField>
<InputField name="ТЧТекущиеДелаТекущееДело" id="83">
<DataPath>Объект.ТЧТекущиеДела.ТекущееДело</DataPath>
<ReadOnly>true</ReadOnly>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="ТЧТекущиеДелаТекущееДелоКонтекстноеМеню" id="84"/>
<ExtendedTooltip name="ТЧТекущиеДелаТекущееДелоРасширеннаяПодсказка" id="85"/>
</InputField>
</ChildItems>
</ColumnGroup>
</ChildItems>
@ -345,7 +357,6 @@
<v8:content>Команда обновить</v8:content>
</v8:item>
</ToolTip>
<Shortcut>Ctrl+S</Shortcut>
<Picture>
<xr:Ref>StdPicture.Refresh</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
@ -422,5 +433,25 @@
<Action>КомандаСледующийПериод</Action>
<Representation>Picture</Representation>
</Command>
<Command name="КомандаСохранить" id="7">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Сохранить</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Команда сохранить</v8:content>
</v8:item>
</ToolTip>
<Shortcut>Ctrl+S</Shortcut>
<Picture>
<xr:Ref>StdPicture.Write</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>КомандаСохранить</Action>
</Command>
</Commands>
</Form>

View File

@ -44,6 +44,8 @@
&НаКлиенте
Процедура ПриЗакрытии()
ПриЗакрытииНаСервере();
ОтключитьОбработчикОжидания("СохранитьТекущиеДелаНаКлиенте");
КонецПроцедуры
@ -72,16 +74,51 @@
Процедура ТЧТекущиеДелаПередУдалениемНаСервере(МассивТекущихДел)
пОбъект = РеквизитФормыВЗначение("Объект");
пОбъект.УбратьТекущееДело(МассивТекущихДел);
ЗначениеВРеквизитФормы(пОбъект,"Объект");
КонецПроцедуры
&НаКлиенте
Процедура ТЧТекущиеДелаПередУдалением(Элемент, Отказ)
МассивВыделенныхСтрок = Элемент.ВыделенныеСтроки;
Отказ = Истина;
МассивВыделенныхСтрок = Элемент.ВыделенныеСтроки;
Если МассивВыделенныхСтрок.Количество() = 0 Тогда
Возврат;
Конецесли;
МассивТекущихДел = ПолучитьМассивТекущихДелПоВыделеннымСтрокам(МассивВыделенныхСтрок);
ТЧТекущиеДелаПередУдалениемНаСервере(МассивТекущихДел);
ТекстВопроса = "ВНИМАНИЕ! Вы точно хотите удалить текущие дела: " + Символы.ПС;
Для каждого пТекущееДело из МассивТекущихДел цикл
ТекстВопроса = ТекстВопроса + Символы.ПС
+ "* "+пТекущееДело;
Конеццикла;
ТекстВопроса = ТекстВопроса + Символы.ПС
+ "Продолжить?";
ДопПараметры = Новый Структура();
ДопПараметры.Вставить("МассивТекущихДел",МассивТекущихДел);
ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеЗакрытияВопросаТЧТекущиеДелаПередУдалением", ЭтаФорма, ДопПараметры);
ПоказатьВопрос(ОповещениеОЗакрытии,ТекстВопроса,РежимДиалогаВопрос.ДаНет);
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗакрытияВопросаТЧТекущиеДелаПередУдалением(Результат, ДопПараметры) Экспорт
Если Результат = КодВозвратаДиалога.Нет Тогда
Возврат;
КонецЕсли;
МассивТекущихДел = ДопПараметры.МассивТекущихДел;
ТЧТекущиеДелаПередУдалениемНаСервере(МассивТекущихДел);
КонецПроцедуры
&НаКлиенте
Функция ПолучитьМассивТекущихДелПоВыделеннымСтрокам(МассивВыделенныхСтрок)
МассивТекущихДел = Новый Массив();
@ -173,6 +210,8 @@
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ОбновитьЗаголовокКомандаНаДату();
ПодключитьОбработчикОжидания("СохранитьТекущиеДелаНаКлиенте", 600);
КонецПроцедуры
&НаКлиенте
@ -219,3 +258,13 @@
ОбновитьТекущиеДелаНаСервере();
Конецесли;
КонецПроцедуры
&НаКлиенте
Процедура КомандаСохранить(Команда)
СохранитьТекущиеДелаНаКлиенте();
КонецПроцедуры
&НаКлиенте
Процедура СохранитьТекущиеДелаНаКлиенте()
СохранитьТекущиеДелаНаСервере();
КонецПроцедуры