1с как получить тип документа

Во-первых, во встроенном языке для работы с одним прикладным объектом реализовано несколько типов.

Например, задачи, которые в 1С:Предприятии 7.7 решал тип Документ решаются теперь несколькими типами. Они разделены по своему назначению.

Тип ДокументСсылка используется для хранения ссылок на объект базы данных в реквизитах других объектов.

Тип ДокументОбъект используется для записи и удаления отдельных документов.

Тип ДокументВыборка используется для перебора документов, хранящихся в базе данных.

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

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

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

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

Сайт о программировании в 1с версии 7.7 и 8.x

23 ноября 2012 г.

1с:8. Как получить вид документа и сравнить его

В версии 7.7 вид документа можно получить просто : Документ.Вид()

В восьмой версии немного сложнее. Получить вид документа и сравнить его можно так:

Так как в программном коде мы работаем со значениями, то периодически требуется знать их тип. Тип 1С всегда указывается в метаданных у реквизитов — в справочниках, документах.

Работа с типами 1С часто используется:

  • Условия в программе
  • Разные действия в зависимости от типа значения 1С в конструкции «Если … Тогда …»
  • Ограничения при работе в интерфейсе
  • Запрет или разрешение пользователю вводить в поле на форме значения определенных типов 1С.
  • Определение фактического параметра функции/процедуры
  • Если параметр функции/процедуры может быть любого типа 1С, то нужно его определить, чтобы правильно получить значение.

Тип 1С можно получить:

  • Определить тип фактического значения 1С
  • Значения-объекты имеют свойства, в которых указан разрешенный тип 1С (например типы 1С разрешенные в колонке таблицы, в поле на форме, в метаданных) или методы, которые возвращают эти типы 1С
  • Из метаданных – можно получить тип 1С так, как он указан в метаданных в конфигураторе.

Типы 1С можно разделить на три вида:

  • Базовые типы 1С
  • Типы 1С базы данных (ссылочные, объекты)
  • Типы 1С.

Определение типа 1С и сравнение типов 1С

Узнать тип значения 1С можно с помощью функции ТипЗнч(Переменная)

Чтобы понять какой тип 1С эта функция вернула – нужно указать нужный нам Тип(«ИмяТипа»)

Например, определение (сравнение) типа 1С переменной:
Если ТипЗнч(Переменная) = Тип(«ИмяТипа») Тогда

Какие типы писать в качестве ИмяТипа?

Базовые типы

Базовые типы 1С — число, строка, дата, булево.

Типы базы данных

1С хранит данные в базе данных, но не в виде отдельных записей, а в виде объектов.

Большинство сохраняемых объектов (в том числе: справочники, документы, перечисления, бизнес-процессы, задачи) доступны в виде Объекта (для изменения и записи) и в виде Ссылки (для чтения). Подробнее см. «Ссылки и объекты».

Регистры могут быть представлены различными типами. Имя типа регистра составное:
РегистрТипрегистраТипдоступа.ИмяРегистра

Типы 1С регистров:

Типов доступов к регистру несколько. Чаще всего используются:

Пример:
Если ТипЗнч(Знч) = Тип(«РегистрСведенийСписок.ИмяРегистра») Тогда
ИначеЕсли Знч = Тип(«РегистрНакопленияНаборЗаписей.ИмяРегистра») Тогда
КонецЕсли;

Типы 1С

Язык 1С позволяет работать со множеством объектов, создаваемых динамически в программе, например – массив, список значений, таблица значений, структура…

Такие типы 1С указываются по их названию (одним словом, без пробелов). Например:
Если ТипЗнч(Знч) = Тип(«Массив») Тогда
ИначеЕсли Знч = Тип(«СписокЗначений») Тогда
КонецЕсли;

Определение значения ссылочного типа 1С

Работа со всеми объектами базы данных (справочники, документы…) ведется через ссылки. Например, если мы хотим в документе сделать реквизит – справочник, то его тип 1С будет «СправочникСсылка.ИмяСправочника».

Мы можем определить является ли ссылка справочником или документом с помощью метода ТипВсеСсылки()

Работа с типами 1С в запросе

В запросе тип 1С можно проверить двумя способами.

Для проверки типа поля в запросе 1С 8.3 можно воспользоваться функцией языка запросов ТИПЗНАЧЕНИЯ( ).

Функция ТИП( ) получает тип по его имени. Имена примитивных типов: Число, Строка, Булево, Дата. Имена ссылочных типов строятся по следующему принципу: Документ.РеализацияТоворовУслуг или Справочник.Номенклатура.

Получение доступных типов 1С

У множества объектов есть свойство .ТипЗначения, которое содержит список типов 1С:

Поле на форме толстого клиента
ЭлементыФормы.ИмяПоля.ТипЗначения
Поле на форме тонкого клиента (исключение: называется ДоступныеТипы)
Элементы.ИмяПоля.ДоступныеТипы
Колонка таблицы значений, дерева значений
Реквизит формы
Элемент отбора

Как работать с этим списком типов 1С в поле .ТипЗначения – см. «ОписаниеТипов» в разделе «Язык 1С».

Работа с типами 1С реквизитов в метаданных конфигурации

При добавлении и редактировании реквизитов в конфигураторе программист указывает тип(ы) 1С реквизита. В программном коде на языке 1С можно получить (узнать) тип(ы) 1С реквизита.

Подробнее про работу с метаданными см. далее «Работа с метаданными».

У объекта 1С вызвать метод Метаданные(), который возвращает метаданные конкретного объекта и далее работать со списком реквизитов (и реквизитов табличной части)

Использовать глобальную переменную «Метаданные», которая возвращает все метаданные конфигурации, и далее выйти на реквизиты конкретного объекта

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

Как работать с этим списком типов 1С – см. «ОписаниеТипов» в разделе «Язык 1С».

Указать фильтр типов 1С

У многих объектов возможно указать фильтр типов значений 1С, возможных к использованию, например:

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

Чтобы указать список типов 1С для фильтра – используется список типов 1С, как с ним работать – см. «Описание типов» в разделе «Язык 1С».

Понравилась статья? Поделиться с друзьями:
Vkontakte.INFO
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: