Как использовать план видов характеристик в запросе на скд. Назначение прикладного объекта "план видов характеристик" План видов характеристик 1с иерархия


Данный объект платформы 1С является интересным и полезным при правильном применении. К нему прибегают разработчики в тех случаях, когда необходимо предоставить возможность заказчикам самостоятельно регулировать перечень свойств той или иной сущности. Чаще такие методы внедрения можно увидеть в компании, где в будущем планируется увеличение параметров учета чего-либо. Планы видов характеристик – отличная возможность сделать счастливым заказчика с нечетким техническим заданием.

Создаем ПВХ в 1С

Отличительная особенность объекта «План видов характеристик» заключается в возможности пользователей самостоятельно добавлять разрезы учета для элементов справочника в 1С. Разработчику нужно лишь один раз настроить ПВХ, и более пользователи не будут его беспокоить по поводу добавления характеристик справочника. План видов характеристик поможет в ситуациях, когда у сотрудников заказчика нет четкой определенности относительно свойств учитываемых элементов, а внедрение запустилось.

Еще одна ситуация, где ПВХ будет оптимальным решением – перепроверка элементов с указанием новых свойств. К примеру, в 1С номенклатуру всегда добавляли, указывая только наименование, а теперь решили, что нужно указывать цвет, длину и марку. Многие решают эту ситуацию с помощью текстового поля «Комментарий», куда заносят всю информацию через запятую. Этот путь ведет к проблеме усложнения получения правильных данных из отчетов, в отличие от добавления плана видов характеристик.

ПВХ добавляется через конфигуратор: в дереве объектов находим ветку «Планы видов характеристик» и с помощью кнопки «Добавить» создаем новый элемент. Записываем название, отражающее сущность, и с помощью поля «Тип значения характеристик» определяем, какие типы значений смогут указывать наши пользователи. Указывать можно примитивные типы, справочники, перечисления и другие ПВХ.

Для возможности добавлять различные характеристики и качества, которых нет в 1С, нам необходимо добавить дополнительный справочник, подчиненный созданному ПВХ. В нем будут содержаться значения качеств, которые пользователи будут добавлять в план видов характеристик. Они будут привязаны к конкретному качеству, и сотрудники компании не смогут выбрать неподходящее значение.


После создания подчиненного справочника в ПВХ во вкладке «Основное» нужно выбрать его в поле «Дополнительные значения характеристик». Осталось лишь создать новый регистр сведений, где и будут храниться все данные по дополнительным характеристикам, введенные пользователями. Это будет непериодический независимый РС со следующими полями (вкладка «Данные»):

  1. Измерение «Номенклатура». Тип – ссылка на соответствующий справочник, отметка «Ведущее» обязательна, чтобы в 1С при открытии номенклатуры пользователь мог указывать дополнительные показатели;
  2. Измерение «СвойствоНоменклатуры». Тип – ссылка на созданный ПВХ;
  3. Ресурс «ЗначениеСвойстваНоменклатуры». Тип – Характеристика.СвойствоНоменклатуры, в свойство «Связь по типу» указываем Свойствономенклатуры. Для удобства пользователей настройте связи параметров выбора, указав отбор по владельцу (СвойствоНоменклатуры).



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


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



Создадим несколько записей в справочнике для новой характеристики номенклатуры. Обратите внимание, что при добавлении в справочник из этого меню, поле «Владелец» автоматически заполняется нужным нам свойством номенклатуры. Остается лишь вписать значение и записать новый элемент справочника. Добавив все нужные значения в справочник, закрывайте окно и выбирайте созданное свойство номенклатуры.


При попытке выбрать значение 1С предлагает вам только те данные, которые вы добавили именно для выбранного качества товара. Это обеспечит отсутствие ошибок пользователя и сделает работу в 1С удобнее по сравнению с тем, когда пришлось бы выбирать из всего перечня значений. Еще одно полезное ограничение обеспечивает сама платформа 1С – невозможно добавить два одинаковых свойства номенклатуры – появится ошибка об уже существующей записи.


Количество характеристик не ограничено, и даже если пользователи 1С будут каждый день добавлять новые свойства, вышеуказанная схема сохранит свою работоспособность. В конфигурации может появиться новый справочник и возникнет потребность указывать его элементы в виде значения свойств номенклатуры. В таких случаях достаточно лишь зайти в конфигуратор и добавить новый объект в типы значения характеристик созданного нами ПВХ. Обновив конфигурацию, мы увидим, что задача решена, и пользователи могут использовать данные нового справочника.


Помните о том, что теперь некоторые элементы справочников используются в регистре сведений и при удалении необходимо убирать ссылки на них. В противном случае стандартная процедура платформы по удалению объектов не сможет ликвидировать элемент справочника. Если все же объект удалить без поиска ссылок на него, то вместо него вы увидите надпись «Объект не найден».

Как обычно ведется учет в торговом предприятии?

В первые несколько лет – все гонятся за прибылью: побольше закупить, побыстрее продать, никого пока не интересуют зависающие остатки товаров в магазинах и на складах. Объем базы растет как на дрожжах, т.к. пока порядок оприходуемого товара хаотичный.

Например, вчера купили красный стул, сегодня зеленый стул, поначалу так и вбивают в базу данные: 1) старая позиция – красный стул;2) новая позиция – зеленый стул. Но после инвентаризации – всегда появляется пересорт товара, и здесь приходят к варианту – создать новую позицию, без конкретного описания в названии товара его спец.свойств, т.е. заводят товар так, например, просто “Стул”, а две предыдущие позиции товара – помечают на удаление.

Через некоторое время – свободных оборотных средств становится лимитное количество. Здесь возникает вопрос: а какие именно товары имели больший спрос, чтобы вкладывать средства в них, а не в зависающий товар.

То есть вновь требуется знать дополнительные характеристики товара , но вводить эти характеристики в базу нужно уже не в хаотичном порядке, – просто в названии товара добавив какие-нибудь описания, а четко и правильно:название должно быть коротким, лаконичным, и в дополнительном поле – описаны всевозможные характеристики данного товара : например, его цвет, объем, вес, производителя и многое другое.

Тут если мы запишем свойства товара в справочнике Номенклатуры в поле “Комментарии”, то Аналитику будет не просто сделать нужный ему отчет по популярности и оборачиваемости конкретно данного товара с конкретно данными свойствами товара.

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

Н-р, под товаром “Стул” – пользователь желает указать свойство товара – цвет, это строковое значение данных. Значит в подчиненном справочнике – мы реквизит сделаем строковым. А если он желает указать доп.свойство товара, например, производителя? Тогда мы должны реквизит в подчиненном справочнике сделать ссылочного типа, указывая на др.справочник “Производители”. А если пользователь в доп.свойствах к своему товару желает указать сколько ножек у стула? Мы в подчиненном справочнике должны реквизит сделать числовым…..

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

Мы создадим в нашем примере сложный ПВХ , чтобы был полноценный механизм описания дополнительных свойств товара.

Но для начала рассмотрим урок по созданию ПВХ из книги (стр.476) “1С_ Предприятие 8.3 . Практическое пособие разработчика. Примеры и типовые приемы” Радченко /Хрусталева

Здесь у нас уже есть справочник Номенклатура. Цель задачи : иметь возможность знать остатки материалов, обладающих некоторым значением характеристики . Для этого создадим в Конфигураторе новые объекты:1) регистр Сведений “ЗначенияСвойствНоменклатуры”;2) ПВХ “СвойстваНоменклатуры”;3) подчиненный Номенклатуре справочник “ВариантыНоменклатуры”, чтобы описывать партии материалов;4) подчиненный ПВХ справочник “ДополнительныеСвойстваНоменклатуры”, чтобы задавать значения видов характеристик,для которых нет подходящих типов в конфигурации.

В результате нам достаточно будет выбирать из регистра сведений все элементы подчиненного справочника с этим значением характеристики и затем по ним и их владельцам – получить остатки регистра накоплений.

В создаваемом нами ПВХ в поле “Тип значения характеристик” – укажем составной тип данных: Число,Строка,Дата,Булево,СправочникСсылка.ДополнительныеСвойстваНоменклатуры. А так же в поле ПВХ “Дополнительные значения характеристик” – указываем подчиненный ПВХ справочник “ДополнительныеСвойстваНоменклатуры”.

2) ВидСвойства, тип = ПланВидовХарактеристикСсылка.СвойстваНоменклатуры

И создаем ресурс регистра сведений:

Значение, тип = Характеристика.СвойстваНоменклатуры.

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

Существует несколько ньюансов при настройки регистра сведений “ЗначенияСвойствНоменклатуры”, здесь желательно установить измерение регистра НаборСвойств (сюда попадает выборка из спр.ВариантыНоменклатуры) – как Ведущее , это даст нам возможность из спр.”ВариантыНоменклатуры” – вызывать данный регистр Сведений . А так же для ресурса регистра Значение – установить “Связь по типу” = ВидСвойства и “Связи параметров выбора” = Отбор.Владелец(ВидСвойства) .Данные настройки регистра сведений – упростят ввод пользователем данных.

Кроме того, в книге в данном уроке идет подробное описание – как лучше всего настроить формы списка и основные формы новых объектов, чтобы пользователь видел при заполнении свойств товаров – только необходимую ему информацию. Здесь мы не будем показывать всю эту деталировку.

Просто попробуем в нашем товаре, н-р, “Кабели электрические” – задать дополнительное свойство “Белые кабели”, а состав свойства: “тип свойства”=Цвет и “значение свойства” = Белый. Вот по такой схеме открывающихся друг за другом окон:

….я не знаю как у вас, но у меня уже закружилась голова и уже не совсем понятно – что мы делаем и зачем))))

А представьте – объяснить такую цепочку пользователю?!?…..Чтобы наш пользователь смог понять того, чего мы уже сами не понимаем – у него должно быть минимум три сертификата по 1С)))

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

….это просто нереально сложно!!! И любой начинающий программист решит, что проще никогда не связываться с ПВХ, чем пытаться в подобной схеме разобраться…..

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

Да, отчет получается интересный, но сам процесс создания дополнительных Характеристик (свойств) товара – очень запутанный, кроме того, пользователь при вводе стольких дополнительных данных при заполнении приходных/расходных накладных – создаст ни одну ошибку…..Начиная с ввода “НабораСвойств” в полях документа….

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

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

Итак, что нам нужно:

1. Дать возможность пользователю к Номенклатуре добавлять описание Свойств.

2. Дать возможность Аналитику исследовать показатели продаж в отборе по Свойствам Товара.

Рассмотрим какие у нас есть варианты при решении первого пункта задачи:

1. Мы можем добавить к справочнику Номенклатура подчиненный справочник, в который пользователь будет описывать только конкретными, заданные нами в Конфигураторе, данные строчного типа….это не подходит, так как при описании Свойств товара может понадобиться “непредсказуемый” нами в Конфигураторе Тип данных: например дата, число, строка, ссылка на др.справочник.

2. Поэтому для создания доп.Свойств Номенклатуры – мы должны создать ПВХ, так как ПВХ – это справочник + Описание Типов данных .

Если мы в справочнике Номенклатура – создадим табличную часть, в которой будет два поля – Тип данных вводимого Свойства товара и,непосредственно, само значение. Это очень просто – одно поле у нас будет ссылаться на ПВХ, др.на Характеристику этого ПВХ.

Но в этом случае, у нас не получится сделать записи уникальными….Только представьте себе вариант, где под товаром,например, Сосиски – можно ввести два вида значения Свойства “Цвет”: и красные и зеленые)))

Поэтому этот метод самый простой, но не дает уникальности в свойствах Номенклатуры.

3. Создадим ПВХ , но его значения будем набирать через регистр Сведений . Регистр Сведений – содержит только уникальные данные .

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

п.с. здесь можно создать подчиненный ПВХ справочник, чтобы в него записывать все строковые Свойства номенклатуры. Но пока не будем усложнять.

Для этого в регистре сведений добавляем два измерения:

2) СвойстваНоменклатуры, тип = ПланВидовХарактеристикСсылка.УниверсальныйПВХ.

В ресурсах регистра указываем “ЗначениеСвойства”, тип = Характеристика.УниверсальныйПВХ:

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

Выделим ресурс “ЗначениеСвойства” регистра сведений и в меню справа на вкладке “Представления” – создадим связи, чтобы при выборе значения данного регистра в пользовательском режиме – нам выпадал сразу список из измерения данного регистра “СвойствоНоменклатуры”. Т.к. помним, что измерение “СвойствоНоменклатуры”-это ПВХ, а ресурс “ЗначениеСвойства” – это и есть Характеристика данного ПВХ. Итак, на этой владке указываем “Связь по Типу” = “СвойствоНоменклатуры” . Теперь, если мы в измерении регистра выбрали Тип данных,н-р, строка, то когда будем вводить значение в ресурс – у нас сразу будет стоить тип строка, а не все возможные перечни типов!

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

В данном примере Товару “Транзистор Philips 2N2369” – создаем сначала Вид желаемого свойства товара, пусть это будет “Транзисторы”, и сразу указываем тип данных для этого свойства – в данном примере мы выбираем вручную тип данных = Строка. Сохраняем. И далее нам нужно задать значения этому виду свойств товара, пусть это будет “Слаботочечные транзисторы”:

Добавим еще одно Свойство этому товару, например, производитель “Корея”.

Возьмем другой товар, создадим ему свойство “Трансформаторы”, тип = строка, значение = “Строчные трансформаторы”. А второе свойство, которое мы желаем ввести этому товару будет тоже “Производитель” – его создавать не нужно, оно уже есть у нас в выборке, но вот если мы попробуем ввести то же самое значение этого свойства, равного “Корея”, то нам придется набирать его вручную….Это не очень удобно…Хорошо, когда один раз введенное значение – можно подставлять множество раз.

Чтобы добавить данное удобство, перейдем в Конфигуратор и создадим справочник, на вкладке “Владелец” укажем созданный ранее наш “УниверсальныйПВХ”. Теперь, если у нас свойства значений будут строковыми, то нам не обязательно постоянно выбирать тип = Строка, достаточно будет дать ссылку на этот подчиненный справочник: в него очень удобно сохранять строковые значения, а кроме того – такой способ позволит нам выбирать уже готовые строковые значения для Свойств товара.

Произведем небольшие настройки ПВХ в связи с появившемся подчиненным ему справочником:

Также и в регистре сведений нам нужно добавить настройки, чтобы при выборе значения ресурса регистра – у нас сразу же появлялась выборка по Владельцу данного свойства.

