# Форум 1С > Конфигурирование, программирование 1С - Предприятие > 1С - Предприятие 8.0, 8.1, 8.2, 8.3 >  Типы значений

## LusikoUkr

Подскажите, кто знает, следующий момент. Меня интересует проверка на тип значения "ДокументСсылка", но не конкретно (типа, ДокументСсылка.Перемещени  ), а только, что это Документ, а не Справочник, Число, и т.д. Конкретнее, меня интересует тип колонки таблицы значений. Заранее спасибо всем откликнувшимся.

----------


## base_1c

Вариант проверки типа значения "ДокументССылка":

Если Найти(Строка(ТипЗнч(<Значен  ие>)),"ДокументССылка")>0 тогда <"Это документ">

----------


## LusikoUkr

Да, этот вариант я использую, но он не совсем подходит. Объясню, почему. Я перебираю столбцы таблицы значений (или табличного документа) методом "Для каждого СтрокаТаб из Товары Цикл" , и нужно определить тип значения (т.е. тип реквизита колонки), чтобы создать в дальнейшем поле соответствующего типа.  Можно определить Синоним колонки, типа "Справочник ссылка: nnnnnnn", и после некоторых строчных преобразований получить тип "СправочникСсылка.nnnnnn". Но  синоним нг всегда совпадает с именем реквизита...А получить имя реквизита колонки при данном переборе не могу...

----------


## Balu203

> Подскажите, кто знает, следующий момент. Меня интересует проверка на тип значения "ДокументСсылка", но не конкретно (типа, ДокументСсылка.Перемещени  ), а только, что это Документ, а не Справочник, Число, и т.д. Конкретнее, меня интересует тип колонки таблицы значений. Заранее спасибо всем откликнувшимся.


Документы.ТипВсеСсылки().Со  держитТип(ПроверяемыйТип)
Справочники.ТипВсеСсылки().  СодержитТип(ПроверяемыйТи  )

----------


## LusikoUkr

Спасибо за ответ. ПОпробую применить, хотя пока не знаю как...В данном случае надо перебирать всемозможные типы, чтобы определить нужный, а надо по типу, как в 7-ке :  Если ТипЗначения(Знач) = 12 ТОгда ....

----------


## Balu203

> Спасибо за ответ. ПОпробую применить, хотя пока не знаю как...В данном случае надо перебирать всемозможные типы, чтобы определить нужный, а надо по типу, как в 7-ке :  Если ТипЗначения(Знач) = 12 ТОгда ....


И в чем проблема?

Если Документы.ТипВсеСсылки().Со  держитТип(ТипЗнч(Знач)) Тогда ...

перебирать ничего не надо

----------


## LusikoUkr

Может я не допонимаю, но приведу конкретно: Для каждого Реквизит Из Док.Метаданные().ТабличныеЧ  асти.Товары.Реквизиты ,  где док -конкретно выбраннй документ. Нужно определить тип Реквизита (каждой конкретной колонки табличной части), т.е., меня интероесеут имя объекта, которое записывается в колонку таблицы.

----------


## Balu203

> Может я не допонимаю, но приведу конкретно: Для каждого Реквизит Из Док.Метаданные().ТабличныеЧ  асти.Товары.Реквизиты ,  где док -конкретно выбраннй документ. Нужно определить тип Реквизита (каждой конкретной колонки табличной части), т.е., меня интероесеут имя объекта, которое записывается в колонку таблицы.


А вот теперь нужно, точнее просто необходимо объяснить зачем всё это надо

----------


## LusikoUkr

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

----------


## Balu203

Ну тогда всё тривиально до ужаса:

Для каждого Реквизит Из Док.Метаданные().ТабличныеЧ  асти.Товары.Реквизиты

типы получим с помощью Реквизит.Тип, это уже готовое ОписаниеТипов для колонки ТЗ

т.е. ТЗ.Колонки.Добавить(Реквиз  т.Имя,Реквизит.Тип)

----------


## LusikoUkr

НЕ совсем. Реквизит.Тип в данном переборе - это синоним реквизита, а не имя. А синоним не всегда совпадаем с именем (с чем я и столкнулась, когда пошла эти путем).

---------- Post added at 12:51 ---------- Previous post was at 12:48 ----------

Выше я писала по этому поводу, как это в действительности - Это Реквизит.Тип - "Справочник ссылка: nnnnnnn". Преобразовать можно, но что делать с такими, н-р "Справочник ссылка: склады (места хранения)" . И для каждого реквизита что-то свое...

----------


## Balu203

> НЕ совсем. Реквизит.Тип в данном переборе - это синоним реквизита, а не имя. А синоним не всегда совпадаем с именем (с чем я и столкнулась, когда пошла эти путем).
> 
> ---------- Post added at 12:51 ---------- Previous post was at 12:48 ----------
> 
> Выше я писала по этому поводу, как это в действительности - Это Реквизит.Тип - "Справочник ссылка: nnnnnnn". Преобразовать можно, но что делать с такими, н-р "Справочник ссылка: склады (места хранения)" . И для каждого реквизита что-то свое...



Отвыкните уже от 77! Синоним, это синоним. А Тип это Тип!

в случае с "таким перебором":

Для каждого Реквизит Из Док.Метаданные().ТабличныеЧ  асти.Товары.Реквизиты

Реквизит.Тип, это ОписаниеТипов, его не нужно преобразовывать!!! Его надо указать при создании колонки ТЗ в качестве типа! Это НЕ текстовая строка, она НЕ равна синониму! Это в 77 тип у вас строкой обозначается в 1С 8 есть специальный класс ОписаниеТипов, в котором в отличие от 77 можно указывать любые типы в любых комбинациях!!! в 77 вы не можете создать колонку в ТЗ, в которой тип Строка или Справочник.Контрагенты, в 1с 8 можно

Код который написал я в одном из ответов работать будет!

----------


## LusikoUkr

СПасибо. Сейчас попробую.

---------- Post added at 13:23 ---------- Previous post was at 13:13 ----------

Я, конечно, достану вас окончательно. Да, в таком варианте все получается.Но мне нужно именно имя, т.к.  мне надо выгрузить полученные значения в любой файл в том виде, в котором я смогу их найти в ДРУГОЙ БАЗЕ! И база эта аналогичная по конфигурации, но другая. И стандартные обработки Загрузки/Выгрузки здесь не подходят.

----------


## Balu203

Имя колонки при отработке метода Колонки.Добавить(Реквизит.  мя,Реквизит.Тип) будет совпадать, в другой базе можно будет обратиться так же. Но проблема переноса куда интереснее. 

Надо каким-то образом понимать есть объект, упомянутый в документе в другой базе или его надо создать, типами тут не обойдешься, ссылки на элементы в другой базе будут бесполезны... 
Самое интересное в случае справочников, ибо может быть иерархия (в Справочнике Номенклатура - 100%), может быть неуникальность кодов, переносить это крайне сложно. Адекватно можно настроить перенос только создав свои правила конвертации в Конвертации данных, но это сложно. Впрочем, изобретать что-то свое еще более неблагодарное и бесполезное занятие.

----------


## LusikoUkr

Да, это все я понимаю. Базы аналочны по ассортименту. В случае отсутствия чего-либо будет создаваться новый элемент. Поиск по уникальному значению. Это фактически переброс аналогичного товара с одного ЧП на другое. В любом случае, спасибо. Я все это учту. Думаю, что-то, да получится. А потом, как говорят - мы не ищем легких путей...

----------

