1с как найти реквизит по типу

Найти справочник по типу

Я
   DomanM

23.03.15 – 18:58

Есть тип (из описаниетипов.типы()) как найти какой конкретно справочник в виде “Контрагенты” (например) соответствует этому типу?

   Cyberhawk

1 – 23.03.15 – 18:59

СодержитТип()

   DomanM

2 – 23.03.15 – 19:06

(1) это булево же мне перебирать все справочники чтоли и сравнивать?

   Cyberhawk

3 – 23.03.15 – 19:08

“сравнивать” предполагает два источника. Один, как Я понял, это ОписаниеТипов.Типы(). А второй источник – это что?

   DomanM

4 – 23.03.15 – 19:11

(3) не типы. а уже конкретный тип, второй источник типзнач каждого справочника?

   DomanM

5 – 23.03.15 – 19:11

(3) хочется сразу в виде текста этот справочник получить

   Cyberhawk

6 – 23.03.15 – 19:13

Какой “этот”?

   DomanM

7 – 23.03.15 – 19:14

(6) этот, тип которого, в моем ТИПе

   Записьдампа

8 – 23.03.15 – 19:15

Метаданные.НайтиПоТипу(Тип).Имя

   Cyberhawk

9 – 23.03.15 – 19:15

Я так и не понял до конца, но Метаданные.НайтиПоТипу() тебе в помощь

  

DomanM

10 – 23.03.15 – 20:02

(9) спс, то что нужно

TurboConf — расширение возможностей Конфигуратора 1С

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

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

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

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

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

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

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

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

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

Например:

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

Приветствую, коллеги! В данной статье будет проведён анализ того, как проводить проверку типа значения для некоторого справочника или документа, а также – в обратную сторону: как проверить, что тип значения принадлежит документации или справочникам и так далее.

Проверка на тип значения

Проверка типа значения у документов и справочников

Для начала следует оговорить то, что в конфигурациях 1С:Предприятие 8 один прикладной объект может реализовывать одновременно несколько типов значений. К примеру, в сравнении с прошлыми версиями 1С:Предприятие, где для решения некоторых задач необходим был тип значения «Документ», в 1С:Предприятие 8 подобные задачи могут решаться различными типами значений. Каждый тип отличается от другого своим предназначением. Например, тип значения «ДокументСсылка» выполняет функцию сохранения ссылок для объекта из информационной базы внутри реквизитов иных отличных объектов. А тип значения «ДокументОбъект» необходим для того, чтобы записывать и проводить удаление конкретной документации. Её один схожий по первичному названию, но иной по функционалу – это тип записи «ДокументВыборка», который предназначен для выполнения перебора по документам, которые состоят в информационной базе. Также есть множество иных типов записи, которые предназначены для совершения действий с документацией.

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

В конфигурациях 1С, чтобы производить работу с типами, нужно задействовать не строчное представление типов, а вид типа «Тип», внутри которого и задаётся конкретный тип записи. Чтобы присвоить значение типу, следует воспользоваться функцией «Тип()», параметром в которой и будет сам конкретный тип.

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

Для наглядности всего описанного ниже приведен пример получения типа значения:

Рисунок 1 Пример получения типа значения в 1С 8
Рисунок 1 Пример получения типа значения в 1С 8

Проверка принадлежности типа значения

Рассмотрим, как узнать, относится ли конкретный тип значения к документации или справочникам, или чему-то иному.

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

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

Рисунок 2 Алгоритм определения принадлежности типа значения определенному виду объекта
Рисунок 2 Алгоритм определения принадлежности типа значения определенному виду объекта

Специалист компании KoderLine

Фархутдинов Айдар

Разберем методы, при помощи которых, в 1С 8.3 можно определить тип значения переменной (или реквизита какого-нибудь объекта). Причем, эти методы могут работать со всеми типами: примитивными, объектными и коллекциями значений.

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

Функция ТипЗнч в 1С

Разберем функцию ТипЗнч. Эта функция принимает в качестве параметра любое значение и возвращает тип этого значения.

Рассмотрим пример:  будем использовать в качестве параметра этой функции число, таблицу значений и объект какого-нибудь справочника.

п_Число           = 124.56;
п_ТаблицаЗначений = Новый ТаблицаЗначений;
п_Объект          = Справочники.Товары.СоздатьЭлемент();

тип_ч      = ТипЗнч(п_Число);
тип_ТЗ     = ТипЗнч(п_ТаблицаЗначений);
тип_Объект = ТипЗнч(п_Объект);

Посмотрим в отладке, что вернет этот метод.

Функция ТипЗнч в 1С

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

Функция Тип в 1С

Функция тип имеет один параметр имя получаемого типа в строковом представлении, возвращает тип Тип.

Переделаем предыдущий пример: будем получать типы значений, используя функцию Тип.

тип_ч      = Тип("Число");
тип_ТЗ     = Тип("ТаблицаЗначений");
тип_Объект = Тип("СправочникОбъект.Товары");

В переменных будут те же значения, что и в прошлый раз.

Функция Тип в 1С

Чтобы быстро получить название какого-то типа,  достаточно «задержаться» в написании после первой кавычки, или нажать комбинацию клавиш Ctrl+Пробел.

Функция Тип в 1С

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

Функция Тип в 1С

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

Как проверить тип значения

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

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

МассивТипов = Новый Массив;
МассивТипов.Добавить("Какая-то строка");
МассивТипов.Добавить(23445.11);
МассивТипов.Добавить(Дата(2012,01,02));
МассивТипов.Добавить(Новый СписокЗначений);

ГСЧ = Новый ГенераторСлучайныхЧисел;
СлучайныйИндекс = ГСЧ.СлучайноеЧисло(0,3);

ЭлементМассива = МассивТипов[СлучайныйИндекс];
Сообщить("Номер элемента массива: " + СлучайныйИндекс);

Если ТипЗнч(ЭлементМассива) = Тип("Строка") Тогда
    Сообщить("Это строка");
ИначеЕсли ТипЗнч(ЭлементМассива) = Тип("Число") Тогда
    Сообщить("Это число");
ИначеЕсли ТипЗнч(ЭлементМассива) = Тип("Дата") Тогда
    Сообщить("Это дата");
ИначеЕсли ТипЗнч(ЭлементМассива) = Тип("СписокЗначений") Тогда
    Сообщить("Это список значений");
КонецЕсли;

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

Проверить тип значения в 1С

Статьи о примитивных типах в 1С:

Примитивный тип Строка

Примитивный тип Булево

Примитивный тип Дата

Примитивный тип Число

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

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

Программировать в 1С за 11 шагов

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

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

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

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

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

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

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


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

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

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

Вступайте в мои группы:

Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009

17 правил для составления оптимального ЗАПРОСа к данным базы 1С 48
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ


1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш


1Cv8.1CD – Файл данных достиг максимального размера! 8
1С выдает предупреждение ” Файл данных достиг максимального размера” .
Подскажите из – за чего это и как можно решить ?
Превышен размер файла, обычно это сообщение возникает, когда размер файла 1Cv8.1CD приближается к 10 гигабайтам или размер ка


1С 8.x : Как убрать лидирующие нули в номере Документа (вариант2) 0
Скопировать строку с номером, с лидирующими нулями, в числовом поле (с форматом без групп, без группировки), и вернуть(скопировать) обратно в строковом поле с номером. Возвращает без нулей.


1С Предприятие что это? 12
Что такое 1С?
1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » – конкретный продукт, который выпускает компания 1С .
Что такое


Посмотреть все результаты поиска похожих

Добавить комментарий