Формы списков объектов, списков форм связей и формы итогов, что лучше?

Статус
В этой теме нельзя размещать новые ответы.

Aleks

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

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

2. Оказывается итоги внизу списка по фильтрам можно видеть, если создать форму связи. Вроде бы цель и смысл у формы связи другая, но раз есть такая фича, то приходится по сути дублировать сущность и создавать эту форму связи. Кроме прочего, в форме связи (если нет дочерних объектов) можно скрывать детализацию, что делает возможным вывести широкий список! Так же (наверное это с новой 19ой версии), есть возможность настроить переход к форме связи объекта в списке. Например, платеж сделан по заказу, кликаю правой кнопкой на заказе и сразу перехожу к форме заказы, полезно, если нужно уточнить о чем заказ, что очень круто!

* кстати тут обнаружил ошибку только что, версия 6.0.19. Если нажать правой кнопкой на строку отфильтрованного списка платежей и нажать перейти к заказам, то открывается не верный заказ. Если фильтры не наложены - все отлично.

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

3. Любой перфекционист меня поймет: вот эта необходимсть дублировать объекты и создавать форму связи там где она по сути не должна быть - сильно напрягает. Как же быть? Да, есть же форма итогов! Она абсолютно логична, нет никакой детализации! Форму итогов я мысленно понимаю как отчет.
Ок. Создаем форму итогов - вроде все отлично! Однако не существует фильтра по дате. Точка. Возвращаемся к п.2 и убиваем в себе перфекциониста:)
----
Здесь я описал работу настройщика и какие-то мысли по ходу, если ход мыслей не верный - поправьте пожалуйста. В втором комментарии выделю конкретные вопросы по этому тексту.
 

Aleks

Продвинутый
1. Можно ли сделать возможность убирать детализацию в списке объектов? Есть же уже такое для форм связи. Конечно, нужны горячие клавиши, чтобы открывать и закрывать детализацию.

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

3. Можно ли сделать настраиваемой ширину колонок везде и запоминать ширину между сеансами?

4. Форма итогов. Мне кажется, самым логичным в моем случае было бы использовать форму итогов. Но для этого нужны доработки:
4.1 Сделать возможность строить список с группировкой по отдельным реквизитам и выводом подитогов по каждой группе.
Пример для платежей выше: Отчет с выводом каждого платежа построчно, сгруппированный/отсортированный по дням, по видам платежа, по валютам, с выводом сумм по каждой группировке. Такой отчет отличается от текущего, может быть это какая-то новая форма, в нем нет результирующих полей и вывода данных из разных объектов. Это просто список с возможностью группировки и вычисления сумм итогов по группировкам.
Я уверен, что это очень востребованная штука.
Я пока выгружаю в csv.

Как минимум - сделать возможность фильтра по датам.

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

5. Можно ли в целом реализвать возможность быстрого перехода от формы объекта к формам связи, построенным на его основе, тогда 4.2 - не нужен.
 

Vladimir

Администратор
Команда форума
Мы не создаём универсальный продукт на все случаи жизни - это невыполнимо априори. Наглядный пример - 1С. Изначально он задумывался как упрощённый конструктор для узкоспециализированной области с минимальным применением программирования. На момент появления данного продукта сошлось множество исторических факторов и условий, которые дали такой сильный толчок для его популярности: развитие частного предпринимательства, широкое распространение персональных компьютеров, нехватка программистов высокого уровня, относительно простой процесс ведения бухгалтерского учёта и некоторые другие. В итоге получился продукт, для которого требуются специалисты не ниже уровня обычного программиста.
Мы не стремимся создать универсальный инструмент. Для этого существуют программирование и программисты, которые могут реализовать задачу под любой каприз.
Мы создаём продукт, который может решать задачи большого числа людей, не знакомых с программированием, но уровень их задач не превышает некоторого минимума. Для задач более широкого профиля в мире есть другие решения. Тут каждый решает сам - устраивает ли его данный механизм, или нет. В бытовых повседневных задачах мужчине хватает минимального набора инструментов, а для мастерской требуется совершенно иной объём техники и автоматизации. Так и в нашем случае: мы позволяем людям решать определённые задачи с применением минимального набора инструментов.
Просто на сегодня для обычных людей почти не предоставляется возможность выбора - приходится использовать либо дорогие программы узкоспециализированного направления, либо обращаться к услугам высокооплачиваемых специалистов для создания специфического ПО.

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

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

Anti

Администратор
Команда форума
С версии 6.0.20 в Руну добавится возможность скрывать, а точнее, схлопывать, правую часть области данных (детализацию и/или дочерние списки) в объектах и формах.

Ответ на вопрос "Почему не работает фильтр по дате в форме итогов?": http://runabase.ru/forum/threads/filtr-po-date-za-period.462/#post-1941
 

Aleks

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

Спасибо! Отличная новость! Надеюсь горячие клавиши тоже будут:)

Ответ на вопрос "Почему не работает фильтр по дате в форме итогов?": http://runabase.ru/forum/threads/filtr-po-date-za-period.462/#post-1941

Я понимаю, что Форма итогов - это другой тип формы, не тот, который я описал в п. 4.
п. 4 - наверное стоит рассматривать как некую новую функциональность, которой сейчас нет, и которую, я думаю, вы все равно в том или ином виде когда-нибудь реализуете, так как это достаточно логичный и востребованный шаг.
 

Aleks

Продвинутый
Мы не создаём универсальный продукт на все случаи жизни - это невыполнимо априори...

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

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

Поэтому меня кроме прочего волнует архитектура, система в целом, а не мелкие хотелки.
Я описал процесс работы пользователя из которого я надеялся показать, что есть неопределенные вещи с архитектурой всего конструктора. Может быть они непонятны конкретно мне, тогда объяснение их может быть важным.
Примеры: что же такое форма связи? почему списки форм связи имеют больше функций, чем списки объектов? С другой стороны, почему, например, сортировка для форм связи задается в форме родительского объекта, а сам список форм при этом самостоятельный?
Что такое форма итогов? Вот прояснили, что эта штука создана только для калькуляции дочерних объектов, что сразу совсем непонятно из интерфейса и я постоянно натыкаюсь на грабли и т.д.
 

Anti

Администратор
Команда форума

Vladimir

Администратор
Команда форума
1. Есть форма списка объектов - в целом работает хорошо, есть фильтры, но нет возможности посмотреть итоги. Например, сколько пришло денег за такой то день. Нет возможности убрать детализацию, чтобы открыть широкий список.
Итоги в форме связи можно включить для числового и расчётного поля. В них рассчитывается сумма по видимым записям. Если надо посчитать итог по дню, надо добавить фильтр по дню, указать в нём одинаковое начальное и конечное значение - и будет получен итог.
О детализации уже говорили - она либо есть, либо нет (в зависимости от настроек). А сейчас добавили ещё и схлопывание детализации.
 

Vladimir

Администратор
Команда форума
2. Оказывается итоги внизу списка по фильтрам можно видеть, если создать форму связи. Вроде бы цель и смысл у формы связи другая, но раз есть такая фича, то приходится по сути дублировать сущность и создавать эту форму связи. Кроме прочего, в форме связи (если нет дочерних объектов) можно скрывать детализацию, что делает возможным вывести широкий список! Так же (наверное это с новой 19ой версии), есть возможность настроить переход к форме связи объекта в списке. Например, платеж сделан по заказу, кликаю правой кнопкой на заказе и сразу перехожу к форме заказы, полезно, если нужно уточнить о чем заказ, что очень круто!
Объект и форма несут принципиально разные смыслы, которые можно понять, разобравшись с программой.

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

Суть формы связи - предоставить данные к объекту. Это уже более высокий уровень изучения конструктора. В ней можно перенастроить или добавить некоторые свойства у полей, скрыть вкладки детализации, определить какие из них доступны к просмотру/редактированию. В форме запрещёно удаление множества записей (защита от дурака), а также экспорт/импорт всех записей (защита от злого дурака). Всё это становится особенно актуально при сетевой многопользовательской работе, где за информацию уже отвечает не один, а множество людей.
Форма в программе - это как одежда (форма) для человека. Что одел - так и воспринимают.

Форм над одним объектом может быть любое количество. Это может быть полезно для единственного пользователя (несколько форм над одним объектом, с различной настройкой фильтров и значений по умолчанию, предоставляют специальные возможности, которые напрямую запрограммировать достаточно сложно). А в многопользовательской работе форма связи становится просто необходимостью для разграничения уровней доступа к данным (разрешение только добавлять записи, видеть и/или изменять свои, ограничение по доступной информации и пр.).

Кроме такого насыщенного функционала, форма связи служит для связывания объектов между собой, за что и получила своё название.

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

Vladimir

Администратор
Команда форума
Если смотреть на список форм связи с дочерними объектами, то тут сразу исчезает одна крутая штука - нельзя скрыть правую часть. Я могу скрыть детализацию, но не могу скрыть дочерние объекты.
Ну почему же нельзя? Просто создаёте форму над объектом без дочернего списка.
Это легко сделать через копирование формы, после чего удалить дочерний список.
 

Vladimir

Администратор
Команда форума
3. Любой перфекционист меня поймет: вот эта необходимсть дублировать объекты и создавать форму связи там где она по сути не должна быть - сильно напрягает.
Принципиально ошибочное утверждение!
Форма связи для того и предназначена, чтобы не требовалось заниматься дублированием объектов и каким-то хитрым способом устанавливать между этими объектами связи.
К примеру у вас есть две фирмы: по продаже плюшевых мишек и воздушных шариков. Между собой они никак не пересекаются, но Вам, как руководителю, хочется знать общий результат работы дочерних структур. Создаётся один объект, а над ним - две формы. В одной ведётся учёт мишек, в другой - шариков. Подобная работа может быть удобна как для одного пользователя, но ещё более востребована - для разных организаций.
А Вам, как главному управляющему и направляющему кормчему, всё видно в одном флаконе. Ну не мечта ли перфекциониста?
 

Vladimir

Администратор
Команда форума
Да, есть же форма итогов! Она абсолютно логична, нет никакой детализации! Форму итогов я мысленно понимаю как отчет.
Она становится абсолютно логичной, если понимать её назначение, которое вложили в неё создатели. А первое впечатление - как всегда обманчиво.
Отсутствие детализации - не делает очевидным её применение.
Мысль об отчёте - правильная, но создать отчёт с помощью формы итогов - уже не такая и тривиальная задача. Можно сказать, что это третий шаг в освоении конструктора после формы связи. Совершенно не случайно у неё нет фильтра по полю дата.
Возможно Вам будет любопытно увидеть конструктор формы итогов участника форума Ирина:
Результирующие поля.PNG

Конечные расчёты.PNG
Она не смогла выложить пример проекта в форуме по причине его большого размера.

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

Vladimir

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

Vladimir

Администратор
Команда форума
1. Можно ли сделать возможность убирать детализацию в списке объектов? Есть же уже такое для форм связи. Конечно, нужны горячие клавиши, чтобы открывать и закрывать детализацию.
У объекта свой набор возможностей, у формы - свой. Какой смысл объединять два инструмента в один? Их различная функциональность - это больше плюс, чем минус.
В программе есть не только техническая сторона, но и в некоторой степени - идеологическая.
Слепить всё в один комок - не всегда лучшее решение.
 

Vladimir

Администратор
Команда форума
2. Можно ли в списках форм связи сделать возможным не только скрывать детализацию, но и дочерние объекты? Открывать и скрывать их одновременно по горячей клавише или мышкой.
Ответ уже дал выше - отображение или скрытие настраивается в конструкторе. Хотя уже можно детализацию с дочерним списком "схлопнуть" к правой границе окна программы.
Есть ещё нюанс, о котором не упоминал (как и говорил - детали всплывают по мере углубления). У нас в планах ещё очень много крайне интересных идей. И многое из того что есть сейчас - лишь элементы будущих систем. В частности, будет возможен переход между формами объекта - для просмотра данных с различным представлением. К примеру одна форма содержит счета или предложения, а другая - реальные заказы. Или данных на одной форме так много, что они не умещаются в отведённое пространство. Переход к "соседней" форме представления поможет расширить объём восприятия до нужных границ. Ну и ещё много чего можно будет сделать очень просто.
 

Vladimir

Администратор
Команда форума
3. Можно ли сделать настраиваемой ширину колонок везде и запоминать ширину между сеансами?
Можно, но на наш взгляд - не нужно. Оно конечно привычно, и зачастую кажется крайне необходимым. Но если разобраться с имеющимся инструментарием - острота неприятия постепенно снижается.
Если надо - используйте задание ширины для строкового поля, а также поле подсказки.
Кроме того - большое число колонок в таблице, на мой взгляд - моветон. Сидеть и подгонять ширину каждого столбца - это ещё то терпение надо иметь. Чуть прокрутил вниз - опять оказалось, что данные уплыли за видимую область, опять подгоняй ширину. Хотя у каждого свой способ ощутить себя участником глубинных процессов субъективной реальности.
И ещё один немаловажный нюанс: чем больше видимых колонок - тем медленнее работает программа, причём скорость заполнения растёт в геометрической прогрессии. Особенно это сказывается на работе по сети.
 

Vladimir

Администратор
Команда форума
4. Форма итогов. Мне кажется, самым логичным в моем случае было бы использовать форму итогов. Но для этого нужны доработки:
4.1 Сделать возможность строить список с группировкой по отдельным реквизитам и выводом подитогов по каждой группе.
Пример для платежей выше: Отчет с выводом каждого платежа построчно, сгруппированный/отсортированный по дням, по видам платежа, по валютам, с выводом сумм по каждой группировке. Такой отчет отличается от текущего, может быть это какая-то новая форма, в нем нет результирующих полей и вывода данных из разных объектов. Это просто список с возможностью группировки и вычисления сумм итогов по группировкам.
Я уверен, что это очень востребованная штука.
Сделать можно всё. Но в данном случае есть смысл воспользоваться жизненным принципом Филеаса Фогга: "Используй то, что под рукой, и не ищи себе другой".
Вы можете получать отчёты по дням, по видам платежа, по валютам, с суммированием по признакам и прочее и прочее, но в каждой отдельной форме. Понимаю, что хочется всё и сразу. Но в этом случае нужно много денех.

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

Vladimir

Администратор
Команда форума
4.2 Возможность открывать по двойному клику не сам объект, а одну из его форм связи. Например, я построил список по заказам, при двойном клике, хочу видеть заказ с дочерними объектами, а не только шапку заказа.
Создаёте рядом с объектом форму над этим объектом, и не надо делать двойной клик - хватит и одинарного, но чуточку ниже.
Чудо - оно всегда рядом, надо лишь в него поверить.
 

Vladimir

Администратор
Команда форума
5. Можно ли в целом реализвать возможность быстрого перехода от формы объекта к формам связи, построенным на его основе, тогда 4.2 - не нужен.
См. сказанное выше. Не всё что мы имеем - конечно. Мир меняется, и мы меняемся вместе с миром. Кто знает, возможно именно это изменение во вселенной зависит именно от Вас. Все мы волшебники, только мы забыли об этом - ещё когда были совсем маленькими...
 

Aleks

Продвинутый
Спасибо большое за развернутые ответы. Многое стало понятно и хорошо видно, что я ошибался глобально. Хорошо что я написал такой развернутый текст:)
Я думаю причины моего ошибочного взгляда, кроме привычного мышления которое осталось от других систем, - в терминологии и в не всегда четком разделении функционала.

Очевидно термин "Форма связи" не вполне корректный - правильно было бы назвать Форма объекта
Суть формы связи - предоставить данные к объекту.
...
Форма в программе - это как одежда (форма) для человека. Что одел - так и воспринимают.

Я бы акцентировал на том, что это форма элемента, что объект - это моделирование данных, Форма связи - способ представления данных. В моей голове прочно сидело, что Форма связи штука создается только для создания связей.

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

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