Доброго времени!
Первый раз за многолетний опыт столкнулся с такой ситуацией.
Несколько баз обновляются автоматически по ночам батником через загрузку измененной конфигурации.
Сегодня столкнулись с тем, что значения некоторых реквизитов очистились, причем по всем базам.
Картина при ручном моделировании загрузки вышла такая:
http://prntscr.com/j9vbdy Причем если делать обычным сравнением/объединением, то различий метаданных в показанной части нет и данные не теряются.
Единственное что сделано было необычного перед обновлением - в дереве конфигурации отсортированы справочники и документы кнопкой "Отсортировать по алфавиту".
При повторной загрузке той же конфигурации такой картины уже нет, то есть ситуация уже не возникнет.
Подскажите пожалуйста, вследствие чего могла возникнуть такая ситуация и как избежать её в дальнейшем?,
(1) Такая ситуация возможна когда в новую конфигурацию(на которую необходимо обновиться) вручную добавили реквизиты, а не сравнением и объединением. Идентификаторы метаданных отличаются не смотря одинаковые наименования реквизитов. Ищите того кто-собирал релиз новой конфигурации, он добавил их вручную.
(15) Двадцать пять БД на одной и той же конфигурации. Ситуация повторилась во всех.
Задвоившиеся реквизиты уже давно и в БД, и в цф-нике.
Видимо-таки какой-то баг.
Задвоившиеся реквизиты уже давно и в БД, и в цф-нике.
Видимо-таки какой-то баг.
Причем, случился он тоже давно. Только по каким-то причинам до сих пор не проявлял себя потерей данных.
Разумеется, никакие способы обновления автоматически не разрулят конфликт разных идентификаторов реквизитов при их одинаковых наименованиях, тут я был неправ.
Теперь надо думать над тем - что дальше? Продолжит ли разработчик использование новых идентификаторов или "вернет" старые? Я бы дождался следующего обновления, сделал копию любой базы, вычистил бы из нее дубли и накатил обновление. А потом смотрел бы - что добавилось? "Старый" или "новый" реквизит? Если "старый" (вернулся) - то просто удалить пустышку "новый" и жить дальше. А если "новый", то это значит, что переход на "новые" произошел окончательно и надо скопировать в него содержимое таблиц "старого" (обработкой или средствами SQL) и тогда удалить ставший ненужным "старый" реквизит.
Хотя нет никаких гарантий, что однажды эта история не повторится в обратном порядке или с другими реквизитами.
(22) Видимо я неправильно выразился.
Под задвоившимися реквизитами я имел ввиду те реквизиты, которые разъехались по идентификаторам перед обновлением.
Но поскольку обновление выполнялось батником в автоматическом режиме, то дублей реквизитов не возникло, а старые реквизиты подменились "новыми" с измененными идентификаторами, отчего информация в БД в них пропала.
После обновления получается, что конфигурации БД и конфигурация обновления по идентификаторам теперь идентичны.
И в дальнейшем, если ничего подобного не случится, все будет обновляться нормально.
То есть мы волей-неволей остаемся на новых идентификаторах с последующим восстановлением потерянной информации.
Списывая этот случая на непонятный нам баг.
Можно попробовать выгружать конфигурацию в файлы. И сравнивать с предыдущей версией конфигурации(в файлах). .
Если изменённых файлов слишком много, то что-то пошло не так.
Или сравнивать один из файлов который точно не должен меняться.
(2) Спасибо за отклик.
Правда, так и не понял, откуда пошло раздвоение, наверное на этот вопрос никто не ответит.
Поставил флаг.
Получил такое.
http://prntscr.com/j9x9vc То есть раньше реквизит замещался с потерей данных.
Теперь дублируется под другим идентификатором.
Третьего не дано?
(6) Конфигурация нетиповая. Обновление - это просто измененный цф-ник. Тот Же самый, которым были обновлены базы в прошлый раз, только добавлены изменения. Так вот, те реквизиты, которые пропали - не изменялись.
Я склоняюсь к мысли, что дело именно в БД. Попробуйте манипуляции, приводящие к исчезновению (обновления cf-ками), повторить в файловом варианте базы: подозреваю, что данные могут не исчезнуть.
Судя по скриншоту, "поехали" внутренние идентификаторы реквизитов. При загрузке измененной конфигурации реквизиты со старыми идентификаторами были признаны удаленными(вместе с данными, ессесно), с новыми добавились. Идентификаторы могут поехать от сортировки, ручного удаления/добавления, у меня как-то хранилище перекорёжило идентификаторы.... Как бы, ситуация с далеко не нулевой вероятностью при такой способе обновления.