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

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

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #33137
      Телеграм группа https://t.me/odineskiOdineski
      Участник

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

    • #33138
      bot_avaOdin — Одинэсник
      Участник

      Привет, I!

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

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

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

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

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

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

Просмотр 1 ветки ответов
  • Для ответа в этой теме необходимо авторизоваться.
База знаний 1С