Как определить тип отношений в 1с
Если Вы имеете хоть какое-то отношение к разработке «1С», её доработке и настройке, то эта статья будет Вам полезна. Как объект метаданных «Определяемые типы» впервые появились в платформе «1С:Предприятие» версии 8.3. Данный объект носит скорее вспомогательный, нежели функциональный характер. Какие задачи решают «Определяемые типы», и для чего они созданы?
Что такое определяемые типы?
«Определяемые типы» - это тип данных, состоящий из нескольких допустимых типов, набор которых определяет разработчик программы или её настройщик. Он может присваиваться любому реквизиту конфигурации кроме объекта «План видов характеристик». Также он не может входить в состав составного типа данных какого-либо другого реквизита.
Тип данных описывает либо часто используемую сущность, либо изменяется в ходе внедрения программы. Состав типа можно менять. Разработчик может как добавлять в него объекты, так и исключать их.
Преимущества нового объекта
В чём польза объекта «Определяемые типы? Польза в том, что разработчику в случае необходимости не нужно изменять состав типов везде. Теперь этой долгой и сложной процедуры можно избежать. Достаточно использовать определяемый тип, изменить его определение и программный код для полей одного типа, чтобы все реквизиты были изменены в автоматическом порядке. К тому же, это позволит избежать ошибок, и разработчик вряд ли забудет изменить какой-либо реквизит.
Помимо всего прочего использование объекта гарантирует, что схожим реквизитам будет задан тип данных с одинаковой точностью, длиной и составом полей.
Настроить объект не так уж сложно: нужно указать имя, синоним и набор типов объектов.
Примеры использования определяемых типов
Любой разработчик найдёт немало возможностей для применения объекта в ходе разработки новой или доработки старой конфигурации «1С». К примеру, использовать его можно следующим образом:
- как альтернативу «Планов видов характеристик»;
- присваивать один и тот же определяемый тип целому набору подписок на какое-либо событие, благодаря которому изменение их типов приведёт к автоматическому изменению источника;
- описывать реквизиты, которые ссылаются на данные, определяемые в ходе встраивания в конфигурацию отдельного фрагмента.
Если разработка программных продуктов «1С» не входит в сферу Вашей деятельности, рекомендуем по всем вопросам обращаться к профессиональным разработчикам.
Разберем методы, при помощи которых, в 1С 8.3 можно определить тип значения переменной (или реквизита какого-нибудь объекта). Причем, эти методы могут работать со всеми типами: примитивными, объектными и коллекциями значений.
Для работы с типами, в платформе 1С имеется специальный тип, который так и называется Тип. Этот тип необходим для идентификации типов значений различных данных. Значения типа Тип возвращают только две функции Тип и ТипЗнч.
Функция ТипЗнч в 1С
Разберем функцию ТипЗнч. Эта функция принимает в качестве параметра любое значение и возвращает тип этого значения.
Рассмотрим пример: будем использовать в качестве параметра этой функции число, таблицу значений и объект какого-нибудь справочника.
Посмотрим в отладке, что вернет этот метод.
Как видите, все значения, которые вернул метод ТипЗнч имеют тип Тип. Но, сами по себе знания о том, какой тип у того или иного значения нам ни чего не дают. Разве что можно сравнить одинаковы ли типы у двух разных значений. Эти знания применимы только тогда, когда можно точно определить какого типа наше значение. Делается это при помощи функции Тип.
Функция Тип в 1С
Функция тип имеет один параметр имя получаемого типа в строковом представлении, возвращает тип Тип.
Переделаем предыдущий пример: будем получать типы значений, используя функцию Тип.
В переменных будут те же значения, что и в прошлый раз.
Чтобы быстро получить название какого-то типа, достаточно «задержаться» в написании после первой кавычки, или нажать комбинацию клавиш Ctrl+Пробел.
Появится выпадающий список всех названий типов, где набирая первые символы названия можно быстро найти нужный тип.
Обе функции Тип и ТипЗНЧ возвращают значения одного типа – Тип. Но, если в случае функции ТипЗнч мы не можем точно знать, что вернет эта функция (поскольку, иногда, возникают ситуации, когда точно не известно какого тип та или иная переменная), то при работе с функцией Тип, мы точно знаем, какое значение вернет эта функция, поскольку сами указали строковое представление типа в параметре.
Как проверить тип значения
Для того, чтобы проверить какой тип значения у той или иной переменой, достаточно использовать обе этих функции (Тип и ТипЗнч) вместе: сравнивая, что возвращает функция ТипЗнч, в параметре которой указано какое-либо значение, с функцией Тип, в параметре которой мы указали конкретный тип.
Рассмотрим пример: будем заполнять массив значениями разных типов, потом при помощи генератора случайных чисел выберем нужный элемент массива, и определим какого типа этот элемент массива. В этот массив поместим число, дату, строку и какой-нибудь список значений.
В этом коде я использовал условие, где обрабатывал сравнение значений, которые возвращают функции Тип и ТипЗнч.
Статьи о примитивных типах в 1С:
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
Очень часто возникает необходимость где-то задать перечисление типов. Например, это может быть колонка таблицы значений, в которой могут содержаться значения разных типов. Для создания списка типов используется общий объект Описание типов 1С.
Как правило, объект описание типов 1С сам по себе нигде не используется, в основном он нужен в качестве параметра разных объектов, например, таблицы значений 1С. На примере таблицы значений и покажем, как работать с описанием типов. Описание типов можно создать только для одного типа, например, для типа Число будет следующее описание типа.
А, для строки, даты и булево — следующее описание типов:
Это примитивные типы, для ссылочных типов можно создать такое же описание, указав в двойных кавычках название типа.
Чтобы получить быстро полное название нужной ссылки, можно воспользоваться контекстной подсказкой метода Тип.
После того, как мы создали описание типов, этот объект можно использовать, например, при создании таблицы значений.
Выше показано самое простое использование описания типов. Для числа, строки и даты мы можем использовать Квалификаторы. Это общие объекты – КвалификаторыЧисла, КвалификаторыСтроки, КвалификаторыДаты. Они также задаются при помощи конструктора Новый и имеют следующие синтаксисы.
Квалификатор числа 1С
Для числа будет следующий синтаксис квалификатора.
Где: ЧислоРазрядов – общее число разрядов;
ЧислоРазрядовДробнойЧасти – число разрядов после запятой;
ДопустимыйЗнак – системное перечисления (значения Любой, Неотрицательный).
Например, задать неотрицательно число с 6 разрядами и 2 дробными разрядами будет так:
Квалификатор строки 1С
Для строки будет следующий синтаксис квалификатора.
Где: ДлинаСтроки – длина задаваемой строки
ДопустимаяДлина – системное перечисление ДопустимаяДлина, которое определяет, будет строка переменная или фиксированная.
Например, задать строку длинной 10 символов фиксированной длины нужно так:
Обратите внимание, что КвалификаторСтроки задаем третьим параметром.
Квалификатор даты 1С
Для даты будет следующий синтаксис квалификатора.
Где ЧастиДаты – системное перечисление, с тремя значениями Время, Дата, ДатаВремя.
Например, задать дату, которая будет иметь формат времени нужно так:
Обратите внимание, что КвалификаторДаты задаем третьим параметром.
Общий вариант синтаксиса с использование типов выглядит так:
Массив типов в описание типов
Кроме использования одного типа в синтаксисе описания типов, можно использовать массив типов, например, сделаем колонку таблицы значений, у которая может принимать значения примитивных типов Строка, Число, Дата, Булево. Для этого нужно все типы перечислить в массиве, причём типы должны быть не в виде строк, как мы делали ранее, а в виде значений типа Тип.
Также можно «собрать» массив из ссылочных типов, например из справочников:
Описание типов на основании описания типов
Выше был рассмотрен один вариант синтаксиса описания типов, на основания какого-то типа (или перечисления типов), но также можно создать описание типа на основании другого описания типов, т.е. дополнить имеющееся описание.
Например, мы создали описание типов для чисел, строк и булево.
Теперь нам нужно новое описание типов, в котором будут такие типы как Число, Строка и Дата (тип Булево нам не нужно).
Для этого мы можем использовать следующий конструктор описания типов:
Где, в качестве первого параметра указывается описание типов, на основании которого создается это описание, а в качестве второго и третьего параметра – добавляемые и вычитаемые типы (могут быть как в виде массивов, так и в виде строк).
Давайте продолжим код выше:
В этом код в новое описание типов, мы добавили тип Дата, и вычли тип Булево.
Более подробно о работе с другими интересными объектами языка программирования в 1С читайте в моей книге «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
Определяемые типы — новый объект метаданных 1С, который появился в платформе версии 8.3. Объект имеет вспомогательный характер. Рассмотрим, что представляют собой определяемые типы и задачи, которые умеет решать данный объект.
Что такое определяемые типы
Определяемые — это новые типы данных, набор которых определяет разработчик прикладного решения. Он состоит из нескольких допустимых типов. Такой тип данных может являться типом любого реквизита конфигурации, кроме самого определяемого типа и объекта «План видов характеристики«.
Настройка
Настроек у данного объекта не так уж и много:
Т.е. помимо имени и синонима в 1С определяемые типы имеют только набор типов объектов.
Пример применения определяемых типов в 1С 8.3
Применений данному объекта можно найти великое множество.
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
- можно описать в конфигурации реквизиты, ссылающиеся на данные, которые будут определены при встраивании фрагмента в конкретную конфигурацию;
- присвоить некоторому набору подписок на событие один тип определяемых данных, при изменении набора типов для всех подписок будет меняться источник динамически;
- использовать как некую альтернативу плана видов характеристик
и многое другое.
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
Поддержите нас, расскажите друзьям!
СПРОСИТЕ в комментариях!
Добрый день. С вашими типами не могу распечатать приказ на отпуск, пишет ТИП НЕ ОПРЕДЕЛЕН, такая же проблема в банковской выписке, загружаю ее и если там есть перечисленная зарплата через карты то открыть тоже не могу пишет ТИП НЕ ОПРЕДЕЛЕН, приходится вручную заново создавать а не открывшуюся удалят. Вообще ужас. Что делать.
Я думаю, надо убиться об стену.
Бабень с бухгалтерии, все виноваты, мешают её продуктивно работать
Если бы не «бабени» ради которых собственно продукт создавался- вы бы все без работы сидели, хамство да и только. У человека проблема, которой быть не должно при нормально оттестированном ПО, ТП небось тупит,как обычно. Просто так на форум крик души никто не будет выплескивать.
А я столкнулся с проблемой конвертации данных этого типа. КД 2.0 не хочет конвертировать данный тип)) и что делать то? Использовать КД 3.0? Но вроде она не совсем подойдет.
Как в итоге их юзать? тема не раскрыта
Умеющий читать ИТС:
Определяемый тип ‑ это специальный объект конфигурации, который предназначен для упрощения и повышения удобства внедрения подсистем при разработке прикладного решения. В качестве примера можно рассмотреть универсальную подсистему, предназначенную для хранения контактной информации. В состав этой подсистемы входит регистр сведений, который хранит эту информацию. В этом регистре есть измерение, которое указывает, для какого объекта хранится контактная информация. В качестве значения измерения может выступать контрагент, собственная организация, физическое лицо и т. д. Причем тип (с именем СправочникиОрганизацийИФизическихЛиц), описывающий этот объект хранения, может встречаться не только в качестве типа измерения регистра. В процессе внедрения прикладного решения состав такого типа может изменяться ‑ в него могут добавляться новые справочники или из его состава могут исключаться «лишние» типы. Если вместо типа СправочникиОрганизацийИФизическихЛиц использовать составной тип в каждом месте, где используется такая сущность, то придется везде изменять состав типов. Это сложно и существует возможность забыть о каком-либо реквизите с нужным составным типом. Если использовать определяемый тип, то в процессе доработки прикладного решения будет необходимо изменить только состав определяемого типа (и, естественно, все фрагменты прикладного кода, где этот тип используется). Все реквизиты, для которых в качестве типа указан тип СправочникиОрганизацийИФизическихЛиц, будут изменены автоматически.
С 1 января 2019 года приказом Минфина России от 29.11.2017 № 209н определен новый порядок применения КОСГУ. В конфигурациях 1С: Бухгалтерия государственного учреждения ред. 1.0 и ред.2.0, начиная с релиза 55.7 и 60.23, соответственно, для автоматического определения подстатей КОСГУ 560, 660, 730, 830 применяется реквизит "Тип контрагента", который добавлен в справочник "Контрагенты".
После обновления на указанные выше релизы реквизит «Тип контрагента» автоматически проставляется для уже существующих элементов справочника «Контрагенты». Информацию необходимо только проверить. При вводе новых контрагентов этот реквизит нужно проставить самостоятельно.
Как определить, к какому типу относится тот или иной контрагент?
Прежде всего, для определения кода КОСГУ необходимо руководствоваться Порядком № 209н и методическими рекомендациями, доведенными письмом Минфина России от 29.06.2018 № 02-05-10/45153 .
Однако после прочтения нормативных документов часто остается много вопросов.
Поэтому давайте рассмотрим распространенные виды контрагентов, с которыми государственное учреждение взаимодействует в своей хозяйственной деятельности и определим для них реквизит "Тип контрагента".
На примере счета 302 "Расчеты по принятым обязательствам" проверим правильность указания типа контрагента.
Сформируем ОСВ по счету 302 со следующими настройками:
- группировка по субсчетам
- субконто "контрагенты", "кэк".
Проанализируем оборотно-сальдовую ведомость на соответствие КОСГУ типу контрагента.
Мы видим, что некорректно указан КОСГУ для ИП Иванова И.И. и Петрова В.В. Для них должен быть указан КОСГУ 836 и 736.
По ИП Николаев Дмитрий Петрович КОСГУ указан корректно.
Обратите внимание также на то, что для остатков на счете 302 "Расчеты по принятым обязательствам" на начало года должен быть указан КОСГУ «000».
Для исправления ошибок поменяем реквизит "Тип контрагента" в карточке контрагента и перепроведем документы по расчетам с поставщиками ИП Петрова В.В. и Иванова И.И.
Рекомендуем периодически формировать оборотно-сальдовую ведомость и проверять соответствие КОСГУ типу контрагента для того, чтобы в дальнейшем избежать ошибок при формировании бухгалтерской отчетности.
Читайте также: