1c resetmasternode не работает
Распределенная информационная база (РИБ) достаточно часто используется для организации работы филиалов и подразделений, позволяя оперативно обмениваться информацией, сохраняя нужную степень автономности. Несмотря на то, что данная технология достаточно надежна, время от времени ломается и она. Сегодня мы рассмотрим одну из довольно распространенных ошибок: Конфигурация узла распределенной ИБ не соответствует ожидаемой! Расскажем о причинах ее возникновения и методах борьбы с ней.
Начнем, как всегда, с начала. После того, как вы создали РИБ все изменения в конфигурацию информационной базы можно вносить только в главном узле. Впоследствии, при следующем обмене, все изменения будут переданы в подчиненные узлы и автоматически применены там. Но гладко было на бумаге.
В общем мораль этой истории проста - не ведите активную доработку рабочей базы, а если ведете, то завершайте все сеансы обмена до внесения следующих изменений. Но как быть, если такая неприятность все-же произошла?
Решение "в лоб" - создать новый образ подчиненного узла, однако на практике он обычно неприменим. Как правило возникновение серьезной ошибки при обмене фиксируется не сразу, а через некоторое время после того, как перестали поступать оперативные данные из периферийных баз. В зависимости от расписания обмена между моментом возникновения проблемы и ее обнаружением может пройти целый рабочий день, а то и более.
Откройте командную строку и введите (с учетом версии платформы и реального пути установки):
После выполнения данной команды появится обычное окно стартера, выберите там нужную базу и нажмите кнопку Конифгуратор.
Внимание! На платформах 8.3.7 - 8.3.9 выполнение данной команды приводит к аварийному завершению работы. Ошибка исправлена в платформе 8.3.10.
Если вы не хотите возиться с командной строкой, то можно воспользоваться одной из обработок, ниже представлена та, которую используем мы, она была найдена на просторах сети, и мы внесли в нее лишь косметические правки. Обратите внимание, обработка подходит лишь для обычного приложения, для конфигураций на управляемом приложении используйте ключ запуска Конфигуратора.
Работа с ней предельно проста, запускаем ее в режиме 1С:Предприятия, через Файл - Открыть, затем просто нажимаем нужную кнопку, в нашем случае Отключить главный узел.
Теперь нам потребуется актуальная конфигурация из центрального узла. Для этого откроем центральную ИБ в Конфигураторе и выполним Конфигурация - Сохранить конфигурацию в файл. Полученный файл с расширением cf потребуется передать в периферийный узел.
Отключение от главного узла требуется в случае, если было принято решение использовать подчиненный узел как самостоятельную информационную базу. Описанные рекомендации применимы, в том числе, к автономным рабочим местам (АРМ) для приложений в модели сервиса.
Процедуру отключения информационной базы подчиненного узла можно разделить на несколько этапов:
1. Отключение режима распределенной информационной базы.
Выполнить отключение информационной базы можно с помощью параметра запуска конфигуратора /ResetMasterNode.
2. Подтверждение отключения связи с главным узлом.
Данный этап осуществляется при входе в базу через режим «Конфигуратор».
3. Действия над служебными данными.
В этом шаге описаны действия по обходу ошибки, связанной с тем, что после отключения от главного узла не очищается ряд настроек, что в дальнейшем может создавать трудности при работе с информационной базой.
Через меню «Все функции» - «Константы» выполнить установку служебных констант:
Настройка подчиненного узла РИБ завершена - флаг должен быть снят.
Это автономное рабочее место - флаг должен быть снят.
Также через меню «Все функции» - «Планы обмена» необходимо удалить запись плана обмена, соответствующую главному узлу распределенной информационной базы.
Далее в режиме «1С:Предприятие» необходимо выполнить вход в подчиненный узел и отказаться от предложения на восстановление связи с главным узлом.
Логунова Яна,
Консультант Компании «АНТ-ХИЛЛ»
Тел. (473) 202-20-10
При цитировании статей или заметок ссылка на сайт автора обязательна
Накопились вопросы и нужна помощь?
С удовольствием на них ответим и поможем все настроить! Обращайтесь по тел.
Недавно столкнулся с такой проблемой: после выгрузки нового узла 1С: Розница по плану обмена "ПоМагазину", при первом старте система пытается выполнить обновление, и выдает ошибку, связанную с обновлением справочника "Идентификаторы объектов метаданных". Самое простое решение - отключить базу от главного узла, запустить обработку обновления идентификаторов из инструментов разработчика, и подключить базу обратно к главному узлу.
Т.к. ошибка возникает при старте базы, и по ее закрытии закрывается и база, а до этого никаких обработок запустить не получается, решил использовать параметр запуска конфигуратора /ResetMasterNode. Прописал данный параметр в дополнительном параметре запуска, и запустил базу в режиме конфигуратора. Но, увы, получил вылет с записью дампа.
Далее ни создание ярлыка, ни запуск 1С через команды в PowerShell, ни запуск с правами администратора, ни изменение режима совместимости не дали никаких результатов. Поиск на просторах сети - тоже не подсказал ничего, что смогло помочь.
Но тщательное изучение параметров командной строки привело к изящному решению:
А именно- использование парамерта запуска /Execute
/Execute [имя файла внешней обработки] — предназначен для запуска внешней обработки в режиме 1С:Предприятие непосредственно после старта системы.
Т.е. сохраняем да диске обработку установки/отключения главного узла, или "Инструменты разработчика обновление вспомогательных данных", в параметр запуска пишем /Execute "Полный путь к обработке", и запускаем базу в режиме Предприятие.
В итоге - после запуска открывается база, обработка обновления, и наша обработка, позволяющая отключить базу от главного узла, либо обновить справочник "Идентификаторы объектов метаданных" (ну, или любая другая обработка, путь к которой был указан)!
Надеюсь, кому-то будет полезен данный метод обхода сложностей, связанных с запуском, при старте системы, обработок, вызывающих закрытие, или критические ошибки!
Для чего это нужно? Допустим необходимо создать тестовую БД для разработки с актуальными данными или необходимо быстро восстановить работоспособность РИБ при "падении" одного из узлов, или для "быстрого" создания нового узла РИБ .
Имеем: 1С:Предприятие 8.3 (8.3.6.2390), РИБ по следующей схеме:
Данные во всех узлах синхронизируются полностью. Это идеальный случай - для исходных данных (данных восстановления) можно использовать любой узел РИБ. В случае, когда обмен происходит по собственным правилам или, например, установлен фильтр по организациям, то для исходных данных (данных восстановления) необходимо выбирать узел с наиболее полными данными.
. ВАЖНО. Перед созданием БД необходимо выполнить полную синхронизацию всех узлов РИБ с узлом, из которого планируется создавать новую БД, и на время создания в этом узле отключить синхронизацию данных!
Все действия выполняются в монопольном режиме (т.е. у целевой БД должны отсутствовать активные соединения)
Приступим. В качестве "исходного узла" выберем "Центральный узел обмена" (см. схему РИБ). В нем аккумулируются данные всех узлов.
ВАЖНО. В качестве "исходного узла" рекомендуется выбирать узел, которой в последствии станет главным узлом для вновь созданного/восстановленного узла.
Это не обязательное условие. Для восстановления РИБ подойдет любой узел с максимально актуальными данными, но это более сложный процесс. Возможно он будет рассмотрен в будущем.
0. Создать новый узел РИБ.
Данное действие необходимо если создается новый узел, в противном случае необходимо перейти к п. 1.
1. Выгружаем базу данных из "исходного узла" в файл (*.dt).
2. Загружаем полученную в п. 1 выгрузку в "чистую" БД.
3. Запускаем полученную в п. 2 БД в режиме предприятия и отключаем все настроенные синхронизации данных.
4. Отключаем автоматическое обновление предопределенных данных.
Это необходимо потому, что в главном узле предопределенные данные обновляется автоматически, а в подчиненные узлы уже "приезжают" с обменами.
Если не выполнить это действие, то после отключения главного узла при следующей реструктуризации БД произойдет задвоение предопределенных данных.
Для отключения необходимо запустить командную строку от имени Администратора (root`a), выполнить запуск конфигуратора с параметрами и дождаться выполнения (сам конфигуратор на экране не появится, но он будет отображаться в дереве процессов системы, т.е. необходимо дождаться когда процесс конфигуратора пропадет из дерева процессов):
для Linux-клиента "файловый" вариант БД:
для Linux-клиента "клиент-серверный" вариант БД:
для Windows-клиента "файловый" вариант БД:
для Windows-клиента "клиент-серверный" вариант БД:
соответственно подставить свои путь к исполнительному файлу 1cv8 или 1cv8.exe и переменные, где:
5. Отключаем главный узел обмена.
Как и в предыдущем пункте, для этого необходимо запустить конфигуратор из командной строки с параметрами и дождаться его выполнения:
для Linux-клиента "файловый" вариант БД:
для Linux-клиента "клиент-серверный" вариант БД:
для Windows-клиента "файловый" вариант БД:
для Windows-клиента "клиент-серверный" вариант БД:
6. Запускаем 1С в режиме предприятия и, и в появившемся предложении о восстановлении связи с "главным узлом обмена", подтвердить ОТКЛЮЧЕНИЕ.
7. Настраиваем узлы.
Если нам необходима БД для разработки - удаляем лишние узлы обмена и сценарии синхронизации. Все БД готова. Можно переходить к п. 8
Если создаем новый узел РИБ:
Восстанавливаем настройки и возможность входа пользователей.
8. Восстанавливаем автоматическое обновление предопределенных данных.
Как и в п. 4, для этого необходимо запустить конфигуратор из командной строки с параметрами и дождаться его выполнения:
Механизм РИБ — механизм распределенных информационных баз - это когда у вас есть главная база и подчиненная(ые). Главная база может быть только одна, подчиненных может быть много. Каждая подчиненная база может иметь свои подчиненные базы, для которых она будет главной.
Вот посмотрим на картинку из первой ссылки по запросу в Яндексе:
РИБ используется для обмена данными. Причем не только теми данными, с которыми работает пользователь, но и данными изменения конфигурации. То есть РИБ позволяет передавать изменения конфигурации. Но изменить конфигурацию можно только в главной базе!
Визуализируем:
У нас большая компания и много филиалов. Есть доработанная УНФ, которую мы гордо называем УБФ(Управление Большой Фирмой). Но мы решили, что хватит терпеть то, что все филиалы имеют доступ к документам всех филиалов и каждому филиалу решили сделать отдельную базу, которую синхронизировать с нашей основной базой для передачи данных. Что ж, можно. Сделали.
И внезапно мы решили изменить картинку, которая появляется при входе в базу, захотели поместить туда логотип нашей фирмы, а почему бы и нет?
Как запилить картинку во все базы всех филиалов? Ну при текущем варианте, что у всех филиалов отдельная база, только руками. Руками специалистов, которые умеют заходить в конфигуратор и знают что нужно там нажать.
А вот если бы мы сделали подчиненные базы для филиалов, то есть использовали РИБ, то и данными бы обменивались, как при обычной синхронизации, и картинка бы сама добавилась во все "базы-дочки". Однако, в конфигуратор зайти бы все-таки пришлось, но только чтобы нажать кнопочку "Обновить конфигурацию базы данных", вот картинка:
Как создать подчиненную базу, на пальцах:
я буду использовать Управление торговлей, редакция 11 (11.4.13.275), но способ, в целом, одинаковый во всех типовых конфигурациях.
1) Сначала проделаем шаги, как при настройке обычной синхронизации:
2) . поставим галочку, нажмем.
4) тут ознакомимся с описанием. Я выберу обычную настройку, но если бы мы следовали примеру выше, то нужно было бы выбрать "с фильтром" и там одним кликом выбрать нужный филиал.
6) Указываем префикс - он будет подставляться к номерам документов, чтобы можно было отличить документы дочки и основной базы.
7) в общем случае, тут ничего не надо нажимать, кроме "Записать и закрыть".
8) А вот теперь создаем нашу новую подчиненную базу:
9) указываем место, куда ее покладем.
10) Зайдем в нашу новую подчиненную базу и закончим настройки синхронизации(синхронизация уже создалась, так как использовали РИБ, но нужно указать каталог для обмена выбрав "Настройки подключения")
(обратите внимание на верхний левый угол окна программы, там название базы, он отличается от предыдущих, так как это "дочка")
Кстати, в новой базе все пользователи будут выключены, пароли сброшены, нужно включить руками:
В общем-то ВСЕ.
Подчиненная база создана!
Теперь, когда наши программисты что-нибудь улучшат, эти улучшения прилетят в подчиненные базы сами.
Вот что-то изменили в основной базе:
нам нужно перенести изменения в базы-дочки.
Для этого запускаем главную базу в режиме 1С:Предприятие, то есть в пользовательском интерфейсе, заходим в настройки синхронизации, жмем выделенную кнопку:
После того, как синхронизация закончится, заходим в базу дочку и так же жмем "Синхронизировать", база загрузит данные и напишет:
После нажатия на Далее база закроется и начнет устанавливать обновления.
Когда обновы установятся, база начнет запускаться и сообщит нам следующее:
Это означает, что не обновлена конфигурация базы данных. Та самая маленькая кнопка в конфигураторе и это именно та причина, почему придется ОДИН раз зайти в конфигуратор. Что ж, зайдем в конфигуратор базы-дочки и нажмем эту кнопку, заодно вообще посмотрим что-да-как там, мы ж там еще не были.
Откроем конфигурацию и вот что увидим
Нажмем на "Обновить конфигурацию базы данных".
Увидим список изменений, которые прилетели с обновлениями:
И вот эти обновления появились в подчиненной базе.
Теперь необходимо запустить базу в пользовательском режиме, чтобы выполнились обработчики обновления.
Несколько правил:
1) Все узлы, кроме одного, должны иметь по одному главному узлу и один узел не будет иметь главного узла - это корневой узел.
2) Конфигурация может быть изменена только в узле, не имеющем главного узла (то есть в корневом).
3) Изменения конфигурации будут передаваться от главного к подчиненным узлам.
4) Разрешение коллизий так же будет производиться исходя из отношений "главный - подчиненный" - если изменения сделаны одновременно и в главном и в подчиненном узлах, то приняты будут изменения главного узла.
5) Сделать подчиненный узел в распределенной базе можно разными способами, но создание начального образа является рекомендуемым.
А теперь то, ради чего все писалось.
Как подчиненную базу сделать обычной(нормальной, отдельной, как хотите).
Я опишу только тот способ, которым пользуюсь. Это моя шпаргалка. Но он не единственный.
1) Заходим в свойства ярлыка запуска окна 1С:Предприятие:
2) В поле "Объект" дописываем:
DESIGNER /F"Путь до базы" /N"Имя Пользователя в базе" /P"Пароль пользователя" /ResetMasterNode
Читайте также: