Что такое план видов характеристик в 1с
Программирование в 1С для всех
Часто при разработке прикладных решений могут появляться задачи добавления дополнительных характеристик для различных объектов учета. Эти характеристики можно хранить в реквизитах объектов, а можно использовать план видов характеристик 1С.
Рассмотрим пример, у нас есть справочник Регионы, и нужно в базе хранить дополнительную информацию об этих регионах (расположение, количество жителей, экономический статус и т.п). Мы можем для этого использовать реквизиты объекта, но у данного варианта имеется ряд недостатков. Во-первых, мы можем не знать точно, какие характеристики у регионов будут на момент разработки конфигурации. Во-вторых, не все характеристики для всех регионов могут быть применимы. Например, для какого-то региона нужно использовать характеристики А, Б, В, а для другого – Б,Д,Е, тогда лишние характеристики на форме элемента справочника будут загружать форму.
В таких случаях гораздо рациональнее использовать план видов характеристик, в котором может храниться дополнительная информация объекта аналитического учёта (справочника Регионы). Что такое план видов характеристик? По сути, это такой справочник, в котором элементы (характеристики) могут быть разных типов. Например, есть характеристика Площадь региона, тип которой Число. В характеристику Площадь региона, можно записать только число и не более. Причем у одного плана видов характеристик могут быть характеристики (элементы) разных типов. Например, у характеристики Дата основания тип может быть Дата.
Таким образом, можно резюмировать: если у обычного справочника все элементы одного типа (ссылка на этот справочник), то у плана видов характеристик элементы могут быть разных типов, в зависимости от того, как настроено при конфигурировании.
Реализуем следующую задачу: создадим возможность хранения различных характеристик справочника Регионы. Характеристики могут быть в виде примитивных типов (например, площадь региона), а также и в виде каких-то определенных значений (например, положение региона: «Север», «Юг» и т.д.), которые будут создавать сами пользователи.
Создадим план видов характеристик Дополнительные свойства регионов.
В конструкторе плана видов характеристик на закладке «Основные» обратите внимание на поле «Тип значения характеристик», в этом поле необходимо указать тип (или типы). Характеристики нового плана вида характеристик будут только тех типов, которые указаны в этом поле. Если нажать на кнопку «…» данного поля, то откроется окно редактирования типа данных. Выберем все примитивные типы (для выбора нескольких типов нужно установить флаг Составной тип данных).
Но, в условиях задачи сказано, что характеристики могут храниться в виде каких-то определенных значений, и у пользователя должна быть возможность выбрать одно из этих значений. Причем эти значения пользователь может задать самостоятельно. Где наиболее оптимально хранить значения той или иной характеристики? Причем так, чтобы эти значения не пересекались.
К примеру, у региона может быть характеристика Положение региона, которая содержит произвольные значения положения региона («Север», «Юг», «Запад» и т.д.), а также может быть характеристика «Экономический статус», которая содержит значения экономического статуса региона («Донор», «Развивающийся» и т.д.), значения этих характеристик не должны пересекаться. Если мы выбрали характеристику Положение региона, то должны видеть только значения положения, а не экономического статуса.
Можно, конечно, создать отдельные справочники Положения регионов и Экономические статусы, но мы не можем быть уверены, что потом не добавятся еще какие-либо новые характеристики, которые будут содержать произвольные значения, и нам не придётся дорабатывать конфигурацию. Самым оптимальным решением будет создать единый справочник для хранения всех значений подобных характеристик. Этот справочник должен быть подчинен плану видов характеристик Дополнительные свойства регионов. В этом случае у любой характеристики (элемента плана видов характеристик), тип которой «ссылка на подчиненный справочник», будет свой набор значений, ни с чем не пересекающийся.
Создадим такой справочник, назовем его Свойства регионов и на закладке «Владельцы» установим единственного владельца, план видов характеристик Дополнительные свойства регионов.
После создания справочника, перейдем в план видов характеристик Дополнительные свойства регионов и в поле «Тип значения характеристик» закладки «Основные» добавим новый тип – ссылку на справочник Свойства регионов. Теперь мы сможем создать элементы (характеристики) нашего плана видов характеристик с этим типом, а также создать элементы справочника Свойства регионов, подчиненные нужной характеристике.
Но это еще не всё, в плане видов характеристик нужно указать, что значения характеристик хранятся именно в справочнике Свойства регионов. Указывается это в свойстве «Дополнительные значения характеристик» закладки «Основные».
И остался последний шаг: необходимо связать воедино регион, дополнительные свойства региона (характеристики) и значение этих свойств (характеристик). Поскольку, когда мы создадим какие-то свойства регионов, их значения, то эти данные и конкретные регионы будут отдельно.
Сделаем это, создадим непериодический и независимый регистр сведений, который назовем Значение свойств регионов.
Правильно следует создать два измерения, в которых будут указаны регионы и свойства, и один ресурс, в котором будет указано значение свойства региона (если мы создадим измерения – Регион, Свойство и Значение, то можно будет у одного региона одному свойству присвоить несколько разных значений).
У измерения Регион установим свойство Ведущее.
И создадим ресурс «Значение», тип которого будет характеристика плана видов характеристик «Дополнительные свойства регионов».
В результате в ресурсе Значение будут те значения характеристик, которые определены для плана видов характеристик «Дополнительны свойства регионов».
Сохраним конфигурацию, обновим базу данных и создадим следующие характеристики (элементы плана видов характеристик): Площадь (тип число), Дата основания (тип дата), Расположение и Экономический статус (тип ссылка на справочник Свойства регионов).
При создании нового элемента плана видов характеристик, необходимо указывать тип значения этого элемента.
У характеристик Расположение и Экономический статус создадим подчиненные им элементы справочника Свойства регионов.
Попробуем при помощи регистра сведений Значение свойств регионов привязать какую-нибудь характеристику и её значение к определенному региону. Заходить в сам регистр не нужно, достаточно открыть элемент справочника Регионы и выполнить команду Значение свойств регионов, которая расположена вверху формы элемента (она появилась, потому что мы установили флаг Ведущее у измерения Регион ранее).
Если мы попробуем создать новую запись регистра сведений, в которой выберем какое-нибудь свойство (например, Площадь), то обнаружим, что необходимо указать какой тип должен быть в поле Значение.
Чтобы тип в поле Значение вставал автоматически после заполнения поля Свойство, сделаем следующую настройку ресурса Значение регистра сведений: в свойстве Связь по типу ресурса Значение укажем измерение Свойства, которое и будет определять тип ресурса.
После таких настроек, тип у поля Значение будет подбираться автоматически.
Но, если мы выберем свойство, тип у которого ссылка на справочник Свойства регионов, то будут предложены все элементы справочника Регионы. Хотя отмечу, что этот справочник подчиненный и у него имеется владелец план видов характеристик, элемент которого бы выбран в поле Свойства.
Чтобы, показывались только те элементы справочника Свойства регионов, которые подчинены выбранному элементу плана видов характеристик, сделаем следующую настройку ресурса Значение. В свойстве ресурса Связи параметров выбора (в этом свойстве настраивается зависимость одних реквизитов от других), настроим связь ресурса с измерением Свойства по владельцу.
После таких настроек будут показаны только те элементы справочника Свойства регионов, у которых владелец элемент плана видов характеристик, выбранный в поле Свойство.
Как результат, мы сможем привязать к региону несколько различных характеристик.
Читайте также по теме:
Более подробно о работе с другими интересными объектами языка программирования в 1С читайте в моей книге «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
Промо-код на скидку в 15% — 48PVXHeYu
Если Вы всё еще «плаваете» в конструкциях языка запросов, и у Вас вызывают трудности даже самые простые запросы, то рекомендую вам мой курс «Запросы в 1С от новичка до профи». Где эти и многие другие вопросы рассматриваются более подробно.
В чем особенность этого курса:
• Курс рассчитан на тех, кто не знаком с языком запросов в 1С;
• Учебный материал грамотно скомпонован и прост в освоении;
• Несколько десятков уроков;
• Полезные практические примеры;
• Все уроки изложены понятным и простым языком
Для моих читателей, купон на скидку 25%: hrW0rl9Nnx
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Вступайте в мои группы:
2 thoughts on “ План видов характеристик 1С ”
Опечатка в абзаце (слово ГАРАЖЕЙ => регионов)
Попробуем при помощи регистра сведений Значение свойств регионов привязать какую-нибудь характеристику и её значение к определенному региону. Заходить в сам регистр не нужно, достаточно открыть элемент справочника Регионы и выполнить команду Значение свойств ГАРАЖЕЙ, которая расположена вверху формы элемента (она появилась, потому что мы установили флаг Ведущее у измерения Регион ранее).
Программирование 1С 8.х для начинающих
Конфигурация
План видов характеристик в 1С
План видов характеристик достаточно простой объект, раньше при изучении, когда разбирал примеры в учебниках, то он казался сложным т.к. сразу давался в купе с другими объектами. Это были примеры характеристик для номенклатуры или субконто. Так что же это такое ПВХ?
Думаю, Вы знакомы с такими понятиями как ОписаниеТипов и Справочник. Если нет, то посмотрите нижеуказанные статьи перед дальнейшим чтением, тогда всё станет более понятно.
Статья об ОписанииТипов тут.
Статья о Справочниках тут.
Итак, продолжим. Если Вам уже известны ОписанияТипов и Справочники, то План видов характеристик это Справочник + ОписаниеТипов . Как видите всё просто. И эта мысль главная, т.е. сам по себе план видов характеристик не может реализовать функционал характеристики номенклатуры или субконто, для этого дополнительно используются свойства и механизмы других объектов.
Давайте рассмотрим, как настраивается функционал характеристик для номенклатуры.
Задача
Итак, у нас есть Номенклатура для которой нужно установить какие-то дополнительные свойства, например:
На данной картинке ПВХ будет отвечать за колонку «Свойство» и тип значения в колонке «Значение».
Создаем ПВХ
Чтобы указать дополнительный справочник нужно сначала у этого справочника установить владельцем наш ПВХ иначе его не будет в списке выбора, а дальше выбрать его в свойствах ПВХ на закладке «Основные».
Небольшое пояснение о работе ПВХ. Сначала на закладке «Основные» мы выбираем все типы доступные в данном ПВХ в поле «Тип значения характеристик», а у элементов устанавливаем тип значения уже из доступных в данном ПВХ. В нашем случае для ПВХ можно выбрать только справочник «ДопЗначения».
Создаем регистр сведений
Вот мы создали свойства(ПВХ) и справочник для хранения значений(ДопЗначения) теперь нужно связать номенклатуру и свойства. Для этого используется регистр сведений, в нашем случае у него будут следующие поля: измерения «Номенклатура, СвойствоНоменклатуры» и ресурс «ЗначениеСвойства»
Если Вы используете управляемые формы то достаточно будет добавить для ресурса «ЗначениеСвойства» в регистре «ЗначенияСвойствНоменклатуры» Связь по типу с полем «СвойствоНоменклатуры» и тогда, во время редактировании записи регистра сведений, при выборе значения для поля «СвойствоНоменклатуры» будет изменяться тип значения в поле «ЗначениеСвойства».
Если у Вас обычное приложение то эту связь, «Связь по типу», нужно будет настраивать в форме для поля ввода «ЗначениеСвойства» и при этом нужно будет в событие ПриИзмении поля «СвойствоНоменклатуры» использовать метод » ПривестиЗначение() » чтобы избавиться от излишнего выбора типа и избежать ошибочных ситуаций:
Отбор по владельцу
Т.к. у нас справочник «ДопЗначения» подчинен ПВХ «СвойстваНоменклатуры» то можно установить отбор, чтобы при выборе СвойствоНоменклатуры в поле «ЗначениеСвойства» можно было выбать только из подчиненных элементов. Для управляемого приложения это делается в свойствах ресурса, свойство называется «Связи параметров выбора» нужно выбрать «Отбор.Владелец(СвойствоНоменклатуры)». Для обычного приложения ничего делать не надо т.к. установив Связь по типу программа сама будет показывать только подчиненные элементы.
Важно! Свойство «Связь по типу» работает только с реквизитами у которых тип ПВХ.
В заключении
Таким образом посредством регистра сведений мы связали справочник «Номенклатура» с его свойствами ПВХ «СвойстваНоменклатуры» и его значениями справочник «ДопЗначения».
Важно! Все интересующие нас данные т.е. характеристики номенклатуры хранятся именно в регистре, а не в ПВХ.
Для управляемого приложения есть ссылка на панели навигации
Вы догадались, что также можно перейти в регистр и из ПВХ т.к. измерение «СвойствоНоменклатуры» тоже ведущее.
План видов характеристик в 1С 8.3
Характеристики
Для хранения различных характеристик товаров можно использовать реквизиты справочника, например цвет, размер, производитель и т.п. Но в этом случае если нужно будет добавить новую характеристику, например состав, то придется добавлять новый реквизит справочника. А также какие-то характеристики могут использоваться только для части товаров, следовательно у остальных товаров данный реквизит будет не заполнен.
Именно для решения данной задачи и используется план видов характеристик. По своей структуре план видов характеристик практически не отличается от справочника. Его основное отличие в том, что для каждого элемента можно указать тип значения. Тип хранится в реквизите ТипЗначения, который имеет тип ОписаниеТипов.
При создании нового плана видов характеристик нужно указать перечень возможных типов значений, которые можно будет указывать для элементов плана. Типы нужно указать на закладке Основные в свойстве Тип значения характеристик:
При создании нового элемента плана видов характеристик можно выбрать тип из тех, которые были указаны в конфигураторе:
Можно выбрать не все типы, для примитивных типов можно изменить квалификаторы (только в меньшую сторону). Но добавить новые типы, которые не были указаны в конфигураторе — нельзя.
План видов характеристик, помимо основного типа ПланВидовХарактеристикСсылка.ИмяПлана добавляет еще один тип: Характеристика.ИмяПлана:
Если для реквизита выбрать тип Характеристика.ИмяПлана, то в этом реквизите можно хранить значения тех типов, которые были указаны для плана видов характеристик.
Для более лучшего понимания как это работает, рассмотрим несколько примеров.
Использование характеристик
Например, в конфигурации есть справочник Товары:
Нужно хранить характеристики товаров без добавления новых реквизитов в справочник. Тип характеристики может быть: Строка, Число, Булево, Дата, СправочникСсылка.Контрагенты.
Добавим новый план видов характеристик Характеристики:
Здесь будут храниться виды характеристик, например цвет, размер, состав и т.п.
Для хранения значений характеристик добавим регистр сведений ЗначенияХарактеристик:
Измерение Товар имеет тип СправочникСсылка.Товары, здесь будет храниться ссылка на товар.
Измерение Характеристика имеет тип ПланВидовХарактеристикСсылка.Характеристики, здесь будет храниться ссылка на вид характеристики.
Ресурс ЗначениеХарактеристики имеет тип Характеристика.Характеристики, здесь будут храниться сами значения характеристики.
Для того чтобы при заполнении измерения Характеристика автоматически определялся тип ресурса ЗначениеХарактеристики в свойствах ресурса заполним свойство Связь по типу:
Выберем там измерение Характеристика.
А также у измерения Товар установим флаг Ведущее, чтобы при удалении товара автоматически удалялись связанные с ним характеристики.
Теперь в настройках справочника Товары перейдем на закладку Данные и по кнопке Характеристики откроем окно настроек дополнительных характеристик объекта метаданных:
Именно здесь нужно настроить где хранятся виды характеристик, а где значения.
Добавим новую строку и заполним следующим образом:
Сохраним конфигурацию базы данных и перейдем в пользовательский режим. На форме элемента справочника Товары появилась гиперссылка для перехода к регистру сведений Значения характеристик:
Перейдем туда и добавим новую запись. В поле Характеристика создадим новый элемент плана видов характеристик Цвет и укажем для него тип Строка:
Тип для значения характеристик автоматически определился как строка, введем туда Белый:
Запишем. Теперь в форме списка и в отчетах можно использовать характеристики как будто это реквизиты справочника:
Дополнительные значения характеристик
Сейчас для хранения цвета мы использовали реквизит с типом Строка. Однако, на практике это не совсем удобно. Одни пользователь введет Белый, второй белый, третий еще как-нибудь и в отчетах не получится настраивать отбор и группировку по этому полю. В этом случае лучше использовать справочник. Чтобы не создавать отдельный справочник для каждого вида характеристик используются Дополнительные значения характеристик.
Добавим новый справочник ДополнительныеЗначенияХарактеристик:
На закладке Владельцы укажем, что данный справочник подчичен плану видов характеристик Характеристики:
Добавим этот справочник в состав возможных типов плана видов характеристик, а также укажем его в свойстве Дополнительные значения характеристик на закладке Основные:
Если не включить справочник из свойства Дополнительные значения характеристик в состав возможных типов плана, то при сохранении конфигурации базы данных может возникнуть ошибка: «Ссылка на справочник значений не указана в типе значений плана видов характеристик».
А также для ресурса ЗначениеХарактеристики регистра сведений ЗначенияХарактеристик заполним свойство Связи параметров выбора:
Это нужно для того, чтобы при выборе значений из справочника Дополнительные значения характеристик предлагались только те элементы, которые подчинены конкретному элементу плана видов характеристик.
Теперь если для вида характеристики выбрать тип Дополнительные значения характеристик, то при выборе значения будет предлагаться выбор из справочника. При этом для выбора будут доступны только те элементы, которые подчинены данному виду характеристик.
Хотя все эти значения хранятся в одном справочнике:
Характеристики для нескольких объектов
Для того чтобы в одном плане виде характеристик и регистре сведений можно было хранить дополнительные характеристики для нескольких объектов нужно добавить в план видов характеристик реквизит ВидОбъекта. Тип этого реквизита перечисление, со значениями для каждого объекта метаданных:
В регистре сведений ЗначенияХарактеристик переименуем измерение Товар в Объект, потому что теперь в нем будут храниться как ссылки на товары, так и на контрагентов. В тип добавим СправочникСсылка.Контрагенты.
Откроем окно редактирования дополнительных характеристик для справочника Товары и заполним поля Поле отбора видов и Значение отбора видов:
А также настроим для справочника Контрагенты, только в качестве значения укажем свое значение перечисления:
Теперь в пользовательском режиме можно указывать для какого объекта используется характеристика:
И также в форме списка можно вывести характеристики:
Хранение дополнительных характеристик в табличной части
Значения характеристик можно хранить не только в регистре сведений, но и в табличной части. Например, добавим у справочника Товары табличную часть СписокХарактеристик с двумя реквизитами: Характеристика, тип ПланВидовХарактеристикСсылка.Характеристики и ЗначениеХарактеристики, тип Характеристика.Характеристики. Также как и для ресурса регистра сведений, настроим для реквизита ЗначениеХарактеристики связи параметров выбора и связь по типу:
Перенастроим хранение дополнительных характеристик, указав что теперь они хранятся в табличной части:
Теперь характеристики можно добавлять прямо в форме объекта:
Наборы характеристик
Чтобы одна и та же характеристика была доступна для разных объектов можно использовать наборы характеристик. Добавим справочник НаборыХарактеристик. У справочника добавим табличную часть СоставНабора с одним реквизитом Характеристика, тип ПланВидовХарактеристикСсылка.Характеристика:
А также добавим два предопределенных элемента:
В этих элементах в пользовательском режиме нужно будет заполнить те характеристики, которые будут доступны для объекта метаданных.
Перенастроим хранение дополнительных характеристик, указав что теперь сами характеристики хранятся в табличной части справочника НаборыХарактеристик, а отбор выполняется по ссылке:
Аналогично для контрагентов, только в поле Значение отбора видов укажем свой предопределенный элемент:
Теперь в пользовательском режиме для каждого предопределенного элемента можно указать свой состав характеристик, в том числе одинаковые характеристики для разных объектов метаданных:
Программная работа с планом видов характеристик
Программная работа с планом видов характеристик во многом схожа с программной работой со справочниками, поэтому разберем только специфические для плана вида характеристик операции.
При программном создании нового элемента плана видов характеристик нужно заполнять реквизит ТипЗначения, который имеет тип ОписаниеТипов: