Связь родительских-дочерних полей в форме списка с равнозначной связью

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

пашуха

Посетитель
Здравствуйте! Помогите решить проблему:
1. Есть объект - "Объект".
2. "Объект" входит в состав объектов "Заявка" и "Геодезический пункт".
3. На основе "Заявка" создана форма списка "Журнал работ" связанная равнозначной связью с "Геодезический пункт".
Каким образом сделать так, чтобы "Объект" родителя "Заявка" применялся в фильтре "Геодезический пункт" дочери.
Т.е. при выборе "Геодезический пункт" поле "Объект" принимало бы значение из "Заявка".
 

Вложения

  • Геодезист.rbase
    11.9 KB · Просмотры: 4

Vladimir

Администратор
Команда форума
Добрый день!
Почему для дочерних списков "Приборы" и "Геодезический пункт" использована равнозначная связь? Такая связь определяет тип "много-ко-многим", которая в данном случае, на мой взгляд, не требуется.
Если использовать подчинённую связь ("один-ко-многим"), то для получения данных из объекта надо для свойства "При изменении поля, копировать значение из него - Поле" указать, откуда брать данные: [~Заявка.Обьект.Наименование] (из ссылки на родительский объект формы ~Заявка, в нём ссылка на Обьект и имя поля Наименование.
 

пашуха

Посетитель
Решение с подчиненной связью можно реализовать, если добавить промежуточный объект, например "Промежуточный" с полем "Геодезический пункт" типа объект. Сделав "Промежуточный" дочерним подчиненным "Журнала работ", и настроив на отображение нужные поля, возможно выбирать из списка. А передавая параметр для фильтра "пар" из ссылки на поле "~Заявка.Объект" из объекта "Промежуточный" в объект "Геодезический пункт" можно реализовать вышеизложенную проблему. Но...хотелось бы увидеть возможное решение без этих "костылей", а как то попроще.
"При изменении поля, копировать значение из него - Поле" указать, откуда брать данные: [~Заявка.Обьект.Наименование] (из ссылки на родительский объект формы ~Заявка, в нём ссылка на Обьект и имя поля Наименование.
Я попробовал такой вариант, но он не работает.
 

Vladimir

Администратор
Команда форума
Но...хотелось бы увидеть возможное решение без этих "костылей", а как то попроще.
Это не костыли, а правильное решение задачи.
В первом предложенном мной варианте всё работает (так как сделал сам и только после этого предложил решение - если у Вас не работает, ищите ошибку у себя). Но посчитал, что пункты создаются для заявки. Если геодезические пункты надо выбирать из списка - то создание промежуточного объекта обязательно. В этом случае для свойства копирования надо прописывать другую ссылку для получения данных объекта: [Геодезический пункт.Обьект.Наименование].
Если всё таки хочется использовать равнозначную связь, то всю промежуточную информацию, которая вносится при подчинённой связи в дополнительном объекте, надо вносить в автоматически создаваемый объект равнозначной связи ~Заявка-Геодезический пункт. Но в этом случае программа видит, что могут вноситься промежуточные данные (а не только выбор равнозначного объекта) и будет открывать данные системного объекта равнозначной связи - без предложения выбрать объект из списка. Т.е. результат будет тем-же, что и в случае с подчинённой связью.
 

пашуха

Посетитель
В этом случае для свойства копирования надо прописывать другую ссылку для получения данных объекта: [Геодезический пункт.Обьект.Наименование].
Прописал эту ссылку в объект "Промежуточный", но не работает. Посмотрите пожалуйста, что не так. Для примера можете в этой базе показать как вносить промежуточную информацию для равнозначных связей? На словах не очень наглядно. Спасибо.
 

Вложения

  • Геодезист1.rbase
    21.9 KB · Просмотры: 6

Vladimir

Администратор
Команда форума
В объекте "Промежуточный" для поля "Объект(участок)" Вы указали источником "Геодезический пункт", тогда как Вам нужен "Обьект".
В свойстве "Копия из" надо указать [~Заявка.Обьект.Наименование] (у меня был свой проект, из которого скопировал ссылку).

как вносить промежуточную информацию для равнозначных связей?
У Вас есть системный объект равнозначной связи "~Прибор-Заявка", созданный при добавлении дочернего объекта "Приборы" с равнозначной связью в форме "Журнал работ".
Откройте данный объект на изменение и добавьте любое поле к системным ссылкам на объекты "Прибор" и "Заявки", например "Строка":
Дополнительное поле в объекте системной равнозначной связи.png
Теперь в форме "Журнал работ", после выбора объекта "Приборы", открывается окно со списком всех полей системного объекта:
Выбор объекта для равнозначной связи.png Заполнение остальных полей в объекте равнозначной связи.png

Обратите внимание, что кроме кнопки "Создать" в дочернем списке добавилась кнопка "Изменить", которая позволяет изменить как ссылку на объект "Приборы", так и остальные дополнительные поля.

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

пашуха

Посетитель
В объекте "Промежуточный" для поля "Объект(участок)" Вы указали источником "Геодезический пункт", тогда как Вам нужен "Обьект".
В свойстве "Копия из" надо указать [~Заявка.Обьект.Наименование]
Но ведь я как раз в этом месте выбираю геодезические пункты из списка.
Изначально проблема в том, чтобы при добавлении геодезических пунктов в фильтре "Объект" был равен значению из "~Заявка.Обьект.Наименование", как это сделать в подчиненной записи мне ясно, вопрос как это сделать в равнозначной.
 

Вложения

  • фильтр.jpg
    фильтр.jpg
    93.2 KB · Просмотры: 23
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу