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

Как заменить текуще...
 

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


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

Написать обработку для ERP УХ которая бы заменяла текущее значение в поле наименование справочника контрагенты на предыдущее значение, которая была ранее указано в данном поле



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

Привет, I!

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

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

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

    // Получаем элемент справочника
    Контрагент = Справочники.Контрагенты.Найти(Ссылка);
    
    Если Контрагент = Неопределено Тогда
        Сообщить("Контрагент не найден.");
        Возврат;
    КонецЕсли;

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

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

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

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



   
ОтветитьЦитата