1с предприятии определить свой тип данный

Как проверить тип значения документа, справочника?

Во-первых, во встроенном языке 1С:Предприятия 8 для работы с одним прикладным объектом реализовано несколько типов. Например, задачи, которые в 1С:Предприятии 7.7 решал тип «Документ» решаются теперь несколькими типами. Они разделены по своему назначению. Тип «ДокументСсылка» используется для хранения ссылок на объект базы данных в реквизитах других объектов. Тип «ДокументОбъект» используется для записи и удаления отдельных документов. Тип «ДокументВыборка» используется для перебора документов, хранящихся в базе данных. Существуют и другие типы данных, предназначенные для работы с документом. При написании модулей используются те типы, которые необходимы для решения конкретных задач.

Во-вторых, в 1С:Предприятии 8 нет двух понятий — «Тип» и «Вид». Для каждого объекта метаданных имеется свой набор типов используемых во встроенном языке для работы с описываемым им прикладным объектом. То есть при использовании конфигурации не будет существовать такого типа как «ДокументСсылка», а будут существовать конкретные типы, например, «ДокументСсылка.Счет», «ДокументОбъект.Счет», «ДокументСсылка.Накладная», и т.д.

Кроме того, в 1С:Предприятии 8 для манипулирования типами используются не их строковые наименования, а специальный тип «Тип». Значение типа Тип может быть получено функцией Тип(), получающей в качестве параметра имя типа.

Чтобы проверить тип значения переменной нужно определить ее тип функцией ТипЗнч() и использовать функцию Тип() для получения типа по имени.

Если ТипЗнч(Основание) = Тип(«ДокументСсылка.ПриходнаяНакладная») Тогда

Источник

Программирование в 1С для всех

В 1С 8.3. имеется объект Определяемые типы, которые позволяет разработчику создать новый тип данных на основе имеющихся типов, как примитивных, так и более сложных типов (ссылочные, объектные и т.п.). В этой статье я расскажу, как создать определяемый тип, и в каких случаях необходимо использовать определяемый тип.

Создаем определяемый тип в 1С

Создадим определяемый тип. Для этого в конфигураторе 1С развернем ветку Общие, в этой ветке нас интересует ветка Определяемые Типы. У данной ветки нужно вызвать контекстное меню с единственной командной Добавить.

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

В этой палитре свойств мы можем указать название нового типа и определить его тип.

Причем, если мы нажмем на кнопку «…» свойства Тип, то обнаружим, что новый определяемый тип может быть составным…

Мы научились создавать определяемый тип, теперь перейдем к случаям, когда его необходимо использовать.

Использование примитивного типа с общими квалификаторами.

Рассмотрим первую возможность применения определяемого типа. Иногда в конфигурации необходимо массово использовать примитивный тип с одинаковыми квалификаторами. Например, у нас в разных документах есть реквизит цена, который использует тип Число с длинной 10, точностью 2, и еще неотрицательный. В платформе 1С 8.3 мы можем создать определяемый тип с таким примитивным типом.

Теперь мы можем у соответствующего реквизита документа выбрать этот тип.

Замечу, что после этих действий, у реквизита объекта управляемой формы, которая является основной формой документа, будет указан новый определяемый тип.

После создания нового определяемого типа, мы можем у всех объектов, где применяется сущность цена, использовать этот определяемый тип, не заботясь о том, что мы ошибемся с определением квалификатора в каком-то случае.

Читайте также:  Идея для бизнеса пункт выдачи

Использование составного типа

Иногда возникают ситуации, когда в конфигурации необходимо использовать составной тип данных, причем одинаковый состав типов нужно применять в разных объектах метаданных. В этом случае рациональнее создать новый определяемый тип, который будет составным, и который можно применять в нужных объектах.

У этого подхода есть следующие преимущества:

  1. Вы уверены, что в реквизите, в котором применим составной определяемый тип, используется всегда нужный состав типов, и вы ни чего не забыли.
  2. При доработке конфигурации, когда вам нужно в состав типа добавить новый тип, то вам достаточно доработать определяемый тип, при этом остальные объекты дорабатывать нет необходимости. И вы будете уверены, что после доработки определяемого типа (добавления нового типа в состав), возможность использовать новый тип появится во всех реквизитах, где указан определимый тип.

Рассмотрим пример использования составного типа в определяемом типе. В моей учебной конфигурации, у документов прихода товара и расхода товара есть реквизит Склад.

В этой конфигурации, товар может поступать (и списываться) как на склад, так и в магазин . А склад и магазин это отдельные справочники.

В этом случае реквизит Склад документов необходимо сделать составным. Можно это сделать вручную для каждого реквизита документа в отдельности, а можно создать новый определяемый тип, который будет составным.

И этот тип, указать в соответствующих реквизитах документов.

После этих действий, при заполнении склада нужного документа, необходимо выбрать сначала нужный тип данных.

А потом уже выбрать нужный элемент справочника

Если же мы добавим новый справочник (например, Автобаза), и укажем его в составе нашего определяемого типа.

То нам не нужно будет изменять реквизиты объектов. Новый тип появится автоматически, и значение этого типа можно будет указать в соответствующем реквизите.

Другие статьи по теме конфигурирования:

Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

Книга написана понятным и простым языком — для новичка.

  1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  2. Научитесь понимать архитектуру 1С;
  3. Станете писать код на языке 1С;
  4. Освоите основные приемы программирования;
  5. Закрепите полученные знания при помощи задачника.

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму
.

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Источник

Определяемые типы в 1С 8.3

Работа с определяемыми типами

Определяемый тип предназначен для упрощения процедуры изменения типа данных у каких-либо свойств, например у реквизитов объекта. Например, в конфигурации есть десять документов с реквизитом Ответственный. Тип данного реквизита — СправочникСсылка.Пользователи. Допустим, в конфигурацию добавили новый справочник ВнешниеПользователи. Теперь нужно сделать тип реквизита Ответственный составным, включив в него новый справочник. Для этого придется менять тип у каждого из десяти документов. А таких документов может быть не десять, а сто. Для упрощения этой процедуры можно использовать определяемый тип.

Читайте также:  Хочу завести свой бизнес

При создании определяемого типа нужно указать его имя и тип. Можно указать составной тип данных:

Для выбора доступно множество различных типов, в том числе примитивные типы, ссылки, объекты, менеджеры, системные перечисления, некоторые универсальные коллекции и т.п.

Теперь данный определяемый тип можно указывать как тип для реквизитов объектов:

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

Также через определяемый тип можно определять квалификаторы примитивных типов. Например, создать определяемый тип Артикул типа строка и указать для него длину 30.

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

У определяемого типа есть некоторые ограничения:

  • его нельзя использовать как тип значения в плане видов характеристик
  • он не может входить в составной тип данных
  • не может входить в состав другого определяемого типа
  • доступен только начиная с версии платформы 8.3.3

Определяемый тип программно

Чтобы программно указать тип свойства как определяемый тип можно просто создать Описание типов и перечислить все те типы, которые указаны для определяемого типа. Но можно получить готовое описание типов через метаданные:

Источник

Типы данных в 1С 8.3

Объектные и необъектные данные

Все данные в 1С можно поделить на 2 вида:

  • Объектные данные
  • Необъектные данные

Объектные данные имеют уникальный идентификатор. С помощью данного идентификатора можно обращаться к совокупности всех таблиц объекта как к единому целому.

Примеры объектных данных:

  • Справочник
  • Документ
  • План видов характеристик
  • План счетов
  • План видов расчета
  • План обмена
  • Бизнес-процесс
  • Задача

Для объектных данных в базе данных создается основная таблица, в которой хранятся все реквизиты объекта, а также по одной таблицы для каждой табличной части. Между собой таблицы связываются по уникальному идентификатору, который хранится в служебном реквизите «Ссылка».

Уникальный идентификатор присваивается при записи объекта в базу данных. Нельзя создать два объекта одного типа с одним идентификатором. Если удалить объект, а потом создать новый с такими же значениями всех реквизитов, это все равно будет другой объект, с новым уникальным идентификатором.

Необъектные данные хранятся как набор записей в таблице. У них нет уникального идентификатора. Если удалить записи из таблицы, а потом создать с таким же значениями, то это будет тот же самый набор записей.

Примеры необъектных данных:

  • Константа
  • Последовательность
  • Регистр сведений
  • Регистр накопления
  • Регистр бухгалтерии
  • Регистр расчета
  • Перерасчет

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

Ссылка и Объект

Ссылка — это внутренний уникальный идентификатор, который хранится в поле «Ссылка» базы данных. Ссылка одного вида справочника (документа или любого другого вида объектных данных) никогда не будет равна ссылке другого вида справочника.

Пустая ссылка — это ссылка, которой не соответствует ни один объект базы данных.

