|
Документы.СодержитТип(Тип"Неопределено") возвращает истину | ☑ | ||
---|---|---|---|---|
0
JesteR
11.02.14
✎
10:11
|
Всем привет.
Конвертнули базу с 8.1 на 8.2, платформа 8.2.19.83 без режима совместимости. В обработчике заполнения проверяю тип основания. В 8.2. при вводе нового документа тип основания это Неопределено. Но, ставлю точку останова Документы.СодержитТип(Тип"Неопределено") возвращает истину, это бага? |
|||
1
Wobland
11.02.14
✎
10:12
|
Неопределено входит в любой составной тип
|
|||
2
Kerk
11.02.14
✎
10:15
|
Определенно неопределено определяется в рамках определенных документов как определенное содержание типа от неопределено.
|
|||
3
JesteR
11.02.14
✎
10:15
|
(0)Документы.ТипВсеСсылки().СодержитТип
(1) Документы.ТипВсеСсылки().Типы().Найти(Тип("Неопределено")) отрабатывает ожидаемо, т.е. не находит. |
|||
4
Maxus43
11.02.14
✎
10:27
|
>>В обработчике заполнения проверяю тип основания
а зачем делаешь именно так? Вощето: Если Основание = Неопределено Тогда Возврат; КонецЕсли; |
|||
5
Maxus43
11.02.14
✎
10:28
|
али так:
Если (Основание <> Неопределено) И (Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(Основание))) Тогда |
|||
6
JesteR
11.02.14
✎
10:31
|
(4)(5)Спасибо, Кэп.
|
|||
7
Maxus43
11.02.14
✎
10:33
|
(6) в типовые посмотри, там же это предусмотрено
|
|||
8
Maxus43
11.02.14
✎
10:33
|
в 1с тоже КЭПы?
|
|||
9
JesteR
11.02.14
✎
10:39
|
(8) Спасибо за советы, как это решить я понимаю. Мне не понятно почему СодержитТип так неадекватно работает.
Если сделать ТипВсеСсылки().Типы().Найти(ТипЗнч("Неопределено")) он не найдет, а содержит тип возвращает истину.... Не понимаю ))) |
|||
10
ДенисЧ
11.02.14
✎
10:44
|
(9) По определению.
Найти() - ищет конкретный тип А СодержитТип() - проверяет на возможность принадлежности типа. |
|||
11
Maxus43
11.02.14
✎
10:44
|
считай это фичей, по сути ответ в (1), Неопределено тип неявный в составных, а СодержитТип его видит
|
|||
12
DrZombi
гуру
11.02.14
✎
10:49
|
(0) Нормально, жить можно. Самое веселая логика у привязки границ. Вот там, точно - "Это нельзя понять, нужно просто знать" :)
|
|||
13
JesteR
11.02.14
✎
10:49
|
(10)(11)Спасибо! Пошел дописывать.
|
|||
14
Maxus43
11.02.14
✎
10:50
|
(13) в таких случаях лучше не думать, а брать из типовых, чтоб не было разрыва шаблона)
|
|||
15
JesteR
11.02.14
✎
11:09
|
(14) Вот как это в типовой Бухе
Если Основание <> Неопределено И ТипОснования <> Тип("Структура") И Метаданные().ВводитсяНаОсновании.Содержит(Основание.Метаданные()) Тогда |
|||
16
kiruha
11.02.14
✎
11:16
|
(3)
Документы.ТипВсеСсылки().СодержитТип Написано же - все ссылки(!) Неопределено не есть ссылка. Это на пальцах Составной тип и Документы.ТипВсеСсылки()это разные вещи - это не на пальцах В составном типе, если значение не задано, тип Неопределено, т.к. тип не выбран |
|||
17
Ненавижу 1С
гуру
11.02.14
✎
11:18
|
1С еще не такое выдумает ))
|
|||
18
JesteR
11.02.14
✎
11:21
|
Вот это из СП
ДокументыМенеджер (DocumentsManager) ТипВсеСсылки (AllRefsType) Синтаксис: ТипВсеСсылки() Возвращаемое значение: Тип: ОписаниеТипов. Описание: Получает описание типов, содержащее типы ссылок документов. |
|||
19
kiruha
11.02.14
✎
12:26
|
ОпТиповОбщее=Документы.ТипВсеСсылки();
МассивТипов=ОпТиповОбщее.Типы(); ОписаниеТиповКонкретное=Новый ОписаниеТипов(МассивТипов); Сообщить("Конкретное - "+ОписаниеТиповКонкретное.СодержитТип(Тип("Неопределено"))) ; Сообщить("Общее - "+ОпТиповОбщее.СодержитТип(Тип("Неопределено"))) ; Итог Конкретное - Да Общее - Да Тема - фейк |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |