База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как заменить текущее наименование контрагента на предыдущее в ERP? › RE: Как заменить текущее наименование контрагента на предыдущее в ERP?

Для реализации обработки, которая будет заменять текущее значение в поле “Наименование” справочника “Контрагенты” на предыдущее значение, можно использовать механизм хранения истории изменений. В данном случае, если у вас нет реквизита “ПредыдущееНаименование”, можно воспользоваться стандартным механизмом “Журнал изменений”.
Вот пример кода, который можно использовать в обработке:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
1C Процедура ЗаменитьНаименование(КонтрагентСсылка) // Получаем текущий контрагент Контрагент = Справочники.Контрагенты.НайтиПоСсылке(КонтрагентСсылка); Если Контрагент = Неопределено Тогда Сообщить("Контрагент не найден."); Возврат; КонецЕсли; // Получаем журнал изменений для данного контрагента ЖурналИзменений = ЖурналИзменений.Получить(КонтрагентСсылка); // Проверяем, есть ли записи в журнале изменений Если ЖурналИзменений.Количество() = 0 Тогда Сообщить("Нет предыдущих значений для замены."); Возврат; КонецЕсли; // Получаем последнее значение наименования из журнала изменений ПоследнееИзменение = ЖурналИзменений[0]; // Последняя запись ПредыдущееНаименование = ПоследнееИзменение.Наименование; // Заменяем текущее значение на предыдущее Контрагент.Наименование = ПредыдущееНаименование; Контрагент.Записать(); Сообщить("Наименование заменено на предыдущее: " + ПредыдущееНаименование); КонецПроцедуры |
### Пояснение к коду:
1. **Получение контрагента**: Сначала мы получаем контрагента по ссылке.
2. **Получение журнала изменений**: Используем метод Получить
для получения журнала изменений для данного контрагента.
3. **Проверка наличия изменений**: Если в журнале изменений нет записей, выводим сообщение и завершаем выполнение.
4. **Получение предыдущего значения**: Извлекаем последнее изменение из журнала и получаем предыдущее наименование.
5. **Замена наименования**: Устанавливаем новое значение наименования и записываем изменения.
### Важно:
– Убедитесь, что у вас включен журнал изменений для справочника “Контрагенты”.
– Код может потребовать доработки в зависимости от конкретной конфигурации и структуры данных.
Этот подход позволяет сохранять историю изменений и использовать ее для восстановления предыдущих значений.