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

Использование метода СтрНайти

Автор AlenaA, 22 апр 2025, 19:38

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

AlenaA

Необходимо чтобы при изменении Реквизита1 к значению Реквизита2 добавлять строку муж или жен, в зависимости от выбранного Реквизита1

Как мне объяснили нужно это делать при помощи метода СтрНайти

&НаКлиенте
Процедура Реквизит1ПриИзменении(Элемент)
Если СтрНайти (Объект.Реквизит2,"Муж") Тогда




Подскажите пожалуйста как дальше продолжить, что то я запуталась немного

antoneus

Поподробнее задачу можно описать? Что находится в реквизите1 и что в реквизите2?

AlenaA

antoneus, если дословно, то так будет
при изменении реквизита «Пол» к значению реквизита «Личные качества» добавлять строку «мужчина» либо «женщина», в зависимости от выбранного значения реквизита «Пол»

Делать нужно именно в процедуре ПолПриИзменении с помощью СтрНайти

antoneus

А какой тип у реквизита "Пол"?

AlenaA

antoneus, ПеречисленияСсылка.Пол (мужской и женский)

antoneus

СтрНайти не нужно.

&НаКлиент
Процедура Реквизит1ПриИзменении(Элемент)
   
    Если Реквизит1 = ПредопределенноеЗначение("Перечисление.Пол.Мужской") Тогда
        Если не СтрЗаканчиваетсяНа(Реквизит2, "мужчина") Тогда
            Реквизит2 = СтрЗаменить(Реквизит2, " женщина", "") + " мужчина"
        КонецЕсли;
    ИначеЕсли не СтрЗаканчиваетсяНа(Реквизит2, "женщина") Тогда//надеемся, что полов только два
        Реквизит2 = СтрЗаменить(Реквизит2, " мужчина", "") + " женщина"
    КонецЕсли;
КонецПроцедуры
Не проверял, но вроде должно работать.

AlenaA

antoneus, до этого был подобный код
Но сделать сказали именно с СтрНайти

antoneus

Ох уж эти говорители как делать. Лаба что ли и препод других функций не знает?

    Если Реквизит1 = ПредопределенноеЗначение("Перечисление.Пол.Мужской") Тогда
        Если СтрНайти(Реквизит2, "мужчина") <> 0 Тогда
            Реквизит2 = СтрЗаменить(Реквизит2, " женщина", "") + " мужчина"
        КонецЕсли;
    ИначеЕсли СтрНайти(Реквизит2, "женщина") <> 0 Тогда//надеемся, что полов только два
        Реквизит2 = СтрЗаменить(Реквизит2, " мужчина", "") + " женщина"
    КонецЕсли;

AlenaA

antoneus, ошибок не выдает, но на деле ничего не происходит

antoneus

Процедура к событию элемента привязана?

Теги:

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

Рейтинг@Mail.ru

Поиск