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