Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 17:38

Удаление штрихкода в связанных объектах

Автор gabi, 20 сен 2024, 14:26

0 Пользователей и 2 гостей просматривают эту тему.

gabi

пытаюсь понять логику обработки....

1 надо получить штрихкод номенклатуры помеченный на удаление
2 получить связанные с ней (номенклатурой) объекты
3 пометить на удаление связанные объекты
4 удалить штрихкод помеченных объектов
5 удалить помеченные объекты

Получается мне нужно получить Штрихкод в какое-то поле оно начнет поиск этого штрихкода в номенклатуре и связанных объектов (характеристики, например). поиск покажет список , всего найденного . потом автоматически пометить на удаление и нажать на удаление?
 или не правильно понимаю логику реализации?

Максим75

gabi, обычно сейчас типовые реализованы так, что штрихкод хранится в регистре сведений.
просто удалите запись из регистра сведений. а потом уже с номенклатурой разбирайтесь.
а вообще логика такая - вначале удаляются (если возможно) все ссылки в других объектах на нужный объект (который планируете физически удалить), а уже потом удаляется объект.

LexaK

gabi,
Цитировать2 получить связанные с ней (номенклатурой) объекты
допустим вы нашли 1000 документов Приходных/расходных в которых указаны еще многие сотни других товаров
и вы планируете все эти связанные, содержащие помеченную на удаление номенклатуру
эти документы удалить?
если помогло нажмите: Спасибо!

gabi

LexaK, та номенклатура которая помечена на удаление, у нее есть штрихкоды(бывает же и несколько потому как у нее есть характеристики)

gabi

LexaK, номенклатуру ставим на удаление и в документе когда захотим удалить чтобы не было вот этих связанных, чтобы обработка сразу находила штрихкод(который относится к этой номенклатуре) и сразу вместе с номенклатурой удаляла

Максим75

gabi, ну есть и есть, кому штрих код мешает в базе при удаленной номенклатуре?
еще раз пишу - штрих код хранится отдельно. можете смело его удалять прямо в регистре сведений. он обычно никогда в документах не пишется, служит исключительно для того, чтобы найти номенклатуру (ну и характеристику, если разный штрих код для разных характеристик), а уже по номенклатуре ищется много чего (цена например).

Максим75

Цитата: gabi от 20 сен 2024, 14:56LexaK, номенклатуру ставим на удаление и в документе когда захотим удалить чтобы не было вот этих связанных, чтобы обработка сразу находила штрихкод(который относится к этой номенклатуре) и сразу вместе с номенклатурой удаляла
если Вы удалите физически с базы номенклатуру, то очень вероятно, что нарушится целостность базы, поскольку очень большая вероятность, что номенклатура есть в документах. и будет ссылка на несуществующий объект.

gabi

Максим75, я по чем знаю, зачем понадобилась людям такая обработка? мне тоже не совсем ясна суть этих действий....
помечается номенклатура, которую надо удалить, полностью, и дальше связи - штрихкод ном., характеристику (если есть) и из регистра удалить поскольку номенклатура может быть весовой.

gabi

LexaK, как лучше выгрузить список помеченной номенклатуры, массивом?
&НаКлиенте
Процедура Удаление(Команда)
УдалениеНаСервере();
КонецПроцедуры

&НаСервере
Процедура УдалениеНаСервере()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.ПометкаУдаления = ИСТИНА";

РезультатЗапроса = Запрос.Выполнить();

Выборка = РезультатЗапроса.Выбрать();



Пока Выборка.Следующий() Цикл
   ///код 
КонецЦикла;

КонецПроцедуры

а потом
Пока Выборка.Следующий() Цикл
      МассивСсылок = новый массив;
       массивссылок.добавить("ссылка");
       удаляемыеОбъекты = массивссылок;
       УдалениеПомеченныхОбъектов.УдалитьПомеченныеОбъекты(УдаляемыеОбъекты, РежимУдаления)

КонецЦикла;   



так?

fruitella

Если ссылки есть у объекта, то транзакция откатиться, удалить не даст.
Проще настроить автоудаление по регламентному заданию, перед эти проверять ссылки.

Или создать группу, назвать ее Архив или удаленные. Перемещать в эту группу всю номенклатуру с пометкой на удаление. А потом когда нужно в этой группе удалять полностью. Ты объясни тем кто просит, что удалять сразу это не логично. Всегда будет человеческий фактор, а что если ты случайно пометил на удаление?

Похожие темы (5)

Рейтинг@Mail.ru

Поиск