Настраиваемая структура подчиненности

06.05.19

Задачи пользователя - Подбор и обработка объектов

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

Скачать исходный код

Наименование Файл Версия Размер
Структура подчиненности
.epf 25,08Kb
36
.epf 3.0 25,08Kb 36 Скачать

Тестировалось на Управление торговлей ред. 10.3 на релизе 10.3.47.3, но будет работать как на более ранних так и более поздних версиях.

 

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

 

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

 

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

 

Структура подчиненности - механизм который вызывается из всех документов (вызывается по кнопке Перейти - Структура подчиненности) и предназначена для показа подчиненности связанных объектов через ссылки. Например такой:

 

 

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

 

Все дальнейшие использование обработки я бы разделил на несколько групп:

1. выполнения в одном окне универсальные действия с документами

2. просмотр реквизитов у связанных документах

3. история хозяйственной деятельности

 

Теперь рассмотрим их подробнее.

 

Универсальные действия с документами

 

В типовой конфигурации нет способа универсально добавить некую функцию во все объекты. Но зато есть универсальные механизмы добавленные везде в которые можно добавить свои универсальные функции - и самый удобный механизм для этого как раз Структура подчиненности!

 

Как я уже говорил для ускорения всем действиям назначены сочетания горячих клавиш для быстрого выполнения - когда действий много то это очень сильно ускоряет работу - проверено неоднократно. Увидеть сочетание можно наведя мышкой на кнопу.

 

Типовые действия весьма скудные: проведение и его отмена, пометка и ее снятие.

 

ВАЖНО! Эти действия реализованы программно, а следовательно даже если у пользователя нет прав интерактивно выполнять данные действия то он сможет их сделать через эту обработку. По сути это такая дырка в безопасности, и если об этом не знать то можно долго гадать как пользователи обходят права.

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

 

Дополнительно добавил действия:

 

Все они выполняются по выделенному объекту (кроме движений документа), и только если в данной ячейки не объект, тогда берется документ из строки.

 

 Движения документа по регистрам

Стандартное действие вынесенное для упрощения вызова

 

 Задача

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

Задача привязывается к объекту по реквизиту "Объект" который к сожалению имеет ограниченный набор типов. Поэтому при создании новой задачи выполняется проверка содержит и реквизит данный тип и если нет то задача не будет создана будет выдано соответствующее предупреждение.

 

 Свойства  Категории

При работе с базами я очень часто использую свойства и категории как справочников так и документов (особенно у последних для настройки различных прав/проверок) . Поэтому вынесение данных функций очень ускоряет работу - к тому же не тратится ресурсы системы на открытие формы.

 

 Печать

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

 

Файлы

Механизм много где используется и везде визуально различается - в Заказе покупателя, Реализации, Контрагенте, Договоре. Механизм позволяет прикреплять произвольные файлы к объектам, и часто бывает что прикрепить можно только зайдя в справочник "Хранилище дополнительной информации", а у самого объекта такая функция не выведена.

Также выполняется проверка чтобы объекту можно было добавить файл - по типу данных реквизита Объект в справочнике "Хранилище дополнительной информации"

 

 Настройка.

Содержит несколько настроек меняющие работу обработки, если не устраивает как есть.

 

Выводимые реквизиты

 

Это одна из самых полезных доработок позволяющая выводить произвольные колонки. Очень удобно когда структура документов содержит множество разных документов и требуется понять общую картину не открывая каждый из них. Вот небольшой пример как это выглядит (на самом деле бывает что структура не помещается даже на экран):

 

 

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

Конечно для полноценной связки всех документов нужно чтобы у них всех был реквизит с ссылкой, чаще всего он есть и называется "Документ основание". Но в некоторых случаях он не вынесен на форму документа (как например в документе Приходный кассовый ордер") или вообще отсутствует. Если есть возможность изменить конфигурацию, то стоит это сделать ,чтобы добиться максимальной гибкости - добавить в нужных документах данный реквизит и включить его в состав критерия отбора "Связанные документы" по которому работает обработка. Ниже описано как это делается.

Также есть такой нюанс как реквизиты с разным именем в разных документах выполняющие по сути одинаковую роль. Например Склад в документе "Реализация" и СкладГруппа в "Заказ покупателя". Я решил это путем вывода аналогов колонок, т.е. если добавляем колонку с реквизитом "Склад" из "Реализации" то автоматом проставляется аналог его для "Заказ покупателя" - в функции ПолучитьРеквизитыАналоги(), наоборот не делал. Если нужно то можно самостоятельно дописать другие аналоги.

 

Колонку "Валюта" убрал т.к. редко кто работает с несколькими валютами в базе и ее всегда можно добавить самостоятельно.

 

 Колонки.

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

Добавление производиться из реквизитов активного документа. а удаление - активной колонки.

 

 Сохранение  Восстановление.

Стандартный механизм позволяющий сохранить Настройки и Колонки. Удобно когда для разных типов документов нужна своя схема, или посмотреть схему другого пользователя. Работает как и в типовом механизме - при открытии обработки восстанавливается настройка по умолчанию.

 

История хозяйственной деятельности

 

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

Для решения всех этих проблем я использую объект "Задачи пользователя". Но без привязки к документам невозможно понять кто с ним что делал и почему. Поэтому я доработал структуру подчиненности так чтобы сразу видеть вместе с документами и задачи по ним, и наоборот - по поставленной задаче пройтись по всей цепочке связанных документов.

В результате это выглядит вот так:

 

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

1. В критерии отбора СвязанныеДокументы в задаче ЗадачиПользователя у реквизита"Объект" - установить флажок.

 

2. в общем модуле "ОбщегоНазначения" в функция РазобратьПутьКОбъектуМетаданных() в конце нужно вставить после Если Структура.ТипОбъекта = "Документ" Тогда и перед Иначе еще одно условие:

            ИначеЕсли Структура.ТипОбъекта = "Задача" Тогда

                        Структура.Вставить("Метаданные", Метаданные.Задачи[Структура.ВидОбъекта]);

 

3. также чтобы ставить задачу по любому объекту лучше в реквизите "Объект" в Задаче ЗадачиПользователя поставить тип "ЛюбаяСсылка" тогда не придется выполнять п.4.

 

4. в общем модуле "ПолныеПрава" в про ПолучитьСписокДокументовПоКритериюОтбора()

перед Запрос.Текст = ТекстЗапроса; прописать

            Если Не ЗначениеЗаполнено(ТекстЗапроса) Тогда

                        Возврат Новый ТаблицаЗначений;

            КонецЕсли;

это нужно на случай если задача нигде не будет использована в составе критерия отбора (или в нем не будет реквизита с типом "ЛюбаяСсылка")

 

ВАЖНО! После всех этих действий кнопкой "Связанные документы" нельзя будет пользоваться как и формой списка для критерия отбора "Связанные документы" - потому что он не предназначен для работы с задачами (будет вылетать ошибка в процедуре ЗаполнитьТаблицуСвязанныхДокументов() при выполнении запроса). Это конечно можно исправить но т.к. я никогда не пользуюсь данным механизмом то не сделал этого, если кому нужно и не сможет сам - напишите и я распишу как исправить.

 

 

Несколько моментов в качестве заключения

 

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

Чтобы заменить вызов встроенной формы на эту нужно ее добавить как обработку и в общем модуле РаботаСДиалогами в процедуре ПоказатьСтруктуруПодчиненностиДокумента() написать вместо

ФормаСтруктурыПодчиненности = ПолучитьОбщуюФорму("ФормаСтруктурыПодчиненности");

новый вызов:

ФормаСтруктурыПодчиненности = Обработки.СтруктураПодчиненности.ПолучитьФорму();

Или (кому как удобно) сделать вызов с диска как я  - чтобы менять не изменяя конфигуратор храню основные инструменты на диске и вызываю оттуда. На скорость пользователя это не сильно влияет, а вот на скорость изменения - очень упрощает и ускоряет, и меньше надо чистить локальный кэш у пользователей.

Кстати данная замена решает большое неудобство что нельзя открыть больше одной формы структуры подчиненности - чтобы сравнить несколько структур приходиться открывать несколько сеансов с базой.

 

Также я обычно для удобства вытаскиваю кнопку " Структура подчиненности документа" из меню "Перейти" просто на форму (списка и объекта - конечно только основных) и назначаю ей сочетание клавиш чтобы не искать кнопку, например Ctrl+D - чтобы легко было вызывать.  Но можно просто назначить сочетание и не придется тратить время на "мышкование".

 

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

обработка УТ 10.3 Структура подчиненности

См. также

Групповое копирование документов из периода в период

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

Очень часто бывает, что документы одного периода повторяются в следующем. Поэтому приходится выполнять рутинную работу по их повторению, а именно копировать каждый документ по отдельности. Чтобы этого избежать, была написана обработка группового копирования документов для конфигурации 1С Бухгалтерия версии 3.0.

3600 руб.

29.06.2015    44696    90    18    

100

Групповая обработка проводок для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0

Подбор и обработка объектов Бухгалтерский учет 1С:Бухгалтерия 2.0 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Данная обработка предлагается для случаев, когда бывает необходимо изменить какой-либо реквизит в группе проводок, отобранных по определенному набору полей, за определенный период, с определенным типом документа-регистратора. Предлагается четыре варианта обработки для конфигураций: БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0 .

2000 руб.

30.05.2016    28837    29    0    

49

Универсальная обработка регистров сведений: удаление и обработка записей по фильтрам

Подбор и обработка объектов Платформа 1С v8.3 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:CRM ПРОФ, КОРП 1С:Управление нашей фирмой 3.0 Абонемент ($m)

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

10 стартмани

13.04.2024    613    4    user1527257    0    

9

Шаблон обработки документов/справочников по произвольному алгоритму

Подбор и обработка объектов Платформа 1С v8.3 1С:ERP Управление предприятием 2 Россия Абонемент ($m)

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

1 стартмани

11.03.2024    328    6    SanchoD    1    

3

Объединение табличных частей "Товары" документов "Реализация товаров и услуг"

Подбор и обработка объектов Платформа 1С v8.3 1С:Управление торговлей 11 Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Акцизы Абонемент ($m)

Заказчик попросил написать обработку по объединению документов "Реализация товаров услуг" в один итоговый документ, в процессе выполнения получилось 2 обработки.

1 стартмани

29.02.2024    401    3    VdZMWOnC    8    

4

Автоматическое начисление ежемесячных услуг

Производство готовой продукции (работ, услуг) Подбор и обработка объектов Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Абонемент ($m)

Автоматизированное начисление ежемесячных услуг с отправкой по электронной почте счетов. Модуль будет полезен организациям, которые ежемесячно выписывают большое количество счетов и реализаций клиентам, например: IT-компании, охранные предприятия, рекламные организации и другие, оказывающие профессиональные услуги на регулярной основе. Упрощенная версия предназначена для организаций, которые работают без НДС и при выписке услуг предполагается одна услуга в документе "Реализация товаров и услуг"

5 стартмани

18.02.2024    569    4    pean    1    

8

Проведение документов на управляемых формах

Подбор и обработка объектов Платформа 1С v8.3 Управляемые формы 1С:ERP Управление предприятием 2 Россия Абонемент ($m)

Универсальная обработка проведения/перепроведения документов для любой конфигурации на управляемых формах.

1 стартмани

10.02.2024    523    17    SanchoD    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. RustIG 1595 07.05.19 10:00 Сейчас в теме
2. CaSH_2004 372 07.05.19 19:01 Сейчас в теме
(1) Ага, это весьма полезно, но то ли написал сложно то ли еще что только просмотров больше 200, а коммент 1. Непонятная реакция сообщества :)
+
3. RustIG 1595 07.05.19 21:01 Сейчас в теме
(2) я просто в "теме", сразу увидел "что к чему".
+
4. CaSH_2004 372 07.05.19 22:27 Сейчас в теме
(3) Может есть какие-то интересные идеи по данной теме нереализованные у меня?
+
5. RustIG 1595 07.05.19 22:28 Сейчас в теме
(4) есть идея подобное реализовать на УФ для УНФ, УТ 11, ЕРП, КА
+
6. CaSH_2004 372 07.05.19 23:18 Сейчас в теме
(5) Да, к сожалению, все приходиться дублировать. Но я особо управляемыми не занимаюсь, поэтому в планах развивать пока только для обычного режима.
Кстати я пока изучал чужие наработки видел несколько интересных решений для управляемых типа:
Структура подчиненности [Расширение] УТ 11 - тут даже можно без критерия отбора указать где ссылки искать
Структура подчиненности. Кнопки проведения и управление пометкой удаления [Расширение] - а это перекликается с моим решением
Но я так смотрю на управляемых до сих пор в несколько раз беднее функционал чем на обычных. Интересно с чем это связано?
+
7. Светлый ум 406 09.06.20 19:04 Сейчас в теме
8. user1588547 23.04.21 14:58 Сейчас в теме
Добрый день, подскажите, в восьмерке можно ли сделать структуру отображаемой при наведении мыши на строку договора в общем списке?
+
Оставьте свое сообщение