Добавление собственного виджета в 1С:Документооборот версии 3.0

18.07.22

Функциональные - Документооборот и делопроизводство (СЭД)

В данной публикации я хочу описать процесс добавления собственного виджета для отслеживания задач по видам документов в 1С документооборот версии 3.0.

Не так давно мне досталась задачка по созданию собственных виджетов по отслеживанию невыполненных задач в виде кольцевой диаграммы и показателей в Документообороте 3.0. Поиск в интернете особо ничего выдал, только статью на ИТС и на Инфостарте, как это делается в Документообороте 2.1. Начал смотреть и разбираться, оказалось, что отличий очень много, поэтому и родилась идея написать данную статью, так как ДО 3.0 сейчас активно внедряется, а информации по ней мало. Итак, приступим.

Для начала опишу шаги, которые нам необходимо будет пройти, чтобы наш виджет заработал. Сперва нужно сделать некоторые манипуляции в 1С предприятии.

  1. Создать сам виджет.
  2. Создать групповой показатель. Он нужен для того, чтобы на самом виджете отображалось количество задач по нашим показателям.
  3. Создать и настроить показатели виджета
  4. Настроить сам виджет.

Далее переходим в конфигуратор и начинаем программировать работу виджета и показателей.

  1. Пишем функцию, которая будет обрабатывать и выводить количество задач для наших показателей на самом виджете
  2. Создаем команды для перехода, кликая по показателю на форму Задачи мне, но с нашими отборами, которые соответствуют названию показателя.
  3. Дописываем типовые процедуры и функции, где указываем, как формировать наши группировки задач, а если точнее, то отборы для динамического списка.

По итогу мы получим виджет, в котором будет оперативно меняться количество задач и возможность перейти, кликая по показателю на форму задачи с нашим отбором, который будет заложен в коде соответствующего показателя.

План нарисовали, можно приступать.

Еще немаловажный момент. Делалось все через расширение, так как заказчик попросил конфу не менять.

1. Создаем сам виджет

Делается это достаточно легко, открываем функции для технического специалиста и вбиваем поиск "Виджеты". Находится один справочник в него и переходим.

Нам открывается справочник, в котором есть только предопределенные значения. Особой необходимости как в ДО 2.1 делать предопределенным новый виджет нет, поэтому берем тот, что более-менее похож на наш, к примеру, "Задачи мне (диаграмма, по видам)" и копируем его. На текущем этапе достаточно только обозвать его так, как нам нужно. В моем случае это будет выглядеть вот так:

 

 

В итоге получаем виджет с нашим наименованием, но по сути это будет копия того, что мы сделали и если его вывести, то он ничем отличаться не будет.

2. Создаем групповой показатель

Групповой показатель, как писал ранее, нужен для вывода информации о количестве задач, которые будут по нашим показателям на виджете. По этому также открываем функции для технического специалиста и вбиваем поиск "Групповые Показатели". Нам открывается аналогичный Виджетам справочник, в котором есть опять же только предопределенные значения. Копируем аналогичный виджету групповой показатель, а именно "Итоги "Задачи мне" (по видам)", и начинаем его настраивать.

 

 

Пробежимся по реквизитам:

  1. В первую очередь наименование так как оно должно быть уникальным.
  2. Далее выражение. Это как раз та функция, которую нам придется в дальнейшем закодировать, чтобы по указанным свойствам, которые указаны ниже, передавать количество задач. В моем случае я ее назвал "ЗадачиМнеИтогиПоДокументам"
  3. Вкладка Свойства. На этой вкладке мы укажем ключи для наших показателей. Соответственно старые я удалил и вбил свои.
  4. Вкладку события не трогаем, там перечислены события, по которым данная функция будет дергаться для обновления показателей.

Записываем и закрываем, больше нам тут делать нечего. Идем дальше.

3. Создание и настройка показателей виджетов

Уже ставшим привычным действием открываем функции для технического специалиста и вбиваем поиск "Показатели виджетов". Открываем справочник, видим снова предопределенные значения и копируем, к примеру, виджет "Задачи мне: На рассмотрение", так как он у нас был в нашем первоначальном виджете, с которого мы копировали, ну и в групповом виджете он тоже участвовал.

Меняем значение реквизитов:

  1. Наименование в моем случае "Задачи мне: Договоры"
  2. Заголовок "Договоры". Так будет выглядеть наименование на самом виджете
  3. Подсказку по желанию
  4. Немаловажный реквизит - картинка. Без нее будет плохо, поверьте мне. Я потратил кучу времени на то, чтобы понять, почему из показателя получается абракадабра. Выбираем любой цвет из ЛегендаДиаграммы. Я выбрал такое значение "ЛегендаДиаграммыСиний".
  5. Цвет виджета серии по аналогии с картинкой берем "Синий"
  6. Далее у нас уже стоит Тип "Групповой"
  7. Групповой показатель выбираем тот, который создали ранее: "Итоги "Задачи мне" по документам"
  8. Свойство группового показателя - выбираем тот, который мы закладывали заранее для этого показателя "ЗадачиМнеДоговоры"
  9. Тип Значения уже стоит "Число", поэтому не трогаем.
  10. В разделе Действие пока ничего не трогаем, так как без Источника виджет будет ломаться, а команды для перехода мы сделаем только сильно позже.
  11. События оповещения нам не нужны.

Если все правильно сделали, то выглядеть будет вот так:

 

 

Записываем, закрываем и повторяем процедуру еще 3 раза, только указываем для каждого показателя свои значения.

Теперь настало время для настройки самого виджета.

4. Настройка виджета

Для того, чтобы нам удалось настроить виджет, необходима какая-нибудь обработка, которая позволит увидеть больше, чем то, что показывает нам сам документооборот. Я воспользовался 1С Admin. После открытия через данную обработку нашего виджета мы увидим, что у нас, оказывается, есть еще куча табличных частей, которые нам постеснялись показать.

 

 

Скрываем пустые ТЧ, удаляем все значения в ТЧ "Дополнительные показатели", "Основные показатели" и "Команды".

Добавляем в ТЧ "Основные показатели" наши показатели в том порядке, в каком вы хотите их видеть на виджете.

 

 

Записываем и закрываем. На текущем этапе в клиенте с работами пока все. Переходим в конфигуратор.

5. Функция для вывода значений показателей виджета на сам виджет.

Ранее в групповом показателе мы придумывали некую функцию. Так вот настало время ее создать. Идем в конфигурацию > Общиемодули > РаботаСЗадачиами

Для упрощения написания можно скопировать аналогичную функцию, к примеру, ту, что у нас была прописана в групповом показателе, с которого мы копировались. "ЗадачиМнеИтогиПоВидам"

Код этой функции:

 
 Код функции ЗадачиМнеИтогиПоДокументам

 

Собственно, в ней мы получаем отбор в виде сотрудника, под пользователем которого мы сидим, далее задаем структуру из наших свойств, которые указаны в Групповом показателе, затем идем в функцию с запросом, где получаем результат в виде ТЧ, где указаны задачи по видам действий. Ну а после уже перебором мы в нашу структуру суммируем количество задач и возвращаем в то место, откуда нас позвали.

Теперь то, что нужно будет сделать нам для того, чтобы выводились нужные показатели.

В первую очередь нам не нужен отбор, а достаточно получить Сотрудника. Воспользуемся типовой функцией для этого:

 
 Получаем сотрудника

Далее меняем ненужные нам показатели на наши:

 
 Создаем структуру с нашими показателями

Пишем запрос, который удовлетворяет наши требования. Кстати, все значения получаются из регистра накопления "КоличествоДействийЗадач.Остатки"

 
 Запрос для получения показателей

Раз в типовом коде у нас получается ТЗ по результату выполнения запроса, почему бы и нам так же не сделать

Ну и, наконец, переписываем ту часть, где происходит заполнение нашей структуры с показателями

 
 Заполнения структуры показателями

За поиск по наименованию не ругайте, так надо, ибо таков путь.

Переходим к командам для перехода по нашим показателям.

6. Создание команд перехода по показателям

Все команды, которые нам необходимы, будем создавать в документе "Задача", так как форма с "Задачи " принадлежит этому документу. Для удобства копируем команду, которая у нас была указана в наших показателях. "ЗадачиМнеНаСогласование"

Переименовываем ее в "ЗадачаМнеПоВидамДокументов "и пишем синоним "Задача мне по видам документов Договоры". Синоним это важно, так как далее в коде будет прописана ссылка на этот синоним, и в заголовке формы задачи мы увидим этот текст.

В самом модуле команды мы меняем только Ключ использования на "ФильтрПоДоговорам". Далее нам нужно будет протащить этот ключ по всему модулю формы, чтобы нигде не было ошибок при выполнении.

 
 Текст модуля команды

Для всех наших показателей создаем по аналогии.

7. Настройка отборов для корректного открытия формы Задачи с нужным перечнем задач.

Поскольку мы переходим по команде в форму с собственным ключом, нужно этот ключ везде, где он используется, включить, иначе будет ошибка.

В первую очередь нам нужно завести эти команды на форму, так как в процедуре "ПриИзмененииВариантаГруппировки()" они используются как элементы формы. Поэтому "ПриСозданииНаСервере" обязательно в начале пишем:

 
 Создаем на форме наши команды

Далее для каждой команды нужно завести процедуры, но предварительно в перечислении "ВариантыГруппировкиЗадач" нужно для каждой нашей команды создать перечисление, чтобы его можно было указать в нашей группировке. 

 
 Создаем процедуры для команд

