1
0
mirror of https://github.com/BlizD/Tasks.git synced 2025-01-28 03:57:18 +02:00

Добавил команду "Добавить в текущие дела" для справочника Вопросы

This commit is contained in:
Anton Ivanov 2017-07-07 09:32:41 +03:00
parent 93ea633ef0
commit ae6785cff9
5 changed files with 252 additions and 62 deletions

View File

@ -499,6 +499,39 @@
<Form>ФормаЭлемента</Form>
<Form>ФормаСписка</Form>
<Form>ФормаВыбора</Form>
<Command uuid="5f718843-8943-493a-a967-614140011833">
<Properties>
<Name>КомандаДобавитьВТекущиеДела</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Добавить в текущие дела</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Add to current works</v8:content>
</v8:item>
<v8:item>
<v8:lang>ro</v8:lang>
<v8:content>Add to current works</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Group>CommandGroup.узДействияЗадачи</Group>
<CommandParameterType>
<v8:Type>cfg:CatalogRef.узВопросыОтветы</v8:Type>
</CommandParameterType>
<ParameterUseMode>Multiple</ParameterUseMode>
<ModifiesData>false</ModifiesData>
<Representation>PictureAndText</Representation>
<ToolTip/>
<Picture>
<xr:Ref>CommonPicture.узИконкаДобавитьДело</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Shortcut/>
</Properties>
</Command>
</ChildObjects>
</Catalog>
</MetaDataObject>

View File

@ -0,0 +1,14 @@

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ДобавитьВТекущиеДелаНаСервере(ПараметрКоманды);
Оповестить("КомандаДобавитьВТекущиеДела");
КонецПроцедуры
&НаСервере
Процедура ДобавитьВТекущиеДелаНаСервере(МассивВопросов)
ДопПараметры = Новый Структура();
ДопПараметры.Вставить("Автор",Пользователи.ТекущийПользователь());
ДопПараметры.Вставить("МассивВопросов",МассивВопросов);
Справочники.узТекущиеДела.ДобавитьВопросВТекущиеДела(ДопПараметры);
КонецПроцедуры

View File

@ -0,0 +1,21 @@
<?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.2">
<Form uuid="cc0e56be-81b6-4e67-8807-acf8026b395f">
<Properties>
<Name>ФормаСписка</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Форма списка</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Managed</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PersonalComputer</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobileDevice</v8:Value>
</UsePurposes>
</Properties>
</Form>
</MetaDataObject>

View File

@ -0,0 +1,150 @@
<?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.2">
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
<ChildItems>
<UsualGroup name="СписокКомпоновщикНастроекПользовательскиеНастройки" id="1">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Группа пользовательских настроек</v8:content>
</v8:item>
</Title>
<VerticalStretch>false</VerticalStretch>
<Group>Vertical</Group>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка" id="2"/>
</UsualGroup>
<Table name="Список" id="3">
<CommandBarLocation>None</CommandBarLocation>
<DefaultItem>true</DefaultItem>
<UseAlternationRowColor>true</UseAlternationRowColor>
<InitialTreeView>ExpandTopLevel</InitialTreeView>
<EnableStartDrag>true</EnableStartDrag>
<EnableDrag>true</EnableDrag>
<DataPath>Список</DataPath>
<RowPictureDataPath>Список.DefaultPicture</RowPictureDataPath>
<AutoRefresh>false</AutoRefresh>
<AutoRefreshPeriod>60</AutoRefreshPeriod>
<Period>
<v8:variant xsi:type="v8:StandardPeriodVariant">Custom</v8:variant>
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
</Period>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<RestoreCurrentRow>false</RestoreCurrentRow>
<TopLevelParent xsi:nil="true"/>
<ShowRoot>true</ShowRoot>
<AllowRootChoice>false</AllowRootChoice>
<UpdateOnDataChange>Auto</UpdateOnDataChange>
<UserSettingsGroup>СписокКомпоновщикНастроекПользовательскиеНастройки</UserSettingsGroup>
<ContextMenu name="СписокКонтекстноеМеню" id="4"/>
<AutoCommandBar name="СписокКоманднаяПанель" id="5">
<Autofill>false</Autofill>
</AutoCommandBar>
<ExtendedTooltip name="СписокРасширеннаяПодсказка" id="6"/>
<SearchStringAddition name="СписокСтрокаПоиска" id="7">
<AdditionSource>
<Item>Список</Item>
<Type>SearchStringRepresentation</Type>
</AdditionSource>
<ContextMenu name="СписокСтрокаПоискаКонтекстноеМеню" id="8"/>
<ExtendedTooltip name="СписокСтрокаПоискаРасширеннаяПодсказка" id="9"/>
</SearchStringAddition>
<ViewStatusAddition name="СписокСостояниеПросмотра" id="10">
<AdditionSource>
<Item>Список</Item>
<Type>ViewStatusRepresentation</Type>
</AdditionSource>
<ContextMenu name="СписокСостояниеПросмотраКонтекстноеМеню" id="11"/>
<ExtendedTooltip name="СписокСостояниеПросмотраРасширеннаяПодсказка" id="12"/>
</ViewStatusAddition>
<SearchControlAddition name="СписокУправлениеПоиском" id="13">
<AdditionSource>
<Item>Список</Item>
<Type>SearchControl</Type>
</AdditionSource>
<ContextMenu name="СписокУправлениеПоискомКонтекстноеМеню" id="14"/>
<ExtendedTooltip name="СписокУправлениеПоискомРасширеннаяПодсказка" id="15"/>
</SearchControlAddition>
<ChildItems>
<LabelField name="Наименование" id="16">
<DataPath>Список.Description</DataPath>
<DefaultItem>true</DefaultItem>
<ContextMenu name="НаименованиеКонтекстноеМеню" id="17"/>
<ExtendedTooltip name="НаименованиеРасширеннаяПодсказка" id="18"/>
</LabelField>
<LabelField name="Код" id="19">
<DataPath>Список.Code</DataPath>
<ContextMenu name="КодКонтекстноеМеню" id="20"/>
<ExtendedTooltip name="КодРасширеннаяПодсказка" id="21"/>
</LabelField>
<CheckBoxField name="ПолучатьИзмененияИзХранилища" id="22">
<DataPath>Список.ПолучатьИзмененияИзХранилища</DataPath>
<CheckBoxType>Auto</CheckBoxType>
<ContextMenu name="ПолучатьИзмененияИзХранилищаКонтекстноеМеню" id="23"/>
<ExtendedTooltip name="ПолучатьИзмененияИзХранилищаРасширеннаяПодсказка" id="24"/>
</CheckBoxField>
<CheckBoxField name="ИспользоватьАльтернативнуюЗагрузкуДанныхИзХранилища" id="40">
<DataPath>Список.ИспользоватьАльтернативнуюЗагрузкуДанныхИзХранилища</DataPath>
<CheckBoxType>Auto</CheckBoxType>
<ContextMenu name="ИспользоватьАльтернативнуюЗагрузкуДанныхИзХранилищаКонтекстноеМеню" id="41"/>
<ExtendedTooltip name="ИспользоватьАльтернативнуюЗагрузкуДанныхИзХранилищаРасширеннаяПодсказка" id="42"/>
</CheckBoxField>
<LabelField name="Приложение1с" id="25">
<DataPath>Список.Приложение1с</DataPath>
<ContextMenu name="Приложение1сКонтекстноеМеню" id="26"/>
<ExtendedTooltip name="Приложение1сРасширеннаяПодсказка" id="27"/>
</LabelField>
<LabelField name="КаталогТранзитнойБазы" id="28">
<DataPath>Список.КаталогТранзитнойБазы</DataPath>
<ContextMenu name="КаталогТранзитнойБазыКонтекстноеМеню" id="29"/>
<ExtendedTooltip name="КаталогТранзитнойБазыРасширеннаяПодсказка" id="30"/>
</LabelField>
<LabelField name="ПользовательТранзитнойБазы" id="31">
<DataPath>Список.ПользовательТранзитнойБазы</DataPath>
<ContextMenu name="ПользовательТранзитнойБазыКонтекстноеМеню" id="32"/>
<ExtendedTooltip name="ПользовательТранзитнойБазыРасширеннаяПодсказка" id="33"/>
</LabelField>
<LabelField name="КаталогХранилища" id="34">
<DataPath>Список.КаталогХранилища</DataPath>
<ContextMenu name="КаталогХранилищаКонтекстноеМеню" id="35"/>
<ExtendedTooltip name="КаталогХранилищаРасширеннаяПодсказка" id="36"/>
</LabelField>
<LabelField name="ПользовательХранилища" id="37">
<DataPath>Список.ПользовательХранилища</DataPath>
<ContextMenu name="ПользовательХранилищаКонтекстноеМеню" id="38"/>
<ExtendedTooltip name="ПользовательХранилищаРасширеннаяПодсказка" id="39"/>
</LabelField>
</ChildItems>
</Table>
</ChildItems>
<Attributes>
<Attribute name="Список" id="1">
<Type>
<v8:Type>cfg:DynamicList</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
<Settings xsi:type="DynamicList">
<ManualQuery>false</ManualQuery>
<DynamicDataRead>true</DynamicDataRead>
<MainTable>Catalog.узКонфигурации</MainTable>
<ListSettings>
<dcsset:filter>
<dcsset:viewMode>Normal</dcsset:viewMode>
<dcsset:userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</dcsset:userSettingID>
</dcsset:filter>
<dcsset:order>
<dcsset:viewMode>Normal</dcsset:viewMode>
<dcsset:userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</dcsset:userSettingID>
</dcsset:order>
<dcsset:conditionalAppearance>
<dcsset:viewMode>Normal</dcsset:viewMode>
<dcsset:userSettingID>b75fecce-942b-4aed-abc9-e6a02e460fb3</dcsset:userSettingID>
</dcsset:conditionalAppearance>
<dcsset:itemsViewMode>Normal</dcsset:itemsViewMode>
<dcsset:itemsUserSettingID>911b6018-f537-43e8-a417-da56b22f9aec</dcsset:itemsUserSettingID>
</ListSettings>
</Settings>
</Attribute>
</Attributes>
</Form>

View File

@ -2,31 +2,38 @@
пАвтор = ДопПараметры.Автор;
МассивЗадач = ДопПараметры.МассивЗадач;
Для каждого пЗадача из МассивЗадач цикл
//ТекДелоПоЗадаче = ПолучитьТекДелоПоЗадаче(пЗадача,пАвтор);
//Если ЗначениеЗаполнено(ТекДелоПоЗадаче) Тогда
// пНомерЗадачи = Справочники.узЗадачи.ПолучитьНомерЗадачи(пЗадача);
//
// пТекстСообщения = узОбщийМодульСервер.ПолучитьТекстСообщения("Уже есть текущее дело для задачи #%1 %2",79);
// пТекстСообщения = СтрШаблон(пТекстСообщения,пНомерЗадачи,пЗадача);
// Сообщить(пТекстСообщения);
// Продолжить;
//Конецесли;
СпрОбъект = СоздатьТекДелоПоЗадаче(пЗадача,пАвтор);
СпрОбъект = СоздатьТекДелоПоОбъекту(пЗадача,пАвтор);
Конеццикла;
КонецПроцедуры
Функция СоздатьТекДелоПоЗадаче(пЗадача,пАвтор)
Функция СоздатьТекДелоПоОбъекту(ОбъектТекущихДел,пАвтор)
ТипЗнчОбъектТекущихДел = ТипЗнч(ОбъектТекущихДел);
ЭтоЗадача = ТипЗнчОбъектТекущихДел = Тип("СправочникСсылка.узЗадачи");
ЭтоВопрос = ТипЗнчОбъектТекущихДел = Тип("СправочникСсылка.узВопросыОтветы");
Если НЕ ЭтоЗадача
И НЕ ЭтоВопрос Тогда
ВызватьИсключение "Ошибка! Нет алгоритма для ОбъектТекущихДел ["+ОбъектТекущихДел+"]";
Конецесли;
пНомерЗадачи = Справочники.узЗадачи.ПолучитьНомерЗадачи(пЗадача);
пТекстСообщения = узОбщийМодульСервер.ПолучитьТекстСообщения("Выполнить задачу #%1 %2",78);
пТекстСообщения = СтрШаблон(пТекстСообщения,пНомерЗадачи,пЗадача);
Если ЭтоЗадача Тогда
пНомерЗадачи = Справочники.узЗадачи.ПолучитьНомерЗадачи(ОбъектТекущихДел);
пТекстСообщения = узОбщийМодульСервер.ПолучитьТекстСообщения("Выполнить задачу #%1 %2",78);
пТекстСообщения = СтрШаблон(пТекстСообщения,пНомерЗадачи,ОбъектТекущихДел);
ИначеЕсли ЭтоВопрос Тогда
пТекстСообщения = узОбщийМодульСервер.ПолучитьТекстСообщения("Вопрос: %1",87);
пТекстСообщения = СтрШаблон(пТекстСообщения,ОбъектТекущихДел);
Конецесли;
СпрОбъект = Справочники.узТекущиеДела.СоздатьЭлемент();
СпрОбъект.Автор = пАвтор;
СпрОбъект.Задача = пЗадача;
Если ЭтоЗадача Тогда
СпрОбъект.Задача = ОбъектТекущихДел;
ИначеЕсли ЭтоВопрос Тогда
СпрОбъект.Вопрос = ОбъектТекущихДел;
СпрОбъект.Задача = СпрОбъект.Вопрос.Задача;
Конецесли;
СпрОбъект.ТекстСодержания = пТекстСообщения;
СпрОбъект.Наименование = СпрОбъект.ТекстСодержания;
СпрОбъект.ДатаСоздания = ТекущаяДата();
@ -36,51 +43,16 @@
пТекстСообщения = узОбщийМодульСервер.ПолучитьТекстСообщения("Добавлено дело",80);
пТекстСообщения = пТекстСообщения + " "+ СпрОбъект.ТекстСодержания;
Сообщить(пТекстСообщения);
Возврат СпрОбъект;
КонецФункции
//Функция ПолучитьТекДелоПоЗадаче(пЗадача,пАвтор)
// Перем ТекДелоПоЗадаче;
//
// Если НЕ ЗначениеЗаполнено(пЗадача) Тогда
// Возврат ТекДелоПоЗадаче;
// Конецесли;
//
//
// Запрос = Новый Запрос;
// Запрос.Текст =
// "ВЫБРАТЬ
// | узТекущиеДела.Ссылка
// |ИЗ
// | Справочник.узТекущиеДела КАК узТекущиеДела
// |ГДЕ
// | узТекущиеДела.Задача = &Задача
// | И узТекущиеДела.Автор = &Автор";
//
// Запрос.УстановитьПараметр("Задача", пЗадача);
// Запрос.УстановитьПараметр("Автор", пАвтор);
//
// РезультатЗапроса = Запрос.Выполнить();
// Если РезультатЗапроса.Пустой() Тогда
// Возврат ТекДелоПоЗадаче;
// Конецесли;
//
// Выборка = РезультатЗапроса.Выбрать();
// Если Выборка.Количество() > 1 Тогда
//
// пНомерЗадачи = Справочники.узЗадачи.ПолучитьНомерЗадачи(пЗадача);
//
// пТекстСообщения = узОбщийМодульСервер.ПолучитьТекстСообщения("Ошибка! нашли более 1 текущего дела по задаче #%1 %2",77);
// пТекстСообщения = СтрШаблон(пТекстСообщения,пНомерЗадачи,пЗадача);
// Сообщить(пТекстСообщения);
//
// Возврат ТекДелоПоЗадаче;
// Конецесли;
//
// Выборка.Следующий();
//
// ТекДелоПоЗадаче = Выборка.Ссылка;
//
// Возврат ТекДелоПоЗадаче;
//КонецФункции
Процедура ДобавитьВопросВТекущиеДела(ДопПараметры) Экспорт
пАвтор = ДопПараметры.Автор;
МассивВопросов = ДопПараметры.МассивВопросов;
Для каждого пВопрос из МассивВопросов цикл
СпрОбъект = СоздатьТекДелоПоОбъекту(пВопрос,пАвтор);
Конеццикла;
КонецПроцедуры