Получаем "Тип" и "Вид" значения

12.10.06

Разработка - Универсальные функции

Получаем "Тип.Вид" значения, например "Справочник.Сотрудники".
Иногда надо получить "Тип.Вид" неизвестного значения в виде "Справочник.Сотрудники" или "Документ.Реализация", но надо учитывать, что, возможно, попадётся "Строка", для которой "Вид()" неприменим.
Ставить кучу "Если ТипЗначенияСтр()=" или "Попытка" некрасиво. Поступим иначе:

спзн = СоздатьОбъект("СписокЗначений");
текЗначение = "Например это строковое значение"; //для примера стрТипВид = ЗначениеВСтроку(текЗначение);
спзн.ИзСтрокиСРазделителями(стрТипВид);
Если спзн.РазмерСписка()<=2 Тогда ТипВид = спзн.ПолучитьЗначение(1); // Число, Строка, Дата Иначе ТипВид = спзн.ПолучитьЗначение(1) + "."+спзн.ПолучитьЗначение(2);
КонецЕсли;
Сообщить(ТипВид); // получили нечто вроде "Справочник.Сотрудники" 
спзн.ПолучитьЗначение(1) - Тип
спзн.ПолучитьЗначение(2) - Вид (если есть)

См. также

Универсальные функции Программист Платформа 1С v7.7 Россия Абонемент ($m)

В библиотеку собраны различные функции по работе с документами, журналами, типами данных, строками, датой и временем, таблицами значений, Excel, файлами, XML, JSON, Http-сервисами, SMTP серверами и т.п.

1 стартмани

22.12.2023    1422    14    user706545_kseg1971    0    

5

Универсальные функции Программист Платформа 1С v7.7 Конфигурации 1cv7 Россия Бесплатно (free)

Получение реквизитов контрагентов из 1С:Контрагент для старых конфигураций под 1с 7.7.

25.04.2022    2369    zhenyat    7    

8

Универсальные функции Программист Платформа 1С v7.7 Россия Бесплатно (free)

Функция выводит таблицу значений в табличный документ. (v7.7) Особенно полезно при отладке. Не нужно вносить изменения в код, вызываем функцию как вычисляемое выражение при останове. Если таблица обрабатывается в несколько этапов, можно вывести её после каждого и визуально проследить эволюцию.

30.06.2021    5188    Zoltan_Black    11    

2

Универсальные функции Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Установка принтера по умолчанию в 1С 7.7. Обработка может быть полезна в том случае, когда нужно установить принтер по умолчанию, а доступа к рабочему столу нет (например, терминальный режим без рабочего стола или remoteApp)

1 стартмани

13.02.2019    13967    4    alsen    3    

5

Универсальные функции Программист Платформа 1С v7.7 Конфигурации 1cv7 1С:Комплексная 7.7 Абонемент ($m)

Предлагается набор функций 1с 7.7 для формирования строки json стандартными средствами.

1 стартмани

10.12.2018    10819    malovandrey    7    

19

Универсальные функции Работа с интерфейсом Программист Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

В статье дано описание создания индикатора на форме в среде разработки 1С:Предприятие 7.7 исключительно типовыми средствами.

1 стартмани

27.09.2016    18903    2    HAMMER_59    6    

2
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. wolfsoft 2421 12.10.06 17:24 Сейчас в теме
2. zalst 223 18.10.06 13:33 Сейчас в теме
3. 19.10.06 21:02 Сейчас в теме
Зачем такой огород городить?
ТипВид=ТипЗначенияСтр(текЗначение)+?(ТипЗначения(текЗначение) > 3, "."+текЗначение.Вид(), "");
4. WWWolfy 133 20.10.06 00:03 Сейчас в теме
Споткнётся на таких вещах:
текЗначение = ВидРасчета.Авторские;
текЗначение = Перечисление.ТипыЧасов;
текЗначение = глВзятьКонтекст(контекст);

Но идея тоже красивая!
5. 20.10.06 13:22 Сейчас в теме
Ну хорошо ;). Если сделать вот так
ТипВид=ТипЗначенияСтр(текЗначение)+?(ТипЗначения(текЗначение)%14 > 3, "."+текЗначение.Вид(), "");
то 1. вернет тоже, что и твой код
2.НеизвестныйОбъект против твоей пустой строки
3. ГрупповойКонтекст против твоей пустой строки
6. WWWolfy 133 20.10.06 14:43 Сейчас в теме
Отлично! Можешь написать статью, я дам ссылку отсюда.

А вообще я использовал "ЗначениеВСтроку" потому что потом, с помощью "ЗначениеВСтрокуВнутр", достаю ID объекта.
7. 20.10.06 20:54 Сейчас в теме
Лучше добавь в свою статью как вариант.
8. WWWolfy 133 23.10.06 10:45 Сейчас в теме
Так вроде уже добавлено - в обсуждении.
Илья "баткович", как вас по фамилии?
9. Diamond 1193 21.01.07 20:51 Сейчас в теме
а не проще через
Попытка
Вид=ТекЗначение.Вид()
Исключение
Сообщить("нету вида");
КонецПопытки
10. 02.05.07 13:16 Сейчас в теме
Чтобы удостовериться, что вы не робот, пожалуйста введите код защиты:
Я не робот!
Оставьте свое сообщение