Читайте также:  Лихачев пишет надо быть увлеченным своей профессией своим делом теми людьми

Ссылка доступна только для объектных данных.

В интерфейсе ссылка имеет свое представление, которое можно настроить в конфигураторе. Для справочника это может быть код или наименование:

Объект — это совокупность записей основной таблицы и записей табличных частей. Объект используется для записи в базу данных. Также через объект можно читать данные из базы. Объект доступен только для объектных данных.

Объект можно получить:

  • С помощью менеджера объекта методом СоздатьЭлемент или СоздатьДокумент:

Будет создан новый экземпляр программного объекта, которому не соответствует ни один объект базы данных. При записи в базу данных будет создана новая запись.

  • Через ссылку с помощью метода ПолучитьОбъект:
  • Из выборки методом ПолучитьОбъект. Выборка — это специальный тип данных, который позволяет считывать все данные объекта порциями. Например:

В данном примере на каждой итерации цикла из выборки будет получен очередной объект базы данных.

Для необъектных данных используется Набор записей.

Типы данных

Типы данных, определенные на уровне платформы

  • Примитивные типы
  • Универсальные коллекции
  • Общие типы, например Запрос, ХранилищеЗначения, Файл и т.п.
  • Интерфейсные типы — это Форма и ЭлементыФормы.

Типы данных, определенные в конкретном прикладном решении

Это все прикладные типы: справочники, документы, регистры и т.п. На уровне платформы определены основные классы. Каждый класс имеет свою базовую функциональность. Новые объекты наследуют базовую функциональность, а также могут добавлять свою функциональность.

При создании нового объекта конфигурации автоматически создаются новые типы:

  • для константы и критерия отбора это только менеджер
  • Для журнала документов: менеджер и выборка
  • перечисление: менеджер и ссылка
  • справочник, документ, план видов характеристик, план счетов, план видов расчета, план обмена, бизнес процесс и задача: менеджер, выборка, ссылка, объект
  • отчет и обработка: менеджер и объект
  • последовательность и перерасчет: менеджер, набор записей, запись
  • регистры сведений, регистры накопления, регистры бухгалтерии, регистры расчета: менеджер, выборка, набор записей, запись, ключ записи.
  • константа: КонстантаМенеджерЗначения и КонстантыНабор
  • план счетов: ПланСчетовВидыСубконто, ПланСчетовВидыСубконтоСтрока
  • план видов расчета: ВедущиеВидыРасчета, ВедущиеВидыРасчетаСтрока, ВытесняющиеВидыРасчета, ВытесняющиеВидыРасчетаСтрока,
    БазовыеВидыРасчета, БазовыеВидыРасчетаСтрока
  • регистр сведений: РегистрСведенийМенеджерЗаписи
  • регистр бухгалтерии: РегистрБухгалтерииСубконто

Для примера добавим в конфигурацию два справочника: Номенклатура и Контрагенты. У справочника Номенклатура добавим реквизит Поставщик. В свойствах реквизита при выборе типа, помимо примитивных и общих типов будут доступны два новых типа: СправочникСсылка.Номенклатура и СправочникСсылка.Контрагент:

Составной тип данных

Если в окне выбора типа данных установить флаг «Составной тип данных», то такой реквизит сможет хранить значения нескольких типов данных. Например, установим для реквизита Поставщик галку «Составной тип данных» и укажем 2 типа: СправочникСсылка.Номенклатура и СправочникСсылка.Контрагент.

Теперь в данном реквизите можно будет сохранить как ссылку на номенклатуру, так и ссылку на контрагента.

Тип СправочникСсылка позволяет сохранить в таком реквизите ссылку на любой тип справочника. Если добавить в конфигурацию новый справочник «Физические лица», то при текущей настройки его нельзя будет записывать в реквизит «Поставщик». Однако, если выбрать тип СправочникСсылка, то такой реквизит может хранить ссылку на любой тип справочника, в том числе на те справочники, которые могут быть добавлены в конфигурацию после настройки типа данного реквизита. При запуске конфигурации тип СправочникСсылка преобразуется в составной тип данных, который включает в себя все справочники.

Тип ЛюбаяСсылка позволяет хранить ссылки на любые объектные данные. То есть в одном реквизите можно будет сохранить как ссылку на справочники Контрагенты и Номенклатура, так и на любой вид документов, планов видов характеристик и т.п.

Источник

Оцените статью