Как при записи элемента справочника определить, какие именно реквизиты изменены? #611112


#0 by Михаил Анянов
Как при записи элемента справочника определить, какие именно реквизиты изменены? Возможно ли это и как реализовать?
#1 by alextom81
Через объект метаданных и элемент формы
#2 by Михаил Анянов
Суть задачи, при изменении только Родителя - никаких проверок при записи не делать, во всех остальных случаях осуществлять ряд проверок.
#4 by Reset
а) Хранить структуру реквизитов до измения б) Взять предыдущие из БД ПередЗаписью (по ссылке)
#5 by НЕА123
+1
#6 by Михаил Анянов
а как пробежаться по всем реквизитам?
#7 by Reset
а) Из метаданных б) Выбрать *
#8 by Cube
А тебе нужно конкретно знать, что изменено или пофиг?
#9 by Reset
Да, прав, можно использовать модифицированность, при таковой сравнивать только Родителя (если )
#10 by Михаил Анянов
#11 by Михаил Анянов
Забыл: СписокРеквизитов = ЭтотОбъект.Метаданные.Реквизиты;
#12 by Reset
Что написать - зависит от того, что находится в СписокРеквизитов
#13 by Михаил Анянов
Мне нужно определить, что не изменилось ничего кроме родителя
#14 by Михаил Анянов
Т.е. перебрать все реквизиты надо
#15 by Reset
Если Ссылка[текРеквизит.Имя]<>ЭтотОбъект[текРеквизит.Имя] Хотя меня лично коробит множественное обращение по ссылке
#16 by Reset
и - взаимоисключающие утверждения
#17 by Maxus43
запросом вытащить предварительно можно
#18 by Cube
Фигня какая-то... Информация может храниться в регистрах сведений и/или подчиненных справочниках... Как их проверять будешь?
#19 by Reset
Поторопился -
#20 by Reset
Я так и предлагаю :)
#21 by Михаил Анянов
как же они взаимоисключающие? Мне нужно получить список измененных реквизитов, если он будет состоять только из Родителя - тогда Возврат, иначе - проверки.
#22 by Михаил Анянов
Интересуют только реквизиты! :)
#23 by Михаил Анянов
Интересуют только реквизиты самого объекта!
#24 by Михаил Анянов
ну а иначе никак... либо перед записью в таблицу все реквизиты текущего объекта просто выгружать... В результате обращение к объекту будет одно.
#25 by Михаил Анянов
Спасибо за советы, сейчас буду мудрить :)
#26 by Reset
а) Получить запросом б) Создать временный объект - копию: ОбъектДоИзменения=Ссылка.ПолучитьОбъект
#27 by hhhh
не, там и так всё в порядке. По ссылке один раз получается объект и дальше уже он используется. То есть временный объект сам создается платформой. Не нужно заморачиваться.
#28 by Maxus43
некрасиво просто. я за запрос!
#29 by Михаил Анянов
Всем спасибо большое! Сделал так в модуле ПередЗаписью
#30 by Михаил Анянов
Есть один косяк, СписокРеквизитов = ЭтотОбъект.Метаданные.Реквизиты - в список Родитель не попадает, и другие стандартные реквизиты
#31 by Михаил Анянов
#32 by Reset
Нормально вполне себе, молодца :)
#33 by AAlexandra
КолонкиИзЗапроса = Запрос.Выполнить.Колонки;
#34 by Alex375
А тебе надо отследить изменения в объекте при редактировании через форму или при любых изменениях объекта? Просто если через форму, тогда можно проще - завести флаг и его выставлять при изменении реквизитов в форме.
#35 by Михаил Анянов
при любых, как обработкой, так и обменом
#36 by hhhh
а чего у вас там постоянно родителя туда-сюда меняют у элементов? Может не стоит такую офигенную проверку устраивать каждый раз, а сделать с родителем так же.
#37 by Михаил Анянов
тот флаг о котором ты говоришь итак есть стандартно, ЭтотОбъект.Модифицированность
#38 by Михаил Анянов
справочник обрабатывается как ручками, так и обработками различными. Если подскажешь как мне определить, что происходит событие смены родителя, то буду благодарен :)
#39 by hhhh
ну легко: ПриСменеТекущегоРодителя (OnCurrentParentChange) Синтаксис: ПриСменеТекущегоРодителя Описание: Возникает при изменении текущего родителя в режиме иерархического списка.
#40 by DrShad
подписку на событие не предлагать?
#41 by Михаил Анянов
Ага, только рассмотрите еще один момент, помимо родителя я одновременно могу например еще и наименование изменить, и т.п.
#42 by Михаил Анянов
- собитие при записи все равно ведь выполнится с кучей проверок внутри?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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