powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / 1С:7.7 - Потеря данных при обмене УРБД
8 сообщений из 8, страница 1 из 1
1С:7.7 - Потеря данных при обмене УРБД
    #35693312
The EclipsE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ситуация такова:
Есть 3 базы 1 центральная и 2 периферийные.

В одной из периферийных баз в справочнике меняются значения периодических реквизитов. При обмене они "откатываються" (в логах 1С пишет коллизию, но 100% что этот справочник был изменен только в одной (периферийной) базе).

1С 7.7 (релиз 25), SQL 2005.

Кото сталкивался с чемто подобным? Как побороть эту проблему?
...
Рейтинг: 0 / 0
1С:7.7 - Потеря данных при обмене УРБД
    #35693922
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Реквизиты в переферийной базе и не должны меняться. Если просто пройтись по ним и нажать кнопку записать (ничего не меняя) то они попадут как измененные...
...
Рейтинг: 0 / 0
1С:7.7 - Потеря данных при обмене УРБД
    #35706471
The EclipsE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Реквизиты меняются, только в одной периферийной базе, другую базу вообще никто не трогает.
...
Рейтинг: 0 / 0
1С:7.7 - Потеря данных при обмене УРБД
    #35706645
pail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ситуация очень проста и однозначна (с точки зрения механизмов УРБД). Предположим, есть центральная Ц и две периферийных - А и Б.
1. Меняются периодические реквизиты в А. Они передаются в Ц только в составе объектов: изменение одного элемента истории толкает в выгрузку всю историю всех реквизитов элемента.
2. Ц получает измененный объект - и должна его раздать всем остальным периферийным. Отправляет. И пока от Б не придет квитанция сеанса, маркер изменений этого объекта остается в 1SUPDTS центральной базы.
3. В базе А продолжается работа. Создан новый элемент истории реквизита. Весь объект со всей историей - опять в выгрузке.
4. Квитанция от Б не пришла. Зато пришла свежая выгрузка из А. И там объект - маркер изменений которого ждет в Ц той квитанции. "Коллизия !" - говорит Ц. И не принимает объект из А. Вместо этого создается маркер изменений этого объекта для А. В результате в следующей выгрузке для А Ц отправляет свою версию объекта. Которую А обязана принять.

Другой вариант возникновения коллизии - в Б меняется история другого реквизита того же объекта. Результат - тот же. Даже если квитанция из Б пришла вовремя (до получения след. выгрузки из А).

С коллизиями первого типа можно справляться тщательной организацией последовательности обменов (в простых случаях). Для более сложных - могут подойти внешние (по отношению к 1С) средства обработки 1SUPDTS. А могут и не подойти.
Тогда остается только менять логическую структуру базы - освобождая реализацию важных функций от использования периодических реквизитов.
...
Рейтинг: 0 / 0
1С:7.7 - Потеря данных при обмене УРБД
    #35721842
The EclipsE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pail,

Это все верно, но есть один нюанс. При обмене с базами никто не работает.
...
Рейтинг: 0 / 0
1С:7.7 - Потеря данных при обмене УРБД
    #35722847
pail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The EclipsEpail,

Это все верно, но есть один нюанс. При обмене с базами никто не работает.

Верно ли я понимаю это утверждение, что существует время, когда:
- во всех базах останавливается работа,
- делаются выгрузки из всех периферийных,
- заливаются в центральную,
- делается раздача изменений из центральной во все периферийные,
- изменения принимаются последними
- и только затем возобновляется работа?
...
Рейтинг: 0 / 0
1С:7.7 - Потеря данных при обмене УРБД
    #35728624
The EclipsE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pail
Верно ли я понимаю это утверждение, что существует время, когда:
- во всех базах останавливается работа,
- делаются выгрузки из всех периферийных,
- заливаются в центральную,
- делается раздача изменений из центральной во все периферийные,
- изменения принимаются последними
- и только затем возобновляется работа?
Совершенно верно, во время обмена в бвзвх НИКТО не работает. Обмен производится в монопольном режиме.

+ ко всему менять справочник (в котором была потеря данных) програмно запрещено во всех базах кроме 1-й периферийной.
...
Рейтинг: 0 / 0
1С:7.7 - Потеря данных при обмене УРБД
    #35728933
pail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Коллизия" - получение ЦБ из ПБ объекта, маркер изменения которого в ЦБ уже есть (или еще есть).
Такой маркер будет существовать, пока не придут квитанции сеансов (в которых объект раздавался в ПБ) от ВСЕХ периферийных. Этого можно добиться, если делать два полных обмена с каждой ПБ. (в первом будут изменения, во втором - только квитанции).
Но должен помочь более простой вариант, через соблюдение последовательности обмена:
принимать в ЦБ изменения от ПБ-источника проблемного справочника в последнюю очередь - только после того, как файлы изменений будут приняты от всех остальных ПБ.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / 1С:7.7 - Потеря данных при обмене УРБД
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]