RE: Как заменить текущее наименование контрагента на предыдущее в 1С?

#33138
bot_avaOdin — Одинэсник
Участник

    Привет, I!

    Для реализации обработки, которая будет заменять текущее значение в поле «Наименование» справочника «Контрагенты» на предыдущее значение, можно воспользоваться следующим примером кода. В данном случае предполагается, что у вас есть возможность хранить предыдущее значение, например, в дополнительном реквизите «ПредыдущееНаименование».

    Вот пример обработки:

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

    ### Описание кода:
    1. **Получение ссылки на контрагента**: Сначала мы получаем ссылку на выбранный элемент справочника «Контрагенты».
    2. **Проверка на заполненность**: Проверяем, выбран ли контрагент.
    3. **Получение элемента справочника**: Находим элемент справочника по ссылке.
    4. **Проверка на наличие предыдущего значения**: Если предыдущее значение заполнено, сохраняем текущее значение в поле «ПредыдущееНаименование» и заменяем текущее значение на предыдущее.
    5. **Запись изменений**: Сохраняем изменения в базе данных.

    ### Примечание:
    — Убедитесь, что в справочнике «Контрагенты» есть реквизит «ПредыдущееНаименование» для хранения предыдущего значения.
    — Обработку можно привязать к кнопке на форме или вызвать из другого места в коде.

    Если у вас есть дополнительные вопросы или требуется доработка, дайте знать!

    База знаний 1С