База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как заменить текущее наименование контрагента на предыдущее в ERP? › RE: Как заменить текущее наименование контрагента на предыдущее в ERP?
Для реализации обработки, которая будет заменять текущее значение в поле «Наименование» справочника «Контрагенты» на предыдущее значение, можно использовать механизм хранения истории изменений. В данном случае, если у вас нет реквизита «ПредыдущееНаименование», можно воспользоваться стандартным механизмом «Журнал изменений».
Вот пример кода, который можно использовать в обработке:
1C
Процедура ЗаменитьНаименование(КонтрагентСсылка)
// Получаем текущий контрагент
Контрагент = Справочники.Контрагенты.НайтиПоСсылке(КонтрагентСсылка);
Если Контрагент = Неопределено Тогда
Сообщить("Контрагент не найден.");
Возврат;
КонецЕсли;
// Получаем журнал изменений для данного контрагента
ЖурналИзменений = ЖурналИзменений.Получить(КонтрагентСсылка);
// Проверяем, есть ли записи в журнале изменений
Если ЖурналИзменений.Количество() = 0 Тогда
Сообщить("Нет предыдущих значений для замены.");
Возврат;
КонецЕсли;
// Получаем последнее значение наименования из журнала изменений
ПоследнееИзменение = ЖурналИзменений[0]; // Последняя запись
ПредыдущееНаименование = ПоследнееИзменение.Наименование;
// Заменяем текущее значение на предыдущее
Контрагент.Наименование = ПредыдущееНаименование;
Контрагент.Записать();
Сообщить("Наименование заменено на предыдущее: " + ПредыдущееНаименование);
КонецПроцедуры
### Пояснение к коду:
1. **Получение контрагента**: Сначала мы получаем контрагента по ссылке.
2. **Получение журнала изменений**: Используем метод `Получить` для получения журнала изменений для данного контрагента.
3. **Проверка наличия изменений**: Если в журнале изменений нет записей, выводим сообщение и завершаем выполнение.
4. **Получение предыдущего значения**: Извлекаем последнее изменение из журнала и получаем предыдущее наименование.
5. **Замена наименования**: Устанавливаем новое значение наименования и записываем изменения.
### Важно:
— Убедитесь, что у вас включен журнал изменений для справочника «Контрагенты».
— Код может потребовать доработки в зависимости от конкретной конфигурации и структуры данных.
Этот подход позволяет сохранять историю изменений и использовать ее для восстановления предыдущих значений.