Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 апр 2024, 12:02

Простое сравнение

Автор skillful, 10 окт 2018, 20:49

0 Пользователей и 1 гость просматривают эту тему.

skillful

В ВыборкаДетальныеЗаписи.Номенклатура.КатегорияНоменклатуры есть категория одежды. Но условие не срабатывает на самом деле. В чем-то здесь ошибка:
Если ВыборкаДетальныеЗаписи.Номенклатура.КатегорияНоменклатуры = "Одежда" Тогда
        НоваяСтрока.Сумма = "456";
    КонецЕсли;

skillful

Цитата: skillful от 10 окт 2018, 20:49
В ВыборкаДетальныеЗаписи.Номенклатура.КатегорияНоменклатуры есть категория одежды. Но условие не срабатывает на самом деле. В чем-то здесь ошибка:
Если ВыборкаДетальныеЗаписи.Номенклатура.КатегорияНоменклатуры = "Одежда" Тогда
        НоваяСтрока.Сумма = "456";
    КонецЕсли;


Если строка(ВыборкаДетальныеЗаписи.Номенклатура.КатегорияНоменклатуры) = Строка("Одежда") Тогда
    НоваяСтрока.Сумма = "456";
КонецЕсли;


Попробуйте вот так.
Добавлено: 10 окт 2018, 21:07


Цитата: skillful от 10 окт 2018, 21:05Попробуйте вот так.

Спасибо. Работает.


oleg-x

Цитата: skillful от 10 окт 2018, 20:49
В ВыборкаДетальныеЗаписи.Номенклатура.КатегорияНоменклатуры есть категория одежды. Но условие не срабатывает на самом деле. В чем-то здесь ошибка:
Если ВыборкаДетальныеЗаписи.Номенклатура.КатегорияНоменклатуры = "Одежда" Тогда
        НоваяСтрока.Сумма = "456";
    КонецЕсли;

Ошибка простая. Вы сравниваете ссылочный тип со строковым.
Правильно будет так:
Если ВыборкаДетальныеЗаписи.Номенклатура.КатегорияНоменклатуры.Наименование = "Одежда" Тогда
    НоваяСтрока.Сумма = "456";
КонецЕсли;
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

skillful

Цитата: oleg-x от 11 окт 2018, 18:07
Ошибка простая. Вы сравниваете ссылочный тип со строковым.
Правильно будет так:
Если ВыборкаДетальныеЗаписи.Номенклатура.КатегорияНоменклатуры.Наименование = "Одежда" Тогда
    НоваяСтрока.Сумма = "456";
КонецЕсли;

Я так изначально делал. Так не работало, поэтому и написал сюда.

oleg-x

Можно и так сделать, как вы написали, но не во всех случаях, так как преобразуется в строку не определенны реквизит, а представление ссылки. В некоторых случаях результат может быть неожиданным. Например если преобразовать число 1545 в строку, то получим строку "1 545", а не "1545".
Лучше было бы проверить, почему у вас не срабатывает условие.
Либо через отладку, либо выдать сообщение
Сообщить("Категория номенклатуры =" + КатегорияНоменклатуры + ".");
Сообщить("Тип значения: " + ТипЗнч(КатегорияНоменклатуры));

И с вероятность 99.9% сразу станет все понятно.
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

skillful

Цитата: oleg-x от 12 окт 2018, 09:34
Можно и так сделать, как вы написали, но не во всех случаях, так как преобразуется в строку не определенны реквизит, а представление ссылки. В некоторых случаях результат может быть неожиданным. Например если преобразовать число 1545 в строку, то получим строку "1 545", а не "1545".
Лучше было бы проверить, почему у вас не срабатывает условие.
Либо через отладку, либо выдать сообщение
Сообщить("Категория номенклатуры =" + КатегорияНоменклатуры + ".");
Сообщить("Тип значения: " + ТипЗнч(КатегорияНоменклатуры));

И с вероятность 99.9% сразу станет все понятно.
Я понял вас. Я не заметил, что у вас написано ВыборкаДетальныеЗаписи.Номенклатура.КатегорияНоменклатуры.Наименование. Да, так срабатывает. Спасибо.

AIFrame

Цитата: skillful от 11 окт 2018, 18:42Я так изначально делал. Так не работало, поэтому и написал сюда.
А получить ссылку не проще?
СсылкаОдежда = Справочники.КатегорииНоменклатуры.НайтиПоНаименованию("Одежда");
Если ЗначениеЗаполнено(СсылкаОдежда) И ВыборкаДетальныеЗаписи.Номенклатура.КатегорияНоменклатуры = СсылкаОдежда Тогда
    НоваяСтрока.Сумма = 456;
КонецЕсли;

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск