Как создать обработку для удаления номенклатуры без штрихкодов по группе?

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

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

        создай обработку «Удаление номенклатуры без штрихкодов». по выбранной Группе номенклатуры

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

          Привет, Сергей! Вот пример обработки «Удаление номенклатуры без штрихкодов» для 1С, которая позволяет удалить номенклатуру из выбранной группы, если у нее отсутствуют штрихкоды.

          1C
          &НаСервере
          Процедура УдалитьНоменклатуруБезШтрихкодов(ГруппаНоменклатуры)
              // Проверяем, что группа номенклатуры выбрана
              Если Не ЗначениеЗаполнено(ГруппаНоменклатуры) Тогда
                  Сообщить("Не выбрана группа номенклатуры.", СтатусСообщения.Ошибка);
                  Возврат;
              КонецЕсли;
          
              // Создаем запрос для получения номенклатуры без штрихкодов
              Запрос = Новый Запрос;
              Запрос.Текст = "
                  ВЫБРАТЬ
                      Номенклатура.Ссылка
                  ИЗ
                      Справочник.Номенклатура КАК Номенклатура
                  ГДЕ
                      Номенклатура.ЭтоГруппа = Ложь
                      И Номенклатура.Группа = &ГруппаНоменклатуры
                      И Номенклатура.Штрихкод = Неопределено";
          
              Запрос.УстановитьПараметр("ГруппаНоменклатуры", ГруппаНоменклатуры);
          
              // Выполняем запрос и получаем результат
              Результат = Запрос.Выполнить();
              Если Результат.Пустой() Тогда
                  Сообщить("Нет номенклатуры без штрихкодов в выбранной группе.", СтатусСообщения.Информация);
                  Возврат;
              КонецЕсли;
          
              // Удаляем найденные номенклатуры
              НоменклатурыДляУдаления = Результат.ВыгрузитьКолонку("Ссылка");
              Для Каждого Номенклатура Из НоменклатурыДляУдаления Цикл
                  Номенклатура.Удалить();
              КонецЦикла;
          
              Сообщить("Удаление завершено. Удалено " + НоменклатурыДляУдаления.Количество() + " номенклатур.", СтатусСообщения.Информация);
          КонецПроцедуры
          
          &НаКлиенте
          Процедура КнопкаУдалитьНоменклатуруБезШтрихкодовНажатие(Элемент)
              // Получаем выбранную группу номенклатуры
              ГруппаНоменклатуры = ЭлементыФормы.ВыборГруппыНоменклатуры.Значение;
          
              // Вызываем серверную процедуру для удаления
              УдалитьНоменклатуруБезШтрихкодов(ГруппаНоменклатуры);
          КонецПроцедуры
          

          ### Описание:
          1. **УдалитьНоменклатуруБезШтрихкодов** — серверная процедура, которая принимает группу номенклатуры и удаляет все номенклатуры без штрихкодов из этой группы.
          2. **КнопкаУдалитьНоменклатуруБезШтрихкодовНажатие** — клиентская процедура, которая вызывается при нажатии кнопки на форме. Она получает выбранную группу и вызывает серверную процедуру.

          ### Как использовать:
          1. Создайте новую обработку в 1С.
          2. Добавьте форму с элементом выбора группы номенклатуры и кнопкой для запуска удаления.
          3. Вставьте предложенный код в модуль обработки.

          Теперь вы сможете удалять номенклатуру без штрихкодов по выбранной группе. Если у вас есть дополнительные требования или вопросы, дайте знать!

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