Выборочное удаление движений из регистра накопления #169232


#0 by НуженОтвет
Возможно ли из регистра накопления, используя набор записей, выборочно удалить движения. Только вот отбор при этом делать не только по регистратору, но, например, еще по номенклатуре, где последняя является измерением регистра. Это возможно или нет?
#1 by Волшебник
Что мешает?
#2 by НуженОтвет
Не получается установить отбор, кроме как по регистратору.
#3 by Волшебник
Устанавливаешь отбор по регистратору, считываешь записи набора, удаляешь лишние, пишешь набор обратно.
#4 by НуженОтвет
Идея в том, чтобы изменять только те строки табличной части, которые реально изменились, а не дергать БД всей табличной частью. 1. Получаем таблицу измененных строк. 2. Удаляем измененные строки. (не получается) 3. Дозаписываем движения, а те которые не изменялись - не трогаем.
#5 by Lendy
привязывай номер строки с строке движения.
#6 by НуженОтвет
Если можно, то конкретнее.
#7 by vde69
добабь измерение НомерСтроки
#8 by vde69
:) красивая опеч.
#9 by Lendy
"...Только вот отбор при этом делать не только по регистратору, но, например, еще по номенклатуре..." +поиск конкретной строки для удаления по номеру.
#10 by Mort
Сомнительная выгода, ИМХО...
#11 by PR
Если привязка к регистратору, то отбор можно делать только по регистратору
#12 by Lendy
Да. "Устанавливаешь отбор по регистратору, считываешь записи набора, удаляешь лишние, пишешь набор обратно", а строки для удаления ищем по номеру, чтобы не нужен был отбор по номенклатуре.
#13 by НуженОтвет
При емких документах и большом количестве пользователей плюс массовое перепроведение документов после окончательной комплектации заказов на складах выгода будет.
#14 by НуженОтвет
Да не хочу я весь набор туда-сюда дергать. Весь смысл в том, чтобы не перепесывать 500 строк движений, если в документе реально поменяли одну-три строки, что чаще всего и бывает при переделках.
#15 by Lendy
Не пробовал, но отбор может работать для полей, у которых стоит признак "индексировать".
#16 by vde69
это подход из 7.7, ИХМО в 8.0 лучше писать весь набор (или хотя-бы по 1 регистру), а то потом путаница будет. Да и скорость не очень изменяеться да и придеться отказаться от автоматической очистки регистра
#17 by Mort
Если уж очень хочется то привязывай строку (скрытый ID а не автономерацию) к движению, плюс с момента начала изменения пиши лог в переменную ТЗ формата |ID_Строки|ВидФрикцииНадНей| и при записи совершай тоже с движениями. Работать будет хреново зато желание (типа ) исчезнет ;)
#18 by НуженОтвет
Мне думается будет выигрыш в скорости. Есть разница, удалить 500 строк и заново записать 500 строк или удалить две и записать две. Умножаем на количество операторов на складах и количество перепроводимых документов. Если аккуратно сделать, то не будет путаницы. Теряем автоматическое удаление движений - не страшно.
#19 by vde69
долго делаеться не запись в регист, а формировании данных к записи а в твоем случае можно именно это сократить
#20 by НуженОтвет
Это уже другой вариант реализации. Короче, из набора записей выборочное удаление строк движений не катит, насколько я понял.
#21 by vde69
думаю твой алгоритм будет такой 1. получаем набор из регистра 2. меняем в нем строки 3. записываем набор
#22 by НуженОтвет
Похоже на то. Думается, что все-таки объекту НаборЗаписей не помешали бы еще несколько методов для более тонкой работы над записями. Господа, всем спасибо за участие. Удачи вам. И мне. :-)
#23 by КонецЦикла
А каких не хватает?
#24 by Vozhd
А по-моему всего хватает. Если начать добавлять, то легко может разрушиться то, что уже есть...
#25 by Mort
РегистрНакопленияНаборЗаписей.МолниеносноБыстроИБезГемораЗаменитьДвиженияДокументаНаНовые
#26 by НуженОтвет
В частности, отбор не только по регистратору, а по регистратору + измерение регистра. И еще по реквизиту. И еще... Полез за губозакатывателем...
#27 by Vozhd
Допустим, Вы это получили. Вы обновили записи в базе по своим условиям, а потом вдруг понадобилось как-то различать записи регистра с одним регистратором. Как Вы реализуете механизм, который бы гарантировал возможность различить разные записи одного регистратора?
#28 by НуженОтвет
Если это понадобиться, то это следует учесть при проектировании структуры конкретного регистра и формировании движений по нему. Мне же нужна лишь возможность считывать в набор подмножество записей регистратора по одному из его регистров, а не все.
#29 by Mort
Будущее поколение спасибо тебе не скажет за расширение ключа. Си плюс плюсники даж под "юзерами" зачастую понимают программеров которые будут юзать их классы (зачастую это они сами), поэтому так трепетно относятся к правилам доступа и необходимым ограничениям. Не в тему но где-то из одной оперы...)
#30 by НуженОтвет
Не знаю. Может быть. Мне это показалось логичным. Можно быстро построчно дописать движения к существующим, но нельзя аналогично быстро построчно удалить движения из существующих. В рамках регистратора, естественно.
#31 by vasinok
в модуле набора записей регистра: :)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям