Версия для печати темы (https://pro1c.org.ua/index.php?s=58b4cec40d48cc2f5642fcbe36d43bea&showtopic=59256)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Как правильно сравнивать два строковых реквизита? 1с 7.7 конф 7.7.00

Автор: ZUBR 27.05.20, 1:27

Здравствуйте. Привожу кусок кода модуля документа АктПриема

Изм=0;
Мистер.ПочтовыйАдрес=Адрес;
Если  Мистер.ПочтовыйАдрес<>Адрес Тогда
                    Мистер.ПочтовыйАдрес =Адрес;
                    Изм=1;
                КонецЕсли;

И после этого оказывается, что Изм=1. Почему?

Поле ввода Адрес в документе заполнено вручную.
Мистер - это элемент справочника Контрагенты (через СоздатьОбъект)
Спасибо!

Автор: denis84 27.05.20, 7:57

ZUBR @ Сегодня, 2:27 * ,
Добрый день! Вот пример:

Мистер =СоздатьОбъект("Справочник.Контрагенты");    
Изм=0;
Мистер.НайтиПоКоду(Контр.Код,0);       //контр - реквизит на форме
КК = Мистер.ТекущийЭлемент();

Если  ВРЕГ(СокрЛП(КК.ПочтовыйАдрес))<>ВРЕГ(СокрЛП(Адрес)) Тогда
    изм = 0;
    сообщить(изм);
Иначе  
    Изм=1;
    сообщить(изм);
КонецЕсли;

Автор: pablo 27.05.20, 9:21

У Вас может быть разная длина полей ПочтовыйАдрес и Адрес. Например, почтовый адрес 20 символов, а адрес - 50 символов. Копирование произойдет с отсечением лишних символов, а сравнение не выполнится, т.к. длина строк разная.

Автор: volodya1122 27.05.20, 9:27

Невелике пояснення до відповіді denis84.
Чому використовується СокрЛП. Тому, що для текстового поля, його значення завжди займає всі символи відведені для нього. Якшо вказали наприклад 100 символів, то незалежно від того скільки заповнили, строка для 1С буже виглядати так (наприклад Адреса: "м. Київ, вул Банківська __________________________ " - тобто допониться пробілами до 100 символів)

П.с., не по темі. Бачу ви всі повідомлення пишети вночі, А спите коли, вдень? При такій великій нагрузці можна скоро "вигоріти" на роботі

Автор: ZUBR 28.05.20, 22:47

volodya1122 @ Вчера, 10:27 * ,
Я взагалі не сплю)));

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua