Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
03 Июл 2020, 20:03
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Как определить что объект ссылочного типа  (Прочитано 2272 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 7102
  • РЕПУТАЦИЯ: 844
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
Функция, которая скажет является ли передаваемый объект метаданных ссылочным или же не ссылочным. Ссылочный это, например, справочник, документ, счет. Не ссылочный это регистр сведений, перечисление, регистр накопления.

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

Процедура НашаПроцедура(ОбъектДанных)

    Попытка
ОбъектМетаданных = ОбъектДанных.Метаданные();
    Исключение
ОбъектМетаданных = Неопределено;
    КонецПопытки;

    ИмяБазовогоТипа = "";
    ИмяОсновногоТипа = "";
    ЭтоСсылочныйТип = ЭтоОбъектСсылочногоТипа(ОбъектМетаданных,ИмяБазовогоТипа,ИмяОсновногоТипа);

КонецПроцедуры

Функция ЭтоОбъектСсылочногоТипа(ОбъектМетаданных,ИмяБазовогоТипа,ИмяОсновногоТипа) Экспорт

ИмяОбъектаМетаданных = ОбъектМетаданных.ПолноеИмя();
Позиция = СтрНайти(ИмяОбъектаМетаданных, ".");
Если Позиция > 0 Тогда
ИмяБазовогоТипа = Лев(ИмяОбъектаМетаданных, Позиция - 1);
ИмяОсновногоТипа = Сред(ИмяОбъектаМетаданных,Позиция + 1);
Возврат ИмяБазовогоТипа = "Справочник"
Или ИмяБазовогоТипа = "Документ"
Или ИмяБазовогоТипа = "БизнесПроцесс"
Или ИмяБазовогоТипа = "Задача"
Или ИмяБазовогоТипа = "ПланСчетов"
Или ИмяБазовогоТипа = "ПланОбмена"
Или ИмяБазовогоТипа = "ПланВидовХарактеристик"
Или ИмяБазовогоТипа = "ПланВидовРасчета";
Иначе
Возврат Ложь;
КонецЕсли;

КонецФункции


Теги:
 

Значение поля "Лицевой счет" содержит недопустимое значение типа лицевого счета

Автор unantedРаздел Пользователям "1С - Предприятие 8"

Ответов: 0
Просмотров: 5323
Последний ответ 24 Июл 2012, 05:02
от unanted
При старте системы выдает ошибку ВнешняяОбработка.Платформа.МодульОбъекта(111):Значение не является значением объектного типа(ТипМножественноеЧисло) конфигурация Полный учет в отделе ИТ(2017.3.1)

Автор ZSSРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 7
Просмотров: 2270
Последний ответ 20 Сен 2017, 09:10
от Геннадий ОбьГЭС
Значение не является значением объектного типа (Значение)

Автор НикитaРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 5090
Последний ответ 05 Мар 2014, 09:56
от KrivosheevEV
"Свой метод" типа Свернуть

Автор beztrudРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 7
Просмотров: 8337
Последний ответ 17 Окт 2014, 12:44
от beztrud
Очистить значение типа "Хранилище значения"

Автор ЛеонидРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 6009
Последний ответ 22 Ноя 2009, 17:45
от Никитина

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
68 Сообщений
LexaK
40 Сообщений
DmitriyF DmitriyF
29 Сообщений
alexandr_ll
14 Сообщений
PLTBWH
13 Сообщений
antoneus antoneus
10 Сообщений
DialogVM
9 Сообщений
bossko 844 bossko 844
9 Сообщений
Alexander V Alexander V
8 Сообщений
alex0402 alex0402
8 Сообщений

* Кто онлайн

  • Точка Гостей: 274
  • Точка Скрытых: 0
  • Точка Пользователей: 3
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal