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

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

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

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

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

          Привет, I!

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

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

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

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

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

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

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