Имя: Пароль:
1C
1С v8
Данные истории не найдены
0 orcdunaev
 
05.02.22
13:31
Всем привет!
Подскажите, пожалуйста, что с этим делать?
Включил историю изменения для документа, изменил документ, вижу появившуюся версию.
Пытаюсь ее открыть, получаю сообщение "Данные истории не найдены" (без подробностей).
Что бы это значило?
1 timurhv
 
05.02.22
15:00
(0) Давно включили (больше 30 дней)? Код ниже выполняли?
ИсторияДанных.ОбновитьИсторию(Истина, Истина);
2 timurhv
 
05.02.22
15:19
Для новых документов корректно отрабатывается история?

В версионировании БСП в регистр каждый раз при изменении записывается полная версия объекта (в реквизит запихали 100мб данных и привет).
В платформенной истории фиксируются именно изменения, т.е. при 1-ой записи полная версия сохраняется и потом при изменении реквизитов фиксируется только изменение этого реквизита.
Если программно удалять старые версии, то ничего хорошего не получится (нельзя корректно вернуться на указанную версию). Почему-то не добавили механизм создания полного слепка по номеру версии с возможностью удаления предыдущих изменений.
Предположу, что 1-ая версия документа у вас удалена.
3 ДедМорроз
 
05.02.22
18:30
Там еще есть обработка версии,нсли галочку автоматически не поставили,то система ожидает обработки и только после этого версию можно будет увидеть.
4 orcdunaev
 
06.02.22
09:58
(2) для некоторых документов и справочников корректно, для некоторых нет. Системы в этом так и не нашел.

Я попытался очистить историю полностью:
- отключил использование истории для документа (ИсторияДанных.УстановитьНастройки(МойОбъектМетаданных, Неопределено)
- удалил программно все версии
- включил историю
- сделал несколько изменений документа, увидел версии в истории версий
- при попытке открыть получил "Данные истории не найдены"

Может быть надо как-то иначе "резетнуть" ведение истории, чтобы для документа начать всё с начала?
5 orcdunaev
 
06.02.22
09:59
(3) вы про обновление истории? ИсторияДанных.ОбновитьИсторию()?
6 ДедМорроз
 
06.02.22
11:21
(5)да
7 timurhv
 
06.02.22
12:53
(4) и какой номер версии после этих манипуляций?
8 timurhv
 
06.02.22
13:11
Т.е. в истории должна быть версия 1, рисунок с плюсом (добавление). Остальные версии с карандашом (изменение).
9 Lexandr
 
06.02.22
18:23
(8) Если историю включили после того, как объект был создан, то будут только версии  с карандашом.
10 orcdunaev
 
07.02.22
09:16
(7) номер версии действительно не обнуляется, и версии с карандашом. После отключения/включения номер первой появившейся версии - 12.
11 orcdunaev
 
07.02.22
09:17
(6) на обновление истории есть регламентное задание. При экспериментах я обновление истории запускаю кнопкой.
12 timurhv
 
07.02.22
09:30
(10) Как обнулить - не знаю, там несколько системных таблиц:
1. Текущая версия
2. Очередь с версиями
3. Основная таблица с версиями

Может еще что-то забыл, видимо когда отключаете ведение истории таблица с текущими версиями не обновляется и при записи документа сравниваются данные таб.1, записываются изменения в таб.2, записывается новая версия в таб.1.
13 Lexandr
 
07.02.22
09:46
В своё время помогло мне, но у меня задача другая была.
https://infostart.ru/1c/articles/1161879/
14 orcdunaev
 
07.02.22
09:58
(13) это я читал, да, спасибо. На ИТС размещение данных истории по таблицам - тоже читал.
Но решения своей проблемы я пока не вижу. Как мне представляется, надо как-то "правильно" отключить/включить ведение истории. Удаление версий и программное отключение, как я делал - видимо, это неправильно.
Осложняется тем, что у меня нет прямого доступа к SQL-серверу, т.е. решить вопрос хотелось бы на стороне 1С.
15 timurhv
 
07.02.22
11:21
(14) Снял признак хранения истории в конфигураторе у документа.
Выполнил:
ИсторияДанных.УдалитьВерсии(Метаданные.Документы.НазваниеДокумента);

Включил обратно, записи начали создаваться с 1-ой версии. Вся история удалилась.
16 orcdunaev
 
07.02.22
21:24
Всем спасибо, разобрался!

У меня неправильно удалялись версии.
В коде отрабатывала не ветка условия, где:
ИсторияИзменений.УдалитьВерсии(ОбъектМетаданных)
а ветка, где:
ИсторияДанных.УдалитьВерсии(ОбъектМетаданных, ПорогХранения).
При этом ПорогХранения = ТекущаяДата();

Видимо, это привело к таким результатам, что удалилась базовая версия документа... Хотя мне почему-то кажется, что это не самое ожидаемое поведение...
AdBlock убивает бесплатный контент. 1Сергей