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

Исправил сортировку в Текущих делах.

This commit is contained in:
Anton Ivanov 2017-05-19 15:57:58 +03:00
parent 0da7a9b110
commit 35c9662c7c
4 changed files with 188 additions and 12 deletions
src/cf/DataProcessors
узТекущиеДела.xml
узТекущиеДела
Ext
Forms/Форма/Ext

@ -65,6 +65,43 @@
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput> <ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties> </Properties>
</Attribute> </Attribute>
<Attribute uuid="39eeda80-02f4-4705-a8ab-3e595e82fe6b">
<Properties>
<Name>НаДатуКонецДня</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>На дату конец дня</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:dateTime</v8:Type>
<v8:DateQualifiers>
<v8:DateFractions>DateTime</v8:DateFractions>
</v8:DateQualifiers>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
<TabularSection uuid="d5d56e37-245d-4ce1-890b-6cf255c39f38"> <TabularSection uuid="d5d56e37-245d-4ce1-890b-6cf255c39f38">
<InternalInfo> <InternalInfo>
<xr:GeneratedType name="DataProcessorTabularSection.узТекущиеДела.ТЧТекущиеДела" category="TabularSection"> <xr:GeneratedType name="DataProcessorTabularSection.узТекущиеДела.ТЧТекущиеДела" category="TabularSection">
@ -593,6 +630,47 @@
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput> <ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties> </Properties>
</Attribute> </Attribute>
<Attribute uuid="066714d6-f2c3-4d4e-87f5-3e598ec38889">
<Properties>
<Name>ПорядокДоп</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Порядок доп</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:decimal</v8:Type>
<v8:NumberQualifiers>
<v8:Digits>10</v8:Digits>
<v8:FractionDigits>0</v8:FractionDigits>
<v8:AllowedSign>Any</v8:AllowedSign>
</v8:NumberQualifiers>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
</ChildObjects> </ChildObjects>
</TabularSection> </TabularSection>
<Form>Форма</Form> <Form>Форма</Form>

@ -25,34 +25,62 @@
| ТОГДА ИСТИНА | ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ | ИНАЧЕ ЛОЖЬ
| КОНЕЦ | КОНЕЦ
| КОГДА НАЧАЛОПЕРИОДА(узТекущиеДела.ДатаВыполнения, ДЕНЬ) = &НаДату //| КОГДА НАЧАЛОПЕРИОДА(узТекущиеДела.ДатаВыполнения, ДЕНЬ) = &НаДату
| КОГДА НАЧАЛОПЕРИОДА(узТекущиеДела.ДатаВыполнения, ДЕНЬ) >= &НаДату
| И НАЧАЛОПЕРИОДА(узТекущиеДела.ДатаТекущегоДела, ДЕНЬ) <= &НаДату
| ТОГДА ИСТИНА | ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ | ИНАЧЕ ЛОЖЬ
| КОНЕЦ | КОНЕЦ
| |
|УПОРЯДОЧИТЬ ПО |УПОРЯДОЧИТЬ ПО
| Выполнено, | Выполнено,
| Порядок"; | Порядок
|";
Запрос.УстановитьПараметр("Автор", ПараметрыСеанса.ТекущийПользователь); Запрос.УстановитьПараметр("Автор", ПараметрыСеанса.ТекущийПользователь);
Запрос.УстановитьПараметр("НаДату", НаДату); Запрос.УстановитьПараметр("НаДату", НаДату);
РезультатЗапроса = Запрос.Выполнить(); РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать(); ТЗРезультат = РезультатЗапроса.Выгрузить();
ТЗРезультат.Колонки.Добавить("ПорядокДоп",Новый ОписаниеТипов("Число"));
Для каждого СтрокаТЗРезультат из ТЗРезультат цикл
пПорядокДоп = ПолучитьПорядоДоп(СтрокаТЗРезультат.Выполнено,СтрокаТЗРезультат.ДатаВыполнения,НаДату);
СтрокаТЗРезультат.ПорядокДоп = пПорядокДоп;
Конеццикла;
Пока Выборка.Следующий() Цикл ТЗРезультат.Сортировать("ПорядокДоп,Порядок");
Для каждого СтрокаТЗРезультат из ТЗРезультат цикл
СтрокаТЧТекущиеДела = ТЧТекущиеДела.Добавить(); СтрокаТЧТекущиеДела = ТЧТекущиеДела.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТЧТекущиеДела,Выборка); ЗаполнитьЗначенияСвойств(СтрокаТЧТекущиеДела,СтрокаТЗРезультат);
СтрокаТЧТекущиеДела.НомерСтрокиОбработка = СтрокаТЧТекущиеДела.НомерСтроки; СтрокаТЧТекущиеДела.НомерСтрокиОбработка = СтрокаТЧТекущиеДела.НомерСтроки;
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
Функция ПолучитьПорядоДоп(пВыполнено,пДатаВыполнения,пНаДату) Экспорт
//Такая же функция есть в форме обработки
пПорядокДоп = 10;
Если НЕ пВыполнено Тогда
пПорядокДоп = 0;
Иначе
Если НачалоДня(пДатаВыполнения) <> пНаДату Тогда
пПорядокДоп = 1;
Иначе
пПорядокДоп = 2;
Конецесли;
Конецесли;
Возврат пПорядокДоп;
КонецФункции
Процедура СохранитьТекущиеДела() Экспорт Процедура СохранитьТекущиеДела() Экспорт
Для каждого СтрокаТЧТекущиеДела из ТЧТекущиеДела цикл //ЭтоСегодня = НачалоДня(ТекущаяДата()) = НаДату;
СтрокаТЧТекущиеДела.НомерСтрокиОбработка = СтрокаТЧТекущиеДела.НомерСтроки; //Если ЭтоСегодня Тогда
Конеццикла; Для каждого СтрокаТЧТекущиеДела из ТЧТекущиеДела цикл
ТЧТекущиеДела.Сортировать("Выполнено,НомерСтрокиОбработка"); СтрокаТЧТекущиеДела.НомерСтрокиОбработка = СтрокаТЧТекущиеДела.НомерСтроки;
Конеццикла;
ТЧТекущиеДела.Сортировать("Выполнено,НомерСтрокиОбработка");
//КонецЕсли;
Для каждого СтрокаТЧТекущиеДела из ТЧТекущиеДела цикл Для каждого СтрокаТЧТекущиеДела из ТЧТекущиеДела цикл
СтрокаТЧТекущиеДела.ТекстСодержания = СокрЛП(СтрокаТЧТекущиеДела.ТекстСодержания); СтрокаТЧТекущиеДела.ТекстСодержания = СокрЛП(СтрокаТЧТекущиеДела.ТекстСодержания);
@ -61,9 +89,11 @@
Конецесли; Конецесли;
ТекущееДелоОбъект = ПолучитьТекущееДелоОбъект(СтрокаТЧТекущиеДела); ТекущееДелоОбъект = ПолучитьТекущееДелоОбъект(СтрокаТЧТекущиеДела);
ЗаполнитьЗначенияСвойств(ТекущееДелоОбъект,СтрокаТЧТекущиеДела,,"Автор,ДатаСоздания"); ЗаполнитьЗначенияСвойств(ТекущееДелоОбъект,СтрокаТЧТекущиеДела,,"Автор,ДатаСоздания,Порядок");
ТекущееДелоОбъект.Наименование = ТекущееДелоОбъект.ТекстСодержания; ТекущееДелоОбъект.Наименование = ТекущееДелоОбъект.ТекстСодержания;
ТекущееДелоОбъект.Порядок = СтрокаТЧТекущиеДела.НомерСтроки; //Если ЭтоСегодня Тогда
ТекущееДелоОбъект.Порядок = СтрокаТЧТекущиеДела.НомерСтроки;
//Конецесли;
Если СтрокаТЧТекущиеДела.Выполнено = Ложь Тогда Если СтрокаТЧТекущиеДела.Выполнено = Ложь Тогда
ТекущееДелоОбъект.ДатаВыполнения = Дата(1,1,1); ТекущееДелоОбъект.ДатаВыполнения = Дата(1,1,1);
Конецесли; Конецесли;

@ -219,6 +219,12 @@
<ContextMenu name="ТЧТекущиеДелаПорядокКонтекстноеМеню" id="61"/> <ContextMenu name="ТЧТекущиеДелаПорядокКонтекстноеМеню" id="61"/>
<ExtendedTooltip name="ТЧТекущиеДелаПорядокРасширеннаяПодсказка" id="62"/> <ExtendedTooltip name="ТЧТекущиеДелаПорядокРасширеннаяПодсказка" id="62"/>
</InputField> </InputField>
<InputField name="ТЧТекущиеДелаПорядокДоп" id="78">
<DataPath>Объект.ТЧТекущиеДела.ПорядокДоп</DataPath>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="ТЧТекущиеДелаПорядокДопКонтекстноеМеню" id="79"/>
<ExtendedTooltip name="ТЧТекущиеДелаПорядокДопРасширеннаяПодсказка" id="80"/>
</InputField>
</ChildItems> </ChildItems>
</ColumnGroup> </ColumnGroup>
</ChildItems> </ChildItems>
@ -255,6 +261,11 @@
<dcsset:comparisonType>Equal</dcsset:comparisonType> <dcsset:comparisonType>Equal</dcsset:comparisonType>
<dcsset:right xsi:type="xs:boolean">true</dcsset:right> <dcsset:right xsi:type="xs:boolean">true</dcsset:right>
</dcsset:item> </dcsset:item>
<dcsset:item xsi:type="dcsset:FilterItemComparison">
<dcsset:left xsi:type="dcscor:Field">Объект.ТЧТекущиеДела.ДатаВыполнения</dcsset:left>
<dcsset:comparisonType>LessOrEqual</dcsset:comparisonType>
<dcsset:right xsi:type="dcscor:Field">Объект.НаДатуКонецДня</dcsset:right>
</dcsset:item>
</dcsset:filter> </dcsset:filter>
<dcsset:appearance> <dcsset:appearance>
<dcscor:item xsi:type="dcsset:SettingsParameterValue"> <dcscor:item xsi:type="dcsset:SettingsParameterValue">
@ -268,6 +279,36 @@
</dcscor:item> </dcscor:item>
</dcsset:appearance> </dcsset:appearance>
</dcsset:item> </dcsset:item>
<dcsset:item>
<dcsset:selection>
<dcsset:item>
<dcsset:field>ТЧТекущиеДела</dcsset:field>
</dcsset:item>
</dcsset:selection>
<dcsset:filter>
<dcsset:item xsi:type="dcsset:FilterItemComparison">
<dcsset:left xsi:type="dcscor:Field">Объект.ТЧТекущиеДела.Выполнено</dcsset:left>
<dcsset:comparisonType>Equal</dcsset:comparisonType>
<dcsset:right xsi:type="xs:boolean">true</dcsset:right>
</dcsset:item>
<dcsset:item xsi:type="dcsset:FilterItemComparison">
<dcsset:left xsi:type="dcscor:Field">Объект.ТЧТекущиеДела.ДатаВыполнения</dcsset:left>
<dcsset:comparisonType>Greater</dcsset:comparisonType>
<dcsset:right xsi:type="dcscor:Field">Объект.НаДатуКонецДня</dcsset:right>
</dcsset:item>
</dcsset:filter>
<dcsset:appearance>
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
<dcscor:use>false</dcscor:use>
<dcscor:parameter>ЦветФона</dcscor:parameter>
<dcscor:value xsi:type="v8ui:Color">#00A600</dcscor:value>
</dcscor:item>
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
<dcscor:parameter>Шрифт</dcscor:parameter>
<dcscor:value xsi:type="v8ui:Font" ref="sys:DefaultGUIFont" bold="false" italic="true" underline="false" strikeout="false" kind="WindowsFont"/>
</dcscor:item>
</dcsset:appearance>
</dcsset:item>
</ConditionalAppearance> </ConditionalAppearance>
</Attributes> </Attributes>
<Commands> <Commands>

