Подстановка данных

Spirius

Посетитель
#1
Всем привет.
Я совсем новичок в Руне, наткнулся на этот инструмент вчера :) И видимо пока ещё не совсем разобрался в ней, но чувствуется потенциал и надежда на реализацию своих желаний. :giggle:

Перед созданием чего-то большего, решил попробовать сделать несколько простых задач и пока не могу разобраться как сделать следующее:

Допустим есть:
- объект Материалы, с материалами товаров (каждому материалу присвоен уникальный код)
Снимок.JPG
- объект Товары, с артикулами товаров (где каждому товару назначается код материала)
Снимок2.JPG

Вопрос:
Как сделать так, что бы наименование материалов из объекта Материалы, отображались/подтягивались по его коду к товарам в объект Товары? :unsure:
 

Vladimir

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

Если взять для примера MS Access, который знает некоторая часть людей, то там этот вопрос решается построением так называемой связи между таблицами.
Связь между таблицами в MS Access.png
Создаётся одна таблица с обязательным полем счётчика ("ID" или "Код"), затем вторая таблица, в которой кроме собственного счётчика добавляется числовое поле, которое будет служить для связи с первой таблицей. А затем в схеме данных создаётся связь между двумя числовыми полями этих таблиц.

В конструкторе Руна для пользователя ничего этого нет: ни полей с кодами записей, ни видимой связи между объектами. Точнее всё это есть, но полностью скрыто от разработчика, позволяя ему сосредоточиться на построении своей задачи.

1. Создаётся первый объект, который будет содержать данные, необходимые для второго объекта. В нём не требуется создавать никаких служебных полей, типа счётчика для записей.
Первый объект.png
2. Создаётся второй объект, в котором добавляется поле объекта (поле ссылки на объект), для которого указывается, из какого объекта брать данные для данного поля.
Второй объект с сылкой на первый.png
На этом построение связи между объектами закончено.
Теперь при создании/изменении записи во втором объекте, при нажатии на кнопку ссылки на первый объект, будет открываться окно со списком записей первого объекта, в котором можно выбрать существующую запись, или тут же создать новую/изменить старую и выбрать её для записи второго объекта.

Для удаления ссылки на запись объекта, в окне редактирования, служит кнопка в правой части поля.
В окне просмотра данных, кнопка справа от поля служит для перехода к записи в ссылочном объекте (для формы связи кнопка перехода является настраиваемой: её может не быть совсем или определяется к какому объекту или форме требуется переход).

Поле ссылки на объект всегда содержит значение первого поля ссылочного объекта. При необходимости можно отобразить в нём любое другое поле или комбинацию требуемых полей.

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

Spirius

Посетитель
#3
Большое спасибо, за такой подробный и понятный ответ! (y) С этим я думаю разобрался. :)

Однако я бы хотел решить несколько иную задачу.
Мне бы хотелось, что бы данные могли именно подставиться автоматически по ключевым полям (в моём случае это поле Код материала, которое присутствует в обоих списках. Другими словами произвести запрос на выборку.

Для чего?
Списки: (материалов + код материала) и (товары + код материала .. 10,000 строк) имеются в CSV-файлах, поэтому меньше всего бы хотелось этим 10 тыс. товарам назначать материал вручную, когда код/артикул материалов уже есть, надо лишь подставить название. ;)
 

Vladimir

Администратор
Команда форума
#4
Как уже сказал:
Поле ссылки на объект всегда содержит значение первого поля ссылочного объекта.
Вам надо создать объект, в котором поле кода материала будет первым в объекте. После этого можно произвести импорт данных из файла .csv с данными по материалам. Или после импорта переместить поле кода в первую позицию.
В объекте товаров поле ссылки на материал будет содержать код товара. После импорта данных из файла .csv с данными по товарам, для каждой записи по товару будет установлена ссылка на соответствующий материал.
Можно также производить импорт в другой последовательности: сначала импортировать данные в объект товаров. При этом в объекте материалов будут созданы записи с кодами. А затем в объекте материалов импортировать данные с перезаписью значений по ключевому (первому) полю - при этом для каждой записи будут добавлены/обновлены данные каждого материала.

Также см.:
- Импорт данных из файла .csv