С первым пунктом поставленной задачи мы справились – механизм создания уникальных свойств товару создали.

Заполним различные свойства номенклатуры в пользовательском режиме 1с. Обратим внимание, что уже введенные ранее свойства, такие как,н-р, Производитель, уже сразу есть в варианте выборке свойств, а так же нам дается сразу выбрать готовое значение этого свойства,н-р, “Корея”.

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

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

Все гораздо проще. У нас есть товар, название его краткое, лаконичное, в свойствах его описаны все ньюансы. Если у нас появился товар с другими видами свойств – то это значит, что этот товар другой, а не тот же самый!

Н-р, у нас есть один товар “Строчный трансформатор Samsung”, у которого два свойства:1) “Трансформаторы” = “Строчные трансформаторы”;2) “Производитель” = “Корея”, и другой товар “Строчный трансформатор Россия”, у которого два свойства:1) “Трансформаторы” = “Строчные трансформаторы”;2) “Производитель” = “Россия”. Так вот мы никак не можем сказать, что эти два товара одинаковые, а отличаются только свойствами!!! Нет, эти два товара разные, чем мы коротко указываем различие их в Названии, и более подробно – описываем в свойствах данного товара.

Отсюда, нам не нужно создавать какое-то дополнительное поле в первичных документах, чтобы в нем прописывать одну из характеристик товара (у нас этих характеристик может быть более одной!).

Перепроведем вновь все наши приходные накладные и док.ОказаниеУслуг. (здесь в документах от первого метода из книги – есть поля с доп.характеристиками, но они ни как не влияют на наш только что созданный собственный механизм ПВХ)

В Конфигураторе создадим Отчет по регистру “УникальностьУниверсальногоПВХ”. Запишем в запрос СКД-отчета следующий код:

ВЫБРАТЬ ОстаткиМатериаловОстаткиИОбороты.Материал, ОстаткиМатериаловОстаткиИОбороты.КоличествоНачальныйОстаток КАК НачальныйОстаток, ОстаткиМатериаловОстаткиИОбороты.КоличествоПриход КАК Приход, ОстаткиМатериаловОстаткиИОбороты.КоличествоРасход КАК Расход, ОстаткиМатериаловОстаткиИОбороты.КоличествоКонечныйОстаток КАК КонечныйОстаток, УникальностьУниверсальногоПВХ.СвойствоНоменклатуры, УникальностьУниверсальногоПВХ.ЗначениеСвойства ИЗ РегистрНакопления.ОстаткиМатериалов.ОстаткиИОбороты КАК ОстаткиМатериаловОстаткиИОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УникальностьУниверсальногоПВХ КАК УникальностьУниверсальногоПВХ ПО ОстаткиМатериаловОстаткиИОбороты.Материал = УникальностьУниверсальногоПВХ.Номенклатура

В настройках СКД-отчета разрешим использовать в пользовательском режиме “Отбор”. При формировании отчета в 1с-Предприятии – в отборе выбирем СвойствоНоменклатуры=Производитель. У нас получится очень интересный отчет:

Заменив регистр остатков на регистр Продаж – создадим второй отчет Продажи с возможностью отбора по свойствам товаров.

Мы выполнили и даже перевыполнили второй пункт задачи – дать возможность Аналитику создавать отчеты в разрезе Свойств товара.

В нашем варианте – механизм ПВХ получился простой, наглядный и быстронастраиваемый.

п.с. при создании данной статьи мне очень помогла информация, прочитанная вот отсюда:

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Надеюсь, что моя статья пригодится начинающим программистам на платформе 1с 8.3

п.с. в загрузку прилагаю учебную базу, в которой созданы были все текущие примеры. Эту базу я начала писать с нуля по урокам книги “1С_ Предприятие 8.3. Практическое пособие разработчика. Примеры и типовые приемы” Радченко/Хрусталева http://v8.1c.ru/metod/books/book.jsp?id=441 , просто дополняя ее еще и свои наработки.

Успехов в освоении ПВХ, в случае с решением этой непростой задачки – очень подходит лозунг ниже)):

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

Думаю, Вы знакомы с такими понятиями как ОписаниеТипов и Справочник. Если нет, то посмотрите нижеуказанные статьи перед дальнейшим чтением, тогда всё станет более понятно.

Итак, продолжим. Если Вам уже известны ОписанияТипов и Справочники, то План видов характеристик это Справочник + ОписаниеТипов . Как видите всё просто. И эта мысль главная, т.е. сам по себе план видов характеристик не может реализовать функционал характеристики номенклатуры или субконто, для этого дополнительно используются свойства и механизмы других объектов.

Давайте рассмотрим, как настраивается функционал характеристик для номенклатуры.

Задача

Итак, у нас есть Номенклатура для которой нужно установить какие-то дополнительные свойства, например:

На данной картинке ПВХ будет отвечать за колонку "Свойство" и тип значения в колонке "Значение".

Т.е. Свойство - это будет элемент ПВХ (м.б. предопределенный), а тип значения для колонки "Значение" это будет объект ОписаниеТипов который присутствует в каждом элементе ПВХ.

Создаем ПВХ

На картинке выше видно, что в качестве доступного типа указан справочник "ДопЗначения" это ещё одна функциональная возможность ПВХ - указать справочник, в котором могут храниться все необходимые свойства. Это не обязательно можно и не указывать, но данный механизм очень облегчает работу. Ведь, как правило, свойства и характеристики номенклатуры это текстовые значения, а не другие объекты базы данных. И хранится все это будет, в одном месте, также при создании нового элемента по умолчанию типом будет установлен только справочник Дополнительных характеристик.

Чтобы указать дополнительный справочник нужно сначала у этого справочника установить владельцем наш ПВХ иначе его не будет в списке выбора, а дальше выбрать его в свойствах ПВХ на закладке "Основные".

Небольшое пояснение о работе ПВХ. Сначала на закладке "Основные" мы выбираем все типы доступные в данном ПВХ в поле "Тип значения характеристик", а у элементов устанавливаем тип значения уже из доступных в данном ПВХ. В нашем случае для ПВХ можно выбрать только справочник "ДопЗначения".

Создаем регистр сведений

Вот мы создали свойства(ПВХ) и справочник для хранения значений(ДопЗначения) теперь нужно связать номенклатуру и свойства. Для этого используется регистр сведений, в нашем случае у него будут следующие поля: измерения "Номенклатура, СвойствоНоменклатуры" и ресурс "ЗначениеСвойства"

Если Вы используете управляемые формы то достаточно будет добавить для ресурса "ЗначениеСвойства" в регистре "ЗначенияСвойствНоменклатуры" Связь по типу с полем "СвойствоНоменклатуры" и тогда, во время редактировании записи регистра сведений, при выборе значения для поля "СвойствоНоменклатуры" будет изменяться тип значения в поле "ЗначениеСвойства".

Если у Вас обычное приложение то эту связь, "Связь по типу", нужно будет настраивать в форме для поля ввода "ЗначениеСвойства" и при этом нужно будет в событие ПриИзмении поля "СвойствоНоменклатуры" использовать метод "ПривестиЗначение() " чтобы избавиться от излишнего выбора типа и избежать ошибочных ситуаций:

ЗначениеСвойства = СвойствоНоменклатуры . ТипЗначения . ПривестиЗначение (ЗначениеСвойства );

Отбор по владельцу

Т.к. у нас справочник "ДопЗначения" подчинен ПВХ "СвойстваНоменклатуры" то можно установить отбор, чтобы при выборе СвойствоНоменклатуры в поле "ЗначениеСвойства" можно было выбать только из подчиненных элементов. Для управляемого приложения это делается в свойствах ресурса, свойство называется "Связи параметров выбора" нужно выбрать "Отбор.Владелец(СвойствоНоменклатуры)". Для обычного приложения ничего делать не надо т.к. установив Связь по типу программа сама будет показывать только подчиненные элементы.

Важно! Свойство "Связь по типу" работает только с реквизитами у которых тип ПВХ.

В заключении

Таким образом посредством регистра сведений мы связали справочник "Номенклатура" с его свойствами ПВХ "СвойстваНоменклатуры" и его значениями справочник "ДопЗначения".

Важно! Все интересующие нас данные т.е. характеристики номенклатуры хранятся именно в регистре, а не в ПВХ.

Для обычного приложения есть возможность открыть регистр, со свойствами номенклатуры нажав на кнопку "Перейти" т.к. мы указали что измерение "Номенклатура" - "Ведущее".

Для управляемого приложения есть ссылка на панели навигации

Вы догадались, что также можно перейти в регистр и из ПВХ т.к. измерение "СвойствоНоменклатуры" тоже ведущее.

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

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

Создание новых объектов конфигурации

1. Создадим объект конфигурации Справочник с именем ВариантыНоменклатуры и укажем, что он будет подчинен справочнику .

2. Создадим еще один объект конфигурации Справочник с именем .

3. После этого создадим объект конфигурации План видов характеристик с именем СвойстваНоменклатуры . Тип значения характеристик установим следующим:

  • Число , длина 15, точночность 3;
  • Строка , длина 25;
  • Дата ;
  • Булев о;
  • СправочникСсылка.ДополнительныеСвойстваНоменклатуры .

4. Справочнику ДополнительныеСвойстваНоменклатуры укажем владельца → план видов характеристик СвойстваНоменклатуры .

5. На закладке Формы установим для него редактирование в списке.

6. После этого определим, что дополнительные значения характеристик плана видов характеристик будут располагаться в справочнике ДополнительныеСвойстваНоменк-латуры .

7. На закладке Формы укажем, что этот план видов характеристик будет редактироваться в списке.

8. В заключение создадим объект конфигурации Регистр сведений с именем ЗначенияСвойствНоменклатуры .

9. Изменения регистра:

  • НаборСвойств , ведущее, тип ;
  • ВидСвойства , тип ПланВидовХарактеристикСсылка.СвойстваНоменклатуры .

10. Ресурс регистра:

  • Значение , тип Характеристика.СвойстваНоменклатуры .

Обратите внимание, что мы имеем возможность определить тип значения ресурса регистра как Характеристика.<имя> . По сути, это определение представляет собой составной тип данных, как он задан в типе значения соответствующего плана видов характеристик. То есть ресурс регистра может иметь значение любого типа из тех, которые описаны в типе значения плана видов характеристик.

Доработка справочника Номенклатура

1. Прежде всего, в справочнике нам нужно обеспечить возможность редактирования варианта материала. Для этого укажем, что справочник будет редактироваться теперь обоими способами (на закладке Форма ) → в списке и в диалоге.

2. Создадим основную форму элемента при помощи конструктора.

3. Немного раздвинем форму по ширине и по высоте и добавим в нее панель: Форма в†’ Вставить элемент управления в†’ Панель (из верхнего меню) или с помощью иконки нижнего меню Панель . С помощью курсора, превращающегося в «крест», растягиваем панель, получая при этом следующую картинку и одновременно окошко с вопросом:

Если вопрос не появился сразу, то он появится после того, как мы слегка изменим положение любой из границ панели.

4. На этот вопрос ответим утвердительно, и все элементы управления переместятся в добавленную панель:

5. Теперь мы скорректируем размеры панели и добавим в нее новую страницу. Добавление страницы → контекстное меню правой кнопки мыши на поле формы → Добавить страницу .

6. Зададим имя и заголовок новой страницы → Свойства , а первую страницу переименуем в Основные и зададим ей такой же заголовок. Имена и заголовки задаются в палитре свойств панели в группе свойств Текущая страница :

7. После этого выделим все элементы управления, расположенные в панели, и выполним команду Форма в†’ Центрирование в†’ Центрировать по вертикали .

8. Теперь перейдем на страницу Свойства и добавим надпись НадписьВариантыНоменклатуры с заголовком Варианты номенклатуры: . Укажем для нее начертание шрифта Жирный .

9. Под этой надписью расположим табличное поле с командной панелью. Полю присвоим имя Варианты и тип СправочникСписок.ВариантыНоменклатуры .

10. Из табличного поля удалим колонку Код .

11. Для этого табличного поля Варианты установим свойство Связь по владельцу → СправочникОбъект.Ссылка.

Установка этого свойства обеспечивает нам следующее: для источника данных этого поля → реквизита формы Варианты , имеющего тип Справочник Список.ВариантыНоменклатуры , - значение отбора по владельцу всегда будет равно ссылке на редактируемый элемент справочника . Иными словами, список справочника, содержащийся в реквизите формы НаборСвойств , всегда будет содержать только элементы, подчиненные редактируемому элементу справочника . А значит, и табличное поле Варианты , для которого этот реквизит является источником данных, будет отображать только элементы, подчиненные редактируемому элементу справочника .

12. Ниже поместим аналогичным образом еще одну надпись → НадписьЗначенияСвойств с заголовком Значения свойств: и начертанием шрифта Жирный .

13. Под ней расположим табличное поле с командной панелью. Полю присвоим имя Свойства и тип .

14. Для колонки Набор свойств снимем флаг Видимость , а для поля ввода в колонке Значение установим связь по типу ЭлементыФормы.Свойства.ТекущиеДанные. ВидСвойства .

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

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

Чтобы избежать такой ситуации, необходимо при смене значения в поле Вид свойства привести значение поля Значение к типу характеристики, выбранной в поле Вид свойства .

15. Поэтому для поля ввода в колонке Вид свойства создадим обработчик события ПриИзменении :

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

Поэтому для табличного поля Варианты создадим обработчик события При АктивизацииСтроки :

17. Кроме этого, чтобы не отображать весь регистр при открытии формы , создадим обработчик события формы ПриОткрытии , содержащий следующий текст:

Доработка справочника ВариантыНоменклатуры

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

1. Поэтому для справочника ВариантыНоменклатуры укажем, что он будет редактироваться обоими способами (как в списке, так и в диалоге).

2. Создадим с помощью конструктора основную форму элемента .

3. В форме нам нужно будет расположить табличное поле , которое должно отображать существующие записи в регистре сведений о значениях свойств для этого элемента справочника.

В основной форме элемента поместим табличное поле с именем Свойства , типом РегистрСведенийСписок.ЗначенияСвойствНоменклатуры и командной панелью.

4. Для колонки Набор свойств снимем флаг видимости.

5. Затем для поля ввода, расположенного в колонке Значение , зададим связь по типу ЭлементыФормы.Свойства.ТекущиеДанные.ВидСвойства .

6. Для поля ввода, расположенного в колонке Вид свойства , создадим обработчик события ПриИзменении :

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

7. Прежде всего, создадим обработчик события ПриИзмененииСсылки , в котором установим требуемый нам отбор:

