Господа, знатоки БСП прошу помощи в таком вопросе. Пишу сейчас обработку для ут 10.3. Нужна четкая разбивка по организациям. В регистрах накопления, регистрах сведений. Хочется сделать разбивку универсальной. Знаю, что есть БСП функция, которая определяет наличие реквизита по имени. Но именами даже стандартная 1с пренебрегает, к примеру РегистрСведений КонтактнаяИнформация Организация находится в измерении Объект. Так что искать по имени гиблое дело. Выход - искать по типу.
Да и в некоторых Регистрах Накопления вместо Организации применяется измерение ДоговорыКонтрагентов, где в реквизитах присутствует организация.
А вот теперь собственно вопрос:
Нет ли в БСП функции, которая бы не по названию реквизита, а по типу значения определяла бы есть в метаданных реквизит с данным типом или нет. Желательно конечно, что бы возвращала в каком реквизите, но можно и истина-ложь. Не хочется изобретать велосипед, если это уже есть.
---
Тема закрыта. Нашел в БСП ИменаРеквизитовПоТипу. Вполне устраивает для выполнения моих задач.
---
Три строчки в цикле написать лень?
---
Для Непонимающих поясню. Когда обрабатывается большая база три строчки в цикле могут вылиться в несколько часов ожидания.
---
Есть сомнения и в вашем понимании:

```1c
    Функция ИменаРеквизитовПоТипу(МетаданныеОбъекта, Тип)

    ИменаРеквизитов = Новый Массив; // Массив из Строка

    Для Каждого Реквизит Из МетаданныеОбъекта.Реквизиты Цикл
    Если Реквизит.Тип.СодержитТип(Тип) Тогда
    ИменаРеквизитов.Добавить(Реквизит.Имя);
    КонецЕсли;
    КонецЦикла;

    Возврат ИменаРеквизитов;

    КонецФункции
```
---
Ой, что это? Неужто и в самом деле - "три строчки в цикле"??? )))
---
Можно и одной строчкой комп обрушить. Даже из 1С.
Но похоже Вам просто заняться нечем. И наверно пообщаться не с кем. Да и эго сверх меры.
Поставлю вас в игнор, все равно полезной информации от Вас ноль.
---
Сообщение было скрыто модератором.
---
Сообщение было скрыто модератором.
---
Сообщение было скрыто модератором.
---
Сообщение было скрыто модератором.
---
Сообщение было скрыто модератором.
---
Похоже у вас немного другая версия БСП.

```1c
    Функция ИменаРеквизитовПоТипу(Ссылка, Тип) Экспорт

    Результат = ";
    МетаданныеОбъекта = Ссылка.Метаданные();

    Для Каждого Реквизит Из МетаданныеОбъекта.Реквизиты Цикл
    Если Реквизит.Тип.СодержитТип(Тип) Тогда
    Результат = Результат + ?(ПустаяСтрока(Результат), ", ", ") + Реквизит.Имя;
    КонецЕсли;
    КонецЦикла;

    Возврат Результат;
    КонецФункции
```
---
И в чем алгоритмически разница принципиальная? Точно те же самые три строчки в цикле...
---
Это функция их БСП? Если она изменилась, то надо это предусмотреть, чтобы работало во всех версиях.
---
Да. Из ERP.
---
Ну что же поставлю проверку на тип получаемых данных. Массив или строка. Спасибо, что предупредили.
---
надо это предусмотреть, чтобы работало во всех версиях. Еще пара десяток лишних строчек, чтобы определить версию БСП, и в зависимости от этого:
а) по разному отправлять параметры в функцию БСП
б) по разному обрабатывать возвращаемый результат функции БСП

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

PS. А потом попадется конфигурация без БСП.
---
В чем то вы правы. Но так не хочется изобретать велосипед. Кроме того использование конструкции Новый Массив здорово повышает время работы (проверено замером производительности).
Чтобы к вам прислушались не надо агрессии в форуме. У вас вежливо просят помощи, а вы про лень. Да пока мы с вами тут общались, я уже написал и отладил 500 строк кода.
---
Ну а что мешает сделать свой регистр где хранить ОбъектМетаданных и его реквизиты, содержащие тип Организация, дальше функцией проверять наличие объекта в РС, функцию запихнуть в кэшируемая модуль. После обновлений перезаполнять РС.
---
что мешает сделать свой регистрМетаданные в расширениях, например.
---
Мы такой бякой не занимались )
---
Ну я же не конфигурацию пишу, а обработку. Не стоит выходить за рамки задачи.
---
а обработкуТы своей обработкой никак не сможешь запретить владельцам информационных баз устанавливать себе расширения, которые расширяют метаданные.
---
Так регистры в обработке не фиксированы, а заполняются при открытии. Неужели метаданные из расширения не подхватятся?
---
А ты проверь, да?
---
Опять Вы? Флудить не надоело?
---
Тема закрыта. Нашел в БСП ИменаРеквизитовПоТипу. Вполне устраивает для выполнения моих задач.