Проверить при записи в регистр сведений #518668


#0 by Триша
Как узнать новая это информация или перезапись старой? И если перезапись, то какие поля перезаписываются. Регистр сведений непериодический независимый.
#1 by Ненавижу 1С
например в событии перед записью набора записей запросом получить аналогичный набор и сравнить с текущим
#2 by Триша
Я так делаю, но почему-то запрос никогда ничего не находит.
#3 by butterbean
код покажи
#4 by Триша
#5 by patapum
какие записи перезаписываются, зависит от установленного на набор записей отбора: ЭтотОбъект.Отбор
#6 by patapum
+ а также признака, затирать ли старые - сходу не знаю где в модуле РС посмотреть
#7 by Триша
Разве Отбор показывает не по каким значениям отбираются записи, а наличие или отсутствие этой информации в регистре. И еще он не покажет какие реквизиты изменились? Мне при записи в РС нужно знать, если информация заноситься впервые, то какие реквизиты заполнены. Если перезаписывается, то какое значение у реквизитов было до изменения
#8 by Ненавижу 1С
уже сомнительно то, что ПередЗаписью у вас не имеет параметров и где она расположена у вас?
#9 by Триша
В модуле регистра. Какие должны быть параметры?
#10 by hhhh
счетчик поставь. Если новая то ПриЗаписи вызывается один раз, если перезапись старой, то ПриЗаписи вызывается 2 раза - 1. При удалении старой записи, 2. При добавлении новой.
#11 by Триша
спасибо, это интересно. А при удалении записи сколько раз вызывается?
#12 by patapum
отбор показывает, какие записи он затрет (не пробовал, правда, указать отбор, не соответствующий записям набора...) а какие измерения перезаписываются - сама анализируй. и кто тебе скажет, какие измерения перезаписываешь, если например, ты стираешь 5 записей, а записываешь 3?
#13 by Триша
да нет, событие передЗаписью и приЗаписи работает для каждой записи, которую добавляют или изменяют, или удаляют. Там в наборе не больше 1 записи. Вот юзер открыл форму списка регистра и руками что-то там изменяет. При переходе на другую строку или при нажатии Enter срабатывают эти события. А мне нужно знать точно, что он сделал.
#14 by Souvenire
"Вот юзер открыл форму списка регистра и руками что-то там изменяет". Тут что-то не так...
#15 by Триша
Вы к словам придираетесь или хотите что-то по делу сказать? Сформулируйте, пожалуйста, свою мысль
#16 by patapum
ага, сегодня у тебя так. а через два месяца приспичит записать большой набор записей чем-нибудь. так что написав анализ, подумай, а что он у тебя выдаст на нескольких записях
#17 by Souvenire
Придираюсь к юзеру. Чо он в регистр свои руки пихает? Создай регистр с теми же измерениями/ресурсами, и просто копируй изменяемую запись из твоего регистра. Уже будет история. Дальше по желанию всякие условия, отборы, отчеты и пр.
#18 by patapum
кстати, как вариант, сделай форму записи РС. и в ее ПередЗаписью, возможно, все будет проще
#19 by Триша
У меня сегодня не только так, но и по-другому. Все равно события срабатывают для каждой конктетной ОДНОЙ записи. Даже если я буду записывать 15 записей программно, все равно события будут выполняться для каждой записи, т.е. 15 раз. Проблема в остается.
#20 by Триша
Как вариант, не пройдет, потому что у меня в этот регистр запись осуществляется не только руками юзеров, но и несколькими обработками, и регламентным заданием. Ага, понятно. А второй регистр какой? Периодический? Собственно, у меня 2 РС. В первом регистре мне нужно отслеживать изменения в записях, чтобы эти изменения писать во второй РС.
#21 by butterbean
зачем такие сложности?? просто ПередЗаписью набора получить текущие значения и проанализировать нельзя что-ли??
#22 by Триша
Вот я как раз и хочу проанализировать! Не получается! Я и спрашиваю: как это сделать? Проблема у меня такая: из базы не1С регламентным задание в базу 1С заносятся данные о выписанных контрагентам квитанциях. В базе 1С юзеры разносят оплату по этим квитанциям. Ежедневно нужно передавать обратно в базу не1С информацию об оплате по квитанциям. Квитанции записаны в 1 РС. Там и неоплаченные и оплаченные. Как только у квитанции появляется оплаты в 1 РС, ее нужно сразу же записать  в 2 РС, из которого регламентное задание раз в сутки переносит эти данные в базу не1С. Так вот, пока оплаты нет, во 2 РС этой квитанции тоже быть не должно. Однако бывает довольно часто, что оплату ставят не на ту квитанцию, потом оплату убирают с этой квитанции и ставят на другую. Значит в 2 РС должно появиться 2 строки: одна - для первой квитанции с минусом, втрорая - для второй квитанции с плюсом.
#23 by butterbean
проще анализировать состояние 2-го регистра - в модуле набора 1-го регистра пробегаться по записям и делать запрос ко 2-му
#24 by butterbean
+ если во 2-м есть запись - то добавлять корректировочную, а если нет - просто добавлять новую
#25 by Триша
Идея была 2 РС очищать после каждого обмена с другой базой. Очень много этих квитанций. Поэтому, если вчера туда попала оплата, ночью прошел обмен, сегодня в 2 РС пусто, запрос ничего не найдет.
#26 by Триша
Как узнать какие записи нужно передавать, а какие нет?
#27 by butterbean
ну тогда можно в запрос к 1-му регистру передавать значения из отбора, а не из 1-й записи набора: и т.п.
#28 by butterbean
+ ну и проверять Отбор.Контрагент.Использование и т.п.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С