Равнозначная связь в дочерних объектах

Ирина

Модератор
Здравствуйте, уважаемые разработчики!
Есть большое количество клиентов, которым нужно отправлять заказы, документы и т.п.
Отправка заказов происходит 2-3 раза в неделю или реже (по мере накопления определенного количества заказов) для группы клиентов.

Создан объект "Заказы клиентов". Для реестра отправки создан объект "Рассылка". Конечно можно было создать всего 1 объект, где фиксируется также и рассылка, но при большом количестве записей это достаточно долго и трудоемко. Открывается каждая запись, вручную изменяется переключатель на "отправлено", выбирается курьер и другие плюшки, связанные с отправкой, и только потом сохраняется запись. Да и фильтровать 1 объект для шаблона и т.п. неудобно.
Поэтому к объекту "Заказы клиентов" (форма связи) создан дочерний объект "Рассылка", к объекту "Рассылка" (форма связи) создан дочерний объект "Заказы клиентов".
Дочерние объекты обязательны (основательно продуманы для структуры проекта с определенными целями), поэтому другие варианты не подходят.
Дочерние объекты – равнозначные. Все отлично работает, но есть большое но…
В объекте "Заказы клиентов" есть поле переключатель "Отправлено", которое через составное поле должно изменять запись автоматически на отправку, если произошла рассылка.
Это можно сделать, если дочерние объекты подчиненные. Но тут тоже проблема, нужно тогда 2 дочерних объекта заполнять, что в принципе равнозначно изменению записей вручную, если бы был создан 1 объект.

При создании равнозначных дочерних объектов, автоматически создается связывающий объект ~Заказы клиентов-Рассылка
Очень удобно, что в этом объекте можно создать дополнительные поля для расчетов (и не только). Правда почему-то установив в числовом поле исходное значение, оно не фиксируется при создании записи через дочерний объект.
Также в форме связи в числовом поле можно установить свойство поля "Сумма по", которое как раз и нужно для составного поля в объекте "Заказы клиентов" для автоматического изменения переключателя.
Равнозначная связь.png

Но в итоге в объекте "Заказы клиентов" сумма по не считается. Возможно изначально так и должно было быть для равнозначных дочерних объектов, но как было бы круто, если бы такая функция была активна.
Заполнил быстро объект "Рассылка", а в объекте "Заказы клиентов" за секунду изменилось значение переключателя. И не только к рассылкам такую функцию можно применить, вариантов куча, т.к. равнозначная связь изначально сокращает время работы в разы!
Еще очень нравится, что в равнозначной связи в объекте "Рассылка" формируешь реестр только нужных (определенных) заказов к отправке. Например, за неделю сформировано 20 заказов, а в конце недели отправлены только 15 заказов. В форме связи "Заказы клиентов" в дочернем объекте "Рассылка" сразу отразились отправленные заказы.

Вы конечно слегка озвучили, что в 7-ой версии будет поле "блок", которое может изменять группу записей. Я не могу даже представить, как это будет работать, но если предположить, что поле переключатель в объекте "Заказы клиентов" можно будет автоматически изменить по выбранным записям из дочернего объекта "Рассылка", тогда вопросов нет, буду ждать 7-ую версию.

P.S. Также было бы просто замечательно, если в равнозначный дочерний объект можно было передавать параметр в фильтр поля из родительского объекта.
Например, в объекте "Заказы клиентов" есть поле объект "Клиент". Нужно оформить рассылку так, чтобы в нее попали заказы по определенному клиенту (накоплены заказы по клиенту).
В объекте "Рассылка" (добавляем поле объект "Клиент"), а в равнозначном дочернем объекте "Заказы клиентов" при создании записи в фильтре поля "Клиент" через передачу параметров из родительского объекта "Заказы клиентов" из поля "Клиент" фильтруется (автоматически выбирается) нужный клиент.
Спасибо
 

Вложения

  • равнозначная связь.rbase
    3.3 KB · Просмотры: 12

Vladimir

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

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

Ну и весьма интересный вопрос по поводу передачи параметра при добавлении записи в дочернем списке с равнозначной связью. Он будет решён при реализации новой идеи связи объектов. Попробую объяснить, и для этого понадобится понимание того, что описано в канале Telegram.
В будущем равнозначная связь будет реализована указанием промежуточного объекта с назначением открытия конечного объекта. В Вашем случае промежуточным объектом является "~Заказы клиентов-Рассылка" (сейчас системный объект, а потом - создаваемый вручную). В нём Вы добавляете поле клиента, значение которого можно поместить по умолчанию в промежуточный объект. Так как в свойстве открытия конечного объекта указан объект заказов клиента, то этот объект будет открываться сразу по кнопке добавления записи (минуя окно промежуточного объекта). И из поля клиента промежуточного объекта - передаваться параметр по установленному клиенту в рассылке (на самом деле будет не так, потому что полностью меняется механизм передачи параметров, но расскажу это в понятиях 6-ой версии). При открытии списка заказов - он будет отфильтрован по клиенту, и Вы получите необходимый результат.

Ещё раз Ирина мои благодарности за заданный вопрос, который позволит создать стройную и понятную систему связи объектов с новыми возможностями. Всегда рады Вашим постам! (y)
 

Ирина

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

Но у меня всегда есть но…..
Так как дочерние объекты с равнозначной связью, то чтобы заполнить дочерний объект "Рассылка" нужно сначала создать запись в форме "Рассылка". Поэтому мне пришла следующая идея:
Когда в дочернем объекте "Рассылка" нажимаешь на кнопку "создать", открывается объект "Рассылка" по виду один в один, как поле "Объект".
Рассылка.png

Было бы просто великолепно, если в объекте "Рассылка" через дочерний объект "Рассылка" можно было создавать запись (как в поле "Объект"). Поле объект это же самостоятельный объект изначально и его можно заполнять через другой объект, а запись появится и в объекте где есть поле "Объект", и в самом объекте.
Тем более в объекте "Рассылка" сортировка установлена по дате рассылки, т.е. последняя запись всегда будет первой, что тоже очень удобно, т.к. не ошибешься с выбором, если одну рассылку прикреплять к нескольким заказам.
Если такую идею возможно реализовать, то круто! А если еще и в 6-ой версии, то Вы даже представить не можете во сколько РАЗ облегчите и сократите работу уже сейчас!
Спасибо
 

Вложения

  • равнозначная связь1.rbase
    3 KB · Просмотры: 9

Anti

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

Будет добавлено в ближайшем обновлении 6-й версии.
 
Сверху Снизу