8. Затем в тело модуля формы добавим вызов этого обработчика:

9. И в заключение нужно предусмотреть возможность того, что пользователь может начать задавать новые значения свойств, не записав еще сам элемент справочника НаборыСвойств . Поэтому создадим обработчик события табличного поля ПередНачаломДобавления :

Доработка регистра ОстаткиМатериалов

Чтобы обеспечить учет материалов по значениям характеристик, необходимо изменить структуру регистра накопления ОстаткиМатериалов и добавить в него новое измерение НаборСвойств с типом СправочникСсылка.ВариантыНоменклатуры .

Доработка документа ПриходнаяНакладная

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

1. Добавим в табличную часть документа новый реквизит НаборСвойств с типом СправочникСсылка.ВариантыНоменклатуры :

2. Расположим этот реквизит в табличном поле формы документа (правая кнопка мыши → Размещение данных ):

3. Для поля ввода, расположенного в колонке НаборСвойств , снова воспользуемся свойством Связь по владельцу → ЭлементыФормы.Материалы.ТекущиеДанные.Ма-

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

4. В заключение откроем процедуру обработки проведения в модуле документа и добавим к формируемым движениям присвоение значения измерению НаборСвойств :

Теперь запустим 1С:Предприятие в режиме отладки и создадим несколько наборов свойств для наших материалов.

Создание наборов свойств

1. Откроем элемент справочника Номенклатура → Кабель электрический .

2. Перейдем на закладку Свойства и создадим набор свойств этого элемента под названием Белый .

3. Затем создадим набор свойств для элемента справочника Номенклатура → Шланг резиновый . Этот набор свойств будет называться Польша и состоять из следующих характеристик:

  • Цвет → Чепный;
  • Производитель → Fagumit.

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

5. Затем скопируем первую строчку документа и укажем, что был закуплен еще и черный электрический кабель в количестве 3 шт. В процессе ввода нам придется создать еще один набор свойств для электрического кабеля → Черный , у которого:

  • Цвет → Черный;
  • Сечение → 2,5.

6. Проведем документ и посмотрим на движения документа по регистру ОстаткиМатериалов :

7. Кроме этого посмотрим на записи, которые содержатся в регистре сведений ЗначенияСвойствНоменклатуры :

Отчет ОстаткиМатериаловПоСвойствам

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

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

1. Создадим новый объект конфигурации Отчет с именем ОстаткиМатериаловПоСвойствам.

2. Откройте конструктор схемы компоновки данных, добавьте новый Набор данных → запрос и займемся конструированием запроса.

3. Выберем виртуальную таблицу регистра накопления ОстаткиМатериалов.ОстаткиИОбо роты .

4. Из виртуальной таблицы регистра накопления ОстаткиМатериалов.ОстаткиИОбороты выберем следующие поля:

  • Материал;
  • НаборСвойств;
  • КоличествоНачальныйОстаток;
  • КоличествоПриход;
  • КоличествоРасход;
  • КоличествоКонечныйОстаток.

5. После этого на закладке Объединения/Псевдонимы зададим псевдонимы числовых полей без слова Количество :

6. Приступим к описанию характеристик. Для этого перейдем на закладку Характеристики .

Нажмем на кнопку Добавить и приступим к описанию полей.

7. Первое поле, которое требуется описать, - Тип значения . Здесь следует указать тип того поля, к которому будут относиться наши характеристики. В нашем случае таким полем является поле НаборСвойств регистра ОстаткиМатериалов . Поэтому в качестве типа значения мы выберем СправочникСсылка.ВариантыНоменклатуры .

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

В качестве источника система компоновки данных может использовать либо имеющуюся таблицу исходных данных, либо результат некоторого запроса к таблицам. В нашем случае все довольно просто: список всех характеристик хранится в плане видов характеристик СвойстваНоменклатуры . Поэтому в качестве источника мы укажем Таблица , а в поле Список характеристик выберем ПланВидовХарактеристик. СвойстваНоменклатуры .

9. Далее следует описать назначение полей источника, «поставляющего» список характеристик. В поле Идентификатор выберем Ссылка , в поле Имя → Наименование , а в поле Тип → ТипЗначения .

10. Перейдем к описанию источника значений характеристик. В нашем случае источником значений характеристик является регистр сведений ЗначенияСвойствНоменклатуры , поэтому в поле Источник мы выбираем Таблица , а в поле Значение характеристик РегистрСведений.ЗначенияСвойствНоменклатуры .

11. Далее опишем назначение полей регистра. В поле Объект выберем измерение НаборСвойств , в поле Идентификатор → ВидСвойства , а в поле Значение → ресурс регистра Значение :

12. На этом создание запроса закончено. Нажмем ОК и посмотрим на текст запроса, сформированный для схемы компоновки данных:

13. В данном запросе примечательной является секция, начинающаяся с ключевого слова ХАРАКТЕРИСТИКИ. Она как раз и описывает для системы компоновки данных те характеристики, которые будут использованы в данном отчете.

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