@ -14,6 +14,7 @@
&НаСервере &НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Объект.НаДату = ТекущаяДата(); Объект.НаДату = ТекущаяДата();
Объект.НаДатуКонецДня = КонецДня(Объект.НаДату);
ЗаполнитьТекущиеДелаНаСервере(); ЗаполнитьТекущиеДелаНаСервере();
УстановитьВидимостьДоступность(); УстановитьВидимостьДоступность();
КонецПроцедуры КонецПроцедуры
@ -100,13 +101,38 @@
ИдентификаторСтроки = ЭлМассиваВыделенныхСтрок; ИдентификаторСтроки = ЭлМассиваВыделенныхСтрок;
СтрокаТЧТекущиеДела = Объект.ТЧТекущиеДела.НайтиПоИдентификатору(ИдентификаторСтроки); СтрокаТЧТекущиеДела = Объект.ТЧТекущиеДела.НайтиПоИдентификатору(ИдентификаторСтроки);
Если СтрокаТЧТекущиеДела.Выполнено Тогда
Продолжить;
Конецесли;
СтрокаТЧТекущиеДела.ДатаВыполнения = ТекущаяДата(); СтрокаТЧТекущиеДела.ДатаВыполнения = ТекущаяДата();
СтрокаТЧТекущиеДела.Выполнено = Истина; СтрокаТЧТекущиеДела.Выполнено = Истина;
Конеццикла; Конеццикла;
Объект.ТЧТекущиеДела.Сортировать("Выполнено, ДатаВыполнения УБЫВ"); Для каждого СтрокаТЧТекущиеДела из Объект.ТЧТекущиеДела цикл
СтрокаТЧТекущиеДела.Порядок = СтрокаТЧТекущиеДела.НомерСтроки;
пПорядокДоп = ПолучитьПорядоДопНаКлиенте(СтрокаТЧТекущиеДела.Выполнено,СтрокаТЧТекущиеДела.ДатаВыполнения,Объект.НаДату);
СтрокаТЧТекущиеДела.ПорядокДоп = пПорядокДоп;
Конеццикла;
Объект.ТЧТекущиеДела.Сортировать("ПорядокДоп,Порядок");
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Функция ПолучитьПорядоДопНаКлиенте(пВыполнено,пДатаВыполнения,пНаДату)
//Такая же функция есть в модуле обработки
пПорядокДоп = 10;
Если НЕ пВыполнено Тогда
пПорядокДоп = 0;
Иначе
Если НачалоДня(пДатаВыполнения) <> пНаДату Тогда
пПорядокДоп = 1;
Иначе
пПорядокДоп = 2;
Конецесли;
Конецесли;
Возврат пПорядокДоп;
КонецФункции
&НаКлиенте &НаКлиенте
Процедура КомандаПоказатьДопСведения(Команда) Процедура КомандаПоказатьДопСведения(Команда)
@ -152,6 +178,7 @@
&НаКлиенте &НаКлиенте
Процедура ИзменитьНаДату(НаДатуНовая) Процедура ИзменитьНаДату(НаДатуНовая)
Объект.НаДату = НаДатуНовая; Объект.НаДату = НаДатуНовая;
Объект.НаДатуКонецДня = КонецДня(Объект.НаДату);
ОбновитьТекущиеДелаНаСервере(); ОбновитьТекущиеДелаНаСервере();
ОбновитьЗаголовокКомандаНаДату(); ОбновитьЗаголовокКомандаНаДату();
КонецПроцедуры КонецПроцедуры