Универсальный журнал документов для 1С 8.1 и 8.2 (3.20.1.6)
Полностью универсальный журнал документов с представлением списка документов в виде дерева. Работает в любой конфигурации 1С 8.1 и 8.2 (толстый клиент) без изменения кода. Подключается ко многим типовым механизмам конфигураций (печать документов, сохранение настроек и т.д.).
28.04.2010 23:47 [20.03.2012 22:55] 748 [+] [−] Перейти к публикации
(1) Пока поборол только работу с закладками и табличными полями на них. Удалось практически избавиться от промелькивания. Пока основных отличий три:
- Вывод списка документов в виде дерева;
- Просмотр реквизитов документов;
- Работа с закладками и табличными полями на них.
Для начала думаю нужно добавить отчетность и выйти на паритетное функциональное наполнение. Остальное тоже думаю продвигать, но уже во вторую очередь.
О выводе структуры подчиненности для каждого документа.
Возможный сценарий.
Если используется дерево в табличном поле, то вначале каждой строке документа искуссвенно добавляется подчиненная пустая строка ( появляется "+" в начале строки) . Событие раскрывания строки дерева перехватывается - пустая строка удаляется и в дерево подчиненных строк выводятся подчиненные документы первого уровня.
Смысл такого сценария очевиден : выводить подчиненные документы только для документа который выбрал пользователь (нажал плюсик в начале строки).
Этот "плюсик" и перехватывание события "раскрывания" можно рассматривать и как дополнительный полезный функционал для действий с документом.
ОФФ. Функционально такой сценарий похож на подход Clappa к построению бухотчетов , только реализованный другими , уже строенными средствами платформы.
Мимо такого использования дерева прошел Evroi в Универсальной ОСВ лишь повторив "рукопашно-семерочный" стиль Clappa.
И если для Clappa в 77 такой стиль был единственно возможным, то применение такого стиля в 8 считаю серьезным просчетом разработчика.
...Мне так кажется.
(7) Нет, не вырезана. Еще не добавлена. Пока борюсь за производительность. Функциональное наполнение постараюсь вывести на паритетный уровень. Сейчас для меня важнее выяснить имеется ли интерес именно к представлению информации в виде дерева и как эту тему можно ещё прокачать.
Ответили: (412)
(2) (5) Перерисовал работу с деревом. Теперь начальное дерево строится быстрее. Детальная информация формируется по отдельному дополнительному запросу при разворачивании группировки.
Имеет ли смысл при построении структуры подчиненности разворачивать всё дерево или достаточно только первого уровня?
(9) Конечно, однозначного ответа нет. Более простой, быстрый и с меньшим количеством вариантов и подвариантов подход - это разворачивать только первый уровень.
В некоторых (особых) случаях возможно предусмотреть 2 уровня ( например , когда на первом уровне имеем всего одну подчиненную строку). Для подавляющего числа ситуаций при "раскрутке" дерева подчиненных документов такой подход оптимален.
На мой ,сугубо личный взгляд.
Ответили: (11)
(10) Вот и я склоняюсь к разворачиванию 1 уровня. Должно работать быстро. В конце концов ещё есть отчет.
Добавил поиск по номеру документа.
Столкнулся с тем, что портировать наработки из не получается. Все они заточены под работу с таблицей значений. Приходится писать практически всё с самого начала.
Ответили: (12)
Добавил возможность просмотра истории документа по журналу регистрации.
Добавил возможность перехода в типовой журнал для текущего документа.
Добавил возможность вывода количества документов при печати произвольного отчета.
Обработка супер!
Не хватает только вывода структуры подчиненности документа. Например, если сделать вывод по документу Реализация товаров и услуг и будет отображаться его структура подчиненности(например ПКО и Расходный ордер на товары, ну и т.д.), то было вообще классно, т.к. это позволило бы получить очень мощный продукт с помощью которого можно вести аналитику...например какие Реализации оплачены, а какие нет...вотЪ
Согласен с (22) .
Покруче будет , если отказаться от отдельного окна для вывода структуры подчиненности.
А каждый выводимый в табличном поле документ будет иметь свой "плюсик", раскрыв который пользователь получит структуру подчиненности первого уровня в этом же табличном поле.
Есть хлопоты и нюансы в реализации , конечно.
Но в целом так симпатичнее.
Ответили: (30)
Для построения дерева в режиме "5. В виде дерева с иерархией подчиненных документов" необходимо также описать в настройках виды обрабатываемых подчиненных документов.
Например, для отслеживания оплаты вводимой на основании документов реализации необходимо в виды документов добавить и реализацию и оплату. Затем в журнале установить отбор по виду документов реализация. Тогда при разворачивании иерархии будет построено "правильное" дерево.
В первых версиях обработки было очень классно сделан механизм сохранения настройки журнала, т.е. раз сохранившись под конкретным пользователем, не надо было куда-то лезть выбирать заново настройки или восстанавливать настройки, всё работало при запуске
Детализация по подчинености документов реализована и это круто. Единственное что плохо, так это много телодвижений. Если бы журнал сразу(по умолчанию) раскрывал структуру подчиненности, а то так приходиться кнопку нажимать
И это страшно портит юзабилити.....ВотЪ
(37) Если внимательно посмотреть код, то станет понятно, что данная разработка имеет очень мало общего с и с типовыми "Универсальными журналами документов". Проще говоря, разработка велась практически с нуля.
Отчасти это связано с различными источниками данных для построения дерева и для дополнительных сервисных функций. Поэтому механизмы, которые на текущий момент имеются в данной разработке, это то, что я успел портировать. Ну, и как побочный эффект - всё работает быстрее.
В данной разработке для сохранения настроек пользователя используются типовые механизмы конфигурации. Возможность восстановления настроек при открытии там есть.
Для группового раскрытия уровней я добавил кнопку. Этого мало?
(40) Ага , посмотрел. Я тебя предупреждал , что если исполняешь желания , то сядут на голову. Итак, Сажусь !
У тебя в специальном режиме ("5") выводится список документов с возможностью ("плюсик") разворачивания каждого документа по подчиненным.
Я же толковал о том , что более круто, чтобы в ЛЮБОМ режиме вывода списка рядом с документом появлялся "плюсик", нажав на который пользователь бы получил возможность увидеть все его подчиненные документы в этом же табличном поле.
Более круто также , отображать в структуре подчиненности указывать не только нижний уровень , но и верхний.
Например : Если текущий документ - Расходная накладная N 1 , то я бы хотел увидеть :
+РасходнаяНакладная N 1 - (исходная строка списка докукументов)
-----+Счет
----------+ Расходная накладная N 1
---------------+СчетФактура
А у тебя бы появилась только СчетФактура.
Зачем это нужно ?
Дело в том , что при выводе только нижнего уровня , у тебя получится что СчетФактура вообще не имеет структуры подчиненности. И пользователь не увидит , какому документу она подчинена.
Такое вот скромное пожелание...
(41) Попробую ответить по порядку - почему сделал так как есть, а не иначе.
Оставил "1. В виде списка" т.к. работает быстрее, чем "5. ...". Для поддержания режима дерева необходимы дополнительные данные и соответственно манипуляции с ними.
Отдельный режим для "5. ..." сделан потому, что спрогнозировать работу дерева для 2х уровней представляется реальным, для большего количества уровней уже становится грусно. Слишком много режимов работы. Сейчас уже используется около 20 динамически фомируемых запросов вместо трех в типовом журнале.
Предполагал, что структура журнала будет, например, такая
(41) Не понял :
Режим "1. В виде списка " работает быстрее чем режим 5."
Странно. В моём понимании дело обстоит так :
Первоначальный запрос и вывод списка документов должен быть одинаков что для 1 , что для 5.
В режиме 5 лишь появлется дополнительная интерактивная возможность по "плюсику" запускать вывод структуры подчиненности .
Другими словами , дерево документов со всеми подчиненными при первоначальном выводе не формируется. При нажатии на "плюсик" у текущей строки подчиненные строки отсутствуют. Мы перехватываем событие "раскрытия" запускаем на исполнение процедуру поиска подчиненных и выводим подчиненное дерево.
У тебя , судя по всему не так. И дерево со всеми подчиненными формируется сразу - отсюда и замедление. Наверное , так.
Ответили: (44)
(43) В режиме "5. ..." дерево сразу со всеми подчиненными не формируется. Первоначальный запрос почти одинаков для режимов 1 и 5. Для режима "5. ..." формируется дополнительная колонка УровеньРазвернут. Соответственно формирование и обработка дополнительной колонки, а также "рисование плюсиков" в результате дают некоторое замедление. Раньше в режиме "5. ..." была ещё поддержка возможных типов, так пришлось её вырезать и ограничиться выбранными в настройках видами документов. Совсем медленно получалось.
Седня посмотрел обработку....вроде всё круто, только вот есть коя-какая каша
Например, я выбираю три типа документов(самое простое), Заказ покупателя-ПКО-Релализация товаров и услуг, делаю вывод по структуре подчиненности и ....
и вот какая история.....идет Заказ покупателя и разворачивает ПКО и рядом Реализацию...хотя лучше если это будет третий уровень! Ну да ладно, это не создает каши....а вот если посмотреть дальше, то потом отдельно видно этот же ПКО и у него разворачиваеться эта же Реализация....было бы очень круто, если документ который уже где-то находиться в структре подчиненности больше не выводился в журнал и если бы создавался третий(четвертый, пятый) уровень подчиненности...вотЪ
[30.04.2010] Добавлен поиск по номеру документа.
[03.05.2010] Добавлен отбор по текущему значению в дереве документов. Добавлена печать реестра документов с иерархией.
[04.05.2010] Добавлена печать произвольного отчета на основе СКД. Добавлена быстрая печать для текущего документа.
[05.05.2010] Добавлена возможность просмотра истории документа по журналу регистрации. Добавлена возможность перехода в типовой журнал для текущего документа.
[11.05.2010] Добавлена возможность сохранения / восстановления настроек для конфигураций не имеющих поддежки механизма "Сохранённые настройки". Добавлена возможность сохранения настроек журнала в файл и восстановления настроек журнала из файла.
А это ж и у меня было. Что-то пришлось переделывать?
Ответили: (57)
(55) То-то же
Я, видимо, разработку прекращу и провешу постоянную ссылку уже на вашу. Потому как особого смысла развивать свою не вижу при наличии вашей )
И - хотелось бы услышать ответ на вопрос (53).
З.Ы. Провесила ссылку в своей. Вы меня по плюсам уже обогнали
Ответили: (58)
| Цитата |
|---|
| [30.04.2010] Добавлен поиск по номеру документа. |
Далее, т.к. данные для дерева собираются в свернутом виде, нельзя спозиционироваться на строку найденного документа, которой ещё нет в списке. Поэтому вначале разворачивается уровень в котором предположительно находится документ и уже в развернутом уровне происходит позиционирование.
Сбор данных в свернутом виде позволил значительно сократить время до первоначального отображения журнала.
| Цитата |
|---|
| [03.05.2010] Добавлен отбор по текущему значению в дереве документов. Добавлена печать реестра документов с иерархией. |
В случае использования дерева данные собираются в свернутом виде, т.е. полученное дерево нельзя использовать как источник данных для печати реестра документов. Для печати реестра строится отдельный запрос, который используется при формировании реестра документов.
| Цитата |
|---|
| [04.05.2010] Добавлена печать произвольного отчета на основе СКД. Добавлена быстрая печать для текущего документа. |
По поводу быстрой печати для текущего документа: Изменена схема подключения внешних печатных форм, в результате этого значительно повышена производительность журнала.
| Цитата |
|---|
| [05.05.2010] Добавлена возможность просмотра истории документа по журналу регистрации. Добавлена возможность перехода в типовой журнал для текущего документа. |
| Цитата |
|---|
| [11.05.2010] Добавлена возможность сохранения / восстановления настроек для конфигураций не имеющих поддержки механизма "Сохранённые настройки". Добавлена возможность сохранения настроек журнала в файл и восстановления настроек журнала из файла. |
Все перечисленные настройки и доработки были именно добавлены, т.к. при разработке за основу был взят типовой универсальный журнал документов, а этих настроек в нем нет. Большинство механизмов типового универсального журнала были оптимизированы для повышения производительности.
Ответили: (59)
| Код |
|---|
Я, видимо, разработку прекращу |
Ответили: (60)
(57) Ок. Остались вопросы по:
1. "Изменена схема подключения внешних печатных форм" - посмотрю, утащу себе, если вы не против и если она подходит для моей.
2. "Первоначально использовался для сохранения типовой механизм. Позже была добавлена схема сохранения в параметрах пользователя в случае отсутствия типового механизма. Ну, и сохранение во внешних файлах. Структура хранения данных во внешних файлах немного другая - совместимая с типовым механизмом хранения настроек. Все перечисленные настройки и доработки были именно добавлены, т.к. при разработке за основу был взят типовой универсальный журнал документов." Если вы всё-так основывались на моей - там настройки сохранялись совсем не в "Сохранённые настройки". Чесслово.
Да, кстати, вот сохранение в типовой механизм я себе всё же добавлю.
| Цитата |
|---|
| 1. "Изменена схема подключения внешних печатных форм" - посмотрю, утащу себе, если вы не против и если она подходит для моей. |
Ответили: (65)
(61) Хм. То есть не мой? У меня точно самым базовым сохраняется.
З.Ы. Уже вижу, что не мой. Тяжелее переделывать было?
(62) У меня больше форм и почти к каждой есть хелп. Плюс пять немало весящих макетов.
Замечания: почему "История объекта" активна при текущей строке-группировке (месяц, к примеру)? Почему, наоборот, неактивны структура подчинённости и отчёт по движениям?Почему нет вопроса о сохранении настроек в случае их модифицированности (и/или возможности его включения)? Где, собственно, кнопка настройки условного оформления?
Ну и хелп хорошо бы актуализировать.
Посмотрел на последние изменения.
Алексей , ты чего-то вошел в раж ! И шуруешь и шуруешь.
Ну , раз ты уже дошел до цветочков и рюшечек (перехват события "ПриПолученииДанных".. наверное.. замедляет вывод), ТО пора заняться и "перетаскиванием мышью " в журнале. Скажем, хочу интерактивно мышью перетащить нужные документы из одной даты в другую (с перепроведением , конечно).
Необходимость такой возможности - очень сомнительна, но техника реализации такого решения - интересна. Или хочу мышью перетащить нужные документы в отдельное окно для последующей групповой обработки (печать, перепроведение и т.д).
Слабо ?
эмс... ошибка при группировке документов:
{Форма.ОсновнаяФорма(847)}: Ошибка при вызове метода контекста (Добавить): Поле не найдено. "УровеньРазвернут"
Для каждого Поле Из МассивВыбранныеПоля Цикл ВыбранныеПоля.Добавить(Поле) КонецЦикла;
по причине:
Поле не найдено. "УровеньРазвернут"
Ответили: (88)
(87) Специально не стал сортировать, может быть зря.
Группировку по организации можно сделать, если использовать режим "4. В виде дерева. Группировка по первой графе из списка граф". Необходимо добавить графу "Организация" и установить ее первой (верхней) в списке граф.
Ответили: (92)
ошибка при активизации документа в списке или дереве:
{Обработка.ДревовидныйЖурналДокументов.Форма.ОсновнаяФорма(1117)}: Ошибка при вызове метода контекста (Выполнить): {(3, 136)}: Синтаксическая ошибка ""","
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ПЕРВЫЕ 1 "Страница_000", "Т2", "Документ.РасчетПеремещенияПродукции.ТЧРапорты", "ТЧРапорты", "Документы "Рапорт<<?>>"", "", ЛОЖЬ КАК Обновлено ИЗ Документ.РасчетПеремещенияПродукции.ТЧРапорты КАК __Объект ГДЕ __Объект.Ссылка = &Ссылка УПОРЯДОЧИТЬ ПО Вид, Источник
РезультатЗапроса = ЗапросДляЗакладок.Выполнить();
по причине:
{(3, 136)}: Синтаксическая ошибка ""","
ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ПЕРВЫЕ 1 "Страница_000", "Т2", "Документ.РасчетПеремещенияПродукции.ТЧРапорты", "ТЧРапорты", "Документы "Рапорт<<?>>"", "", ЛОЖЬ КАК Обновлено ИЗ Документ.РасчетПеремещенияПродукции.ТЧРапорты КАК __Объект ГДЕ __Объект.Ссылка = &Ссылка УПОРЯДОЧИТЬ ПО Вид, Источник
А как можно выбрать виды документов с имеющие определенный реквизит, к примеру, Организация? Хочу построить журнал по регламентным докам определенной организации.
Спасибо за обработку!
Вопрос снят, разобрался.
ым именем уже определена (ПолучитьСтрокуОтбора)
Функция <<?>>ПолучитьСтрокуОтбора(Отборы, Параметры)
{Форма.ОсновнаяФорма(1993,20)}: Недостаточно фактических параметров (ПолучитьСтрокуОтбора)
СтрокаОтбора = <<?>>ПолучитьСтрокуОтбора(УсловноеОформление.Отбор, ПараметрыУсловногоОформления);
748 [+] [−] Перейти к публикации

Тогда уж сделайте и настройку цветовой разметки, была и такая версия. Заодно
Ну и там редактирование всего-что-только-можно, включая движения, с контролем прав...
Ответили: (3) (52)