Получить Id детали

Есть два справочника: "Запрос" и "Расчет к запросам".

В "Запрос" крепится деталь, где указывается поле из второго справочника (см.Рис 1.2.).

 

Как можно через кнопку(JS на клиенте/сама кнопка уже есть) в справочнике "Запрос" узнать Id прикрепленной детали?

Изображение удалено.

Изображение удалено.

 

 

 

 

 

 

 

 

 

Нравится

8 комментариев
Лучший ответ

Так в том и дело, что нет разницы сколько на данный момент записей в детали одна или несколько. Все они хранятся в коллекции GridData детали.

Вы уверенны, что эта логика должна отрабатывать на клиентской части?

Т.к. в итоге вам нужно будет делать esq-запрос к всё той же детали  для получения значения поля "Статус(usrStatus)" (т.к. не факт, что в реестре детали выведено поле "Статус(usrStatus)" )

Если всё же на клиентской части, то 

в BasePageV2 есть коллекция this.entitySchemaInfo.details,

И есть метод var detailId = this.getDetailId(detailName);

Вы можете на странице Запроса (где кнопка) создать адресное сообщение (publish)

И при клике на кнопку его отправлять. Адресатом будет detailId.

А в схеме детали с реестом (Расчет) добавить это же сообщение, но уже как подписчика (subscribe).И при получении этого сообщения возвращать this.get("GridData")

 

Вам нужно получить ID детали или Id определённой записи из детали?

Получить Id прикрепленной детали, у неё найти поле "Статус(usrStatus)" и сверить что поле = "Согласован"



Это первый опыт работы с деталями

Т.е. всё же Id записи  "Расчет к запросам" связанный с текущим Запросом?

А кнопка у вас где располагается?

 

Коновалов Игорь,

В справочнике "Запрос"

Дело в том, что деталь может содержать несколько записей. И вам необходимо понимать Id какой именно запись вы хотите получить.

 

Коновалов Игорь,

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

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

Так в том и дело, что нет разницы сколько на данный момент записей в детали одна или несколько. Все они хранятся в коллекции GridData детали.

Вы уверенны, что эта логика должна отрабатывать на клиентской части?

Т.к. в итоге вам нужно будет делать esq-запрос к всё той же детали  для получения значения поля "Статус(usrStatus)" (т.к. не факт, что в реестре детали выведено поле "Статус(usrStatus)" )

Если всё же на клиентской части, то 

в BasePageV2 есть коллекция this.entitySchemaInfo.details,

И есть метод var detailId = this.getDetailId(detailName);

Вы можете на странице Запроса (где кнопка) создать адресное сообщение (publish)

И при клике на кнопку его отправлять. Адресатом будет detailId.

А в схеме детали с реестом (Расчет) добавить это же сообщение, но уже как подписчика (subscribe).И при получении этого сообщения возвращать this.get("GridData")

 

Как вариант можно использовать сообщения например такой сценарий

1)по нажатии вашей кнопки на карточке публикуется сообщение

2) в дели по подписке на сообщение перебираются все строки данных и формируется в массив список id записей у которых статус = согласован. Сформированый массив передается в карточку.

 

Показать все комментарии