Глобальный контекст.ТипЗнч

Методы · TypeOf

Получает тип значения.

Синтаксис

ТипЗнч(<Значение>)

Примеры платформы

Если ТипЗнч(ТекОбъект) = Тип("СправочникСсылка.Номенклатура") Тогда
    ...
КонецЕсли;
Полное описание, параметры и ограничения

Глобальный контекст.ТипЗнч (Global context.TypeOf)

Глобальный контекст (Global context)

ТипЗнч (TypeOf)

Доступен, начиная с версии 8.0.

Синтаксис:
ТипЗнч(<Значение>)
Параметры:

<Значение> (обязательный)
Тип: Произвольный.
Значение, тип которого необходимо получить.
Возвращаемое значение:
Тип: Тип.

Описание:

Получает тип значения.

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Внимание: Данный метод не поддерживается при работе через COM-соединение
Пример:

Если ТипЗнч(ТекОбъект) = Тип("СправочникСсылка.Номенклатура") Тогда
...
КонецЕсли;

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Подготовить учебный активный счёт кассы, не создавая остаток

Счёт описывает место отражения учёта. Его создание в памяти не создаёт проводку, наличные деньги или строку плана счетов в базе.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Создайте НОВУЮ пустую файловую базу, корневое имя УчебныйУчет85. В рабочей БП/КА2/УТ/УНФ эти задачи не запускайте. Это технический пример API, не готовый бухгалтерский учёт.

  2. Планы видов характеристик → Добавить: УчебныеАналитики85. Тип значения только Строка 30. Элементы, дополнительные реквизиты, табличные части и предопределённые значения не создавайте.

  3. Планы счетов → Добавить: УчебныеСчета85. ДлинаКода 10, МаскаКода @@@.@@@.@@, ДлинаНаименования 100, ДлинаПорядка 20. АвтоПорядокПоКоду выключен, КонтрольУникальности включён. ВидыСубконто=УчебныеАналитики85, МаксКоличествоСубконто=2.

  4. У плана счетов не создавайте пользовательские реквизиты, табличные части, признаки учёта/субконто, предопределённые счета, формы, команды, макеты и дополнительные индексы. Модули оставьте пустыми. Историю данных и два флага обработки её версий выключите. Расширений нет.

  5. Обновите конфигурацию БД. Создайте серверный обработчик ВыполнитьПример() Экспорт в собственной обработке. Фрагмент вставляйте в тело; запускайте уроки по отдельности.

  6. Объекты создаются только в памяти: Записать/Удалить/Заблокировать не вызываются. Регистров бухгалтерии, проводок и фактических остатков в этом примере нет.

Описание = Метаданные.ПланыСчетов.Найти("УчебныеСчета85");
Если Описание = Неопределено Тогда
    ВызватьИсключение "Сначала создайте собственный план УчебныеСчета85";
КонецЕсли;
Если Описание.ДлинаКода <> 10 Или Описание.ДлинаНаименования <> 100
    Или Описание.ДлинаПорядка <> 20 Или Описание.МаскаКода <> "@@@.@@@.@@"
    Или Описание.АвтоПорядокПоКоду Или Описание.МаксКоличествоСубконто <> 2 Тогда
    ВызватьИсключение "Настройки учебного плана не соответствуют подготовке";
КонецЕсли;
Если Описание.ВидыСубконто = Неопределено Тогда
    ВызватьИсключение "Назначьте собственный план аналитик";
КонецЕсли;
Если Описание.ВидыСубконто.Имя <> "УчебныеАналитики85" Тогда
    ВызватьИсключение "Нужны только собственные учебные аналитики";
КонецЕсли;
Менеджер = ПланыСчетов.УчебныеСчета85;
Касса = Менеджер.СоздатьСчет();
Касса.Код = "50";
Касса.Наименование = "Учебная касса";
Касса.Вид = ВидСчета.Активный;
Касса.Забалансовый = Ложь;
Касса.Порядок = "50";
Касса.ДополнительныеСвойства.Вставить("МеткаЗадачи", "Только память");
Сообщить(Касса.ЭтоНовый());
Сообщить(Касса.Ссылка.Пустая());
Сообщить(Касса.Родитель.Пустая());
Сообщить(Касса.Уровень() = 0);
Сообщить(Не Касса.ПометкаУдаления);
Сообщить(Не Касса.Предопределенный);
Сообщить(Касса.ИмяПредопределенныхДанных = "");
Сообщить(Касса.ВидыСубконто.Количество() = 0);
Сообщить(Касса.ДополнительныеСвойства.МеткаЗадачи = "Только память");
Сообщить(Касса.ЭтотОбъект = Касса);
Сообщить(Касса.Модифицированность());
Сообщить(Касса.Метаданные().Имя = "УчебныеСчета85");
Сообщить(Касса.ПроверитьЗаполнение());
Сообщить("Версия незаписанного объекта: " + Касса.ВерсияДанных);
Сообщить("Тип параметров истории: " + Строка(ТипЗнч(Касса.ЗаписьИсторииДанных)));
Сообщить("Режим загрузки обмена: " + Строка(Касса.ОбменДанными.Загрузка));

Разбор по шагам

  1. СоздатьСчет возвращает объект. Заполняем Код, Наименование, вид Активный, признак баланса и собственный порядок.

  2. Ссылка пока пустая, объект новый. Отсутствие родителя означает верхний уровень 0.

  3. ВидыСубконто у объекта — строки настроек конкретного счёта; у метаданных — назначенный план видов характеристик. У нового счёта строк нет, хотя максимум равен 2.

  4. Служебная МеткаЗадачи помещена в ДополнительныеСвойства, не в пользовательский реквизит и не в базу.

  5. ПроверитьЗаполнение вызывает соответствующее событие; по подготовке модули пустые. Успех проверки не означает успешную будущую запись.

  6. ВерсияДанных, параметры истории и обмена показываются отдельно. История/обмен этим кодом не выполняются.

Как проверить результат

  1. Тринадцать логических сообщений дают Истина при исходной подготовке.

  2. После выполнения в списке УчебныеСчета85 счёт 50 не появился: объект не записывался. Никакого остатка кассы не рассчитано.

Ожидаемый результат

Подготовлено определение активного счёта в памяти, с явным разграничением счёта, субконто и проводок.

На что обратить внимание

  1. Активный и Забалансовый — разные характеристики счёта, а не сумма и валюта.

  2. Модифицированность описывает объект в памяти, не наличие изменений в сохранённых данных.

  3. Проверка заполнения не проверяет весь будущий учёт, права записи и баланс проводок.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Разделить историю данных, предопределённые счета и происхождение схемы

Чтение настроек истории и расширений не даёт журнал проводок. В собственном плане история выключена и расширений нет.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Создайте НОВУЮ пустую файловую базу, корневое имя УчебныйУчет85. В рабочей БП/КА2/УТ/УНФ эти задачи не запускайте. Это технический пример API, не готовый бухгалтерский учёт.

  2. Планы видов характеристик → Добавить: УчебныеАналитики85. Тип значения только Строка 30. Элементы, дополнительные реквизиты, табличные части и предопределённые значения не создавайте.

  3. Планы счетов → Добавить: УчебныеСчета85. ДлинаКода 10, МаскаКода @@@.@@@.@@, ДлинаНаименования 100, ДлинаПорядка 20. АвтоПорядокПоКоду выключен, КонтрольУникальности включён. ВидыСубконто=УчебныеАналитики85, МаксКоличествоСубконто=2.

  4. У плана счетов не создавайте пользовательские реквизиты, табличные части, признаки учёта/субконто, предопределённые счета, формы, команды, макеты и дополнительные индексы. Модули оставьте пустыми. Историю данных и два флага обработки её версий выключите. Расширений нет.

  5. Обновите конфигурацию БД. Создайте серверный обработчик ВыполнитьПример() Экспорт в собственной обработке. Фрагмент вставляйте в тело; запускайте уроки по отдельности.

  6. Объекты создаются только в памяти: Записать/Удалить/Заблокировать не вызываются. Регистров бухгалтерии, проводок и фактических остатков в этом примере нет.

Описание = Метаданные.ПланыСчетов.Найти("УчебныеСчета85");
Если Описание = Неопределено Тогда
    ВызватьИсключение "Сначала создайте собственный план УчебныеСчета85";
КонецЕсли;
Если Описание.ДлинаКода <> 10 Или Описание.ДлинаНаименования <> 100
    Или Описание.ДлинаПорядка <> 20 Или Описание.МаскаКода <> "@@@.@@@.@@"
    Или Описание.АвтоПорядокПоКоду Или Описание.МаксКоличествоСубконто <> 2 Тогда
    ВызватьИсключение "Настройки учебного плана не соответствуют подготовке";
КонецЕсли;
Если Описание.ВидыСубконто = Неопределено Тогда
    ВызватьИсключение "Назначьте собственный план аналитик";
КонецЕсли;
Если Описание.ВидыСубконто.Имя <> "УчебныеАналитики85" Тогда
    ВызватьИсключение "Нужны только собственные учебные аналитики";
КонецЕсли;
Менеджер = ПланыСчетов.УчебныеСчета85;
Сообщить(Не Описание.ОбновлятьИсториюДанныхСразуПослеЗаписи);
Сообщить(Не Описание.ВыполнятьОбработкуПослеЗаписиВерсииИсторииДанных);
Сообщить(Не Описание.ЕстьИзмененияРасширениямиКонфигурации());
Сообщить(Описание.РасширениеКонфигурации() = Неопределено);
Сообщить("История данных: " + Строка(Описание.ИсторияДанных));
Сообщить("Обновление предопределённых: " + Строка(Описание.ОбновлениеПредопределенныхДанных));
Сообщить("Принадлежность схемы: " + Строка(Описание.ПринадлежностьОбъекта));
Сообщить("Тип связанного идентификатора: " + Строка(ТипЗнч(Описание.ОбъектРасширяемойКонфигурации)));

Разбор по шагам

  1. Два флага обработки истории выключены вручную; код ничего не включает и не запускает обработчиков.

  2. ЕстьИзмененияРасширениямиКонфигурации и РасширениеКонфигурации относятся к схеме, не к источнику проводки.

  3. ИсторияДанных и ОбновлениеПредопределенныхДанных — разные механизмы.

  4. Принадлежность и тип связанного идентификатора выводим фактически без назначения UUID.

Как проверить результат

  1. Четыре логических проверки дают Истина.

  2. В выводе нет автора/суммы/даты проводки или изменения счёта: прикладные данные не читались.

Ожидаемый результат

Показаны три разные группы механизмов без ложного обещания бухгалтерского аудита.

На что обратить внимание

  1. Включение истории данных само по себе не создаёт бухгалтерский журнал.

  2. Расширение, добавившее объект, не является автором каждого счёта.

  3. Не запускайте обновление предопределённых данных или изменение режима ради учебного вывода.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.