Консультация Беларусь
Консультация Россия
Блог

План видов характеристик в 1С. Предназначение и практическое применение


Объект конфигурации План видов характеристик (ПВХ) предназначен для описания видов характеристик, которые могут иметь разные типы.

Рассмотрим следующую практическую задачу. В справочнике “Контрагенты” должна быть возможность для каждого контрагента хранить произвольные дополнительные реквизиты. При этом заранее количество реквизитов неизвестно, поэтому создать их в конфигураторе не представляется возможным. Кроме того, типы данных дополнительных реквизитов могут различаться.

Например, для каждого контрагента нужно иметь возможность хранить следующие дополнительные реквизиты:
  • Количество сотрудников (число)
  • Дата регистрации (дата)
  • Страна (выбор из списка стран)
  • Регион (выбор из списка регионов)
  • Сфера деятельности (выбор из списка сфер деятельности)
  • Категория (важный, обычный, проблемный)

Для того чтобы решить эту задачу сначала нужно определиться как в информационной базе хранить следующую таблицу:
image
При этом должна быть возможность добавлять новые сведения в эту таблицу по мере необходимости.
Для создания такой таблицы можно использовать следующие объекты конфигурации:
  • Справочник
  • План видов характеристик
  • Регистр сведений
  • Табличная часть справочника “Контрагенты”

Справочник в данном случае будет избыточным, потому что значения дополнительных реквизитов конкретного контрагента интересны только в привязке к конкретному контрагенту, т.е. видеть полный список значений дополнительных реквизитов всех контрагентов не нужно и работать с ним будет неудобно. Кроме того в справочнике по-умолчанию есть стандартные реквизиты, такие как Ссылка, Код, Наименование и другие, которые в данном случае будут лишними.

План видов характеристик не подходит по тем же причинам, что и справочник.

Регистр сведений подходит для хранения дополнительных сведений, кроме того использование регистра сведений позволит избежать дублей, т.е. пользователь не сможет установить для одного контрагента два разных значения одного и того же дополнительного реквизита. Единственная особенность при использовании регистра сведений — для просмотра данных нужно открыть форму регистра, что не очень удобно.

Табличная часть справочника “Контрагенты” также подходит для решения поставленной задачи. В табличной части уже есть стандартный реквизит “Ссылка”, остается добавить только реквизиты “ДополнительныйРеквизит” и “Значение”. К тому же при использовании табличной части с данными можно работать непосредственно в форме контрагента. Минус использования табличной части — отсутствие контроля уникальности записей на уровне платформы. Но есть возможность реализовать программный контроль на дубли.

Итак, для хранения информации о дополнительных реквизитах подходит 2 типа объекта конфигурации: табличная часть и регистр сведений.

Рассмотрим решение с использованием табличной части справочника “Контрагенты”. Добавим табличную часть “ДополнительныеРевизиты” с двумя реквизитами “ДополнительныйРеквизит” и “Значение”:
image

Теперь нужно определиться с типом данных для этих реквизитов.

Поскольку один и тот же дополнительный реквизит может использоваться в разных контрагентах, то нужно в информационной базе хранить список всех возможных дополнительных реквизитов. При этом должна быть возможность пополнять этот список по мере необходимости.

Для хранения списка дополнительных реквизитов есть следующие варианты:
  • Справочник
  • План видов характеристик

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

В плане видов характеристик, напротив, есть возможность для каждого элемента хранить тип значения.

Создадим новый план видов характеристик “ДополнительныеРеквизиты” и в свойстве “Тип значения характеристик” отметим типы данных, которые будут доступны пользователю при выборе:
image
На закладке “Данные” настроим длину кода и наименования:
image
В свойствах реквизита “Значение” табличной части “ДополнительныеРеквизиты” справочника “Контрагенты” укажем тип — ПланВидовХарактеристикСсылка.ДополнительныеРеквизиты:
image
Чтобы для реквизита “Значение” были доступны типы данных, которые были указаны при создании плана видов характеристик, нужно выбрать тип данных “Характеристика.ДополнительныеРеквизиты”:
image
Для того чтобы при выборе значения не нужно было дополнительно выбирать его тип, настроим для реквизита “Значение” свойство “Связь по типу”:
image
В этом случае тип реквизита “Значение” будет определяться типом выбранного дополнительного реквизита в конкретной строке табличной части.

Создадим в режиме пользователя необходимые дополнительные реквизиты в плане видов характеристик:
image
После этого переходим в форму конкретного контрагента и создаем необходимое количество записей в табличной части “Дополнительные реквизиты”:
image
Поскольку для дополнительных реквизитов “Регион”, “Страна” и “Сфера деятельности” был выбран тип данных “Строка”, значения нужно вводить вручную, что на практике совсем неудобно — для разных контрагентов значения этих реквизитов могут повторяться.

Чтобы исправить ситуацию, нужно для каждого дополнительного реквизита из плана видов характеристик иметь возможность хранить список возможных значений реквизита с возможностью пополнения этого списка по мере необходимости:
image
Чтобы хранить список значений для дополнительных реквизитов можно использовать отдельный справочник “ЗначенияДополнительныхРеквизитов”.
image
А чтобы отличать значения разных дополнительных реквизитов, этот справочник нужно сделать подчиненным плану видов характеристик “ДополнительныеРеквизиты”:
image
Теперь добавим этот справочник в качестве типа для плана видов характеристик “Дополнительные реквизиты”, а также заполним свойство “Дополнительные значения характеристик:
image
Также настроим свойство “Связи параметров выбора” реквизита “Значение” в табличной части “ДополнительныеРеквизиты” справочника “Номенклатура для того чтобы при выборе значения в списке отображались только те значения, которые относятся к выбранному дополнительному реквизиту:
image
В режиме “1С:Предприятие” для дополнительных реквизитов “Регион”, “Страна” и “Категория” изменить тип данных на “Значения дополнительных реквизитов”:
image
Для каждого дополнительного реквизита теперь есть возможность хранить список значений:
image
image
image

Теперь при заполнении дополнительных реквизитов в форме контрагента, если выбрать один из реквизитов с типом “Значения дополнительных реквизитов”, то выбор осуществляется из справочника с отбором по конкретному дополнительному реквизиту:
image

Таким образом, с помощью плана видов характеристик мы реализовали возможность добавлять в справочник “Контрагенты” произвольное количество дополнительных реквизитов различного типа данных.

Другие примеры задач, где используются планы видов характеристик:
  • Хранение настроек пользователя
  • Список видов субконто (аналитик) бухгалтерского учета
Программирование