С командами закончили, теперь нужно добавить в параметры быстрого поиска значения для наших команд. Делается это в процедуре "ОбновитьПараметрыБыстрогоПоиска". Для удобства вклиниваемся в конце перед "БыстрыйПоиск.Сортировать("Сортировка");" где заполняется переменная БыстрыйПоиск

Делаем по аналогии с тем, как заданы значения для других команд.

 
 Настройка БыстрогоПоиска

Теперь правим событие ПриИзмененииВариантаГруппировки

В месте, где заполняется соответствие КомандыВариантовГруппировки, вписываем свой код:

 
 Редактируем ПриИзмененииВариантаГруппировки

Чтобы не получить ошибку "Неизвестный ключ назначения использования", дописываем код в процедуре ОбработатьКлючНазначенияИспользования. Встраиваемся сразу после проверки ключа "ЗадачиМнеДругие". На самом деле не обязательно именно в этом месте, но таков путь. Кстати, здесь как раз и прописывается ссылка на синоним для заголовка.

 
 Редактируем процедуру ОбработатьКлючНазначенияИспользования

По аналогии с процедурой ОбработатьКлючНазначенияИспользования, чтобы не получить такую же ошибку, дописываем код в процедуре "ОбновитьГруппировки". Вставлять текст после проверки на ключ "ЗадачиМне".

 
 Редактируем процедуру ОбновитьГруппировки

Ну и чтобы не получить ошибку, если кто-то полезет в группировки и начнет нажимать команды, указанные там, редактируем процедуру "ЗаполнитьГруппировкуЗадачиМне". Вставляем код после проверки на вариант перечисления по Флагу. Опять же необязательно именно там.

 
 Редактируем процедуру ЗаполнитьГруппировкуЗадачиМне

Ну и напоследок то, ради чего все это делалось, а именно отборы для динамического списка. Нас интересует процедура ПараметрыОтбора. В ней-то как раз и задаются значения в параметры отбора, которые нам нужны будут при открытии.

Все необходимые нам параметры уже заложены заранее, поэтому нам всего лишь в нужном месте нужно вклиниться и передать необходимые значения. Вклиниваться будем уже в самом конце перед Быстрым поиском. Как раз тут нам и понадобится наш ключ, который мы передаем в команде. По нему очень удобно отслеживать, какая команда выполняется.

 
 Редактирование процедуры ПараметрыОтбора

Массивы со значениями я получал запросом в отдельной функции, которую дергал, если попадал в соответствующий вариант

 
 Запрос для получения массива видов документов из папки Договоры

 

С Конфигуратором теперь тоже закончили, и возвращаемся назад в клиент. Там нам нужно в наши показатели прописать в реквизит "Источник" наши команды, ну и вывести наш новый реквизит на рабочий стол.

Идем в Настройка > Персональные настройки > Рабочий стол. Поскольку наш Виджет занимает 2 клетки, нам нужно очистить нужное место от стандартных реквизитов и вставить наш. Жмем плюсик. Ждем, когда инициализируются все виджеты, и выбираем наш. В итоге получится вот так:

 

 

Ну и на рабочем столе у нас уже будут наши виджеты, и выглядят они таким образом:

 

 

Теперь немого пояснения к тому, что написано выше. Все, что касается отборов и ключей, это только для того, чтобы не было ошибок. Я особо не вникал, что там происходит в этот момент, ибо времени было очень мало на разработку виджетов. Сейчас уже неделю тестится и обкатку прошло нормально, весь код уже был допилен и ошибок не возникает. Наши группировки, которые на форме, собственно, куда мы добавляли команды не работают. Т.е. они возвращают либо весь список, если мы сидим в Задачи мне, либо уже тот список, который указан при переходе по виджету. В планах их просто скрыть, чтобы глаза не мозолили пользователям, которые любят жать на все кнопки подряд.

Далее, что касается параметров отбора. Данная процедура дергается из процедуры УстановитьПараметрыГруппировкиНаСервере()

Что интересно, в ней уже заранее заложены такие параметры, как ВидПриложения, хотя на форме нет возможности никак получить список задач по какому-то определенному виду документов. Возможно, со временем допилят, а пока текущая версия, на которой все манипуляции делались, это Документооборот КОРП, редакция 3.0 (3.0.7.28). На момент написания статьи это актуальный релиз для ДО 3.0.

Всем спасибо за прочтение данной статьи, надеюсь, она вам была полезной.

Виджет Документооборот 3.0 Собственный

См. также

Документооборот и делопроизводство (СЭД) Типовые Бухгалтер Пользователь Руководитель проекта Платформа 1С v8.3 Управленческий учет Платные (руб)

Организуйте правильный оборот документов на вашем предприятии в 1С. Ведение учета и хранения документов. Управление потоками документации между подразделениями. Работа с договорами в компании. Автоматизация процессов подготовки, согласования и подписания документов. Сократите время и объем ошибок с 1С:ДО!

48500 руб.

19.02.2016    108652    123    5    

98

SALE! 30%

Загрузка и выгрузка в Excel Документооборот и делопроизводство (СЭД) Учет документов Распознавание документов и образов Бухгалтер Пользователь Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная программа для распознавания сканов или фото товарных документов в 1С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

8400 5880 руб.

04.06.2019    107328    313    173    

326

Документооборот и делопроизводство (СЭД) Бухгалтер Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Продукт "Апрель Софт: Бухгалтерия позаказного производства, ред. 3.0" предназначен для удобного и оперативного управления процессами производства, отгрузок и снабжения в производственных компаниях. Программный продукт открывает новые функциональные возможности для ведения документооборота.

11400 руб.

18.02.2016    22978    1    1    

5

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    6133    15    5    

24

Документооборот и делопроизводство (СЭД) Мессенджеры и боты Учет документов Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 Платные (руб)

Расширение для согласования справочников и документов в основных типовых конфигурациях. Ролевая адресация, условная маршрутизация, чат-бот telegram, интеграция с n8n, последовательное и параллельное согласование, уведомление о новых задачах на почту, блокировка объектов в зависимости от статуса, запрет проведения в зависимости от статуса, автозапуск процессов согласования, отчеты по исполнительской дисциплине. Не требуется снятие конфигурации с поддержки. Настройка без программирования. Версия для 1cfresh.com. Сертификат 1С-Совместимо.

14900 руб.

15.11.2018    30403    35    49    

71

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    4257    15    1    

33

Документооборот и делопроизводство (СЭД) ЭДО и ОФД Учет документов Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Мощный, единый инструмент для решения всех проблем, связанных с переходом на ЭДО. Экономит бумагу и время - организует архив оригиналов первичных документов прямо в базе 1С, в прикрепленных файлах к соответствующим документам. С помощью комплексного отчета по ошибкам в ЭДО позволяет выявить и исправить все возможные ошибки - ошибочно сопоставленные документы, не подписанные документы, подписанные, но не загруженные в 1С документы. Автоматически сопоставляет не сопоставленные между собой документы. Может работать по расписанию и присылать отчет о состоянии архива/по ошибкам на почту. Взаимодействует напрямую с сервисами Диадок/СБИС, имеет интуитивно понятный интерфейс и учитывает 3-х летний опыт 40+ клиентов.

14880 руб.

17.12.2018    45716    65    59    

79

Печатные формы Адаптация типовых решений Бухгалтер Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение позволяет вывести в табличном документе факсимиле печати и подписей и/или вывести произвольную картинку из прикреплённых файлов организации для 1С УТ 11.5, КА 2.5, ERP 2.5, УНФ 3, Розница 3. Вывод факсимиле возможен в табличные документы УПД, УКД, Счёт-фактура, ТОРГ-12 и другие. Возможно настроить вывод для любых типовых макетов (Акт сверки, М-15, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с установленными именами. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

3000 руб.

07.02.2023    6803    73    10    

30
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ArseniyFenix 53 18.07.22 10:21 Сейчас в теме
Для редактирования реквизитов я использовал 1CAdmin из этой статьи https://infostart.ru/public/100967/
За что им большое спасибо.
user1863474; XanDerOitProg; mrChOP93; +3 Ответить
2. triviumfan 97 25.07.22 14:46 Сейчас в теме
Думаю пригодится, плюсую, когда-нибудь доберусь, тем более оформил хорошо.
user1863474; ArseniyFenix; +2 Ответить
3. theserjaja 04.09.24 22:26 Сейчас в теме
Не могу сообразить. Сделал все по описанию статьи, но не для видов документов, а по аналогии с типовым (по видам действий), ради изучения механизма.

При переходе по созданной команде, возникает ошибка: "Не удалось перейти по ссылке "e1cib/command/Документ.Задача.Команда.НашаСозданнаяКоманда" по причине: Неверно задана навигационная ссылка."

Облазил типовой код в модуле формы "Задачи", документа "Задача". Не сообразил почему не отрабатывает переход по ссылке. Было предположение (поскольку я делал все через расширение), что моя созданная команда почему-то не видна процедуре перехода по ссылке. Но мне не удалось разобраться где моя ошибка.

Был бы признателен, если кто-то подскажет в каком направлении копать, где моя ошибка.
4. noxpina79 17.10.24 11:51 Сейчас в теме
(3) Аналогичная ситуация. Скопировала наиболее подходящую форму в расширение. Заработало
5. noxpina79 17.10.24 11:52 Сейчас в теме
Оставьте свое сообщение