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