Какие задачи решают метаданные «Определяемые типы» в «1С»?
Если Вы имеете хоть какое-то отношение к разработке «1С», её доработке и настройке, то эта статья будет Вам полезна. Как объект метаданных «Определяемые типы» впервые появились в платформе «1С:Предприятие» версии 8.3. Данный объект носит скорее вспомогательный, нежели функциональный характер. Какие задачи решают «Определяемые типы», и для чего они созданы?
Что такое определяемые типы?
«Определяемые типы» — это тип данных, состоящий из нескольких допустимых типов, набор которых определяет разработчик программы или её настройщик. Он может присваиваться любому реквизиту конфигурации кроме объекта «План видов характеристик». Также он не может входить в состав составного типа данных какого-либо другого реквизита.
Тип данных описывает либо часто используемую сущность, либо изменяется в ходе внедрения программы. Состав типа можно менять. Разработчик может как добавлять в него объекты, так и исключать их.
Преимущества нового объекта
В чём польза объекта «Определяемые типы? Польза в том, что разработчику в случае необходимости не нужно изменять состав типов везде. Теперь этой долгой и сложной процедуры можно избежать. Достаточно использовать определяемый тип, изменить его определение и программный код для полей одного типа, чтобы все реквизиты были изменены в автоматическом порядке. К тому же, это позволит избежать ошибок, и разработчик вряд ли забудет изменить какой-либо реквизит.
Помимо всего прочего использование объекта гарантирует, что схожим реквизитам будет задан тип данных с одинаковой точностью, длиной и составом полей.
Настроить объект не так уж сложно: нужно указать имя, синоним и набор типов объектов.
Примеры использования определяемых типов
Любой разработчик найдёт немало возможностей для применения объекта в ходе разработки новой или доработки старой конфигурации «1С». К примеру, использовать его можно следующим образом:
- как альтернативу «Планов видов характеристик»;
- присваивать один и тот же определяемый тип целому набору подписок на какое-либо событие, благодаря которому изменение их типов приведёт к автоматическому изменению источника;
- описывать реквизиты, которые ссылаются на данные, определяемые в ходе встраивания в конфигурацию отдельного фрагмента.
Если разработка программных продуктов «1С» не входит в сферу Вашей деятельности, рекомендуем по всем вопросам обращаться к профессиональным разработчикам.
Определяемые типы в 1С 8.3.
В 1С 8.3. имеется объект Определяемые типы, которые позволяет разработчику создать новый тип данных на основе имеющихся типов, как примитивных, так и более сложных типов (ссылочные, объектные и т.п.). В этой статье я расскажу, как создать определяемый тип, и в каких случаях необходимо использовать определяемый тип.
Создаем определяемый тип в 1С
Создадим определяемый тип. Для этого в конфигураторе 1С развернем ветку Общие, в этой ветке нас интересует ветка Определяемые Типы. У данной ветки нужно вызвать контекстное меню с единственной командной Добавить.
После выполнения этой команды, определяемый тип будет создан, а справа откроется палитра свойств этого типа.
В этой палитре свойств мы можем указать название нового типа и определить его тип.
Причем, если мы нажмем на кнопку «…» свойства Тип, то обнаружим, что новый определяемый тип может быть составным…
Мы научились создавать определяемый тип, теперь перейдем к случаям, когда его необходимо использовать.
Использование примитивного типа с общими квалификаторами.
Рассмотрим первую возможность применения определяемого типа. Иногда в конфигурации необходимо массово использовать примитивный тип с одинаковыми квалификаторами. Например, у нас в разных документах есть реквизит цена, который использует тип Число с длинной 10, точностью 2, и еще неотрицательный. В платформе 1С 8.3 мы можем создать определяемый тип с таким примитивным типом.
Теперь мы можем у соответствующего реквизита документа выбрать этот тип.
Замечу, что после этих действий, у реквизита объекта управляемой формы, которая является основной формой документа, будет указан новый определяемый тип.
После создания нового определяемого типа, мы можем у всех объектов, где применяется сущность цена, использовать этот определяемый тип, не заботясь о том, что мы ошибемся с определением квалификатора в каком-то случае.
Использование составного типа
Иногда возникают ситуации, когда в конфигурации необходимо использовать составной тип данных, причем одинаковый состав типов нужно применять в разных объектах метаданных. В этом случае рациональнее создать новый определяемый тип, который будет составным, и который можно применять в нужных объектах.
У этого подхода есть следующие преимущества:
- Вы уверены, что в реквизите, в котором применим составной определяемый тип, используется всегда нужный состав типов, и вы ни чего не забыли.
- При доработке конфигурации, когда вам нужно в состав типа добавить новый тип, то вам достаточно доработать определяемый тип, при этом остальные объекты дорабатывать нет необходимости. И вы будете уверены, что после доработки определяемого типа (добавления нового типа в состав), возможность использовать новый тип появится во всех реквизитах, где указан определимый тип.
Рассмотрим пример использования составного типа в определяемом типе. В моей учебной конфигурации, у документов прихода товара и расхода товара есть реквизит Склад.
В этой конфигурации, товар может поступать (и списываться) как на склад, так и в магазин . А склад и магазин это отдельные справочники.
В этом случае реквизит Склад документов необходимо сделать составным. Можно это сделать вручную для каждого реквизита документа в отдельности, а можно создать новый определяемый тип, который будет составным.
И этот тип, указать в соответствующих реквизитах документов.
После этих действий, при заполнении склада нужного документа, необходимо выбрать сначала нужный тип данных.
А потом уже выбрать нужный элемент справочника
Если же мы добавим новый справочник (например, Автобаза), и укажем его в составе нашего определяемого типа.
То нам не нужно будет изменять реквизиты объектов. Новый тип появится автоматически, и значение этого типа можно будет указать в соответствующем реквизите.
Другие статьи по теме конфигурирования:
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Как облегчить разработку в «1С:Предприятие 8.3»(бесплатная статья по Программированию в 1С)br> из цикла статей «Первые шаги в разработке на 1С»
Продолжаем знакомство с новым функционалом «1С:Предприятие», начатое в предыдущей статье цикла. Изучив материалы этой статьи, вы узнаете:
- Что такое определяемые типы и как их использовать?
- Для чего используется свойство конфигурации “Основные роли”?
- Как использовать помощник создания обработчиков клиентских событий формы?
- Как и для чего используются выгрузка конфигурации в файлы XML?
Применимость
В статье рассматривается платформа «1С:Предприятие» версии 8.3.4.437, но ее материалы могут быть полезны и для тех, кто работает на более старших релизах.
Как облегчить разработку в «1С:Предприятие 8.3»
Продолжаем рассматривать нововведения в платформе «1С:Предприятие 8», направленные на облегчение конфигурирования.
Определяемые типы
В платформу 8.3 добавлен новый объект в ветку конфигурации “Общие” – Определяемые типы.
Это специальный объект конфигурации, который предназначен для определения типа данных, который описывает часто используемую сущность или с высокой степенью вероятности может изменяться при внедрении прикладного решения.
Например, рассмотрим составной тип, в который входит ссылка на справочники “Контрагенты” и “Физические лица”.
И этот тип в некоторой разрабатываемой конфигурации часто используется, как измерение в регистре сведений, описывающем контактную информацию, как реквизит в документе “Расходный кассовый ордер” и т.п.
В процессе внедрения такой конфигурации состав такого типа может изменяться – в него могут добавляться новые объекты, а также наоборот – лишние типы могут исключаться.
Если вместо нашего нового “определяемого типа” использовать составной тип в каждом месте, где используется такая сущность, то придется везде изменять состав типов. Это долго, сложно, трудозатратно, существует возможность забыть о каком-нибудь реквизите.
Если использовать определяемый тип, то в процесс доработки прикладного решения будет нужно изменить только определение этого типа (и программный код, обрабатывающий такие поля).
Все реквизиты, для которых в качестве типа указан определяемый тип, будут изменены автоматически.
Для увеличения нажмите на изображение.
Приведем другой пример использования определяемого типа.
Для части реквизитов существует стандарт типизации внутри конфигурации. Например, количество мы определяем, как число длины 15 с точностью 3, а сумму, как число длины 15 с точностью 2.
Предположим, что предприятию потребовалось вести учет дорогостоящих товаров с высокой точностью их веса.
Соответственно, нам потребовалось увеличить точность реквизитов для учета количества до 4 знаков после запятой. Эти изменения нужно внести одновременно во все реквизиты документов, ресурсы регистров.
Это несложная задача, но весьма трудоемкая и требующая большой внимательности и усидчивости разработчика.
При создании нового определяемого типа нужно указать только его тип. Тогда при создании реквизитов документов, ресурсов регистров можно будет выбрать ссылку на созданный определяемый тип.
Такой подход позволяет гарантировать одинаковый тип данных (одинаковую длину, точность, одинаковый состав для полей составного типа и т.п.) во всех местах, где он используется.
Тогда при необходимости изменить тип данных у всех реквизитов не нужно исправлять вручную каждый реквизит отдельно, достаточно внести изменения в соответствующий определяемый тип.
Определяемый тип можно создавать составным. Однако существуют ограничения на использование этого объекта конфигурации. Так, определяемый тип не может входить в состав типа значения плана видов характеристик, а также не может входить в состав составного типа данных другого реквизита.
Отметим, что в платформе редакции 8.3.5 были увеличены возможности по использованию определяемых типов за счет расширения набора типов, которые могут входить в состав определяемого типа.
Более никаких изменений вплоть до актуальных версий платформы 8.3.10/8.3.11 в работе с определяемым типом не происходило.
Свойство конфигурации “Основные роли”
В платформе 8.2 корневой элемент конфигурации имел свойство “Основная роль”, в котором разработчик определял роль, которая будет использоваться, если в информационной базе не заведены пользователи.
В платформе 8.3 появилась возможность указывать несколько ролей, которые будут использоваться при определении прав доступа при пустом списке пользователей. Соответственно, и свойство было переименовано в “Основные роли”.
Для увеличения нажмите на изображение.
Создание обработчиков клиентских событий формы
При конфигурировании управляемого приложения разработчик должен внимательно следить за контекстом исполнения программного кода, используя соответствующие директивы препроцессора.
Поскольку на клиенте доступен ограниченный набор типов данных и методов, зачастую разработчику необходимо создать клиентскую процедуру, из которой передать управление на сервер.
В платформе 8.3 появился помощник создания обработчиков клиентских событий формы.
Для увеличения нажмите на изображение.
Теперь разработчику не требуется вручную создавать серверный метод и указывать его вызов внутри клиентской процедуры, а можно целиком сосредоточиться на реализации прикладной логики системы.
Выгрузка конфигурации в файлы
Еще одно новшество платформы 8.3 – возможность выгрузить весь состав конфигурации на диск в виде набора файлов определенной структуры.
Выгрузка конфигурации осуществляется всегда только целиком, без возможности фильтрации выгружаемых объектов.
Для выгрузки конфигурации в файлы нужно в меню выбрать пункт Конфигурация – Выгрузить конфигурацию в файлы, в открывшемся диалоге выбрать каталог, в который будут сохранены файлы.
Объекты конфигурации выгружаются в виде набора файлов формата XML. Модули и текстовые макеты сохраняются в виде файлов TXT. Картинки из конфигурации сохраняются в виде файлов изображений (BMP, PNG и т.д.). Справочная информация выгружается в файлы HTML.
Для увеличения нажмите на изображение.
Как видно, полученные файлы имеют общераспространенные универсальные форматы. Для их редактирования существует большое количество различных программных продуктов.
Также можно пользоваться сторонними системами контроля версий. Они позволяют хранить несколько версий одного и того же документа, при необходимости возвращаться к более ранним версиям, определять, кто и когда сделал то или иное изменение.
Отредактированные файлы можно загрузить обратно в конфигурацию при помощи пункта меню Конфигурация – Загрузить конфигурацию из файлов.
Работа с новым функционалом загрузки/выгрузки доступна также и при помощи параметров командной строки LoadConfigFromFiles и DumpConfigToFiles. Например, так:
“c:\Program Files (x86)\1cv8\8.3.4.437\bin\1cv8.exe” DESIGNER /F “X:\Platform8Demo” /N “Администратор” /DumpConfigToFiles “X:\1\”
Ранее, еще в платформе 8.2, существовал механизм выгрузки/загрузки файлов конфигурации, который позволял осуществлять выборочную выгрузку/загрузку некоторых свойств объектов конфигурации (модулей, макетов и справочной информации).
Было замечено, что по умолчанию из конфигуратора в платформе 8.3 исключены команды “Выгрузить файлы конфигурации” и “Загрузить файлы конфигурации”.
Однако, с помощью настройки главного меню можно отобразить эти команды в меню и пользоваться ими.
Новый механизм выгрузки конфигурации в файлы выгружает всегда данные целиком по всей конфигурации, возможность настроить объекты для выгрузки не предоставляется, обеспечивая тем самым целостность конфигурации.
Обычные формы и интерфейсы выгружаются в бинарном виде (внутреннем) и не подлежат редактированию. Конфигурация поставщика также не предназначена для редактирования.
Остальные объекты выгружаются в файлы универсальных форматов. По сути, механизм ориентирован на управляемое приложение.
Новый механизм предоставляет разработчику возможность автоматизированной обработки конфигурации, запуская конфигуратор в пакетном режиме.
Также теперь конфигурацию можно редактировать внешними программными средствами благодаря использованию, например, формата XML.
При выгрузке производится дополнительная обработка конфигурации: зависшие ссылки удаляются, неиспользуемая информация также не выгружается (например, справка для несуществующего языка).
А при загрузке конфигурации проверяется ее целостность, не допускается загружать файлы с неуникальными идентификаторами объектами метаданных, неверными именами типов данных и т.п.
Заметим, что с редакции 8.3.7 появился новый формат выгрузки, который получил название «иерархический». Старый формат стал называться «линейным». Выбор формата доступен в окне выгрузки в файлы:
Начиная с версии 8.3.11 «иерархический» формат стал единственным доступным для выбора при интерактивной выгрузке:
Если вы будете пользоваться данной функциональностью, то рекомендуем:
- во-первых, использовать «иерархический» формат выгрузки;
- во-вторых, использовать платформу не ниже версии 8.3.8+, т.к. начиная с нее существенно увеличена скорость загрузки/выгрузки в файлы XML.
В редакции 8.3.10 стала поддерживаться частичная выгрузка конфигурации в файлы XML. В результате этого стало возможным использоваться выгрузку конфигурации в XML совместно с Git.
PDF-версия статьи для участников группы ВКонтакте
Если Вы еще не вступили в группу – сделайте это сейчас и в блоке ниже (на этой странице) появятся ссылка на скачивание материалов.
Статья в PDF-формате
Вы можете скачать эту статью в формате PDF по следующей ссылке: Ссылка доступна для зарегистрированных пользователей)
Ссылка доступна для зарегистрированных пользователей)
Ссылка доступна для зарегистрированных пользователей)
Ссылка доступна для зарегистрированных пользователей)
Комментарии / обсуждение (1):
про определяемые типы понравилось) возможно когда-нибудь пригодится) спасибо за статью)
Определяемые типы в 1С 8.3
Приветствую, коллеги! В данной статье будет разобран объект, который появился в системе 1С лишь начиная с версии 8.3 – Определяемы типы. Мы рассмотрим общие понятия о данном объекте системы 1С, выясним, что он из себя представляет и как его использовать. Все сказанное будет проиллюстрировано примерами.
Итак, определяемые типы в 1С являются специальным объектом внутри конфигурации. Данный объект выполняет функцию по распознанию типа данных и типа реквизитов. В Определяемых типах описывается тип, который пользуется сущностью, а также при изменении программного решения, обычно, сам изменяется.
Вид и местонахождение объекта «Определяемые типы» в 1С смотрите на скриншоте ниже:
Рис. 1 Расположение Определяемых типов в 1С
2. Использование Определяемых типов в 1С
Рассмотрим такой составной тип данных, внутри которого содержаться ссылки на справочники «Физические лица» и «Контрагенты». А также поставим условие, что данный тип в конфигурации в разработке будет много раз использоваться в виде перемен внутри регистра со сведениями, в котором описывается информация о контактах в виде реквизита внутри документа «Расходный кассовый ордер» и другой подобной документации.
Когда наша конфигурация в разработке, составляющие в данном типе могут перемениться из-за добавления объектов, либо из-за исключения типов, по ненадобности.
Без определяемых типов в 1С для решения данной проблемы необходимо было бы воспользоваться составным типом во всех местах внутри конфигурации, где необходимо использование данной сущности. Тогда пришлось бы и менять во всех местах составы по типам. Такой метод занимает довольно много времени и является очень кропотливым и требующим большого внимания, так как можно не упомянуть какой-то реквизит.
При использовании нового объекта в платформе 1С необходимо лишь переменить само определения нужного типа внутри программного кода, который отвечает за обработку подобных полей. После этого у каждого из реквизитов, которые имеют «Определяемый тип» тип реквизита данных переменится автоматически.
Рассмотрим пример, в котором используем этот объект и определим тип реквизита.
Некоторые реквизиты имеют специальный стандарт по определению типов в самой конфигурации. Как пример, общая количественная численность определяется в виде некоторого числа, которое имеет длину 15, при этом точность составляет 3 знака, а сумма будет определяться в виде числа, которое имеет длину 15, а точность уже 2 знака.
Пусть на предприятии проводится учёт по дорогой продукции, в которой обязательно учитывать её вес, при этом важна высокая точность. Тогда понадобится сделать выше точность для всех реквизитов, которые касаются учёта – подтянуть ее 4-х знаков. Все изменения надо провести за один раз для всех возможных реквизитов, а также ресурсов в регистрах. Данная задача довольно простая, но займёт много времени и требует внимательности.
Упрощаем задачу: создаём определяемый тип, как показано на скриншоте ниже, и видим, что в типе можно указать необходимую длину и точность, что и требовалось в задаче:
Рис 2 Создание определяемого типа в 1С
После этого также необходимо указать, что объект «Определяемый тип» является количественным:
Рис. 3 Выбор типа «Количество» для Определяемого типа в 1С
Благодаря данному объекту в 1С 8.3 мы можем быть уверены, что у всех данных одинаковый тип, длина, точность и так далее для всех мест, где используются такие данные.
В итоге, при использовании объекта «Определяемый тип» гарантируется точность и скорость выполнения, при этом общая задача выполняется автоматически.
Объект «Определяемый тип» в 1С может быть даже составным, но стоит учитывать, что он не может быть в значениях плана по виду характеристик и не может находится в составе типа данных из иного реквизита.
Начиная с 5-го улучшения в 1С 8.4, объект «Определяемые типы» получил более широкий выбор типов в своём составе.