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