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

27.11.11

Разработка - Работа с интерфейсом

Отчет "Универсальная структура подчиненности документов" позволяет увидеть иерархию документов (с возможностью использования произвольных отборов и вывода произвольных полей). Реализовано для обоих режимов запуска (обычная и управляемая формы).

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
(только для физ. лиц)
Универсальная структура подчиненности документов
.erf 41,52Kb
430 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вашему вниманию предлагается отчет для анализа документов с точки зрения подчиненности одного документа другому. Ну, "для анализа" - это, наверное, громко сказано... Но "чисто поглазеть" точно можно Smile.

В верхней части отчета расположены различные настройки, а в нижней - само дерево документов.

Пробежимся по настройкам:

  1. Страница "Корневой документ" - в поле "Типы корневого документа" выбираются типы корневого документа. Возможно выбрать больше одного типа (и даже все - контекстное меню к полю), но это скажется соответствующим образом на производительности. Под полем выбора корневых документов расположено дерево отборов (СКД). Как работать с отбором СКД, подозреваю, рассказывать не надо...
  2. Страница "Отборы"- так называемые "произвольные отборы", позволяющие накладывать условия на любые уровни документов. Знание языка запросов приветствуется (но для простых условий отбора - необязательно). Для обращения к документам различных поколений введены вспомогательные конструкции:
    1. [Документ5] - представляет собой документ пятого поколения (вместо пятерки используйте нужное поколение)
    2. [ДокументX] - подразумевает под собой документ каждого уровня, т.е. отбор с данной конструкцией будет использоваться в каждом поколении
    3. [ДокументA] и [ДокументB] - два соседних документа

    Первую конструкцию я бы назвал статической, а остальные - динамическими. Под конструкциями следует понимать ссылки на документы. Реквизиты "вытаскиваются", через точку: НачалоПериода([ДокументX].Дата, ДЕНЬ) = ДатаВремя(2011, 1, 1). Запрещено использование различных конструкций в одном условии. Также есть аналогичные конструкции, но вместо слова "Документ" используется слово "Состояние" ([СостояниеX] и т.д.) - это число, где 0 - документ помечен на удаление, 1 - не проведен, 2 - проведен. Извиняюсь за англ. раскладку Embarassed 

    У каждого условия есть три флажка:

    1. Использование - Включение/выключение отбора 2. ИЛИ - если флажок установлен, то условие будет работать по принципу "хотя бы один" (если условие выполнится для ветки хотя бы один раз); если флажка нет, то подразумевается условие "все" (как бы "И"). Условия ИЛИ накладываются на самой последней стадии, в связи с чем, слабо сказываются на увеличении скорости работы. Несколько условий ИЛИ объединяются по принципу "ИЛИ", остальные - по принципу "И". Laughing 3. Обязательное - если флажок установлен, то отбор обязательно отработает; если не установлен - то отбор не будет применяться для веток, у которых количество поколений меньше максимального номера поколения в условии. К примеру: [Документ3].Проведен с установленным флажком отберет все ветки в которых документ в третьем поколении проведен, а без флажка - будут отобраны еще и ветки, состоящие только из двух (или одного) документов.

  3. Страница "Поля" - в поле "Выражение" указывается путь к реквизитам (в общем говоря, выражение на языке запросов). До реквизитов добираемся с помощью слова Документ. К примеру: Документ.Дата. Ну, или другой пример: ЕСТЬNULL(Документ.Склад, "NULL").
  4. Страница "Параметры" - если на страницах "Отборы" и/или "Поля" использовались какие-то параметры (те, что с символом &), то здесь их следует прописать, и указать значение.
  5. Страница "Настройки" - здесь собраны некоторые общие настройки:
    1. Типы детей - назначение, думаю, понятно из названия... Один из наиболее эффективных способов ускорить работу отчета, это указать в этом поле как можно меньше документов Smile. В контекстном меню к полю есть пункт "Выбрать все".
    2. Расширительные типы - самый туманный параметр... Нужен ли он вообще - точно не знаю. В общем, когда-нибудь, наверное, может сложиться ситуация, что в отборе или в полях мы обратились к какому-то реквизиту, который есть только у, скажем, одного документа, и если по каким-то причинам в каком-то поколении этого документа не оказалось (т.е. даже не было связи с этой таблицей), то возникнет ошибка. Если вы считаете, что все прописали правильно, то, может быть, имеет смысл добавить сюда этот тип документа. Но думаю, потребности его трогать у вас не возникнет...
    3. Мин. количество поколений - ветки короче указанного числа отображаться не будут
    4. Макс. количество поколений - после достижения указанного количества поколений анализ документов заканчивается. Если включить этот параметр со значением один, то, понятное дело, никакого дерева мы не получим (фактически получится простой список), но зато отчет выполнится довольно быстро Wink

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

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

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

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

На управляемых формах до этого практически не писал, так что один-другой лишний байтик-мегабайтик может побегать по проводам ;)

На платформах младше 8.2.11.235 даже не запускал. 

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

Вступайте в нашу телеграмм-группу Инфостарт

См. также

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

Скачайте бесплатную обработку "Анализ данных для использования в подсистеме 1С Инфоборды" и узнайте возможность внедрения подсистемы у себя в конфигурации! Создайте свой функциональный интерфейс в любой конфигурации 1С с помощью расширения "Инфоборды". Настраивайте панели виджетов с метриками, индикаторами и показателями на начальном экране.

24000 руб.

27.03.2025    8453    19    13    

27

Работа с интерфейсом 1С v8.3 Платные (руб)

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

6000 руб.

18.01.2022    11448    3    3    

8

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

Универсальный редактор картинок 1С предназначен для обработки изображений в режиме «Предприятие», с возможностью рисовать на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    65561    45    60    

84

Работа с интерфейсом Программист 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    21262    31    6    

48

Работа с интерфейсом Программист Стажер 1С v8.3 Бесплатно (free)

Это инструкция по дизайну форм в среде 1С. Гайд охватывает рекомендации и стандарты для оптимизации пользовательского интерфейса. В гайде содержатся указания по использованию элементов интерфейса, включая как основные, так и продвинутые аспекты. Предоставляются также примеры и антипримеры для наглядного понимания принципов дизайна

20.08.2024    34503    mrXoxot    44    

135

Работа с интерфейсом Программист 1С v8.3 Бесплатно (free)

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

27.05.2024    19873    smielka    37    

106

Работа с интерфейсом 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    20585    1273    elcoan    53    

128

Инструментарий разработчика Работа с интерфейсом Программист 1С v8.3 1C:Бухгалтерия Абонемент ($m)

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

3 стартмани

10.04.2023    14474    175    acces969    31    

131
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. kapustinag 27.11.11 22:50 Сейчас в теме
Если в третьем поколении получаете соединение с 140 таблицами, то в третьем же или в четвертом поколении можете легко выйти на >256 таблиц - если в базе (скажем, УПП) включен контроль доступа на уровне записей. И тем более можете выйти на это ограничение, если в конфигурации объединено несколько подсистем разного назначения. Например, УПП+УАТ+ТОИР. Поэтому имеет смысл позаботиться об этом.
Также из опыта могу предложить еще одно направление развития этого отчета: должна быть возможность получить структуру подчиненности не только вниз (от корня к детям), но в обе стороны.
pvlunegov; +1 Ответить
5. Koog 42 28.11.11 21:10 Сейчас в теме
(1) Да, я не отрицаю, что позаботиться о "256 таблицах" надо. Но на моих целевых базах (не файловых :)) данный момент пока не проявлялся. Да и в любом случае, в первую очередь я отдал бы предпочтение доработке запроса по поиску документов-детей (с целью ускорения его работы). Но сейчас со временем напряг...
По поводу получения предков корневых документов - такая идея у меня тоже была, но я не смог представить как будет выглядеть это дерево :))) Поможете? ;) Была придумка добавлять к корневому документу ветку с каким-нибудь названием типа "Родители" в которой бы и находилась иерархия родителей (от наиболее близких родственников до самых старых)... Но пока решил это не реализовывать...
2. Angeros 28.11.11 05:47 Сейчас в теме
Отчет классный, но не хватает версии для 8.1
3. ingrid2011 28.11.11 12:45 Сейчас в теме
(2) Angeros, Прошу прощения, но почему вы еще на 8.1 сидите?
4. Angeros 28.11.11 13:46 Сейчас в теме
(3)Стабильность 8.2 только недавно на мой взгляд сравнилась с 8.1, сейчас готовлюсь к переходу...
6. Koog 42 28.11.11 21:18 Сейчас в теме
(2) До публикации отчета я пробывал его запускать в 8.1. хе-хе-хе Пробывал конвертить в конфигураторе 8.1. хе-хе-хе Данная фича анэвэйлэбл. :) Честно говоря, я уже не скажу использовались ли какие-то фишки 8.2, которых не было в 8.1 (говорю про код модуля объекта - где основная логика и расположена), но, думаю, в любом случае, переделать отчет на 8.1 не составит труда. Но, видимо, лучше все-таки переходить на 8.2... (не из-за отчета ессно, а вообще)
7. Angeros 29.11.11 04:55 Сейчас в теме
(6)Ну согласен. 8.2 лучше 8.1 рано или поздно все перейдут
8. Vond 05.12.11 01:56 Сейчас в теме
Интересное решение, красиво, наглядно, гибко на первый взгляд. Будем изучать плотнее :)
9. Koog 42 05.12.11 21:16 Сейчас в теме
10. Гость 06.12.11 06:31
Уже сижу! очень интересна и гибка в настройке!
11. adhocprog 1129 11.01.12 14:37 Сейчас в теме
12. mtsdc 19.03.12 08:00 Сейчас в теме
13. Lyuba-Lyuba 03.04.12 14:21 Сейчас в теме
14. пользователь 17.10.12 12:28
Сообщение было скрыто модератором.
...
15. luchyk007 14.05.13 14:09 Сейчас в теме
а вообще в управляемой форме документа можно через стандартный механизм 1с-ки получить структуру подчинённости документов и как это сделать
16. TMV 3 14.05.13 17:57 Сейчас в теме
[QUOTE= "фыв"]и как это сделать [/IS-QUOTE] это вопрос?
17. m13 27.09.13 12:42 Сейчас в теме
При формировании под полными правами работает номально. Если полных прав нет, то выдает ошибку:

{Отчет.УниверсальнаяСтруктураПодчиненностиДокументов.МодульОбъекта(181)}: Ошибка при визове метода контекста (Выполнить)
СуперЗапрос.Выполнить();
через:
{(2, 28)}: Поле не найдено "ТаблицаКорневогоДокумента.Ссылка"
ТаблицаКорневогоДокумента.<<?>>Ссылка КАК Документ1

1С 8.2.18.109, УПП обычное приложение.
19. InWith 27 19.12.13 01:41 Сейчас в теме
(17)тоже самое под полными правами в УТ 11.1
18. МилаяКсюшка 09.12.13 09:30 Сейчас в теме
Можно избежать ошибку, подправив запрос ВЫБРАТЬ РАЗРЕШЕННЫЕ
20. Koog 42 20.12.13 20:54 Сейчас в теме
(18) Вообще, это было первое что я попробовал, но ошибка осталась. К сожалению, сейчас немного не хватает времени. Постараюсь на новогодних разобраться...
21. Ddkoshka 13.01.14 19:01 Сейчас в теме
Спасибо Вам большое за эту обработку! Вы сильно облегчили жизнь и работу!
22. galaktika@tut.by 15.06.14 16:56 Сейчас в теме
Спасибо! Нет слов,класс!
23. mir9001 23.01.15 08:50 Сейчас в теме
Отличная обработка, но как мне сделать отбор чтобы показывалось дерево вверх? Скажем мне надо проверить по всем ли реализациям были выписаны счета и заказы.
24. Викунец 19.02.16 18:59 Сейчас в теме
25. German_Tagil 43 12.10.16 08:37 Сейчас в теме
26. German_Tagil 43 12.10.16 09:33 Сейчас в теме
вопрос - а привязать вложенную Таблицу Товары каким то образом можно?
Или может кто видел подобную реализацию - буду признателен
27. noor 14 11.12.16 14:01 Сейчас в теме
Круть крутейшая. То что надо.
28. German_Tagil 43 14.12.16 07:19 Сейчас в теме
(0) Алексей (Koog) Мне не понравилось что структура дерева повторяется
да итоги бы не помешали
посмотрите рисунок
Прикрепленные файлы:
29. Tanis 13.04.17 19:24 Сейчас в теме
Спасибо!
Очень выручила в срочности решения.
30. user686745 09.08.17 10:24 Сейчас в теме
Добрый день , подскажите с чем может быть связана данная ошибка , на тестовой базе все отлично работает
Прикрепленные файлы:
31. asp-1c 29.05.18 11:11 Сейчас в теме
Добрый день, как вывести в отчете сумму документа-и родительского, и подчиненных?
Оставьте свое сообщение