Удаление дубликатов версий объектов (чистка регистра сведений "Версии объектов")
Комментарии
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(1) Тупо сравниваются все реквизиты шапки и табличных частей :)
Если в одной из версий есть реквизит, а в другом его нет (добавили или удалили сам реквизит в конфигураторе), то проверяется заполненность значения данного реквизита в версии, где он присутствует.
Не очень элегантно и быстро, но мне главное был результат :)
Если в одной из версий есть реквизит, а в другом его нет (добавили или удалили сам реквизит в конфигураторе), то проверяется заполненность значения данного реквизита в версии, где он присутствует.
Не очень элегантно и быстро, но мне главное был результат :)
Тоже приходилось писать подобный инструмент для отраслевой конфигурации со старой БСП. Там механизм версионирования был, но в зачаточном состоянии. Но кроме этого инструмента (чтобы не чистить регистр все время), добавил в алгоритм при записи объекта запись только измененной версии. Т.е. сравнение версии происходит при записи объекта. Если новая версия такая же как предыдущая - запись версии не происходит. Больше ту обработку не вспоминаю :)
P.S. в моем случае сравнивались хэши данных Fast Infoset.
P.S. в моем случае сравнивались хэши данных Fast Infoset.
(6) Имеете в виду: при записи объекта сравнивать? Просто в базе уже было накоплено куча версий и их нужно было почистить, поэтому обработка по удалению все-равно нужна. А дальше уже можно что-то сделать, чтоб эти версии не появлялись. И опять же, как писал раньше: мне сейчас проще раз в месяц на выходных запускать эту обработку :)
(8) Здарвствуйте. Эта обработка для обычных форм, а ЕРП на управляемых... Постараюсь найти время в ближайшую неделю, чтоб доработать под управляемые формы. Но я не уверен, что даже в этом случае подойдет для вашей конфигурации - там может быть другой механизм версионирования.
(9) пытался воспользоваться обработкой для удаления в одном типе документа и выдал ошибку
Ошибка разбора XML: - [1,1]
Фатальная ошибка:
Document is empty
{ВнешняяОбработка.УдалениеДубликатовВерсийОбъектов.Форма.Форма1.Форма(525)}: Пока ЧтениеXML.Прочитать() Цикл
{ВнешняяОбработка.УдалениеДубликатовВерсийОбъектов.Форма.Форма1.Форма(481)}: Результат = РазборПредставленияОбъектаXML(СтрокаXML, Ссылка);
{ВнешняяОбработка.УдалениеДубликатовВерсийОбъектов.Форма.Форма1.Форма(295)}: ТекВерсия = РазборВерсии(СтрокиВерсий[ИндВерсии].НомерВерсии, СтрокиВерсий[ИндВерсии].Объект);
{ВнешняяОбработка.УдалениеДубликатовВерсийОбъектов.Форма.Форма1.Форма(214)}: УдалитьДубликатыВерсийОбъектов(МассивСсылок);
{ВнешняяОбработка.УдалениеДубликатовВерсийОбъектов.Форма.Форма1.Форма(226)}: УдалитьДубликатыНаСервере();
по причине:
Ошибка разбора XML: - [1,1]
Фатальная ошибка:
Document is empty
Ошибка разбора XML: - [1,1]
Фатальная ошибка:
Document is empty
{ВнешняяОбработка.УдалениеДубликатовВерсийОбъектов.Форма.Форма1.Форма(525)}: Пока ЧтениеXML.Прочитать() Цикл
{ВнешняяОбработка.УдалениеДубликатовВерсийОбъектов.Форма.Форма1.Форма(481)}: Результат = РазборПредставленияОбъектаXML(СтрокаXML, Ссылка);
{ВнешняяОбработка.УдалениеДубликатовВерсийОбъектов.Форма.Форма1.Форма(295)}: ТекВерсия = РазборВерсии(СтрокиВерсий[ИндВерсии].НомерВерсии, СтрокиВерсий[ИндВерсии].Объект);
{ВнешняяОбработка.УдалениеДубликатовВерсийОбъектов.Форма.Форма1.Форма(214)}: УдалитьДубликатыВерсийОбъектов(МассивСсылок);
{ВнешняяОбработка.УдалениеДубликатовВерсийОбъектов.Форма.Форма1.Форма(226)}: УдалитьДубликатыНаСервере();
по причине:
Ошибка разбора XML: - [1,1]
Фатальная ошибка:
Document is empty