Новые технологии - это не только новые возможности, но и новые проблемы. Расширения в 1С:Предприятие открыли новые возможности по доработке конфигураций и их последующему сопровождению, но они же принесли новые проблемы, в частности касающиеся синхронизации в распределенной информационной базе (РИБ). Но есть проблемы - значит будут и решения, которые, по мере накопления опыта преобразуются в практические рекомендации. Сегодня мы рассмотрим, что может помешать синхронизации после установки расширений (патчей) и как это исправить.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Мы не будем подробно останавливаться на том, что такое расширения, об этом можно прочитать в официальной документации. Если коротко - то это специальные внешние модули, которые можно подключить к конфигурации и переопределить некоторые действия или добавить собственные. Они используются для исправления ошибок, адаптации или дополнения готовых прикладных решений, не внося изменений в код основной конфигурации. Это значительно облегчает дальнейшую доработку и поддержку доработанных решений, делает ее проще и дешевле.
Существует особый тип расширений - патчи, они официально выпускаются фирмой 1С и оперативно закрывают выявленные проблемы, это позволяет быстро устранить ошибки, не дожидаясь выпуска очередного релиза и не внося изменения в основную конфигурацию. На первый взгляд - дело хорошее, но все кроется в мелочах.
Распределенная информационная база (РИБ) продолжает активно использоваться несмотря на обилие облачных и прочих веб-решений. Причина проста, только эта технология обеспечивает автономность узлов распределенной сети, позволяя полноценно работать даже при отсутствии связи с центральной базой. Наиболее востребовано это в торговле - магазин должен продолжать работать, даже без связи с внешним миром.
В основе РИБ лежит иерархическая структура, в которой распределенные информационные базы, обладая полной автономностью, периодически обмениваются с центральным узлом, передавая и принимая данные. Обмен построен таким образом, что каждый узел должен подтвердить успешный прием данных, в противном случае они будут передаваться в каждом следующем сеансе обмена.
Необходимым требованием для успешной синхронизации является идентичность конфигурации центральной базы и распределенных узлов. Если вы внесли изменения в конфигурацию центрального узла, то эти изменения следует распространить по РИБ, принять и установить, только после этого синхронизация будет продолжена.
Для расширений можно указать область применения: только центральная база или вся распределенная сеть. Вот здесь и начинается самое интересное.
Расширения бывают двух типов: которые вносят изменения в структуру данных ИБ и которые не вносят, изменяя только интерфейс или обработчики команд. Последние не представляют особых проблем в РИБ, они минимально влияют на синхронизацию и для устранения проблем достаточно просто перезапустить программу. Но даже если этого не сделано, то синхронизация сохраняется, как правило в одну сторону: обновления из центрального узла не загружаются, так как не применены прошлые изменения, но в центральный узел данные передаются исправно.
А вот если расширение вносит изменения в состав данных, то после синхронизации, как и при обновлении основной конфигурации, потребуется выполнить установку обновлений с обновлением конфигурации базы данных. И вот здесь обычно возникают проблемы.
В том, что касается РИБ, расширения не принесли никакого упрощения поддержки, а только добавили новых проблем. На первых порах ситуация была вообще плачевной, неудачным расширением можно было положить всю сеть РИБ всерьез и надолго. Сейчас ситуация выправилась, но ее можно охарактеризовать как "вооруженный нейтралитет, эпизодически выливающийся в локальные столкновения".
В любом случае, применяя расширения вносящее изменения в структуру данных, администратор должен принять его в распределенных узлах и установить, точно также, как и изменения основной конфигурации. Если все это нормально организовано, то особых проблем там быть не должно, современная платформа предоставляет достаточно возможностей для комфортной работы с принятием изменений.
Но в случае с патчами все меняется, отдельные, сказочно смелые люди, даже включают автоматическую установку исправлений, фактически закладывая мину замедленного действия под инфраструктуру РИБ. И последствия не заставят себя долго ждать, особенно если распределенные узлы находятся где-нибудь в сельской местности и со связью там не все хорошо.
Обычно все начинается совсем не добрым утром, когда рядовые пользователи получают сообщение о невозможности запуска программы и начинают обрывать телефоны поддержки (часто в лице единственного человека).
При входе с полными правами предлагается выполнить повторную синхронизацию с центральным узлом, но она завершается неудачей.
В этом случае нажимаем Продолжить и входим в обычный режим работы 1С. Дальнейшие действия могут несколько различаться, в зависимости от конфигурации, а нашем примере это будет 1С:Розница 2.3. Переходим в Администрирование - Синхронизация данных - Настройки синхронизации данных и выбрав узел обмена (а он там будет один - центральный), нажимаем ссылку Синхронизация по расписанию.
Затем выберите сценарий синхронизации и в меню правой кнопки мыши выберите Выполнить сценарий, обычно это не займет много времени.
Затем можно вернуться в Настройки синхронизации и Установить обновление, во многих случаев этого окажется достаточно для восстановления нормальной работы автообмена, реже - потребуется повторить процедуру, при этом не забывайте после каждого сеанса синхронизации в РИБ запускать синхронизацию в центральном узле.
Но бывает все гораздо хуже, после установки обновлений база снова просит повторную синхронизацию и все продолжается по кругу. В этом случае нам ничего не остается, как изучить Журнал регистрации, находим там ближайшую ошибку обмена и внимательно ее изучаем. Как правило там будет явно фигурировать проблемное расширение.
А теперь немного отвлечемся, на портале обновлений 1С можно найти описание всех патчей и внимательно изучить их. А потом крепко подумать и сделать выводы. Большинство исправлений устраняют ошибки, с которыми вы вряд ли бы столкнулись, поэтому необходимость их автоматической установки исчезающе мала. Правильным действием будет ручная установка патчей, по мере выявления проблем.
Далее переходим в центральную базу и загружаем ее в режиме Конфигуратора, переходим в Конфигурация - Расширения конфигурации и получаем полный список всех установленных расширений и патчей. После чего находим проблемное расширение и думаем. В некоторых случаях оно может устранять ошибку, которая существенна для центрального узла, но совершенно не влияет на периферию. В таком случае снимаем флаг Используется в РИБ, в остальных случаях просто удаляем расширение и выполняем синхронизацию с нужным узлом.
Затем заново выполните синхронизацию в периферийном узле, но не спешите устанавливать обновление, снова выполните сценарий, как мы делали в начале этой статьи. Не забывайте, что после каждого сеанса синхронизации в узле РИБ нужно выполнять синхронизацию в центральной базе.
Таких расширений может оказаться не одно, поэтому повторяем описанные действия до достижения успеха. После чего повторите обмен несколько раз и убедитесь, что проблемы с синхронизацией отсутствуют.
Ну наконец-то! Можно идти пить кофе и отправлять пользователей работать. Но тут нас может ждать еще один сюрприз - пользователи снова не могут зайти, только текст ошибки немного иной.
В чем здесь нельзя сомневаться, так в том, что за подробностями они все обратятся и администратору вряд-ли это понравится. В чем же дело? А в том, что современная 1С - сложная система и восстановив синхронизацию мы все еще не завершили процессы обновления информационной базы. Поэтому снова запускаем базу с полными правами и выполняем повторную синхронизацию.
После чего нормальная работа базы данных будет восстановлена.
Как видим, проблемы с синхронизацией и расширениями довольно-таки просто решаются, но требуют времени, иногда довольно продолжительного. Поэтому мы категорически не советуем включать автоматическую установку патчей, а ставить их только вручную и только при наличии реальной необходимости. А также не забывать об области применения, многие из патчей нужны только в центральном узле и нет смысла распространять их через РИБ.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Последние комментарии