Признаюсь, что освоение этого объекта конфигурации далось мне не просто. Описание планов видов характеристик читал в различных учебниках и в процессе чтения складывалось ощущение, что суть ясна. К слову сказать, самым доходчивым
я считаю объяснение Евгения Гилева — просто, «на пальцах», с примерами. Но, по прошествии времени, когда встречаю этот громоздкий и до сих пор непривычный термин»План видов характеристик» (далее ПВХ), возникает ощущение, что все таки я не до конца понимаю этот объект.
Вряд ли я начал бы писать эту статью, но в разговорах с коллегами — и программистами и консультантами 1C, профессионализм и умственные способности которых сомнений не вызывают, я встретился с похожим «смешанным чувством» при упоминании о ПВХ.
А раз так, то давайте разберемся, в чем тут причина — либо в чрезвычайной сложности объекта, для осмысления которого необходимо некое озарение, либо дело в неудачной терминологии, выбранной авторами платформы? Ведь до сих пор, встречаясь с различными техническими терминами, мы привыкли к тому, что термин ясно отражает суть стоящего за ним явления.
Итак, в чем здесь дело? — давайте попробуем разобраться.
Отвлечемся от «1С» и попробуем охарактеризовать, например, самолет. Для описания различных параметров самолета нам потребуются набор характеристик, которые мы разобьем на несколько смысловых групп — видов характеристик:
— Технические:
— взлетный вес;
— размах крыльев;
— скороподъемность;
— максимальная скорость;
— полезная нагрузка;
и т.д.
— Экономические:
— цена;
— стоимость обслуживания;
— срок эксплуатации;
— стоимость утилизации;
и т.д.
— Эргономические:
— удобство расположения приборов;
— наличие системы кондиционирования;
— материал обивки кресел;
и т.д.
И если мы скажем, что для описания самолета мы имеем виды характеристик: технические, экономические, эргономические, где каждый вид включает некоторое количество характеристик — всем будет понятно. И для конкретного самолета мы можем говорить
о конкретных значениях характеристик, а на вопрос: «Каковы экономические характеристики некоторой модели самолета?», мы можем ответить:
— цена — 1 000 000 $;
— стоимость обслуживания — 100 000$/мес;
— срок эксплуатации — 10 лет;
— стоимость утилизации — 300 000$.
То есть, мы получили следующую структуру описания параметров самолета:
Виды характеристик:
— Технические;
— Экономические;
— Эргономические;
где каждый из видов характеристик включает ряд соответствующих характеристик.
При описании конкретного самолета, мы можем говорить о значениях характеристик для
данной модели самолета.
Разрабатывая учетную систему для хранения подобных структур, логичным было бы иметь объект метаданных «Виды характеристик», в котором, для нашего случая мы бы создали несколько видов характеристик: «Технические»,
«Экономические» и «Эргономические». Далее, в каждом из видов добавили бы характеристики — для вида «Технические»: «Взлетный вес», типа «Число», «Полезная нагрузка» типа «Число» и т.д., а заполняя данные о конкретном самолете, мы бы говорили о значениях характеристик, например: характеристика вида «Эргономические», «Материал обивки кресел» имеет значение: «Кожа». И всем все понятно.
Теперь вернемся к 1С и попробуем проделать то же самое. Нам нужно создать 3 плана видов характеристик, в каждом из планов задать соответствующие виды характеристик, после чего для конкретной модели самолета, для вида характеристики задавать характеристику как значение определенного для вида характеристики типа. И, для нашего примера, мы должны будем сказать, что в плане видов характеристик «Эргономические», мы для вида характеристик «Материал обивки кресел» задаем характеристику «Кожа».
То есть, можно использовать такую трансляцию (терминология «1С» — «физический» смсысл термина):
Планы видов характеристик — Виды характеристик;
План видов характеристик — Вид характеристик;
Вид характеристики — Характеристика;
Характеристика — Значение характеристики.
Таким образом, есть проблема в терминологии, которая не совсем соответствует сути описываемых с ее помощью сущностей и на мой взгляд мешает понять основные задачи, которые решаются с помощью ПВХ.
Теперь оставим терминологию в покое и попробуем сформулировать основные функции данного объекта. Итак — в чем основное назначение данного объекта? Оно состоит в возможности создания иерархических структур параметров объектов — характеристик и определять типы их возможных значений. При этом, появляется возможность в качестве типа значения различных реквизитов и ресурсов других объектов выбирать тип Харатеристика.- то есть в системе появляется еще один тип данных «Характеристика», являющийся по сути описанием типов, который мы можем создавать и изменять из пользовательской части.
И если с созданием иерархической структуры параметров, возможностью быть владельцем легко бы справился справочник, то именно формирование нового типа данных «Характеристика» является основным отличием ПВХ.
Ну и еще пару слов о том, «откуда ноги растут» — вообще ПВХ произошел из объекта платформы 7.7, который назывался «Виды субконто» и обслуживал исключительно план счетов, наделяя его возможностью ведения аналитического учета. В платформе 8 данный объект решили сделать более универсальным и появился ПВХ, главной задачей которого по прежнему является обслуживание механизмов бухгалтерского учета, но при этом появилась возможность использовать этот механизм и для других задач. И если в случае с бухгалтерскими объектами многие механизмы «зашиты в платформу», что сильно упрощает жизнь, то при использовании ПВХ для решения других задач, все приходится делать самому (вспомогательные регистры сведений, справочники и пр.), что может вызвать определенные сложности у начинающих и не только, так как получается как правило довольно громоздко — посмотрите как реализован учет по характеристикам в типовой торговле (УТ 10.3).
Надеюсь, эта статья поможет вам чувсвтвовать себя уверенней при работе с этим интересным и безусловно очень полезным
объектом.
ЗЫ:
Для полноты картины, учтя ценные замечания из комментариев к статье, привожу ссылки по теме:
http://v8.1c.ru/overview/CharacteristicReg.htm
http://v8.1c.ru/overview/Term_000000276.htm#1
Так же, за рамками данной статьи остались возможности получения характеристик с помощью СКД (закладка характеристики в конструкторе запросов) и др. Статься не претендует на всеобъемлющую полноту и академическую строгость изложения и является частным мнением автора по изложенному вопросу.
Спасибо.
Полезно и понятно написано.
та я тоже не сразу разобрался, немного запутало реализация использования этих характеристик в типовой торговле… а в целом смысл понятен, ПВХ тот же справочник, но имеет еще возможность задавать возможные типы значений для их хранения, которые может определять сам пользователь… вот и все отличие от справочника
Спасибо! Полезный материал, особенно, когда пишется от себя, а не по учебникам и хелпам.
(0) Как вариант, можно создать 1 иерархический ПВХ, а в нем создать 3 группы, внутри которых будут нужные характеристики.
По моему для лучшего понимания ПВХ или «озарения» будет полезно поработать с ним программным способом.
От статьи ожидал, хотя бы:
— Привязки характеристик в описании метаданных объектов
— Как эти привязки помогают «улучшить жизнь» при разработке отчетов (СКД), при работе с данными, что от этого получает пользователь
— (Может упустил при скором чтении) Как следует хранить в Информационной базе такие планы, которые по большому счету идентичны друг другу, но вы их предлагаете разбивать. Каждому плану свой регистр? Общий регистр и Составной тип для разреза?
— Рекомендации (примеры из типовых решений) как использовать в интерфейсе.
Я это не со зла, вы не подумайте, но ожидал большего.
(6) xzorkiix, может ты тогда дашь развернутую информацию по теме?
Я бы «Технический»,»Экономический» объединил в наборы (как в БСП) и новые ПВХ не нужны.
Спасибо. Наглядно.
(4) Uncore, Отличный вариант — согласен!
Спасибо, очень хороший пример. Ставлю +
Сергей, хорошая статья, спасибо. Сам долго не вполне понимал, чем ПВХ отличается от справочника.
И, как выпускник МИИ ГА, особенно отмечу пример с самолётом 🙂
(2) WKBAPKA,
А справочник не может? И не может хранить разные типы, чтобы пользователь выбрал сам?
Вся разница — на программном уровне и в назначении, что как раз и не освещено никак в статье.
Какие-то самолеты, «вид характеристики — это характеристика» и т.д.
Смысл-то введения данного объекта в 1С — где? как используется — где?
Похоже, что показать/обсудить некие «способности»
— это было единственной целью написания статьи…
(13) AlexO,
справочник не может… например, мне нужно сделать такой механизм, где бы пользователь сам определял типы данных для каких то реквизитов… как это сделать в справочнике? никак, только извращаться… а в плане видов характеристик можно… + тип значения перечисляет конечное число типов данных (возможно, влияет на производительность)
одним словом я согласен, что различия только на программном уровне, но автор статьи вероятно хотел раскрыть принцип работы с ПВХ…
(13) AlexO,
поддержу. Это не статья, это некая заметка — мысли вслух.
(15) vlasin,
человек немного разобрался и решил поделиться… я автора не защищаю, но если подходить по справедливости, если не нравиться статья, напишите свою, более полную и правильную
(16) WKBAPKA,
когда разберусь с ПВХ — напишу обязательно. Я против автора тоже ничего не имею, а вот статья — ерунда. Я читаю статьи не с целью покритиковать и заявить, что я умнее. Как раз наоборот — почитать, что умные люди пишут. И когда за статью выдается не пойми что — да, мне это не нравится. Для этих целей блог есть в конце концов — озарило очевидной вещью, написал.
Спасибо за конструктивные замечания — добавил новый раздел, посвященный функциональности ПВХ.
(12) zamichnik, Михаил, рад что понравилась статья! По поводу примера — я сам МАИ окончил, так что тема тоже близка, жаль правда что разваливается все потихоньку — но это уже не про 1С…
[quote=vlasin]когда разберусь с ПВХ — напишу обязательно. [/quote]
(17) vlasin, вот когда разберёшься, тогда и сможешь критиковать. А пока твои некомпетентные высказывания — словно пук в лужу.
[quote=vlasin]Это не статья, это некая заметка — мысли вслух.[/quote]
В чём ты видишь разницу между статьёй и заметкой? Сможешь указать чёткие и объективные критерии?
И объясни, с чего ты решил, что правильна именно твоя интерпретация термина «статья»?
Честно говоря, не понял, чем эти заметки лучше книг по 1С. Есть же масса методической литературы с примерами…
Задача: заказали белые тапочки, несколько штук. Вопрос: сколько на складе зеленых тапочек. ПВХ позволяет минимизировать справочник «Номенклатура» расширяя номенклатуру за счет ПВХ. В книжках, в основном, примеры использования ПВХ на обуви. А вот хотелось бы посмотреть пример использования ПВХ на самолете.
Спасибо, отличная статья!
Подробностей и примеров хотелось бы побольше, но начинание хорошее.
Представлен ещё один пример объяснения сути ПВХ. По-моему, вполне достойный. Автору плюс.
Спасибо, рад что понравилась статья! Честно говоря даже не ожидал, что будет к ней такой интерес — спасибо!
К сожалению в мануалах информация подается слишком «сухим» языком, а написанная простым языком, да еще с примерами из жизни статья получается намного более доходчивой.
Огромное спасибо!!!
Да, в принципе все понятно. Помню, сколько трудностей вызвало освоение механизма характеристик в УТ 10.3, тем более что задача была нетривиальная — перевести магазин одежды, который вел учет по размерам, заводя их как СЕРИИ номенклатуры (спасибо предыдущим ВНЕДРЕНЦАМ) на учет по характеристикам. Немало дров переломал, пока не разобрался в принципе и метаданных
(27) А почитать Радченко и другие книжки — не судьба? Кроме мануалов, в природе ничего нету, да?
Пример в статье считаю не вполне верным. Создавать 3 ПВХ совершенно незачем, хватит одного, например, с предопределёнными папками верхнего уровня, потому как, думаю на 50-70% типы показателей пересекались бы. Разные ПВХ — это если надо разные наборы реквизитов делать, или типы значений существенно разные.
А «иерархичность», упомянутая в тексте, вообще не пришей куда хвост. Процитирую: «Итак — в чем основное назначение данного объекта? Оно состоит в возможности создания иерархических структур параметров объектов — характеристик и определять типы их возможных значений.» — и где в примере эта иерархичность? Или, может, автор научился использовать группу ПВХ не так, как все? Или упомянул, чем иерархия ПВХ отличается от иерархии справочников? В общем, сомнительной полезности заметка.
(14) WKBAPKA,
Как это нельзя? Делатете составной тип данных — и получаете несколько типов данных на выбор пользователя + конечное число типов данных 🙂
Единственное отличие ПВХ от справочника — что кроме этого, в ПВХ можно задать конкретные значения данного параметра на выбор.
Ну и программное пользование.
(26) Tsaregorodtsev,
если вы накидаете как можно больше разных примеров использования ПВХ — это и будет содержанием и смыслом статьи. Даже если её оставить под старым названием.
А если продолжите «придумывать» мотивы 1с для ввода ПВХ и предположения, чего там такого уникального — боюсь, мы продолжим вас (вернее, данную статью) ругать :))
(29) Yashazz,
Вероятно, автор прикинул, что неплохо бы было сделать «иерархию свойств» (когда есть свойство-родитель, и свойство-потомки, со всеми последующими связями и наследованием), и ПВХ показалось ему вполне так подходящим объектом, в котором 1с теоретически могла бы реализовать такое 🙂
Только вот на практике как эту иерархию реализовать в ПВХ? 🙂
(32) AlexO,
Посмотрите как реализован ПВХ «НастройкиПользователей» в УТ 10.3 — пример иерархического ПВХ. Тема эта я думаю исчерпана — книжки по 1С, публикация, комментарии — обменялись мыслями и идем дальше…
(33) Tsaregorodtsev,
Посмотрел. И чем реаоизация там отличается от того же — в обычном справочнике? Вы внимательно читали (32)? Иерархия папок и элементов реализуется в любом справочнике.
Т.е. Вы ничего не сказали из «Оно состоит в возможности создания иерархических структур параметров объектов» про иерархические структуры, и все — тема по ним закрыта??
Приведите лучше в статье примеры создания ПВХ, в том числе — как разработать «иерархическую» структуру на ПВХ.
А темы как-нибудь в другой раз закроем :).
(33) Tsaregorodtsev, отличная статья, спасибо! мне понравилось, полезно.
Наверное, при возможности стоит избегать использования характеристик.
Например такая характеристика
Показать
кроме того, что сложно получается запросом, еще и в консоли запросов не в любой работает, так как при задании параметра не возможно установить значение свойства без связи с владеющим свойством. То есть в итоге использования характеристики мы получаем запрос, который не сможем покрутить в консоли запросов. Вот хочу в свою консоль запросов устранение этой проблемы дописывать.
(18) Tsaregorodtsev,
т.е. так ничего сами и не поняли, и других продолжаете смущать?
Что это за «новый тип данных»?
с чего вы нарисовали «происхождение» ПВХ от ВидыСубконто 7.7 и вывели «базовое»
?
только по названию нескольких ПВХ со словом «Субконто»?
Про какую-то «иерархичность» реализуемую «только в ПВХ» я уже вас спрашивал — конечно же, безрезультатно.
Автор, вы ни чего не поняли ни в ПВХ, ни в способах его использования, и ни разу не попытались самостоятельно что-то смастерить на ПВХ и закодить. А посему не смущайте новичков.
Раз не обратили внимание на замечания, и желаете заблуждаться сами — то хотя бы других за собой не тяните.
И так 1с-ники деградируют быстрее всех остальных ит-шников.
(16) WKBAPKA,
по-вашему, ПВХ — это рассуждения на тему «как прекрасен этот мир»?
в статье одни домыслы, рассуждения не по теме и отсутствие какого-либо желания разобраться в ПВХ.
(38) AlexO, присоединяюсь, тоже ничего не понял. В статье одна «вода».
Статья, то что надо! Коротко и по делу. Мне понравилось. По ней быстро разобрался, что к чему.
(34) AlexO,
Статья же не называется «Всё о ПВХ» 😉 Напиши свою. Почитаем, заценим.
(40) GorDAn, Спасибо, рад что статья оказалась полезной!
решил освежить знания, прочитал статью.. просветления не получил, почитал ЖКК «Руководствов разработчика» и оно появилось 🙂 так что мануалы маст хэв
(43) 1cmax, просветление получено после комбинации статья + мануал или мануал + …. + статья + еще раз мануал. То есть, все таки статья оказалась причастной к просветлению, согласитесь 🙂
статья подтолкнула к тому чтобы лезть за книжкой.. это да.. но это опосредовано..
(45)Я думаю, что вам не потребуется больше мануал по этому вопросу. Вообще если 3 раза прочитал и не понял — то не нужно уже себя мучить — это уже не гуманно просто. Но денежки за обучение никто не отменял, надеюсь вы понимаете о чем я?
Ну если в кратце в моем понимании:
ПВХ есть по сути дела справочник
со спецатрибутом ТипЗначения, имеющего тип «ОписаниеТипов»
(который вообще говоря не доступен для хранения в физических таблицах объектов)
+ подстёгиваемый платформой дополнительный тип в системе «Характеристика.<ИмяПВХ>»,
идентичный описанию типа, выбранному в спецатрибуте.
Насчет ВидовСубконто в семерке — истинная правда.
Могу только добавить,
что в 1с-7.7 они идентичны понятию «Константа» с типом «ОписаниеТипов»
и жестко задаются в конфигураторе.
Правда типа значений «ОписаниеТипов» как такового в 1с-7.7 не существует…
😉
ну в общем понятно.
(47)
Ну в платформе еще есть мутные квази-справочники:
ПланыСчетов
ПланыВидовРасчетов
можно еще и про них статейку набобахать…
…откуда есть они пошли
:))))
(48) yuraos, «можно еще и про них статейку набобахать…
…откуда есть они пошли » — отличная идея! Напишите, я бы почитал с удовольствием 🙂
(49) Tsaregorodtsev,
Кто ж вам скажет-то? 🙂
То, что вы сами или кто другой придумает («вообще ПВХ произошел из объекта платформы 7.7, который назывался «Виды субконто») — это только догадки-придумки, которые даже логически обосновать не дают себе труда 🙂
Мир этому дому!
Статья полезная. Лучше «на пальцах» один раз разобраться, чем потом постоянно спотыкаться… Безусловный плюс.