Имя: Пароль:
1C
1С v8
Табличная часть документа: ТипЗнч и Тип
, , ,
0 абзац
 
08.05.19
13:49
С праздником всех.

Есть документ "Приобретение товаров и услуг", у него есть табличная часть "Товары". Мне нужно убедиться, что значение ДокументСсылка.Товары содержит нужную табличную часть нужного мне типа документа.
Пытаюсь сравнить типы:
   ТипЗнч(ДокументСсылка.Товары) = Тип("ДокументТабличнаяЧасть.ПриобретениеТоваровУслуг.Товары")
- результат отрицательный. Хотя оба выражения возвращают тип "Document Tabular section: Товары". ТипЗнч(ДокументСсылка) = Тип("ДокументСсылка.ПриобретениеТоваровУслуг") сравнивает корректно.

Подскажите пжлст, где я ошибаюсь? Как правильно сравнить тип табличной части?
1 1Сергей
 
08.05.19
13:52
>>Мне нужно убедиться, что значение ДокументСсылка.Товары содержит нужную табличную часть нужного мне типа документа

А как может содержать что-то другое?
2 butterbean
 
08.05.19
13:55
(0) сравнивай просто типы документов, нафига таб части?
3 абзац
 
08.05.19
13:57
(1) Ну например другую табличную часть, скажем "Серии". Или ТЧ документа другого типа.
4 1Сергей
 
08.05.19
13:58
(3) как у тебя в ДокументСсылка.Товары могут быть серии?
5 абзац
 
08.05.19
13:59
Я криво описал условие. Есть переменная "Значение111". Нужно убедиться, что в ней именно табличная часть "Товары" и именно документа "ПриобретениеТоваровУслуг". Можно это как-то сделать одним сравнением?
6 абзац
 
08.05.19
14:01
Значение111 = ДокументСсылка.Товары;
ТипЗнч(Значение111) = Тип("ДокументТабличнаяЧасть.ПриобретениеТоваровУслуг.Товары") - авотфиг.
7 ам794123
 
08.05.19
14:02
(5) если тип документа "ПриобретениеТоваровУслуг", то у него точно есть ТЧ.Товары, это предопределено в конфигурации
8 butterbean
 
08.05.19
14:02
(7) у меня твоя конструкция из (0) отработала корректно, проверяй значения в отладчике
9 butterbean
 
08.05.19
14:02
(8) может у тебя не ссылки а объекты
10 абзац
 
08.05.19
14:13
(9) Пробовал и ссылки, и объекты. Результат один.
Релиз платформы 8.3.14.1694.
11 butterbean
 
08.05.19
14:15
(10) проверь в отладчике условие
ТипЗнч(Документы.ПриобретениеТоваровУслуг.ПустаяСсылка().Товары) = Тип("ДокументТабличнаяЧасть.ПриобретениеТоваровУслуг.Товары")
12 абзац
 
08.05.19
14:16
Проверил:
ТипЗнч(Документы.ПриобретениеТоваровУслуг.ПустаяСсылка().Товары) = Тип("ДокументТабличнаяЧасть.ПриобретениеТоваровУслуг.Товары")
Ложь.
13 Tonik992
 
08.05.19
14:18
Метаданные придется использоваться значит
14 абзац
 
08.05.19
14:29
Проверил во внешней обреботке на локальной базе - условие
ТипЗнч(Документы.ПриобретениеТоваровУслуг.ПустаяСсылка().Товары) = Тип("ДокументТабличнаяЧасть.ПриобретениеТоваровУслуг.Товары")
работает корректно.
А в модуле HTTP-сервиса не работает. Не равны типы.
15 Nuobu
 
08.05.19
14:37
(14) А если из модуля вызвать общийМодуль?
16 абзац
 
08.05.19
14:40
(15) Все так же. Условие не выполняется.
17 Nuobu
 
08.05.19
14:44
(16) Попробуй еще через XML
XMLтип и XMLтипЗнч
18 абзац
 
08.05.19
14:46
(17) Такая конструкция:

Метаданные.НайтиПоТипу(ТипЗнч(ДокументСсылка.Товары)) = Метаданные.Документы.ПриобретениеТоваровУслуг.ТабличныеЧасти.Товары

работает в модуле HTTP сервиса. Но как-то стремно выглядит.
19 Mort
 
08.05.19
15:16
В 8.3.10 все работает
20 абзац
 
08.05.19
15:18
(19) В модуле HTTP-сервиса тоже?
21 Жан Пердежон
 
08.05.19
16:26
тебе ещё в начале сказали:
ТипЗнч(ДокументСсылка)=Тип("ДокументСсылка.ПриобретениеТоваровУслуг)
22 Жан Пердежон
 
08.05.19
16:39
(20) ну так посмотри, чему у тебя равно ТипЗнч(Значение111)
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.