INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Федотов Виталий | Ведущий специалист | ГК Невада

«Повышение эффективности работы отдела разработки»

Основные слагаемые успеха: - Архитектура - Грамотный код - Ориентация на повторное использование кода - Управление ошибками Методы: - Обучение линейного и руководящего состава - Внимание на архитектуру - Итерационный подход к разработке API - Профилирование Результат: Повышение производительности труда отдела разработки в 2-3 раза. Особенность доклада заключается в изложении личного опыта построения работы отдела, где описанные методы были с успехом применены и повысили производительность труда отдела разработки.

Проблема с обновлением типовой конфигурации УТП 1.2 (Украина) в дочернем узле

Администрирование - Распределенная БД (УРИБ, УРБД)

2
При обновлении конфигурации в дочернем узле РБД , в случае, если обновление добавляет предопределенные элементы справочников, невозможно загрузить файл обмена стандартными средствами

Имеем базу с конфигурацией УТП 1.2  (Украина), с центральным узлом и дочерними.

Вышло очередное обновление типовой конфигурации 1.2.39.1 (номер к сути статьи не имеет прямого отношения).

В центральной базе обновили конфигурацию, при первом запуске базы отработала процедура обновления базы, все ОК.

Отправляем данные в дочерние базы. Естественно, требуется сперва обновить конфигурацию. После обновления конфигурации нам бы продолжить загрузку сообщения обмена, но не тут то было. Стартует обработка обновления базы (т.к. номер версии конфигурации изменился), выдает ту ошибку, что на экране, и выкидывает из базы.

В чем причина ? В конфигурации добавились предопределенные элементы справочников. В дочерней базе они не создаются при сохранении конфигурации, в отличие от центральной. Они должны придти в сообщении обмена уже готовыми из ЦБ. Но обработка обновления базы стартует раньше, чем мы догрузим сообщение с готовыми предопределенными элементами. И эта обработка пытается обратиться к тем самым элементам справочника, которых еще нет!. Это тупик, господа. Для того, чтобы обработка успешно завершилась, нужны элементы, а чтобы они появились, нужно сначала завершить обработку.

Что делать?

1) На будущее можно закомментировать в модуле обычного приложения в процедуре ПриНачалеРаботыСистемы вызов ОбновлениеИнформационнойБазы.ВыполнитьОбновлениеИнформационнойБазы() , и вызывать его вручную (внешней обработкой) отдельно в ЦБ и отдельно в каждом узле, или же в модуле ОбновлениеИнформационнойБазы задавать вопрос  о том, нужно ли выполнять обновление прямо сейчас

2) Но что делать сейчас ? В базе работать нельзя! Можно поставить одному из пользователей временно режим запуска "Управляемое приложение", войти , закончить загрузку сообщения обмена, используя меню "Все функции". Или же изменить значение константы НомерВерсииКонфигурации на 1.2.39.1, чтобы обработка обновления базы не стартовала, и войти в обычное приложение. После загрузки сообщения обмена вернуть старое значение константы, и повторить вход в базу.

2

См. также

Комментарии
Сортировка: Древо
1. DJDUH 18 15.02.17 18:45 Сейчас в теме
2. bulpi 131 16.02.17 00:34 Сейчас в теме
(1) Я имею в виду сообщение обмена, т.е. файл типа Message_1_2.xml , который приходит от ЦБ в дочернюю базу и содержит обновления конфигурации и данных.
3. vovaikilko 20.03.17 10:09 Сейчас в теме
(2) А не проще откючить в дочернее базы главный узел, загрузить cf глайной базы и востановить главный узел?
4. bulpi 131 20.03.17 15:20 Сейчас в теме
(3)
1)В режиме обычного приложения не получится войти.
2)Если воспользоваться входом через управляемое приложение, то можно так сделать, но результат будет печальным. Создадутся свои предопределенные элементы, не те, которые в ЦБ (не с теми GUID). А потом из ЦБ придут те, и получится дублирование.
Оставьте свое сообщение