14. Приступим к редактированию схемы компоновки данных. Прежде всего, на закладке Ресурсы выберем все доступные ресурсы:

15. Перейдем на закладку Настройки . Создадим структуру отчета → добавим группировку Детальные записи .

16. Затем на закладке Выбранные поля выберем те поля, которые будут выводиться в отчет:

  • Материал;
  • НаборСвойств;
  • НачальныйОстаток;
  • Приход;
  • Расход;
  • КонечныйОстаток.

17. В заключение перейдем на закладку Другие настройки и зададим заголовок отчета → .

18. На этом создание отчета закончено. Запустим 1С:Предприятие в режиме отладки и посмотрим, какие результаты можно получить с помощью нашего отчета. Откроем отчет Остатки материалов по свойствам .

19. Сначала посмотрим, какие у нас есть материалы с сечением 2,5 мм2. Для этого нажмем Настройки , перейдем на закладку Отбор и раскроем ветку Набор свойств .

Обратите внимание, что к полям, существующим у справочника ВариантыНоменк-латуры , система компоновки данных добавила все характеристики, которые определены нами для различных наборов свойств в базе данных: Производитель, Цвет и Сечение. Таким образом, отбор в отчете по значениям каких-либо характеристик является достаточно простым и интуитивно понятным.

20. Чтобы узнать, какие у нас есть материалы с сечением 2,5 мм2, достаточно выбрать поле Сечение, мм2 и задать для него условие равенства 2,5.

21. По окончании выполнения отчета мы получим следующий результат:

22. Затем посмотрим, какие у нас есть материалы черного цвета:

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

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

Следует заметить, что пример, рассмотренный нами, не является законченным решением для данной конфигурации. Мы всего лишь продемонстрировали возможность ведения такого учета. Для того, чтобы наша конфигурация могла полностью использовать свойства материалов, необходимо внести соответствующие изменения в остальные регистры, документы и некоторые отчеты.


Нас находят: план видов характеристик , получение данных из плана вида характеристик , 1С Как скопировать набор значений характеристик и затем изменить, найти значение планы видов характеристик, 1с 8 3 изменить тип значения характеристик, планы видов характеристик 1с, 1с 8 использование пдана видов юарактеристик, gkfy dbljd . В качестве аргумента передается индекс элемента (нумерация с 0).
Свойства:
Имя элемента отбора (Filter element name)

А у отбора тоже есть свойство «Имя элемента отбора»

Т.е. в данном случае имя элемента отбора - Владелец.

Но владелец имеет смысл только для записей, у которых в качестве ресурса выступает элемент справочника «Пользовательские характеристики». Из этого я делаю вывод, что это свойство относится только к таким записям. Т.е. для записей с видами свойств «дата появления» и «кладовщик» оно просто не имеет смысла. Тогда все становится на свои места.

Например, открывается форма записи регистра сведений с пользовательской характеристикой:

Рис. 6

Если мы перейдем в форму списка справочника «Пользовательские характеристики» для выбора цвета, то там при заданном значении свойства «Связи параметров выбора» Отбор.Владелец(ВидСвойства) будут только цвета

Т.е. отбираются только такие значения свойств, у которых вид свойства - это цвет. (значения с владельцем «Цвет», а не «Материал», например)

Т.е. форма такая же, как и на третьем рисунке.

Вывод о том, что свойство «Связи параметров выбора» относится только к дополнительным значениям характеристик подтверждает тот факт, что если мы очистим это свойство, то это повлияет только на записи с дополнительными видами свойств, а например, при выборе кладовщика открывается всегда, как и положено, справочник физических лиц.

Выбор редакции
В мире множество талантливых людей было, есть и будет. Они дарят миру новые шедевры, приводят в жизнь гениальные замыслы и разгадывают...

Зборник элективных курсов (оборонно-спортивный профиль) адресуется педагогам общеобразовательных учреждений, осуществляющих реализацию...

Первый цикл лекций из целой серии циклов, посвященных разнообразным аспектам финансовой грамотности. Главная задача курса «Управление...

Конкурсный материал на муниципальный этап Всероссийского конкурса «Учитель года – 2016» КОНКУРСНОЕ ЗАДАНИЕ «МЕТОДИЧЕСКИЙ СЕМИНАР» Усов...
Наш портал дарит Вам такую возможность! В этом учебном году, как и в прошлом, многие предметы претерпели изменения и уточнения. Мы учли...
Лекция №4 Кодирование и шифрование информации Введение В современном обществе успех любого вида деятельности сильно зависит от...
Дата публикации: 28.11.2015 Краткое описание: предварительный просмотр материала МКОУ «Частоозерская средняя общеобразовательная...
Если в таблице корни и/или дроби изображены с дефектом, загрузите скрипт для преобразования формул или таблицу в виде рисунка....
Нервная ткань является основной тканью нервной системы и главные ее свойства – возбудимость и проводимость. Нервная ткань состоит, в...