Фильтрация связанных записей.

Все вопросы/проблемы по установке и использовании.
alexinc
Сообщения: 422
Зарегистрирован: 03 мар 2022, 21:40
Имя: Alex
Откуда: Россия
Контактная информация:

Фильтрация связанных записей.

Сообщение alexinc »

Добрый день.
Есть Сущности с такой схемой:
Организация (Есть связанный записи сущности Проект)
Проект (Есть связанная записи сущности Организация)
--Договор.
В договоре сделано: Проект - Сущности, выпадающий список Ajax (одинарный выбор), Договорная организация - должна выбираться единственная организация для договора, тоже Сущность, выпадающий список Ajax(одинарный выбор).
Проблема и непонимание состоит в том, что не могу отфильтровать эти связные записи, чтобы в поле договорная организация выводились только записи указанные в Проекте, после выбора проекта.
У меня получается либо вообще списка организаций нет, либо они выводится все, даже не попадающие в проект.
Возможно, кто-то подскажет, как решить или обойти эту ситуацию.
Спасибо.
UPD. На самом деле, я не могу понять в каком формате хранятся и отдаются данные о связанных записях. Я не могу проверить вхождение или сравнить на наличие в поле сущности. Ни LIKE, ни сравнение не помогли
alexinc
Сообщения: 422
Зарегистрирован: 03 мар 2022, 21:40
Имя: Alex
Откуда: Россия
Контактная информация:

Re: Фильтрация связанных записей.

Сообщение alexinc »

Так, правильно ли я понимаю, что когда мы делаем запрос к связной сущности через другую сущность - то получаем некоторый путь в ответе?
Например,
Сущность Проект(Сущность 35), Связан с сущностью Организация (Сущность 32)
То про запросе через сущность организация я получу ответ в виде:
35-2, где 35 - id сущности, 2 - id записи?
А несколько вхождений вернет массив('35-2', '35-3') или вернет строку('35-2,35-3')?
nruslan2
Сообщения: 2435
Зарегистрирован: 14 окт 2020, 09:13
Имя: Ruslan
Откуда: Moscow

Re: Фильтрация связанных записей.

Сообщение nruslan2 »

Все данные в системе по полям хранятся в виде строки
- Если используете поле Сущность/Пользователи/Список, то записи в базе хранятся в виде строки с перечислением id
записи через запятую (Пример: '1' или '1,2,3,4,5'). ТЕ именно id, а не №сущность-id!
- Если же вы используете поле Связанные записи, то тут система использует дополнительные таблицы (которые скрыты от глаз пользователя и находятся только в БД). Те запись так же указывает на id, но этот номер id вы можете увидеть только в базе данных (ну или соответствующими запросами SQL вытягивать такие данные) (если поискать на форуме можно вроде найти подробнее информацию, но вкратце так))
alexinc
Сообщения: 422
Зарегистрирован: 03 мар 2022, 21:40
Имя: Alex
Откуда: Россия
Контактная информация:

Re: Фильтрация связанных записей.

Сообщение alexinc »

nruslan2 писал(а): 14 июн 2022, 13:46 Все данные в системе по полям хранятся в виде строки
- Если используете поле Сущность/Пользователи/Список, то записи в базе хранятся в виде строки с перечислением id
записи через запятую (Пример: '1' или '1,2,3,4,5'). ТЕ именно id, а не №сущность-id!
- Если же вы используете поле Связанные записи, то тут система использует дополнительные таблицы (которые скрыты от глаз пользователя и находятся только в БД). Те запись так же указывает на id, но этот номер id вы можете увидеть только в базе данных (ну или соответствующими запросами SQL вытягивать такие данные) (если поискать на форуме можно вроде найти подробнее информацию, но вкратце так))
Вообще, по сути, у меня получается вытягивать ID связных записей, но я не могу понять как они вытягиваются при количестве больше 1. И вытягиваются ли вообще.
alexinc
Сообщения: 422
Зарегистрирован: 03 мар 2022, 21:40
Имя: Alex
Откуда: Россия
Контактная информация:

Re: Фильтрация связанных записей.

Сообщение alexinc »

nruslan2 писал(а): 14 июн 2022, 13:46 (ну или соответствующими запросами SQL вытягивать такие данные) (если поискать на форуме можно вроде найти подробнее информацию, но вкратце так))
Если не сложно, не подскажите как вытаскивать SQL запросами? Я тогда через Ajax сделаю.
nruslan2
Сообщения: 2435
Зарегистрирован: 14 окт 2020, 09:13
Имя: Ruslan
Откуда: Moscow

Re: Фильтрация связанных записей.

Сообщение nruslan2 »

https://docs.rukovoditel.net.ru/index.p ... SQL_zapros

Могу предположить из описания первого поста темы, что вам вообще немного другое надо: - viewtopic.php?p=23051#p23051
alexinc
Сообщения: 422
Зарегистрирован: 03 мар 2022, 21:40
Имя: Alex
Откуда: Россия
Контактная информация:

Re: Фильтрация связанных записей.

Сообщение alexinc »

nruslan2 писал(а): 14 июн 2022, 15:34 https://docs.rukovoditel.net.ru/index.p ... SQL_zapros

Могу предположить из описания первого поста темы, что вам вообще немного другое надо: - viewtopic.php?p=23051#p23051
Попробую через entity_item_value, но не уверен что получится. Мне нужно простое действие (не ожидал, что упрусь в такую мелочь). Есть проект, в нем связанная запись организация. Мне нужно в форме договора при выборе проекта сделать список Организаций которые связаны, чтобы выбрать и занести в базу. И все. Странно, что уперся.
nruslan2
Сообщения: 2435
Зарегистрирован: 14 окт 2020, 09:13
Имя: Ruslan
Откуда: Moscow

Re: Фильтрация связанных записей.

Сообщение nruslan2 »

демобазу сделайте! нагляднее будет
alexinc
Сообщения: 422
Зарегистрирован: 03 мар 2022, 21:40
Имя: Alex
Откуда: Россия
Контактная информация:

Re: Фильтрация связанных записей.

Сообщение alexinc »

nruslan2 писал(а): 14 июн 2022, 16:10 демобазу сделайте! нагляднее будет
https://pdemo.rukovoditel.pro/3.1/index ... mo_id=1329
Admin
Admin1234
Смотреть:
Меню - Проекты, Договоры.
Спасибо
Последний раз редактировалось alexinc 14 июн 2022, 17:54, всего редактировалось 1 раз.
nruslan2
Сообщения: 2435
Зарегистрирован: 14 окт 2020, 09:13
Имя: Ruslan
Откуда: Moscow

Re: Фильтрация связанных записей.

Сообщение nruslan2 »

Глянул

В поле 543 - в условиях надо прописать именно условие выборки, но не совсем так:

find_in_set(id, 'SQL запрос к связанным записям')

find_in_set - потому что записей может быть больше
id - это то что мы сравниваем
SQL запрос к связанным записям - собственно о чем я и говорил выше! когда используем поле Связанные записи, система использует дополнительную скрытую таблицу которую мы к которой мы и должны обращаться! при этом используя как вариант либо inner join или еще один вложенный подзапрос)

Быстро прям так сходу не напишу надо подумать посмотреть!
Ответить