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