Подскажите, кто знает, следующий момент. Меня интересует проверка на тип значения "ДокументСсылка", но не конкретно (типа, ДокументСсылка.Перемещени� �), а только, что это Документ, а не Справочник, Число, и т.д. Конкретнее, меня интересует тип колонки таблицы значений. Заранее спасибо всем откликнувшимся.
base_1c
22.03.2013, 22:05
Вариант проверки типа значения "ДокументССылка":
Если Найти(Строка(ТипЗнч(<Значение>)),"ДокументССылка")>0 тогда <"Это документ">
LusikoUkr
23.03.2013, 12:46
Да, этот вариант я использую, но он не совсем подходит. Объясню, почему. Я перебираю столбцы таблицы значений (или табличного документа) методом "Для каждого СтрокаТаб из Товары Цикл" , и нужно определить тип значения (т.е. тип реквизита колонки), чтобы создать в дальнейшем поле соответствующего типа. Можно определить Синоним колонки, типа "Справочник ссылка: nnnnnnn", и после некоторых строчных преобразований получить тип "СправочникСсылка.nnnnnn". Но синоним нг всегда совпадает с именем реквизита...А получить имя реквизита колонки при данном переборе не могу...
Balu203
25.03.2013, 11:46
Подскажите, кто знает, следующий момент. Меня интересует проверка на тип значения "ДокументСсылка", но не конкретно (типа, ДокументСсылка.Перемещени� �), а только, что это Документ, а не Справочник, Число, и т.д. Конкретнее, меня интересует тип колонки таблицы значений. Заранее спасибо всем откликнувшимся.
Спасибо за ответ. ПОпробую применить, хотя пока не знаю как...В данном случае надо перебирать всемозможные типы, чтобы определить нужный, а надо по типу, как в 7-ке : Если ТипЗначения(Знач) = 12 ТОгда ....
Balu203
25.03.2013, 12:18
Спасибо за ответ. ПОпробую применить, хотя пока не знаю как...В данном случае надо перебирать всемозможные типы, чтобы определить нужный, а надо по типу, как в 7-ке : Если ТипЗначения(Знач) = 12 ТОгда ....
И в чем проблема?
Если Документы.ТипВсеСсылки().Со держитТип(ТипЗнч(Знач)) Тогда ...
перебирать ничего не надо
LusikoUkr
25.03.2013, 12:29
Может я не допонимаю, но приведу конкретно: Для каждого Реквизит Из Док.Метаданные().ТабличныеЧ асти.Товары.Реквизиты , где док -конкретно выбраннй документ. Нужно определить тип Реквизита (каждой конкретной колонки табличной части), т.е., меня интероесеут имя объекта, которое записывается в колонку таблицы.
Balu203
25.03.2013, 12:34
Может я не допонимаю, но приведу конкретно: Для каждого Реквизит Из Док.Метаданные().ТабличныеЧ асти.Товары.Реквизиты , где док -конкретно выбраннй документ. Нужно определить тип Реквизита (каждой конкретной колонки табличной части), т.е., меня интероесеут имя объекта, которое записывается в колонку таблицы.
А вот теперь нужно, точнее просто необходимо объяснить зачем всё это надо
LusikoUkr
25.03.2013, 12:40
А надо это для того, чтобы создать таблицу значений с теми же реквизитами для дальнейшего ее использования, а именно- мне нужно выгружать/загружать отдельные документы в разные конфигурации. Типа универсальной обработки
Balu203
25.03.2013, 12:45
Ну тогда всё тривиально до ужаса:
Для каждого Реквизит Из Док.Метаданные().ТабличныеЧ асти.Товары.Реквизиты
типы получим с помощью Реквизит.Тип, это уже готовое ОписаниеТипов для колонки ТЗ
т.е. ТЗ.Колонки.Добавить(Реквиз� �т.Имя,Реквизит.Тип)
LusikoUkr
25.03.2013, 12:51
НЕ совсем. Реквизит.Тип в данном переборе - это синоним реквизита, а не имя. А синоним не всегда совпадаем с именем (с чем я и столкнулась, когда пошла эти путем).
---------- Post added at 12:51 ---------- Previous post was at 12:48 ----------
Выше я писала по этому поводу, как это в действительности - Это Реквизит.Тип - "Справочник ссылка: nnnnnnn". Преобразовать можно, но что делать с такими, н-р "Справочник ссылка: склады (места хранения)" . И для каждого реквизита что-то свое...
Balu203
25.03.2013, 13:09
НЕ совсем. Реквизит.Тип в данном переборе - это синоним реквизита, а не имя. А синоним не всегда совпадаем с именем (с чем я и столкнулась, когда пошла эти путем).
---------- Post added at 12:51 ---------- Previous post was at 12:48 ----------
Выше я писала по этому поводу, как это в действительности - Это Реквизит.Тип - "Справочник ссылка: nnnnnnn". Преобразовать можно, но что делать с такими, н-р "Справочник ссылка: склады (места хранения)" . И для каждого реквизита что-то свое...
Отвыкните уже от 77! Синоним, это синоним. А Тип это Тип!
в случае с "таким перебором":
Для каждого Реквизит Из Док.Метаданные().ТабличныеЧ асти.Товары.Реквизиты
Реквизит.Тип, это ОписаниеТипов, его не нужно преобразовывать!!! Его надо указать при создании колонки ТЗ в качестве типа! Это НЕ текстовая строка, она НЕ равна синониму! Это в 77 тип у вас строкой обозначается в 1С 8 есть специальный класс ОписаниеТипов, в котором в отличие от 77 можно указывать любые типы в любых комбинациях!!! в 77 вы не можете создать колонку в ТЗ, в которой тип Строка или Справочник.Контрагенты, в 1с 8 можно
Код который написал я в одном из ответов работать будет!
LusikoUkr
25.03.2013, 13:23
СПасибо. Сейчас попробую.
---------- Post added at 13:23 ---------- Previous post was at 13:13 ----------
Я, конечно, достану вас окончательно. Да, в таком варианте все получается.Но мне нужно именно имя, т.к. мне надо выгрузить полученные значения в любой файл в том виде, в котором я смогу их найти в ДРУГОЙ БАЗЕ! И база эта аналогичная по конфигурации, но другая. И стандартные обработки Загрузки/Выгрузки здесь не подходят.
Balu203
25.03.2013, 13:48
Имя колонки при отработке метода Колонки.Добавить(Реквизит.� �мя,Реквизит.Тип) будет совпадать, в другой базе можно будет обратиться так же. Но проблема переноса куда интереснее.
Надо каким-то образом понимать есть объект, упомянутый в документе в другой базе или его надо создать, типами тут не обойдешься, ссылки на элементы в другой базе будут бесполезны...
Самое интересное в случае справочников, ибо может быть иерархия (в Справочнике Номенклатура - 100%), может быть неуникальность кодов, переносить это крайне сложно. Адекватно можно настроить перенос только создав свои правила конвертации в Конвертации данных, но это сложно. Впрочем, изобретать что-то свое еще более неблагодарное и бесполезное занятие.
LusikoUkr
25.03.2013, 14:08
Да, это все я понимаю. Базы аналочны по ассортименту. В случае отсутствия чего-либо будет создаваться новый элемент. Поиск по уникальному значению. Это фактически переброс аналогичного товара с одного ЧП на другое. В любом случае, спасибо. Я все это учту. Думаю, что-то, да получится. А потом, как говорят - мы не ищем легких путей...