что такое определяемые типы в 1с
Определяемые типы в 1С 8.3
Определяемые типы — новый объект метаданных 1С, который появился в платформе версии 8.3. Объект имеет вспомогательный характер. Рассмотрим, что представляют собой определяемые типы и задачи, которые умеет решать данный объект.
Что такое определяемые типы
Определяемые — это новые типы данных, набор которых определяет разработчик прикладного решения. Он состоит из нескольких допустимых типов. Такой тип данных может являться типом любого реквизита конфигурации, кроме самого определяемого типа и объекта «План видов характеристики«.
Настройка
Настроек у данного объекта не так уж и много:
Т.е. помимо имени и синонима в 1С определяемые типы имеют только набор типов объектов.
Пример применения определяемых типов в 1С 8.3
Применений данному объекта можно найти великое множество.
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
Какие задачи решают метаданные «Определяемые типы» в «1С»?
Если Вы имеете хоть какое-то отношение к разработке «1С», её доработке и настройке, то эта статья будет Вам полезна. Как объект метаданных «Определяемые типы» впервые появились в платформе «1С:Предприятие» версии 8.3. Данный объект носит скорее вспомогательный, нежели функциональный характер. Какие задачи решают «Определяемые типы», и для чего они созданы?
Что такое определяемые типы?
Тип данных описывает либо часто используемую сущность, либо изменяется в ходе внедрения программы. Состав типа можно менять. Разработчик может как добавлять в него объекты, так и исключать их.
Преимущества нового объекта
В чём польза объекта «Определяемые типы? Польза в том, что разработчику в случае необходимости не нужно изменять состав типов везде. Теперь этой долгой и сложной процедуры можно избежать. Достаточно использовать определяемый тип, изменить его определение и программный код для полей одного типа, чтобы все реквизиты были изменены в автоматическом порядке. К тому же, это позволит избежать ошибок, и разработчик вряд ли забудет изменить какой-либо реквизит.
Помимо всего прочего использование объекта гарантирует, что схожим реквизитам будет задан тип данных с одинаковой точностью, длиной и составом полей.
Настроить объект не так уж сложно: нужно указать имя, синоним и набор типов объектов.
Примеры использования определяемых типов
Любой разработчик найдёт немало возможностей для применения объекта в ходе разработки новой или доработки старой конфигурации «1С». К примеру, использовать его можно следующим образом:
Если разработка программных продуктов «1С» не входит в сферу Вашей деятельности, рекомендуем по всем вопросам обращаться к профессиональным разработчикам.
Использование определяемых типов
Область применения: управляемое приложение, обычное приложение.
1. Определяемые типы предназначены для определения типов данных, которые описывают часто используемые сущности или с высокой степенью вероятности могут изменяться при внедрении прикладного решения. Они позволяют многократно использовать описываемый тип или набор типов без уточнения состава в различных местах конфигурации (в реквизитах, свойствах объектах, форм и т.п.).
2. Определяемые типы рекомендуется использовать в следующих случаях:
2.1. Для определения простого типа и его квалификаторов, имеющего прикладной смысл, который используется в различных реквизитах, ресурсах, реквизитах форм, макетах и т.д. в рамках какой-либо подсистемы или во всем прикладном решении. Это гарантирует одинаковую длину, точность данных во всех местах использования, упрощает доработку в случае изменения требований.
Например:
2.2. Для определения составного типа, который массово используется в объектах какой-либо подсистемы или во всем прикладном решении. Определяемый тип гарантирует одинаковый состав (тип) данных во всех местах использования, а также упрощает доработку и внедрение подсистем в прикладные конфигурации.
3. Некорректно использовать определяемые типы для задания «синонима» существующему типу, «подмены» сущностей, для локального (не массового) использования в рамках одной подсистемы (конфигурации) без необходимости внедрения в другие конфигурации, только из соображений легкости доработки. Как правило, это говорит об ошибке проектирования или о методологически неверном выборе исходного имени типа.
Определяемые типы в 1С 8.3
Работа с определяемыми типами
Определяемый тип предназначен для упрощения процедуры изменения типа данных у каких-либо свойств, например у реквизитов объекта. Например, в конфигурации есть десять документов с реквизитом Ответственный. Тип данного реквизита — СправочникСсылка.Пользователи. Допустим, в конфигурацию добавили новый справочник ВнешниеПользователи. Теперь нужно сделать тип реквизита Ответственный составным, включив в него новый справочник. Для этого придется менять тип у каждого из десяти документов. А таких документов может быть не десять, а сто. Для упрощения этой процедуры можно использовать определяемый тип.
При создании определяемого типа нужно указать его имя и тип. Можно указать составной тип данных:
Для выбора доступно множество различных типов, в том числе примитивные типы, ссылки, объекты, менеджеры, системные перечисления, некоторые универсальные коллекции и т.п.
Теперь данный определяемый тип можно указывать как тип для реквизитов объектов:
Если в дальнейшем нужно будет изменить тип реквизита Ответственный, то достаточно будет добавить новый тип в состав определяемого типа. Тип реквизитов, где был выбран определяемый тип будет изменен автоматически.
Также через определяемый тип можно определять квалификаторы примитивных типов. Например, создать определяемый тип Артикул типа строка и указать для него длину 30.
Если в качестве типа для реквизитов выбирать данный определяемый тип, то гарантируется, что длина везде будет 30 символов.
У определяемого типа есть некоторые ограничения:
Определяемый тип программно
Чтобы программно указать тип свойства как определяемый тип можно просто создать Описание типов и перечислить все те типы, которые указаны для определяемого типа. Но можно получить готовое описание типов через метаданные:
Уроки программистов 1С. Примитивный тип данных Неопределено и Тип
На прошлых занятиях мы изучили примитивные типы данных Число, Строка, Дата и Булево, ознакомьтесь с этими материалами, прежде чем приступить к изучению этого.
Неопределено – значение данного типа применяются, когда необходимо использовать значение, не принадлежащее ни к одному конкретному типу. Означает, что у объявленной переменной может быть любой тип, но пока тип не определен.
Тип – представляет собой объект для управления допустимыми типами значений данных.
Присвоение значения объекту «Тип данных» посредством чтения реквизита
Для того, чтобы понять этот тип данных, создадим обработку, которая позволит менять значение некоторой переменной. Мы создадим переменную А, которая может принимать следующие значения:
Для демонстрации принципов работы с этим типом данных создадим новую форму обработки.
Сразу добавим в нее следующие реквизиты:
Затем поместим реквизиты на созданную конструктором форму.
Создадим процедуру-обработчик события при изменении значения реквизита НашаПеременная. Цель обработчика – определять тип данных реквизита, для этого используется функция ТипЗначения или ТипЗнч
На первом этапе объявим переменную А и создадим предопределенную процедуру-обработчик ПриОткрытии. Обработчик будет подтягивать в поле Комментарий примитивный тип данных реквизита НашаПеременная.
Обратите внимание, что программа не выполнит процедуру-обработчик, если мы не привяжем его к событию. В данном случае мы вызвали выполнение процедуры ТипЗначения (А), объявив ее в другой процедуре.
Теперь при открытии формы обработки можно увидеть, что созданная переменная А имеет тип Неопределено.
На втором этапе дополним код предопределенным обработчиком ПриИзменении для реквизита НашаПеременная. Задача обработчика – обновлять реквизит Комментарий каждый раз при изменении реквизита НашаПеременная.
В результате мы создали обработку, которая задает переменную А через взаимодействие с реквизитом НашаПеременная. Также мы создали процедуру ТипЗначения (А), которая выводит Тип выбранного значения примитивных данных в реквизите Комментарий.
Однако, такой способ управления переменной нельзя назвать практичным – необходимо создавать реквизит, цель которого не хранить и записывать данные, а быть переключателем типа данных.
Полный курс программиста 1С – с нуля до разработчика, способного решать практические учетные задачи в любой области.
Присвоение значения объекту «Тип данных» посредством команды
Далее мы рассмотрим более лаконичный механизм, который позволит присвоить переменной А необходимое значение при помощи соответствующих команд.
Так, чтобы присвоить переменной А тип Строка, создадим команду ТипСтрока и выведем ее на форму.
Теперь создадим процедуру-обработчик команды, которая назначит переменной А новое значение.
Для присвоения нового значения используется процедура ОписаниеТипов. При этом помимо непосредственно значения переменной А, обработчик выведет использованный код в строку Комментарий.
Для заполнения реквизита формы ПрисвоенныйТип создадим процедуру заполнения этого реквизита полученным значением.
После выполнения команды получаем результат:
Теперь создадим на управляемой форме аналогичные команды и процедуры-обработчики для присвоения переменной переменной А примитивных типов:
Вы можете попробовать сделать это самостоятельно.
Теперь при выполнении каждой команды реквизит формы ПрисвоенныйТип будет показывать какой тип данных присвоен переменной А, а реквизит Комментарий покажет строку программного кода, которая присваивает переменной А нужный тип примитивных данных.
Освойте навыки разработчика 1С на очных специализированных курсах от крупнейшей компании-франчайзи 1С.