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

Запись изменений регистра сведений. 1С8.2.последняя

Автор bolobol, 09 окт 2011, 01:44

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

bolobol

Ещё вопрос.

Сделал логирование действий пользователя в документ с табличными частями. Основные реквизиты документа - стандартные реквизиты объекта логирования (номер, код, регистратор, проведен и т.п.), табличная часть Измерений/Реквизитов/Ресурсов содержит описание изменения Измерений/Реквизитов/Ресурсов объекта логирования, вычисляемым по метаданным, заполняется в три колонки - Имя, Старое значение и Новое. Т.е. - логируются только изменения. ТЧ изменений в табличных частях объекта логирования - пять колонок - ИмяТЧ, НомерСтроки, ИмяРеквизита, СтароеЗначение, НовоеЗначение.

По подписке ко всем регистрам сведений, документам, справочникам на "ПередЗаписью", выполняется выборка записанной версии, сравнение с Источником, запись изменений. Но рассмотрим случай с регистром сведений - перед записью срабатывает по два раза:
1. очистка существующих записей по отбору - сравнение существующих записей с пустым набором
2. запись нового набора - сравнение пустого набора с новым набором

Таким образом, получаю два документа - спёрли все зописи по отбору И записали новый набор. По логике задачи, мне нужен один документ - что _изменили_, т.к. невозможна ситуация только стирания старых записей и отказа в записи нового набора. Но возможны ситуации - только стирания И только записи нового набора, т.е. нельзя гарантировать, что после логирования стирания возникнет обязательно логирование записи. Подскажите, как быть. Как же решить задачку-то?

Спасибо ))

comol

Посмотреть в УПП как работает механизм версионирования... там чуть хитрее всё
Статьи по оптимизации 1С: http://comol.livejournal.com/

bolobol

Это-то да, но там версионирование на хранилище значений реализовано, не совсем понятно как из хранилища получить информацию кто поменял это или что именно поменяли в том-то. Да и не видел (может, что плохо смотрел) версионирования изменений регистров. Да и не понятно, зачем проверять дважды изменения: во время записи (а нужно ли версионировать, если ничего не изменилось) И во время поиска изменений, т.к. в хранилище там суётся объект целиком.

comol

К сожалению с ХЗ единственный возможный и доступный вариант. Смысл - быстренько сохраняем полную версию объекта (это правда быстро происходит), а уж если нужно разобраться - сравниваем реквизиты версий... иначе закопаетесь и долго это будет работать.
Статьи по оптимизации 1С: http://comol.livejournal.com/

bolobol

Ну, пока что не закопались, да и проблем с производительностью не наблюдается. Сейчас открыт вопрос о протоколировании изменений в проводках документов при перепроведении, а мне изменения в регистре сведений даже не получить.
А с ХЗ - непонятно мне как получить изменения, как запрос будет выглядеть, чтобы узнать процесс изменения того или иного реквизита.

Теги:

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

Рейтинг@Mail.ru

Поиск