|
Как выборочно удалить некоторые записи из регистра накопления? | ☑ | ||
---|---|---|---|---|
0
MathaiShung
25.04.16
✎
19:55
|
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ | СвободныеОстаткиОстатки.Номенклатура, | СвободныеОстаткиОстатки.КоличествоВСвободномОстаткеОстаток |ИЗ | РегистрНакопления.СвободныеОстатки.Остатки( | , | (Номенклатура, Склад) В | (ВЫБРАТЬ | ТабИзменившихсяТоваров.Номенклатура, | ТабИзменившихсяТоваров.Склад | ИЗ | ТабИзменившихсяТоваров КАК ТабИзменившихсяТоваров)) КАК СвободныеОстаткиОстатки |ГДЕ | СвободныеОстаткиОстатки.КоличествоВСвободномОстаткеОстаток < 0"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл //Удаление ранее записаных движений по соответствующей номенклатуре Движения.РезервированиеТоваров.Удалить(//индекс записи); Движения.СвободныеОстатки.Удалить(//индекс записи); Нехватка = ВыборкаДетальныеЗаписи.КоличествоВСвободномОстаткеОстаток; Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "В документе №"+Номер+" от "+Дата+" на складе не хватает "+Нехватка+" единиц товара "+ВыборкаДетальныеЗаписи.Номенклатура; Сообщение.Сообщить(); КонецЦикла; Перед запросом осуществляется запись движений в регистры РезервированиеТоваров и СвободныеОстатки. Всё происходит не в обработчике проведения, поэтому движения нужно удалить самостоятельно. Подскажите пожалуйста, как получить индекс интересующей меня записи, или каким-то другим способом отобрать записи по нужной номенклатуре для их последующего удаления из соответствующих регистров? |
|||
1
Джинн
25.04.16
✎
20:05
|
> Всё происходит не в обработчике проведения
Кривая архитектура по-определению. |
|||
2
MathaiShung
25.04.16
✎
20:06
|
(1) Почему? Это специально сделано как экспортная процедура для резервирования товаров без проведения документа.
|
|||
3
Джинн
25.04.16
✎
20:08
|
Справка-расчет что показывает?
Изначально из Расчетов по реализации берется. Если пишет в долги, значит не закрытые документы есть. |
|||
4
MathaiShung
25.04.16
✎
20:12
|
(3) Не знаю, у меня это учебная задача и не типовая конфигурация. Меня интересует как в данном конкретном случае решить эту проблему.
|
|||
5
Джинн
25.04.16
✎
20:15
|
(2) Даже если что-то специально делают через жпо, то это ничего не меняет.
|
|||
6
kosts
25.04.16
✎
21:10
|
(0) Так можно.
Что бы удалить записи из регистра подчиненного регистратору, надо обрабатывать движения по регистраторам. Т.е. выборка должна вернуть только регистраторы. Затем по каждому регистратору читаешь, перебираешь движения (без запроса) и записываешь в новый набор в том виде который нужен. Для уменьшения проблем если есть какие-то подписки, можно установить признак обмена. Только если документ будет перепроведен, то всё вернется на круги обратно. |
|||
7
MathaiShung
26.04.16
✎
11:30
|
(6) Ага, кажется ясно, попробую... Спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |