|
Работа с типовым механизмом "ИсторияДанных"
|
Я
|
|
mzelensky 08.05.20 - 10:28 | Доброго времени суток!
Платформа 1С 8.3.12
Вопрос по типовому механизму "ИсторияДанных". В данной версии платформы он уже есть, правда несколько с урезанным функционалом. Суть проблемы в том, что новая "Версия данных" сохраняется при любой записи объекта, т.е. не важно изменился объект или нет - соответствующая запись все-равно запишется в БД. НАшел вот такую статью (не сочтите за рекламу), где в комментах этот факт подтвердили:
http://catalog.mista.ru/public/699109/
Выдержки:
"Данные истории мы храним в отдельных таблицах информационной базы. Для повышения эффективности мы храним только разницу между версиями данных. Если у вас есть «тяжёлый» документ с большим количеством строк в табличной части, а вы меняете только один реквизит в самом документе, то в истории данных сохранится только одно это изменение. То есть у вас не будет храниться множество копий этого объекта, и занимать место на диске"
...
"Создается только запись о факте записи версии. Если не было изменений - то никакие больше данные в ней не храняться. Поэтому много места даже много таких версий не съедят"
Итак, вопрос - пробовал ли кто-то сделать так, чтобы запись делалась ТОЛЬКО тогда, когда объект изменился, по отношению к предыдущей версии?!
П.С. На вопрос "для нафига все это?!" отвечаю - "для экономии места" |
Комрад1 1 - 08.05.20 - 10:32 | ( 0) А нормальную платформу с полноценной поддержкой истории данных не судьба поставить? |
mzelensky 2 - 08.05.20 - 10:39 | ( 1) Например, в какой версии платформы, можно произвести соответствующую настройку?! |
mzelensky 3 - 08.05.20 - 11:02 | ?
|
Комрад1 4 - 08.05.20 - 11:07 | ( 2) В 8.3.15 добавили обработчики, в которых можно перехватывать запись истории. Читайте ИТС. |
Cyberhawk 5 - 08.05.20 - 11:08 | А сколько места ты таким образом собрался сэкономить?
|
mzelensky 6 - 08.05.20 - 11:40 | |
mzelensky 7 - 08.05.20 - 11:41 | ( 5) Все что сэкономлю - все МОЕ! |
mzelensky 8 - 08.05.20 - 13:33 | ап
|
D_E_S_131 9 - 08.05.20 - 13:42 | А подписка-то на ИТС есть? :)
|
vde69 10 - 08.05.20 - 13:52 | с этим механизмом мало кто работа я вчера в пустоту спрашивал ИсторияДанных.УдалитьВерсии - можно-ли удалить удаление?
по сабжу:
объект очень специфический, вероятно еще много будет дорабатыватся. место жрет реально мало об этом можешь не беспокоится...
из явных минусов
1. очень медленный,
2. отборы не все работают
3. плохо задокументирован
4. не поднимает ошибки, вместо просто что-то может игнорировать |
vde69 11 - 08.05.20 - 13:55 | +
5. встроен типовой интервал 20 дней хранения истории, сделать другой интервал нельзя
6. при удалении промежуточной версии результат не пересчитывается
7. данные хранятся в очень странном формате "представление+ссылка", что с одной стороны хорошо, с другой стороны не работают типовые механизмы типа заполнитьзначения()
|
mzelensky 12 - 08.05.20 - 14:21 | ( 10) А после удаления данные обновил? |
mzelensky 13 - 08.05.20 - 14:23 | ( 9) Лично у меня нет. А обязательно должна быть? |
kumena 14 - 08.05.20 - 14:26 | Чем платформенная история лучше бспшной?
|
vde69 15 - 08.05.20 - 14:28 | ( 14) при записи обьекта работает намного быстрее |
kumena 16 - 08.05.20 - 14:28 | и можно ли её отключить, если уже версионирование ведется в базе? она же явно влияет на скрость.
|
mzelensky 17 - 08.05.20 - 14:31 | |
D_E_S_131 18 - 08.05.20 - 15:47 | ( 16) Ведение истории по умолчанию включено для реквизитов, но отключено для объекта. Я сделал обработку по включению объекта метаданных в ведение истории и новый объект, который нужно версионировать одной галочкой включается. Для механизма из БСП нужно в нескольких местах код в конфигураторе прописать. |
D_E_S_131 19 - 08.05.20 - 15:52 | ( 10) и ( 11) Почитайте внимательнее по ссылке с ИТС (это же и ответ на ваш п.3). "20 дней" - это про стэк постобработки написано, удаление самих версий регулирует разработчик. Т.е. нужно написать некий аналог функционалу БСП, по регламентной очистке старых версий. |
Вафель 20 - 08.05.20 - 15:57 | бсп до сих пор его не юзает. почему? вот вопрос
|
D_E_S_131 21 - 08.05.20 - 16:02 | Еще момент - механизм БСП ограничен по 3 типам объектов, а в платформенном еще и РС можно версионировать.
http://catalog.mista.ru/public/1151547/ |
Вафель 22 - 08.05.20 - 16:18 | А отчет по сравнению нужно самому писать?
|
D_E_S_131 23 - 08.05.20 - 16:20 | ( 22) Это сразу же появляется в списках "платформенно". |
mzelensky 24 - 08.05.20 - 17:47 | ( 23) Озвученную проблему в ( 0) можно решить? |
Комрад1 25 - 08.05.20 - 18:02 | ( 16) Её можно не включать :) |
Комрад1 26 - 08.05.20 - 18:04 | ( 24) Читайте официальную документацию. |
Сияющий в темноте 27 - 09.05.20 - 00:31 | при записи явно меняется версия данных-служебное поле,видимо,в историю и оно тоже пишется.
опять же,если они хранят и представления для ссылок,то очень сложно отслеживать изменения.
с другой стороны,заготовил историю,конвертнул в строку,посчитал md5 или sha и сравнил с прошлым разом-это же не сложно.
|
mzelensky 28 - 09.05.20 - 12:04 | ( 26) ТЫ как попугай. Читал я официальную документацию. Если бы там были ответы на ми вопросы, ТО ДАННАЯ ТЕМА БЫ НЕ СОЗДАВАЛАСЬ. |
mzelensky 29 - 09.05.20 - 12:05 | ( 27) как сравнить это уже другой вопрос, он уже решен в БСП...как раз по принципу сравнения хеша.
Вопрос в возможности отловить событие записи версии и при необходимости его отменить. |
МихаилМ 30 - 09.05.20 - 14:16 | изменение истории данных - отдельный бизнес-процесс. хранение таких данных в oltp базах данных не допустим.
Рекламное место пустует |
Комрад1 31 - 09.05.20 - 14:43 | ( 28) Вот ты ленивый. Цитата "Реализована возможность отменять запись истории данных. Реализовано свойство ПараметрыЗаписиИсторииДанных.Отказ" |
Сияющий в темноте 32 - 09.05.20 - 16:32 | ( 30) а где ее по вашему хранить нужно,особенно с учетом прав на доступ к данным ? |
Комрад1 33 - 09.05.20 - 20:40 | ( 32) В текстовых файлах, вестимо :)) |
МихаилМ 34 - 10.05.20 - 01:14 | ( 32) в "отдельно стоящей" базе. недопустимость обоснована разными требованиями к резервному копированию. |