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

#36 Копирование в буфер обмена номера задачи плюс название задачи в канбан доске

This commit is contained in:
Anton Ivanov 2017-06-08 08:57:52 +03:00
parent beaa824ec7
commit 6719d82c2b
6 changed files with 315 additions and 22 deletions

View File

@ -20,4 +20,33 @@
Функция ПолучитьНомерЗадачи(ЗадачаСсылка) Экспорт
Возврат Формат(ЗадачаСсылка.Код,"ЧГ=0");
КонецФункции
Функция ПолучитьКомментарииВКоде(ДопПараметры) Экспорт
Перем КомментарииВКоде;
пКод = ДопПараметры.Код;
пИсполнитель = ДопПараметры.Исполнитель;
пНомерВнешнейЗаявки = ДопПараметры.НомерВнешнейЗаявки;
ФИОИсполнителя = Неопределено;
Если ЗначениеЗаполнено(пИсполнитель) Тогда
МассивПодстрок = СтрРазделить(пИсполнитель," ");
КоличествоСлов = МассивПодстрок.Количество();
Если КоличествоСлов > 0 Тогда
ФИОИсполнителя = " "+ МассивПодстрок[0];
Конецесли;
Если КоличествоСлов > 1 Тогда
ФИОИсполнителя = ФИОИсполнителя + " " + Лев(МассивПодстрок[1],1)+".";
Конецесли;
Если КоличествоСлов > 2 Тогда
ФИОИсполнителя = ФИОИсполнителя + "" + Лев(МассивПодстрок[2],1)+".";
Конецесли;
Конецесли;
пКомментарииВКоде = "//+ #"+Формат(пКод,"ЧГ=0")
+ ?(ЗначениеЗаполнено(пНомерВнешнейЗаявки)," "+пНомерВнешнейЗаявки,"")
+ ФИОИсполнителя
+ " " + Формат(ТекущаяДата(),"ДФ=yyyy-MM-dd");
Возврат пКомментарииВКоде;
КонецФункции

View File

@ -374,26 +374,20 @@
&НаКлиенте
Процедура КомментарииВКодеОткрытие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ФИОИсполнителя = Неопределено;
Если ЗначениеЗаполнено(Объект.Исполнитель) Тогда
МассивПодстрок = СтрРазделить(Объект.Исполнитель," ");
КоличествоСлов = МассивПодстрок.Количество();
Если КоличествоСлов > 0 Тогда
ФИОИсполнителя = " "+ МассивПодстрок[0];
Конецесли;
Если КоличествоСлов > 1 Тогда
ФИОИсполнителя = ФИОИсполнителя + " " + Лев(МассивПодстрок[1],1)+".";
Конецесли;
Если КоличествоСлов > 2 Тогда
ФИОИсполнителя = ФИОИсполнителя + "" + Лев(МассивПодстрок[2],1)+".";
Конецесли;
Конецесли;
Объект.КомментарииВКоде = "//+ #"+Формат(Объект.Код,"ЧГ=0")
+ ?(ЗначениеЗаполнено(Объект.НомерВнешнейЗаявки)," "+Объект.НомерВнешнейЗаявки,"")
+ ФИОИсполнителя
+ " " + Формат(ТекущаяДата(),"ДФ=yyyy-MM-dd");
ДопПараметры = Новый Структура();
ДопПараметры.Вставить("Код",Объект.Код);
ДопПараметры.Вставить("Исполнитель",Объект.Исполнитель);
ДопПараметры.Вставить("НомерВнешнейЗаявки",Объект.НомерВнешнейЗаявки);
Объект.КомментарииВКоде = ПолучитьКомментарийВКодеНаСервере(ДопПараметры);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьКомментарийВКодеНаСервере(ДопПараметры)
Возврат Справочники.узЗадачи.ПолучитьКомментарииВКоде(ДопПараметры);
КонецФункции
&НаКлиенте
Процедура СрокИсполненияПриИзменении(Элемент)
Если НЕ ЗначениеЗаполнено(Объект.СрокИсполнения) Тогда

View File

@ -6,3 +6,13 @@
//Возврат ТекстHTMLМакет;
КонецФункции
Функция УстановитьТекстВБуферОбмена(ТекстДляКопирования) Экспорт
пОбъект = Новый COMОбъект("htmlfile");
пОбъект.ParentWindow.ClipboardData.Setdata("Text", ТекстДляКопирования);
пТекстСообщения = узОбщийМодульСервер.ПолучитьТекстСообщения("Скопирован в буфер: %1",86);
пТекстСообщения = СтрШаблон(пТекстСообщения,ТекстДляКопирования);
ПоказатьОповещениеПользователя(пТекстСообщения);
Возврат ТекстДляКопирования;
КонецФункции

View File

@ -5194,16 +5194,211 @@
<c>
<c>
<f>15</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Обработка.узКанбанДоска.ФормаДинамическая</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>14</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Скопировать комментарий в коде</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>11</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Copy the comment in the code</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>17</f>
</c>
</c>
</row>
</rowsItem>
<rowsItem>
<index>84</index>
<row>
<c>
<c>
<f>16</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>84</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>13</f>
</c>
</c>
<c>
<c>
<f>15</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Обработка.узКанбанДоска.ФормаДинамическая</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>14</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Выберите задачу, по которой хотите скопировать комментарий в коде</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>11</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Select the task for which you want to copy the comment in the code</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>17</f>
</c>
</c>
</row>
</rowsItem>
<rowsItem>
<index>85</index>
<row>
<c>
<c>
<f>16</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>85</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>13</f>
</c>
</c>
<c>
<c>
<f>15</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Обработка.узКанбанДоска.ФормаДинамическая</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>14</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Можно выбрать только одну задачу для копирования комментария в коде</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>11</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>You can select only one task to copy the comment in the code</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>17</f>
</c>
</c>
</row>
</rowsItem>
<rowsItem>
<index>86</index>
<row>
<c>
<c>
<f>16</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>86</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>13</f>
</c>
</c>
<c>
<c>
<f>15</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Обработка.узКанбанДоска.ФормаДинамическая</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>14</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Скопирован в буфер: %1</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>11</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Copied to clipboard: %1</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
@ -5215,8 +5410,8 @@
</rowsItem>
<templateMode>true</templateMode>
<defaultFormatIndex>18</defaultFormatIndex>
<height>84</height>
<vgRows>84</vgRows>
<height>87</height>
<vgRows>87</vgRows>
<line width="1" gap="false">
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
</line>

View File

@ -502,5 +502,21 @@
<Action>КомандаДобавитьВТекущиеДела</Action>
<Representation>TextPicture</Representation>
</Command>
<Command name="КомандаСкопироватьКомментарийВКоде" id="8">
<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+Shift+C</Shortcut>
<Action>КомандаСкопироватьКомментарийВКоде</Action>
</Command>
</Commands>
</Form>

View File

@ -175,13 +175,19 @@
МассивКодовСообщений.Добавить(73);//Следить за задачей
МассивКодовСообщений.Добавить(74);//Не следить за задачей
МассивКодовСообщений.Добавить(81);//Добавить в текущие дела
МассивКодовСообщений.Добавить(83);//Скопировать комментарий в коде Copy the comment in the code
СтруктураСообщений = РегистрыСведений.узСловарь.ПолучитьСтруктуруСообщений(МассивКодовСообщений);
пКомандаДобавитьВТекущиеДела = пЭлементыФормы.Добавить(ИменаЭлементов.ИмяКомандыДобавитьВТекущиеДела, Тип("КнопкаФормы"), пЭлементТЧЗадачи.КонтекстноеМеню);
пКомандаДобавитьВТекущиеДела.Заголовок=СтруктураСообщений.Текст81;
пКомандаДобавитьВТекущиеДела.ИмяКоманды="КомандаДобавитьВТекущиеДела";
пКомандаДобавитьВТекущиеДела.Отображение = ОтображениеКнопки.КартинкаИТекст;
пКомандаДобавитьВТекущиеДела.Отображение = ОтображениеКнопки.КартинкаИТекст;
пКомандаСкопироватьКомментарийВКоде = пЭлементыФормы.Добавить(ИменаЭлементов.ИмяКомандыСкопироватьКомментарийВКоде, Тип("КнопкаФормы"), пЭлементТЧЗадачи.КонтекстноеМеню);
пКомандаСкопироватьКомментарийВКоде.Заголовок=СтруктураСообщений.Текст83;
пКомандаСкопироватьКомментарийВКоде.ИмяКоманды="КомандаСкопироватьКомментарийВКоде";
пКомандаСкопироватьКомментарийВКоде.Отображение = ОтображениеКнопки.КартинкаИТекст;
пКомандаДобавитьВСпринт = пЭлементыФормы.Добавить(ИменаЭлементов.ИмяКомандыДобавитьВСпринт, Тип("КнопкаФормы"), пЭлементТЧЗадачи.КонтекстноеМеню);
пКомандаДобавитьВСпринт.Заголовок=СтруктураСообщений.Текст71;
@ -279,6 +285,7 @@
ИмяКомандыСледитьЗаЗадачей = ИмяКолонки + "_ТЧЗадачи_КомандаСледитьЗаЗадачей";
ИмяКомандыНеСледитьЗаЗадачей = ИмяКолонки + "_ТЧЗадачи_КомандаНеСледитьЗаЗадачей";
ИмяКомандыДобавитьВТекущиеДела = ИмяКолонки + "_ТЧЗадачи_КомандаДобавитьВТекущиеДела";
ИмяКомандыСкопироватьКомментарийВКоде = ИмяКолонки + "_ТЧЗадачи_КомандаСкопироватьКомментарийВКоде";
ИмяКарточкаЗадачи = ИмяКолонки + "_ТЧЗадачиКарточкаЗадачи";
ИмяКарточкаЗадачи_НижняяЧасть = ИмяКолонки + "_ТЧЗадачиКарточкаЗадачи_НижняяЧасть";
@ -297,8 +304,9 @@
РезультатФункции.Вставить("ИмяКомандыСледитьЗаЗадачей",ИмяКомандыСледитьЗаЗадачей);
РезультатФункции.Вставить("ИмяКомандыНеСледитьЗаЗадачей",ИмяКомандыНеСледитьЗаЗадачей);
РезультатФункции.Вставить("ИмяКомандыДобавитьВТекущиеДела",ИмяКомандыДобавитьВТекущиеДела);
РезультатФункции.Вставить("ИмяКарточкаЗадачи",ИмяКарточкаЗадачи);
РезультатФункции.Вставить("ИмяКомандыСкопироватьКомментарийВКоде",ИмяКомандыСкопироватьКомментарийВКоде);
РезультатФункции.Вставить("ИмяКарточкаЗадачи",ИмяКарточкаЗадачи);
РезультатФункции.Вставить("ИмяКарточкаЗадачи_НижняяЧасть",ИмяКарточкаЗадачи_НижняяЧасть);
РезультатФункции.Вставить("ИмяПоляЗадачиВКарточкеЗадачи",ИмяПоляЗадачиВКарточкеЗадачи);
@ -876,6 +884,46 @@
Справочники.узТекущиеДела.ДобавитьЗадачуВТекущиеДела(ДопПараметры);
КонецПроцедуры
&НаКлиенте
Процедура КомандаСкопироватьКомментарийВКоде(Команда)
СтрокаТЧ = Элементы[ИмяАктивнойТЧ].ТекущиеДанные;
Если СтрокаТЧ = Неопределено тогда
узОбщийМодульСервер.узСообщить("Выберите задачу, по которой хотите скопировать комментарий в коде",84);
Возврат;
Конецесли;
МассивВыделенныхСтрок = Элементы[ИмяАктивнойТЧ].ВыделенныеСтроки;
Если МассивВыделенныхСтрок.Количество() = 0 Тогда
узОбщийМодульСервер.узСообщить("Выберите задачу, по которой хотите скопировать комментарий в коде",84);
Возврат;
Конецесли;
Если МассивВыделенныхСтрок.Количество() > 1 Тогда
узОбщийМодульСервер.узСообщить("Можно выбрать только одну задачу для копирования комментария в коде",85);
Возврат;
Конецесли;
пКомментарииВКоде = ПолучитьКомментарийВКодеНаСервере(МассивВыделенныхСтрок);
узОбщийМодульКлиент.УстановитьТекстВБуферОбмена(пКомментарииВКоде);
КонецПроцедуры
&НаСервере
Функция ПолучитьКомментарийВКодеНаСервере(МассивВыделенныхСтрок)
МассивЗадач = ПолучитьМассивЗадачПоВыделеннымСтрокам(МассивВыделенныхСтрок);
Если МассивЗадач.Количество() > 1 Тогда
узОбщийМодульСервер.узСообщить("Можно выбрать только одну задачу для копирования комментария в коде",85);
Конецесли;
пЗадача = МассивЗадач[0];
ДопПараметры = Новый Структура();
ДопПараметры.Вставить("Код",пЗадача.Код);
ДопПараметры.Вставить("Исполнитель",пЗадача.Исполнитель);
ДопПараметры.Вставить("НомерВнешнейЗаявки",пЗадача.НомерВнешнейЗаявки);
пКомментарииВКоде = Справочники.узЗадачи.ПолучитьКомментарииВКоде(ДопПараметры);
Возврат пКомментарииВКоде;
КонецФункции
#КонецОбласти
#Область ОформлениеКанбанДоски
@ -1125,6 +1173,7 @@
КонецФункции
#КонецОбласти