Имя: Пароль:
1C
 
Работа с типовым механизмом "ИсторияДанных"
0 mzelensky
 
08.05.20
10:28
Доброго времени суток!

Платформа 1С 8.3.12

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

http://catalog.mista.ru/public/699109/

Выдержки:

"Данные истории мы храним в отдельных таблицах информационной базы. Для повышения эффективности мы храним только разницу между версиями данных. Если у вас есть «тяжёлый» документ с большим количеством строк в табличной части, а вы меняете только один реквизит в самом документе, то в истории данных сохранится только одно это изменение. То есть у вас не будет храниться множество копий этого объекта, и занимать место на диске"

...

"Создается только запись о факте записи версии. Если не было изменений - то никакие больше данные в ней не храняться. Поэтому много места даже много таких версий не съедят"

Итак, вопрос - пробовал ли кто-то сделать так, чтобы запись делалась ТОЛЬКО тогда, когда объект изменился, по отношению к предыдущей версии?!

П.С. На вопрос "для нафига все это?!" отвечаю - "для экономии места"
1 Комрад1
 
08.05.20
10:32
(0) А нормальную платформу с полноценной поддержкой истории данных не судьба поставить?
2 mzelensky
 
08.05.20
10:39
(1) Например, в какой версии платформы, можно произвести соответствующую настройку?!
3 mzelensky
 
08.05.20
11:02
?
4 Комрад1
 
08.05.20
11:07
(2) В 8.3.15 добавили обработчики, в которых можно перехватывать запись истории. Читайте ИТС.
5 Cyberhawk
 
08.05.20
11:08
А сколько места ты таким образом собрался сэкономить?
6 mzelensky
 
08.05.20
11:40
(4) Дай ссылку
7 mzelensky
 
08.05.20
11:41
(5) Все что сэкономлю - все МОЕ!
8 mzelensky
 
08.05.20
13:33
ап
9 D_E_S_131
 
08.05.20
13:42
А подписка-то на ИТС есть? :)

https://its.1c.ru/db/v8315doc#bookmark:dev:TI000001938
10 vde69
 
08.05.20
13:52
с этим механизмом мало кто работа я вчера в пустоту спрашивал ИсторияДанных.УдалитьВерсии - можно-ли удалить удаление?

по сабжу:

объект очень специфический, вероятно еще много будет дорабатыватся. место жрет реально мало об этом можешь не беспокоится...

из явных минусов
1. очень медленный,
2. отборы не все работают
3. плохо задокументирован
4. не поднимает ошибки, вместо просто что-то может игнорировать
11 vde69
 
08.05.20
13:55
+
5. встроен типовой интервал 20 дней хранения истории, сделать другой интервал нельзя
6. при удалении промежуточной версии результат не пересчитывается
7. данные хранятся в очень странном формате "представление+ссылка", что с одной стороны хорошо, с другой стороны не работают типовые механизмы типа заполнитьзначения()
12 mzelensky
 
08.05.20
14:21
(10) А после удаления данные обновил?
13 mzelensky
 
08.05.20
14:23
(9) Лично у меня нет. А обязательно должна быть?
14 kumena
 
08.05.20
14:26
Чем платформенная история лучше бспшной?
15 vde69
 
08.05.20
14:28
(14) при записи обьекта работает намного быстрее
16 kumena
 
08.05.20
14:28
и можно ли её отключить, если уже версионирование ведется в базе? она же явно влияет на скрость.
17 mzelensky
 
08.05.20
14:31
(16) Можно
18 D_E_S_131
 
08.05.20
15:47
(16) Ведение истории по умолчанию включено для реквизитов, но отключено для объекта. Я сделал обработку по включению объекта метаданных в ведение истории и новый объект, который нужно версионировать одной галочкой включается. Для механизма из БСП нужно в нескольких местах код в конфигураторе прописать.
19 D_E_S_131
 
08.05.20
15:52
(10) и (11) Почитайте внимательнее по ссылке с ИТС (это же и ответ на ваш п.3). "20 дней" - это про стэк постобработки написано, удаление самих версий регулирует разработчик. Т.е. нужно написать некий аналог функционалу БСП, по регламентной очистке старых версий.
20 Вафель
 
08.05.20
15:57
бсп до сих пор его не юзает. почему? вот вопрос
21 D_E_S_131
 
08.05.20
16:02
Еще момент - механизм БСП ограничен по 3 типам объектов, а в платформенном еще и РС можно версионировать.
http://catalog.mista.ru/public/1151547/
22 Вафель
 
08.05.20
16:18
А отчет по сравнению нужно самому писать?
23 D_E_S_131
 
08.05.20
16:20
(22) Это сразу же появляется в списках "платформенно".
24 mzelensky
 
08.05.20
17:47
(23) Озвученную проблему в (0) можно решить?
25 Комрад1
 
08.05.20
18:02
(16) Её можно не включать :)
26 Комрад1
 
08.05.20
18:04
(24) Читайте официальную документацию.
27 Сияющий в темноте
 
09.05.20
00:31
при записи явно меняется версия данных-служебное поле,видимо,в историю и оно тоже пишется.
опять же,если они хранят и представления для ссылок,то очень сложно отслеживать изменения.

с другой стороны,заготовил историю,конвертнул в строку,посчитал md5 или sha и сравнил с прошлым разом-это же не сложно.
28 mzelensky
 
09.05.20
12:04
(26) ТЫ как попугай. Читал я официальную документацию. Если бы там были ответы на ми вопросы, ТО ДАННАЯ ТЕМА БЫ НЕ СОЗДАВАЛАСЬ.
29 mzelensky
 
09.05.20
12:05
(27) как сравнить это уже другой вопрос, он уже решен в БСП...как раз по принципу сравнения хеша.

Вопрос в возможности отловить событие записи версии и при необходимости его отменить.
30 МихаилМ
 
09.05.20
14:16
изменение истории данных - отдельный бизнес-процесс. хранение таких данных в oltp базах данных не допустим.
31 Комрад1
 
09.05.20
14:43
(28) Вот ты ленивый. Цитата "Реализована возможность отменять запись истории данных. Реализовано свойство ПараметрыЗаписиИсторииДанных.Отказ"
32 Сияющий в темноте
 
09.05.20
16:32
(30) а где ее по вашему хранить нужно,особенно с учетом прав на доступ к данным ?
33 Комрад1
 
09.05.20
20:40
(32) В текстовых файлах, вестимо :))
34 МихаилМ
 
10.05.20
01:14
(32) в "отдельно стоящей" базе. недопустимость обоснована разными требованиями к резервному копированию.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший