При заполнении списка текущих дел. Интеграция с подсистемой СтандартныеПодсистемы.ТекущиеДела.
// Интеграция с подсистемой СтандартныеПодсистемы.ТекущиеДела.
// Заполняет список текущих дел пользователя.
//
// Параметры:
// ТекущиеДела - ТаблицаЗначений - таблица значений с колонками:
// * Идентификатор - Строка - внутренний идентификатор дела, используемый механизмом "Текущие дела".
// * ЕстьДела - Булево - если Истина, дело выводится в списке текущих дел пользователя.
// * Важное - Булево - если Истина, дело будет выделено красным цветом.
// * Представление - Строка - представление дела, выводимое пользователю.
// * Количество - Число - количественный показатель дела, выводится в строке заголовка дела.
// * Форма - Строка - полный путь к форме, которую необходимо открыть при нажатии на гиперссылку
// дела на панели "Текущие дела".
// * ПараметрыФормы- Структура - параметры, с которыми нужно открывать форму показателя.
// * Владелец - Строка, объект метаданных - строковый идентификатор дела, которое будет владельцем для текущего
// или объект метаданных подсистема.
// * Подсказка - Строка - текст подсказки.
//
Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ТекущиеДела") Тогда
Возврат;
КонецЕсли;
Если Не РазрешеноПодключениеТестовыхПериодов() Тогда
Возврат;
КонецЕсли;
ИдентификаторДела = "ПодключениеТестовогоПериода";
РезультатЗапроса = ОбработанныеЗапросыНаПодключение();
Дело = ТекущиеДела.Добавить();
Дело.Идентификатор = "ПодключениеТестовогоПериода";
Дело.ЕстьДела = Ложь;
Дело.Владелец = Метаданные.Подсистемы.ИнтернетПоддержкаПользователей;
Дело.Важное = Ложь;
Дело.Представление = НСтр("ru = 'Подключение тестового периода'");
Если РезультатЗапроса.Пустой() Тогда
Возврат;
КонецЕсли;
// Вызов процедуры предполагает наличие подсистемы СтандартныеПодсистемы.ТекущиеДела.
МодульТекущиеДелаСервер = ОбщегоНазначения.ОбщийМодуль("ТекущиеДелаСервер");
Если МодульТекущиеДелаСервер.ДелоОтключено(ИдентификаторДела) Тогда
Возврат;
КонецЕсли;
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Дело.ЕстьДела = Истина;
Дело.Представление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Подключение тестового периода (%1)'"),
ВыборкаДетальныеЗаписи.Количество());
ИндексДела = 1;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если ВыборкаДетальныеЗаписи.Подключен Тогда
СостояниеЗапроса = ПредопределенноеЗначение("Перечисление.СостоянияПодключенияСервисов.Подключен");
Представление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Подключен %1'"),
ВыборкаДетальныеЗаписи.НаименованиеТестовогоПериода);
Иначе
СостояниеЗапроса = ПредопределенноеЗначение("Перечисление.СостоянияПодключенияСервисов.ОшибкаПодключения");
Представление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось подключить %1'"),
ВыборкаДетальныеЗаписи.НаименованиеТестовогоПериода);
КонецЕсли;
Идентификатор = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
"ПодключениеТестовогоПериода%1",
ИндексДела);
ДелоПодключение = ТекущиеДела.Добавить();
ДелоПодключение.Идентификатор = Идентификатор;
ДелоПодключение.ЕстьДела = Истина;
ДелоПодключение.Владелец = "ПодключениеТестовогоПериода";
ДелоПодключение.Важное = Не ВыборкаДетальныеЗаписи.Подключен;
ДелоПодключение.Представление = Представление;
ДелоПодключение.Форма = "Обработка.ПодключениеСервисовСопровождения.Форма.ПодключениеТестовогоПериода";
ПараметрыФормы = ПодключениеСервисовСопровожденияКлиентСервер.НовыйПараметрыФормыОтобразитьРезультат(
ВыборкаДетальныеЗаписи.ИдентификаторТестовогоПериода,
ВыборкаДетальныеЗаписи.НаименованиеТестовогоПериода,
ВыборкаДетальныеЗаписи.Идентификатор,
ВыборкаДетальныеЗаписи.ИдентификаторЗапроса,
ВыборкаДетальныеЗаписи.ОписаниеОшибки,
СостояниеЗапроса);
ДелоПодключение.ПараметрыФормы = ПараметрыФормы;
ИндексДела = ИндексДела + 1;
КонецЦикла;
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)