Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Как получить тип значения строки табличной части внешней обработки? (http://forums.kuban.ru/f1040/kak_poluchit-_tip_znacheniya_stroki_tablichnoj_chasti_vneshnej_obrabotki-7311213.html)

war 11.11.2015 11:01

Как получить тип значения строки табличной части внешней обработки?
 
Есть внешняя обработка. У неё есть процедура. У процедуры есть параметр.
Значение параметра может содержать ссылку на строку табличной части этой внешней обработки, а может и любое другое.
Как проверить тип значения на равенство с типом "Строка ТЧ внешней обработки"? Как его получить в виде выражения встроенного языка?
ТипЗнч(Параметр) возвращает: "Внешняя обработка табличная часть строка: Табличная часть". Табличная часть - имя табличной части внешней обработки.

roma n 11.11.2015 11:08

Строка табличной части суть элемент коллекции и отдельного типа не образует. В этом смысле твоё желание равнозначно желанию узнать что в качестве параметра в процедуру по ссылке передан элемент массива...
ЗЫ зачем?

war 11.11.2015 11:16

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

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

roma n 11.11.2015 11:36

[em]Тип "Строка табличной части встроенной обработки" - есть[/em]
Мне такой тип неизвестен :(
Приведи, плиз, пример функции Тип(), возвращающей этот самый тип.

roma n 11.11.2015 11:45

+(3) имеется в виду тип "строка конкретной табличной части конкретной обработки"
Т.е. вот эта конструкция Тип("ОбработкаТабличнаяЧастьСтрока."+ИмяОбработки +"."+ИмяТабЧасти)?
Под именем обработки в случае использования внешней чего юзать?

war 11.11.2015 12:03

4-roma n > Вот в этом и вопрос.
Потому как отладчик чего-то определяет, и выводит тип значения параметра.
Вопрос в том, как такой же результат получить во встроенном языке.

roma n 11.11.2015 12:12

Сравнить не с Тип() с ТипЗнч() заведомо существующей строки. Не?

war 11.11.2015 12:25

6-roma n > Ну я, честно говоря, выкрутился, выше описал как.
Просто у меня одна ТЧ. Чисто гипотетически может быть такая ситуация, когда ТЧ будет несколько, и, в случае как у меня, попытка-исключение с номером строки не прокатит.
Тогда да, ваш вариант - это выход. Сделать массив с типами строки из каждой ТЧ. Если ТЧ - пустая, программно добавить строку, получить тип значения и удалить.
Но думаю, что должна быть возможность получить тип без таких плясок с бубном. Попробую на партнерском форуме вопрос задать.

roma n 11.11.2015 12:33

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

war 11.11.2015 12:34

8-roma n > Ну пока я нахожусь в контексте данной обработки, по-моему вполне логично, если я могу работать с ее типами данных, разве нет?

roma n 11.11.2015 12:39

Логично. Но не для включения в общий класс.
Как будешь реализовывать требование к сериализации такого "типа", например?

User80 21.12.2018 18:03

У меня сегодня возникла такая-же проблема нужно было получить тип строки таблицы налоговой накладной. Получить можно так:
Тип("ДокументТабличнаяЧастьСтрока.НалоговаяНакладная.Товары")


Текущее время: 14:57. Часовой пояс GMT +3.