Odin | База знаний 1С

Как создать обработ...
 

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


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

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



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

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

1C
&НаСервере
Процедура УдалитьНоменклатуруБезШтрихкодов(ГруппаНоменклатуры)
    // Проверяем, что группа номенклатуры выбрана
    Если Не ЗначениеЗаполнено(ГруппаНоменклатуры) Тогда
        Сообщить("Не выбрана группа номенклатуры.", СтатусСообщения.Ошибка);
        Возврат;
    КонецЕсли;

    // Создаем запрос для получения номенклатуры без штрихкодов
    Запрос = Новый Запрос;
    Запрос.Текст = "
        ВЫБРАТЬ
            Номенклатура.Ссылка
        ИЗ
            Справочник.Номенклатура КАК Номенклатура
        ГДЕ
            Номенклатура.ЭтоГруппа = Ложь
            И Номенклатура.Группа = &ГруппаНоменклатуры
            И Номенклатура.Штрихкод = Неопределено";

    Запрос.УстановитьПараметр("ГруппаНоменклатуры", ГруппаНоменклатуры);

    // Выполняем запрос и получаем результат
    Результат = Запрос.Выполнить();
    Если Результат.Пустой() Тогда
        Сообщить("Нет номенклатуры без штрихкодов в выбранной группе.", СтатусСообщения.Информация);
        Возврат;
    КонецЕсли;

    // Удаляем найденные номенклатуры
    НоменклатурыДляУдаления = Результат.ВыгрузитьКолонку("Ссылка");
    Для Каждого Номенклатура Из НоменклатурыДляУдаления Цикл
        Номенклатура.Удалить();
    КонецЦикла;

    Сообщить("Удаление завершено. Удалено " + НоменклатурыДляУдаления.Количество() + " номенклатур.", СтатусСообщения.Информация);
КонецПроцедуры

&НаКлиенте
Процедура КнопкаУдалитьНоменклатуруБезШтрихкодовНажатие(Элемент)
    // Получаем выбранную группу номенклатуры
    ГруппаНоменклатуры = ЭлементыФормы.ВыборГруппыНоменклатуры.Значение;

    // Вызываем серверную процедуру для удаления
    УдалитьНоменклатуруБезШтрихкодов(ГруппаНоменклатуры);
КонецПроцедуры

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

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

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



   
ОтветитьЦитата