gifts2017

Использование характеристик в СКД

Опубликовал Сергей Водаков (WaterSmith) в раздел Программирование - Практика программирования

В конструкторе запросов, когда он вызывается из формы настройки источника данных, для схемы компоновки данных. Есть закладка "характеристики", использование которой не вполне ясно описано в документации. В этой статье я постараюсь объяснить, как и для чего используются характеристики в СКД.

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

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

Скачать файлы

Наименование Файл Версия Размер
Статья в формате PDF 588
.zip 856,70Kb
07.02.12
588
.zip 856,70Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Сергей Рудаков (fishca) 16.09.11 15:38
Непонятные ему реквизиты конфигураток отобразит красными крестами, как недоступные:

подправь
2. Виктор (vkt) 16.09.11 15:51
Если в типовой УПП 1.3 взять, допустим, отчет Ведомость товары на складах, то обнаружим, что в нем используется СКД.
Откроем ОсновнуюСхемуКомпоновкиДанных, увидим текст запроса. В этом запросе подключаются Свойства и Характеристики объектов. Используется следующий синтаксис:
- для Категорий:
{ХАРАКТЕРИСТИКИ
ТИП(Справочник.ХарактеристикиНоменклатуры)
ВИДЫХАРАКТЕРИСТИК (ВЫБРАТЬ
КатегорииОбъектов.Ссылка,
КатегорииОбъектов.Наименование
ИЗ
Справочник.КатегорииОбъектов КАК КатегорииОбъектов
ГДЕ
КатегорииОбъектов.НазначениеКатегории = ЗНАЧЕНИЕ(ПланВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_ХарактеристикиНоменклатуры))
ПОЛЕКЛЮЧА Ссылка
ПОЛЕИМЕНИ Наименование
ЗНАЧЕНИЯХАРАКТЕРИСТИК РегистрСведений.КатегорииОбъектов
ПОЛЕОБЪЕКТА Объект
ПОЛЕВИДА Категория }

- для Свойств:
{ХАРАКТЕРИСТИКИ
ТИП(Справочник.Контрагенты)
ВИДЫХАРАКТЕРИСТИК (ВЫБРАТЬ
СвойстваОбъектов.Ссылка,
СвойстваОбъектов.Наименование,
СвойстваОбъектов.ТипЗначения
ИЗ
ПланВидовХарактеристик.СвойстваОбъектов КАК СвойстваОбъектов
ГДЕ
СвойстваОбъектов.НазначениеСвойства = ЗНАЧЕНИЕ(ПланВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Контрагенты))
ПОЛЕКЛЮЧА Ссылка
ПОЛЕИМЕНИ Наименование
ПОЛЕТИПАЗНАЧЕНИЯ ТипЗначения
ЗНАЧЕНИЯХАРАКТЕРИСТИК РегистрСведений.ЗначенияСвойствОбъектов
ПОЛЕОБЪЕКТА Объект
ПОЛЕВИДА Свойство
ПОЛЕЗНАЧЕНИЯ Значение }

Для своих разработок можно просто скопировать соответствующую часть типового запроса в свой запрос.

Nick3N; tarassov; murenysh; leshiy26; RodinMax; bol; Rustig; sound; echo77; dkprim; +10 Ответить 1
3. Александр Медведев (anig99) 17.09.11 01:08
Ещё не хватает способа, как заставить в отборе при выборе характеристики предлагать как значение, только значения этой характеристики, а не весь справочник.
bagr; natarezn; Oleg_nsk; +3 Ответить 1
4. Алексей Роза (DoctorRoza) 17.09.11 09:12
Пожалуйста! Отправьте мне на doctorroza@mail.ru копию статьи в формате .doc. Возьму себе на вооружение идею! Заранее благодарю!
5. Автоматизация Производства (dimanich70) 17.09.11 15:54
Не пойму, что мешало 1С так же подробно объяснить.
6. Дмитрий Шерстобитов (DitriX) 17.09.11 22:09
7. Дмитрий Шерстобитов (DitriX) 17.09.11 22:11
Работа с характеристиками в системе СКД рассматривается в книге: "Разработка сложных отчетов в 1С:ПРЕДПРИЯТИИ 8. Система компоновки данных". В книге также рассматриваются другие вопросы, рекомендую к прочтению.
RodinMax; natarezn; Bukaska; e.kogan; +4 Ответить
8. Gr0ck (gr0ck) 19.09.11 08:28
Да, сам как-то с этим сталкивался.
Надо будет кстати почитать книжку Хрусталевой. Есть в электронном виде, но читать неудобно.
9. Александр Иванов (dkprim) 19.09.11 16:19
весьма полезная статья. коротко и доступно - "на пальцах и картинках" :) спасибо, товариЩ :)
10. Александр Крутой (Alex@ander) 20.09.11 04:35
Даже сильно не вчитываясь всё понял, поскольку всё разобрано и оставалось только проглотить. Спасибо что потратил время и всё разжевал!
11. Руслан Климачев (krv2k) 21.09.11 12:14
(3) это вопрос или пожелание к публикации?
12. Александр Медведев (anig99) 21.09.11 12:31
(11) это пожелание к публикации. Вывод всех значений характеристик при настройке отбор - сильно бесит.
Я находил решение этой проблемы, но оно было муторное. Поэтому когда я случайно удалил обработку, то повторять это не осталось сил. Сейчас нет такой необходимости, чтобы отложить более актуальные проекты и поискать это решение снова или придумать проще.
13. Руслан Климачев (krv2k) 21.09.11 13:23
(12)
Для управляемых форм все достаточно просто. Пример для типовых:
Нужно полю Значение регистра сведений ЗначенияСвойствОбъектов добавить связь параметра выбора Отбор.Владелец с реквизитом Свойство.
Прикрепленные файлы:
beckfx; kuzyara; ValeraEm; Rustig; Поручик; e.kogan; anig99; +7 Ответить 2
14. Александр Медведев (anig99) 21.09.11 14:03
(13) спасибо. Не знал. Поэкспериментирую у себя в конфе. Но когда это появится в типовых - неизвестно. Так что вопрос остается частично открытым: как это сделать в самом отчете, не исправляя конфигурацию
15. Alexey Pak (Alexey55) 21.09.11 14:10
16. Брест Беларусь (zhleonid8) 21.09.11 14:45
17. Брест Беларусь (zhleonid8) 21.09.11 14:46
18. Яковлевич Никита (mrXoxot) 21.09.11 17:03
Автору огромная благодарность за красивое и толковое разъяснение ситуации. Совсем недавно столкнулся с характеристиками в отчете. Сделал по Хрусталевой, а вот про то как выбрать только те характеристики, которые принадлежат данному справочнику не знал. Еще раз огромная благодарность.
19. Лена Ант (lexi) 22.09.11 13:04
Автору спасибо за раъяснения.
20. Яков Коган (Yashazz) 22.09.11 22:05
Автор может дополнительно рассказать, или поделиться ссылкой, насчёт особенностей работы с характеристиками любого объекта в конфигураторе 8.2?
21. Сергей Водаков (WaterSmith) 22.09.11 22:07
(20) Yashazz, Не понял вопроса. Опишите подробно проблему с которой вы столкнулись.
22. sumixam (sumixam) 23.09.11 14:06
спасибо но вот прочитать ника не получается можно на почту выслать
23. Александр Крынецкий (echo77) 24.09.11 16:40
Да, хорошая статья. Натолкнула на мысль посмотреть как это сделано в типовых отчетах 1С

Вопрос по теме: как настроить эти характеристики так, чтобы при отборе по свойству открывался не весь справочник классификатор значений свойств, а только значения предназначенные для этого свойства? Или это не на этапе конфигурирования надо настраивать?
24. Dushka (Dushka) 27.09.11 11:00
Благодарю! Очень пригодилась статья в нашем учете с милионными характеристиками, это как нельзя кстати. Стыдно, но раньше вложенными запросами приходилось вытаскивать характеристики.
(23) тут, наверно, надо Источник значений ставить тоже запрос и делать отбор по свойству конкретному. Попробую сделать.
25. Pavel Krasnov (pawellkrv) 27.09.11 12:49
Благодарю автора! Руки не как не доходили, посмотреть какк этим пользоватся, а тут публикация и как раз только отчет начал мастерить по оборудованию :)
26. Сергей Водаков (WaterSmith) 27.09.11 15:58
(23) echo77, (24) Dushka, Источник значений, тоже запросом, в этой ситуации не поможет, потому что при выборе значения в отборе срабатывает связь по типу, и открывается соответствующая форма списка, в нашем случае "РегистрСведений.ЗначенияСвойств". А у этой формы списка нет отбора по владельцу. Решение для управляемых форм есть в (13)
27. Александр Медведев (anig99) 27.09.11 16:27
(23) (24) подтверждаю. Запросом не получается. Всё равно выводит весь список, или только какой-то фиксированный набор
28. Иван Иванович (andrys) 29.09.11 17:18
Помогло написать ряд отчетов по товарообороту. Огромное спасибо автору, за подробную обучающую статью.
29. Евгений Левченко (MYRZILKA123) 21.10.11 15:16
Спасибо больное за полезную информацию она мне сейчас очень пригодилась!
30. Алексей (artspeed) 02.11.11 17:47
Хорошая статья. Прочитал и кое что уяснил для себя. Благодарю
31. Михаил (malutin) 03.11.11 07:34
Давно уже хотел разобраться как пользоваться этой вкладкой, автору благодарность за простое и подробное разъяснение!
32. Андрей (andru_dv) 03.11.11 15:07
Спасибо за разъяснение этой вкладки.
Обязательно попробую на практике её работоспособность.
Однозначно плюс.
33. Иван (Sairys) 16.11.11 13:25
Да вроде бы на диске ИТС всё достаточно подробно описано касаемо характеристик в СКД. Но всё равно автору большое спасибо за труд.
34. Мастер Йода (master_yoda) 13.12.11 15:49
Сделал по аналогии только для 8.1 Управление производственным предприятием, редакция 1.2 (1.2.26.1) Открыл настройку в режиме предприятия и не увидел доступных полей......может что то не учел (((
35. Сергей Водаков (WaterSmith) 14.12.11 10:50
(34) master_yoda, Может быть и не учел. К сожалению, помочь вам пока ничем не могу, - слишком мало информации по вашей проблеме.
36. Alex Stasyuk (GreenFox) 27.12.11 14:47
DitriX пишет:

Работа с характеристиками в системе СКД рассматривается в книге: " Разработка сложных отчетов в 1С:ПРЕДПРИЯТИИ 8. Система компоновки данных ". В книге также рассматриваются другие вопросы, рекомендую к прочтению.


Надо прочитать, а то по компоновке у меня вообще знания скудные
37. Игорь Фелькер (Brawler) 12.01.12 13:22
Все бы хорошо, но и в этой публикации не раскрыта тема как использовать запросы для особо "хороших" случаев.
К примеру есть задача в "ОСВ по счету" для работников организации (фиг с ними физики, примерно хоть, ясное дело что один физик может быть принят как несколько сотрудников) показать в каком подразделении работает на текущий момент (не плохо бы и на конец указанного периода).
Задача есть, а как решить ее пока не знаю.
38. Илья Кравченко (hohmankia) 16.01.12 12:02
Спасибо большое, все коротко и очень ясно ))
39. Владимир Водин (BalVlad) 25.01.12 09:22
Спасибо за статью, очень нужная. +
40. Мастер Йода (master_yoda) 25.01.12 10:03
А вообще статья нужная, однозначно плюс
41. Алексей (Leksus) 25.01.12 13:52
Получилось ли у кого-нибудь использовать характеристики во временных таблицах запроса - источника данных СКД?
У меня не работает почему-то :(
42. Сергей Водаков (WaterSmith) 25.01.12 14:29
(37) Brawler, Кхм, а какое это имеет отношение к характеристикам?
43. Игорь Фелькер (Brawler) 25.01.12 14:56
(42) WaterSmith, так вот именно через характеристики в СКД это бы хорошо добавилось, но напрочь отсутствуют примеры как туда можно прилепить любые данные не завязанные на ПланахВидахХарактеристиках. Ведь есть же возможность подставлять свои мини запросы, но описание того, что они получают на входе и должны выдать на выходе я не нашел. Для работника как раз неплохо бы увидеть и другого рода данные, которые находятся не в дополнительных свойствах элементов справочника физлиц.

Если это невозможно так и скажите, тогда вопрос отпадет сам собой, так как выйдет, что механизм характеристик в СКД придумывался под придумку хранить для объектов некие дополнительные сведения, но не в самом объекте, а как-то опосредованно, при помощи планов видов характеристик. Механизм жестко узконаправленный выходит.

Жду ваши варианты.
44. Сергей Водаков (WaterSmith) 26.01.12 00:43
(43) Brawler, Что то я не пойму, зачем вы пытаетесь свалить все в одну кучу? Да, механизм характеристик в СКД работает с объектами "Планы видов характеристик", именно поэтому он так называется.
А какие нибудь другие данные нужно извлекать при помощи вложенных запросов, дополнительных источников данных, временных таблиц, соединений таблиц, вычисляемых выражений. Целый легион инструментов, а вы почему-то хотите все сделать характеристиками.

P.S. Возможно я вас неправильно понял.
45. Илья (i132) 07.02.12 14:43
(43) пример доп.информации из других источников можно посмотреть в типовой бухгалтерии: отчет УниверсальныйОтчетПоМетаданным.макеты.ОписаниеХарактеристик
46. Александр Топольский (AlexanderKai) 07.02.12 16:25
Не знал даже как к ним подобраться-то, к характеристикам. Теперь имею более-менее представление. Хотя, чувствую, придется еще разбираться, чтобы полностью вникнуть. Автору спасибо!
47. Владимир Чаклин (vec435) 08.02.12 09:30
краткие пояснения порой лучше целой книги
48. Алексей Матросов (alexism) 08.02.12 17:15
Спасибо за полезную обработку. Думаю, что пригодится в повседневной работе.
49. Сергей Водаков (WaterSmith) 09.02.12 06:38
(48) alexism, За какую обработку, любезнейший? При том, что вас даже в списке скачавших нет! Даю подсказку: это статья.
А вы, любезный набиваете стартмани, и думаете, что все вокруг дураки, и ничего не видят.
50. Алексей Вакуленко (aleksey_vk) 18.02.12 12:17
Хорошая статья. Можно было бы добавить про использование "Дополнительных характеристик объекта метаданных" как универсальный способ добавления характеристик ко всем отчетам на СКД. Только вот с категориями эти дополнительные характеристики не работают (либо я что-то не понимаю).
51. Сергей Водаков (WaterSmith) 22.02.12 16:58
(50) aleksey_vk, За наводку на "Дополнительные характеристики объекта метаданных" - огромное спасибо. Как то прошла мимо меня информация, теперь буду в курсе.
А насчет работы с категориями, пощупаю, когда разберусь обязательно напишу новую статью.
52. nataon (nataon) 24.02.12 16:45
спасибо, хорошая статья
53. sat.m.n@mail.ru Сукачов (bolush) 12.03.12 14:58
54. Роман Узьмов (RomanUzmov) 29.03.12 22:12
Статья хорошая - сжато и понятно всё описано. Автору (+)! Вопрос, может не в тему... есть у кого опыт работы с большим количеством характеристик (порядка 2-3 млн. шт)? Насколько это быстро и надёжно всё работает? Поделитесь...
55. Леончия (kapafla) 24.05.12 15:28
Товарищи, вопрос: у меня справочник ТМЦ, в нем есть реквизит Харктеристика ТМЦ - с табличной частью - Доп.реквизиты - где один из реквизитов таб.части - это ПВХ. Как мне правильно в конфигурации сделать, чтоб когда пользователь изменяет настройки СКД - чтоб в реквизите Хартектистика ТМЦ - можно было бы увидеть -те характеристики -которые пользователь создал в системе?
56. 1 (gradus) 08.07.12 18:09
Спасибо за инфу.
Возникла задача использовать значение доп.характеристики для вычисления других значений. Такое вообще возможно?
Поясню на примере.
У договора добавим доп. реквизит "Сумма договора" - тип "Число"
При выводе отчета, например посчитать итог по сумме или вывести другое поле, "долг по договору", где будут анализироваться данные регистра бухгалтерии по оплате и сравниваться с "Суммой договора".
57. Сергей Водаков (WaterSmith) 09.07.12 12:19
(56) gradus, Думаю возможно, можно использовать пользовательские выражения. Не забудьте про NULL - не у всех договоров (в вашем примере) может быть заполнено это свойство. В это случае функция ВЫБОР выручит вас.
58. Михаил С. (Milanick) 09.07.12 23:02
Пытаюсь прикрутить в запрос такую вещь (взято из отчета "ведомость товаров..."

ВЫБРАТЬ
СвойстваОбъектов.Ссылка,
СвойстваОбъектов.Наименование,
СвойстваОбъектов.ТипЗначения
ИЗ
ПланВидовХарактеристик.СвойстваОбъектов КАК СвойстваОбъектов
ГДЕ
СвойстваОбъектов.НазначениеСвойства = ЗНАЧЕНИЕ(ПланВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Подразделения)

Выдает ошибку

куда капнуть?

Автору респект...
Прикрепленные файлы:
59. Сергей Водаков (WaterSmith) 10.07.12 17:05
(58) Milanick, Наверное дело в том, что надо писать
ЗНАЧЕНИЕ(ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Подразделения) 


"ПланЫ", а не "План".
60. Kani Mago (Kaniman) 10.07.12 18:56
(59) WaterSmith, хотел бы ознакомится со статьей, но недостаточно пока sm, скиньте, пожалуйста на kaniman @yandex.ru
61. Сергей Водаков (WaterSmith) 11.07.12 18:21
(60) Kaniman, Вчера перевел вам 1 см. Не пойму, почему вы так и не скачали статью?
62. Kani Mago (Kaniman) 11.07.12 21:16
(61) WaterSmith, огромное спасибо! вчера не заметил:) уже скачал.
63. Светлана Юсубуллина (Swetlana) 17.11.12 00:58
Может кто подскажет. УТ10.3.1.17

Сделала так же как в (2) но свойства у Номенклатуры выводит пустые хотя РС ЗначенияСвойствОбъектов заполнен. В чем может быть дело?

{ХАРАКТЕРИСТИКИ
ТИП(Справочник.Номенклатура)
ВИДЫХАРАКТЕРИСТИК (ВЫБРАТЬ
СвойстваОбъектов.Ссылка,
СвойстваОбъектов.ТипЗначения,
СвойстваОбъектов.Наименование
ИЗ
ПланВидовХарактеристик.СвойстваОбъектов КАК СвойстваОбъектов
ГДЕ
СвойстваОбъектов.НазначениеСвойства = ЗНАЧЕНИЕ(ПланВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_ХарактеристикиНоменклатуры))
ПОЛЕКЛЮЧА Ссылка
ПОЛЕИМЕНИ Наименование
ПОЛЕТИПАЗНАЧЕНИЯ ТипЗначения
ЗНАЧЕНИЯХАРАКТЕРИСТИК РегистрСведений.ЗначенияСвойствОбъектов
ПОЛЕОБЪЕКТА Объект
ПОЛЕВИДА Свойство
ПОЛЕЗНАЧЕНИЯ Значение }
64. isn Игнатьев (isn) 10.01.13 10:35
Здравствуйте! Подскажите пожалуйста, зашел в тупик. Задача отбор документов по дополнительному реквизиту по условию: незаполненные значения и значение равное чему либо. Дополнительный реквизит имеет тип "число". Сформировал такой запрос

ВЫБРАТЬ
РеализацияТоваровУслуг.Дата КАК Дата,
РеализацияТоваровУслуг.Ссылка КАК Документ,
РеализацияТоваровУслуг.Контрагент КАК Контрагент,
РеализацияТоваровУслуг.СуммаДокумента
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
РеализацияТоваровУслуг.Проведен = ИСТИНА
И РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания

УПОРЯДОЧИТЬ ПО
Дата
{ХАРАКТЕРИСТИКИ
ТИП(Документ.РеализацияТоваровУслуг)
ВИДЫХАРАКТЕРИСТИК (ВЫБРАТЬ
СвойстваОбъектов.Ссылка,
СвойстваОбъектов.Наименование,
СвойстваОбъектов.ТипЗначения
ИЗ
ПланВидовХарактеристик.СвойстваОбъектов КАК СвойстваОбъектов
ГДЕ
СвойстваОбъектов.ПометкаУдаления = ЛОЖЬ)
ПОЛЕКЛЮЧА Ссылка
ПОЛЕИМЕНИ Наименование
ПОЛЕТИПАЗНАЧЕНИЯ ТипЗначения
ЗНАЧЕНИЯХАРАКТЕРИСТИК (ВЫБРАТЬ
ЗначенияСвойствОбъектов.Объект,
ЗначенияСвойствОбъектов.Свойство,
ВЫРАЗИТЬ(ВЫБОР
КОГДА ЕСТЬNULL(ЗначенияСвойствОбъектов.Значение, 0) = 0
ТОГДА 0
ИНАЧЕ ЕСТЬNULL(ЗначенияСвойствОбъектов.Значение, 0)
КОНЕЦ КАК ЧИСЛО(5, 0)) КАК Значение
ИЗ
РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов)
ПОЛЕОБЪЕКТА Объект
ПОЛЕВИДА Свойство
ПОЛЕЗНАЧЕНИЯ Значение }

В СКД по такому запросу получаю без отбора ВСЕ значения дополнительного реквизита Заполненные и Незаполненные. При наложении отбора могу получить или только незаполненные или только заполненные значения. Наложить совместный отбор не могу. Помогите пожалуйста с запросом.
Вопрос частично снимается. в СКД в отборе указал Группу отбора "группу ИЛИ".
65. Сергей Водаков (WaterSmith) 13.01.13 23:08
Наложить совместный отбор не могу.

А почему не можете? Не знаете как?
В отбор добавьте "Группу ИЛИ", а уже в ней оба условия, на пустое значение и на нужное вам.

P.S. Не заметил сразу, что вы уже сами разобрались.

Вообще в СКД подход к запросу должен быть таким, чтобы в него входил максимум возможных данных, а все отборы и прочие ограничения делать уже в настройках схемы СКД. Такой подход позволяет получить максимально гибкую схему, решающую максимум задач.
u_n_k_n_o_w_n; +1 Ответить
66. Klavdiya (kvp) 10.12.13 13:12
Спасибо за статью. Оказалась очень полезной и очень вовремя.
67. Ольга Усынина (willson) 13.12.13 17:46
Спасибо! Скачала, изучила, применила в отчете, плюсанула Вам. Вы сэкономили кучу моего времени!
68. Олег (olbu) 28.05.14 10:55
я долго в настройках СКД в конфигураторе искал свойства... пока не нагуглил, что свойства мона увидеть тока в режиме "Предприятия"...
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа