1
0
mirror of https://github.com/BlizD/Tasks.git synced 2025-03-19 21:07:53 +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

View File

@ -65,6 +65,43 @@
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</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">
<InternalInfo>
<xr:GeneratedType name="DataProcessorTabularSection.узТекущиеДела.ТЧТекущиеДела" category="TabularSection">
@ -593,6 +630,47 @@
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</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>
</TabularSection>
<Form>Форма</Form>

View File

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

View File

@ -219,6 +219,12 @@
<ContextMenu name="ТЧТекущиеДелаПорядокКонтекстноеМеню" id="61"/>
<ExtendedTooltip name="ТЧТекущиеДелаПорядокРасширеннаяПодсказка" id="62"/>
</InputField>
<InputField name="ТЧТекущиеДелаПорядокДоп" id="78">
<DataPath>Объект.ТЧТекущиеДела.ПорядокДоп</DataPath>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="ТЧТекущиеДелаПорядокДопКонтекстноеМеню" id="79"/>
<ExtendedTooltip name="ТЧТекущиеДелаПорядокДопРасширеннаяПодсказка" id="80"/>
</InputField>
</ChildItems>
</ColumnGroup>
</ChildItems>
@ -255,6 +261,11 @@
<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>LessOrEqual</dcsset:comparisonType>
<dcsset:right xsi:type="dcscor:Field">Объект.НаДатуКонецДня</dcsset:right>
</dcsset:item>
</dcsset:filter>
<dcsset:appearance>
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
@ -268,6 +279,36 @@
</dcscor:item>
</dcsset:appearance>
</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>
</Attributes>
<Commands>

View File

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