Сравнение типов переменных

1. val_ka 06.11.20 12:17 Сейчас в теме
Переменная МассивЗн3 имеет значение "строка"
Переменная МассивЗн6 имеет значение "неопределено"
Почему цикл не определяет, что переменная "МассивЗн6 " имеет тип "неопределено" и переходит к ветке "Иначе"?

                            МассивЗн3 = Элемент.Получить ("createdDate");
					МассивЗн6 = Элемент.Получить ("closedDate");

						Если ТипЗнч( МассивЗн3 ) = неопределено или ТипЗнч( МассивЗн6 ) = неопределено Тогда
							
							СтрокаСправочника.ДатаСозданияЗадачи = МассивЗн3;
							СтрокаСправочника.ДатаЗакрытияЗадачи = МассивЗн6;
						
						Иначе
						
							МассивЗн3 = Сред(МассивЗн3, 1, 4) + Сред(МассивЗн3, 6, 2) + Сред(МассивЗн3, 9, 2) + Сред(МассивЗн3, 12, 2) + Сред(МассивЗн3, 15, 2) + Сред(МассивЗн3, 18, 2);
							СтрокаСправочника.ДатаСозданияЗадачи = Дата (МассивЗн3);
							
							МассивЗн6 = Сред(МассивЗн6, 1, 4) + Сред(МассивЗн6, 6, 2) + Сред(МассивЗн6, 9, 2) + Сред(МассивЗн6, 12, 2) + Сред(МассивЗн6, 15, 2) + Сред(МассивЗн6, 18, 2);
							СтрокаСправочника.ДатаЗакрытияЗадачи = Дата (МассивЗн6);
						
						КонецЕсли;
Показать
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
9. JasonT 08.11.20 15:41 Сейчас в теме
(8)
(7) Еще один мастер пытается сравнить значение с типом... Сравнивать можно только аналогичные показатели - либо значения, либо типы. Нельзя сравнивать цвет с длиной, количество со вкусом и зарплату с клавиатурой.

Точно. Не посмотрел, что в переменных МассивЗн3 и МассивЗн6 хранятся не типы, а значения.
Тогда, как в ответах или выше
Если МассивЗн3 = неопределено или МассивЗн6 = неопределено Тогда


Или

Если ТипЗнч( МассивЗн3 ) = Тип("Неопределено") или ТипЗнч( МассивЗн6 ) = Тип("Неопределено") Тогда
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. spacecraft 06.11.20 14:55 Сейчас в теме
(1)
Почему цикл не определяет, что переменная "МассивЗн6 " имеет тип "неопределено" и переходит к ветке "Иначе"?

Потому что сравниваете Тип со значением Неопределено. Они никогда не будут равны.
2. FatPanzer 06.11.20 12:22 Сейчас в теме
Нет такого типа значений "Неопределено". Это само значение. Надо писать
Если МассивЗн3 = Неопределено или МассивЗн6 = Неопределено Тогда
EVKash; JasonT; +2 Ответить
3. JasonT 06.11.20 14:30 Сейчас в теме
(2) Есть такой тип, Тип("Неопределено"), только он не равен значению Неопределено :-)
user1464234; +1 Ответить
5. val_ka 06.11.20 15:51 Сейчас в теме
(3) как мне тогда с этим работать? Как задать условие?
7. JasonT 08.11.20 09:59 Сейчас в теме
(5) Замените свое если на вот это. Тогда условие отработает.
Если МассивЗн3 = Тип("Неопределено") или МассивЗн6 = Тип("Неопределено") Тогда
8. FatPanzer 08.11.20 11:18 Сейчас в теме
(7) Еще один мастер пытается сравнить значение с типом... Сравнивать можно только аналогичные показатели - либо значения, либо типы. Нельзя сравнивать цвет с длиной, количество со вкусом и зарплату с клавиатурой.
EVKash; JasonT; +2 Ответить
6. burgomister 59 07.11.20 11:00 Сейчас в теме
Если МассивЗн3 = неопределено или МассивЗн6 = неопределено Тогда
9. JasonT 08.11.20 15:41 Сейчас в теме
(8)
(7) Еще один мастер пытается сравнить значение с типом... Сравнивать можно только аналогичные показатели - либо значения, либо типы. Нельзя сравнивать цвет с длиной, количество со вкусом и зарплату с клавиатурой.

Точно. Не посмотрел, что в переменных МассивЗн3 и МассивЗн6 хранятся не типы, а значения.
Тогда, как в ответах или выше
Если МассивЗн3 = неопределено или МассивЗн6 = неопределено Тогда


Или

Если ТипЗнч( МассивЗн3 ) = Тип("Неопределено") или ТипЗнч( МассивЗн6 ) = Тип("Неопределено") Тогда
11. val_ka 09.11.20 06:23 Сейчас в теме
(9) Спасибо второй вариант сработал
10. EVKash 16 08.11.20 17:47 Сейчас в теме
(1) А почему бы не использовать?
Если ЗначениеЗаполнено(МассивЗн3) ...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот