Руководство пользователя по многострочным слоям Многострочный слой – это слой, полученный из другого слоя (назовем его главным) путем добавления дополнительных полей. Это значит что многострочный слой содержит ровно такое же количество записей, что и главный слой, из которого он получен. Поэтому добавление и удаление записей из многострочного слоя невозможно. Если все же необходимо добавить или удалить записи, то делать это нужно только через главный слой. Чтобы сделать определение и назначение многострочных слоев более понятным, приведем пример применения многострочного слоя. Пусть есть главный слой под названием «Сотрудники», в котором хранятся данные о сотрудниках организации. Он содержит следующие поля: Ф.И.О., табельный номер, номер паспорта. Ключем является поле табельный номер. До некоторого времени этих данных вполне хватает. Но настает момент, когда требуется добавить для каждого сотрудника данные о его окладе и количестве часов, отрабатываемых им за месяц. Наиболее типичным решением было бы просто добавить эти поля в главный слой. Но по некоторым причинам это решение может быть нежелательным или даже невозможным. Например, этот слой может находиться не в таблице LayerData или LayerCalc, а в собственной таблице, добавление полей в которую потребует изменения базы данных. Именно в таком случае и следует применить технологию многострочных слоев. Теперь рассмотрим способ описания многострочного слоя. 1. В первую очередь нужно добавить в многострочный слой поле или набор полей, являющихся ключом в главном слое. Имена таких полей не обязательно должно быть равными именам соответствующих полей главного слоя, однако их типы должны быть одинаковыми. Роль этих полей – ключ, а в качестве формулы необходимо прописать строку следующего вида: ВзятьИз("<АлиасГлавногоСлоя>","<ИмяКлючевогоПоляВГлавномСлое>", "<ИмяПоляВМногосточномСлое>=<ИмяПоляВГлавномСлое>",да) Как правило это поле следует делать нередактируемым. То есть если в нашем примере в главном слое было одно ключевое поле типа Целое под названием ТабельныйНомер, то и в многострочном слое должно быть целое поле под названием, например, ТабНомер, с ролью «Ключ». В качестве формулы укажем ВзятьИз("Сотрудники","ТабельныйНомер","ТабНомер=ТабельныйНомер",да). В поле «Редактируемость» ставим «Только для чтения». 2. Добавляем в многострочный слой те неключевые поля главного слоя, которые нам нужны. Имя поля, тип поля и формулу задаем так же, как и в предыдущем случае. Роль поля – вычислимый параметр. В нашем примере можно добавить поле ФИО (номер паспорта не является очень важной информацией и его можно не добавлять). Создаем в многострочном слое поле под названием ФИО, Имя поля в БД зададим ФИО, а роль поля – вычислимый параметр. В качестве формулы укажем ВзятьИз("Сотрудники","ФИО","ТабНомер=ТабНомер",да). 3. Добавляем в многострочный слой дополнительные поля, то есть именно те, ради которых он и создавался. Они добавляются как обычные поля – параметры, без указания формул. В примере добавим поля целочисленные поля Оклад и КоличествоЧасовВМесяц с ролью Параметр. В результате получаем работающий многострочный слой! Если открыть его на интерфейсе «Данные линейно», можно увидеть следующее: - в многострочный слой «подтянулись» все записи главного слоя; - кнопки добавления и удаления записей заблокированы; - редактировать можно только дополнительно добавленные поля;