Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

БСП. Функция "СвойстваОбъекта" из подсистемы "Свойства".

БСП. Функция "СвойстваОбъекта" из подсистемы "Свойства".
Я
   Lama12
 
13.07.18 - 15:49
Вот тут описан один из элементов интерфейса подсистемы "Свойства" - https://its.1c.ru/db/bsp246doc#content:1635:hdoc
Не могу понять какой смысл от этой функции если она возвращает не все дополнительные реквизиты и свойства?
Объясню на примере.
ERP.
У справочника "Номенклатура" добавлен дополнительный реквизит "Реквизит 1". Имеется Вид номенклатуры "Первый вид". К номенклатуре с видом номенклатуры "Первый вид" добавлен дополнительный реквизит "Реквизит 2".

Почему указанная выше функция возвращает массив только со значением "Реквизит 1"?  Интересует не программная реализация, код посмотреть можно, а именно логика. Может я не понимаю какой-то сакральный смысл данной функции? И в документации к БСП написано что она возвращает все дополнительные реквизиты и свойства, и в комментарии в коде тоже самое написано.
Может "Реквизит 2" это не дополнительный реквизит справочника "Номенклатура"? Тогда дополнительным реквизитом чего он является? Или это так криво функция реализована (под себя переделать не сложно)?
 
 
   YaFedor
 
1 - 13.07.18 - 15:59
А что в ЕРП можно добавлять реквизит условно? Я писал самописку на БСП так я эту возможность допиливал самостоятельно
   Lama12
 
2 - 13.07.18 - 16:00
(1) Да. К некоторым видам объектов.
   Вафель
 
3 - 13.07.18 - 16:09
(0) вроде только установленные получает
   Вафель
 
4 - 13.07.18 - 16:10
    ТекстЗапросаДопРеквизиты =
        "ВЫБРАТЬ [РАЗРЕШЕННЫЕ]
        |    ТаблицаСвойств.Свойство КАК Свойство,
        |    ТаблицаСвойств.Значение КАК Значение,
        |    ТаблицаСвойств.ТекстоваяСтрока,
        |    ТаблицаСвойств.Ссылка КАК ВладелецСвойств
        |ИЗ
        |    [ИмяОбъектаСоСвойствами].ДополнительныеРеквизиты КАК ТаблицаСвойств
        |        ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
        |        ПО ДополнительныеРеквизитыИСведения.Ссылка = ТаблицаСвойств.Свойство
        |ГДЕ
        |    ТаблицаСвойств.Ссылка В (&ОбъектыСоСвойствами)
        |    И (ДополнительныеРеквизитыИСведения.Ссылка В (&Свойства)
        |        ИЛИ ДополнительныеРеквизитыИСведения.Имя В (&Свойства))";

   Lama12
 
5 - 13.07.18 - 16:15
(4) Но про эту особенность "только установленные" в документации не сказано. Т.е. когда передаешь в качестве параметра пустую ссылку на объект нужного типа, то результат как в (0). Конечно если все реквизиты будут заполнены у объекта и он будет в базе, то все будет нормально.
Я рассчитывал на эту функцию, передавая в нее пустую ссылку нужного типа, а как до отладки дошло стало печально.

Видимо придется свое наваять.
   Вафель
 
6 - 13.07.18 - 16:20
есть же функия
СвойстваОбъекта
   Вафель
 
7 - 13.07.18 - 16:21
в ней как раз и можно получить список доступных свойств
   Вафель
 
8 - 13.07.18 - 16:21
хот это она и есть
   Вафель
 
9 - 13.07.18 - 16:22
Но туда не пустую ссылку нужно передавать, а владельца свойств
   Lama12
 
10 - 13.07.18 - 16:22
(7) Неее она возвращает то что в базе по объекту. Т.е. код из (4) как раз из нее выдернут.
 
 Рекламное место пустует
   Вафель
 
11 - 13.07.18 - 16:23
(10) нет не из нее
   Lama12
 
12 - 13.07.18 - 16:23
(9) Вот именно. А мне нужно все доступные свойства типа объекта. Ладно. Сделаю себе свою функцию :-) Вроде не сложно.
   Вафель
 
13 - 13.07.18 - 16:23
то было из ЗначенияСвойств
   Вафель
 
14 - 13.07.18 - 16:23
(12) Предлагаю все-таки разобраться что такое владелецц свойств
   Lama12
 
15 - 13.07.18 - 16:25
(14) Похоже в этом и логика. Как бы у каждого элемента справочника свой набор. Спасибо за наводку. Как-то сразу в голове такая схема не складывалась.

Список тем форума
Рекламное место пустует  Рекламное место пустует
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Э. Йодан
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует