Изменения конфигурации не загружались в иб из которой прибыл файл переноса

Обновлено: 07.07.2024

В статье описаны возможные ошибки, возникающие при обмене данными между программами 1С, а также варианты решения этих ошибок.

Общие ошибки, возникающие в 1С при работе с XML

Не установлен MS XML Core Services 4.0

На компьютере не установлен Microsoft XML Core Services 4.0, используемый "1С:Предприятием 8" для работы с XML.

Попробуйте установить Microsoft XML Core Services 4.0. При установке "1С:Предприятия 8" Microsoft XML Core Services 4.0 устанавливается автоматически.

Ошибка разбора XML

Ошибка, возникающая при синтаксическом анализе данных XML в процессе чтения. Все ошибки, определенные в SAX2, трансформируются в данную ошибку, генерируемую платформой "1С:Предприятие 8".

Проверьте правильность оформления и синтаксис данных XML.

Ошибочный порядок записи XML

Методы записи содержимого документа XML вызываются в неправильном порядке. Например, запись атрибута вызывается после записи текста элемента.

Текст XML содержит недопустимые символы

Записываемый текст XML содержит недопустимые символы.

Текст XML должен соответствовать требованиям к XML.

Недопустимое имя XML

Записываемое имя XML содержит недопустимые символы.

Имя XML должно соответствовать требованиям к XML.

Пустое значение URI допустимо только для пространства имен по умолчанию

Производится попытка записать соответствие пространства имен, в котором URI пространства имен, представленному пустой строкой, соответствует непустой префикс.

Значение URI пространства имен должно соответствовать рекомендации Namespaces in XML.

Переопределение пространства имен по умолчанию для текущего элемента XML недопустимо

Текущий записываемый элемент не относится ни к какому пространству имен. Поэтому для него недопустимо определение непустого пространства имен по умолчанию.

Переопределение пространства имен по умолчанию для элемента, не относящегося ни к какому пространству имен – запрещено.

Ошибка преобразования данных XML

Ошибка возникает вследствие нарушения структуры передаваемых данных.

Значения данного типа не могут быть представлены в XML

Производится попытка записи в XML значения, для типа которого не определена процедура записи в XML. Или производится попытка чтения из XML значения неизвестного типа или типа, для которого не определена процедура чтения из XML.

Ошибка данных XML

Ошибка возникает при получении некорректных данных из источника XML или же в случаях неудачного считывания из базы данных содержимого объекта, данные которого должны быть прочитаны из источника XML: блокировка объекта или же отсутствие прав на чтение данного объекта.

Например, чтение существующего элемента справочника: если элемент справочника является группой, а было прочитано то, что является элементом, будет сгенерирована данная ошибка.

Если вышеперечисленные способы не привели к устранению ошибки, то необходимо проверить целостность данных информационной базы.

Ситуации, возникающие при обмене данными в рамках распределенной информационной базы в 1С

Узел не является узлом распределенной ИБ

При вызове одного из методов встроенного языка, относящегося к распределенной ИБ, значение переданного параметра - узла плана обмена - не принадлежит плану обмена с установленным признаком "Распределенная информационная база".

Необходимо убедиться в правильности передаваемого в метод параметра.

Начальный образ может быть выгружен только во вновь созданную или пустую ИБ

По указанному месторасположению начального образа уже существует другая информационная база.

Необходимо убедиться, что при создании начального образа указано место, в котором не существует информационной базы.

Ошибка формата представления изменений

Попытка приема изменений от неизвестной конфигурации

Искажены изменения конфигурации!

Конфигурация узла распределенной ИБ не соответствует ожидаемой!

Изменения конфигурации не могут быть получены из подчиненного узла распределенной ИБ

Из главного узла распределенной ИБ получены изменения конфигурации

Из главного узла получены изменения конфигурации.

Данные не входят в состав плана обмена

Если не нашли решения своих ошибок или хотите воспользоваться услугами экспертов для настройки обмена данными между программами 1С, проверки и исправления ошибок, звоните в офисы Первого Бита.

Vofka --> Vofka



Просмотр профиля Zaval --> Zaval



Просмотр профиля

Уххх, лет пять семерошную УРБД в руках не держал
Пункт 3 нужно обязательно выполнять, изгнав из базы всех пользователей. Собственно, такая ситуация и возникает из-за попытки загрузки изменений конфы в разделенном(немонопольном) режиме.
Ну а дальше можно не мудрствовать, а просто повторить выгрузку из ПБ. УРБД устроена таким образом, что потеря файла обмена приводит только к задержке по времени, данные будут выгружены в следующий раз.

Подробности.
Когда в базе изменяется подлежащий обмену объект, в таблицу(файл) 1SUPDTS(?) пишется строчка. В ней указывается код типа объекта, код объекта, код базы-получателя.
При формировании выгрузки для какой-либо базы файлу присваивается порядковый номер, в него выгружаются объекты, для этой базы предназначенные, а в соответствующие строки 1SUPDTS вписывается номер выгрузки. Удалены эти строки будут только тогда, когда придет подтверждение (Acknowledgements) с этим самым номером.
Если выгрузить повторно - выгрузка будет со следующим номером, в строки таблицы будет записан уже новый номер, и система будет ждать подтверждения.
* Следствие. Если выгрузка идет систематически, а размер файла настойчиво растет даже при уменьшающейся интенсивности работы - это может означать, что подтверждения не приходят, что-то не так на той стороне.

Ценность УРБД - в простоте, тут просто ломаться нечему

Zaval --> Zaval



Просмотр профиля

Хм. тема актуальна? Тогда, наверное, есть смысл вспомнить подводные камни.
Возможно, что-то из этого списка исправлено в последних платформах, а может и нет - 1с8 тогда уже продавалась.

1. Не стОит использовать в кодах баз кириллицу. Поначалу все может идти нормально, а сюрпризы могут появиться в самый неподходящий момент.
Нпр, с одной базой нужно обмениваться каждый час, а с остальными - раз в день. Вполне логично создать два задания в шедулере и два файла параметров обмена, в одном из которых вместо * (обмен для всех баз) явно задать код. упс. тогдашняя платформа под Вин2000 просто не замечала этого кода, а коды без кириллицы отрабатывала на "ура".

2. Если у вас под УРБД работает ЗиК, комплексная с включенным участком Зарплата или любая другая с использованием ЖурналаРасчетов, то нужно любыми средствами запретить проведение зарплатных документов в "неродной" базе. Если при проведении такого "чужого" документа в ЖР будет записан хотя бы одна запись сверх их исходного количества - очень скоро обмен станет колом.
Запись ЖР - самостоятельный объект конфигурации, но его код при создании формируется на основе кода документа, а не кода текущей базы. То есть код у Записи такой, как если бы она была создана в месте создания документа. А в это же время в базе, из которой мигрировал документ, нумерация Записей продолжается своим чередом. Сможет "левая" запись (по времени и настройкам миграции) попасть в Место создания документа - никто ничего не заметит. Не успеет - "дубль в ключевом поле".

3. Не пытайтесь делать выгрузку/загрузку по сети. Это выглядит удобным и изящным, но - лотерея. Не поленитесь, пропишите: выгрузка на диск размещения каталога базы, копирование файла на диск размещения другой базы, затем загрузка в той базе "из под себя". Да, придется создавать отдельное задание на каждом сервере и сдвигать их по времени. Это лучше, чем нестись сломя голову в филиал из-за остановки обмена.

Zaval --> Zaval



Просмотр профиля

Блин, только сейчас заметил, что у автора той ветки файлы MD идентичны Исправляюсь

1. Выгоняем пользователей. Сохраняем бэкап ЦБ. Все делается именно на ЦБ. закрываем Конфигуратор.

3. В таблице/файле находим все строки со следующими значениями полей:
DBSIGN (Код базы УРБД) - Код нашей периферийной базы
OBJID (Идентификатор объекта ИБ) - пусто (0)
Эти строки создаются при сохранении измененной конфигурации. Строки с различными TYPEID указывают на изменение отдельных объектов конфигурации.

5. Можно запускать обмен и работать.

mister-x --> mister-x



Просмотр профиля

Сделал успешно по такой инструкции:

Чтобы превратить распределенную базу в обычную, удалите файлы 1SDBSET.DBF, 1SDWNLDS.DBF, 1SUPDTS.DBF и соответствующие им файлы *.CDX, а также 1SSYSTEM.DBF. В принципе, достаточно удалить 1SSYSTEM.DBF. После этого необходимо восстановить точку актуальности, запустив программу в монопольном режиме. Этот трюк недокументирован (угадайте, почему), но, тем не менее, он работает.
За работу компоненты УРБД отвечает библиотека DistrDB.dll в папке BIN программы 1С:Предприятие. Эта компонента приобретается и устанавливается отдельно. создать такой пустой файл, потом запустить инсталяцию снова, файл сделается

Согласно документации, процесс инициализации РБД - необратимый, но иногда возникает потребность удалить всякое упоминание о том, что база данных когда-то была распределенной.Что для этого необходимо сделать:
В первую очередь, в файле 1SSYSTEM.DBF вручную очистить 3-х символьное поле DBSIGN (содержащее код ИБ), и, в принципе, этого достаточно.
Для возврата ИБ в первозданное состояние нужно дополнительно:
Удалить файлы 1SDBSET.DBF, 1SDWNLDS.DBF, 1SUPDTS.DBF и соответствующие индексные файлы (.CDX) .
В файле 1SSYSTEM.DBF обнулить 36-ти символьную строку DBSETUUID: 00000000-0000-0000- 0000-000000000000.

"В таблице _1SDBSET есть поле DBSTATUS, оно может принимать следующие значения:
P - Центральная
M - Текущая
N - Периферийная (непроинициирована)
C - Периферийная
В периферийной базе меняешь эту таблицу соответствущим образом и все Ок."

Если забыл выгрузить изменения из централ. в периф.:

Придется в переферийной сделать Такие же изменения чтобы бызы стали по стуктуре аналогичными. Затем по шагам:

Сделал успешно по такой инструкции:

Если забыл выгрузить изменения из централ. в периф.:

Придется в переферийной сделать Такие же изменения чтобы бызы стали по стуктуре аналогичными. Затем по шагам:

1. Конфигурация узла распределенной ИБ не соответствует ожидаемой.

Самой распространенной ошибкой при использовании распределенных баз в 1с:Предприятие 8.x является ошибка "Конфигурация узла распределенной ИБ не соответствует ожидаемой". Связана она с рассинхронизацией конфигурации главного и подчиненного узла, возникать может по нескольким причинам, самая распространенная из них это динамическое обновление конфигурации. Рассмотрим основные пути решения данной проблемы, укажу способы по простоте их использования, сначала самые простые (но иногда не менее эффективные), потом более сложные:

Чистка кэша .

  • При работе в режиме предприятия 1с кэширует метаданные для ускорения работы программы и при динамическом обновлении конфигурации использует их до момента перезапуска сеанса пользователя. При это могут возникать ситуации, когда после перезапуска программа не обновила метаданные из измененной, а продолжает использовать старые. В такой ситуации помогает очистка кэша, при новом запуске программа обновит метаданные. Очистить кэш можно множеством способов, приведу несколько из них:
  • На мой взгляд самый простой из них это удаление базы из списка информационных баз и добавление заново под другим именем. При добавлении базы как новой в список информационных баз программа создаст новый каталог на диски для хранения кэшей к этой базе.
  • Можно очистить базу удалив папки с кэшем. Папки храняться в зависимости от версии windows:

<каталог пользователя>\Local Settings\Application Data\1C\1Cv82

<каталог пользователя>\Application Data\1C\1Cv82

Можно воспользоваться готовым bat-файлом для удаление файлов кэша, как это описано в этой статье "Чистка кэша 1с".

Не денамическое обновление корневого узла.

  • Данный метод обноружил случайно, на просторах интернета такого способа не нашел, но помогает он очень часто и в отличии от следующих способов помогает решить проблему намного быстрее и проще. Заключается он в том, что мы еще раз меняем что либо в корне конфигурации (я чаще всего меняю синоним конфигурации, например добаляя пробел в конце синонима) и делаем при этом не динамическое обновление. После этого производим еще раз обмен из главного узла с подчиненными. В большенстве случаев, хотя и не всегда к сожалению, данный метод позволяет решить ошибку рассинхронизации конфигураций. Этот способ не всегда является эффективным, но в отличии от следующих способов позволяет быстро решить данную проблему, особенно при большом количестве узлов распределенных баз.

Перенос конфигурации в распределенный узел .

Самый распространенный способ решения данной проблемы, он почти в 100% случаев помогает решить данную проблему, опять таки замечу, что почти в 100%, т.к. у меня возникали случаи, когда переносом конфигурации из главного узла в подчиненный проблема не решалась. Данный метод заключается в переносе конфигурации из главной базы в распределенную.

Последовательность действий:

  • выгружаем из центральной базы конфигурацию в cf-файл;
  • отвязываем переферийную базу от главного узла, вызвав команду:
  • заменяем конфигурацию переферийной базы на выгруженный в первом шаге cf-файл, для этого пользуемся меню "Загрузить конфигурацию из файла".
  • Привязываем переферийную базу обратно к главному узлу РИБ, вызвав команду:

где в качестве параметра передаем главный узел распределенной базы.

Для выполнение этих действий удобнее всего воспользоваться обработкой, которую можно скачать здесь (подходит для всех конфигураций на не управляемых формах, т.к. Розница 1.0 или УТ 10.3, огромное множество аналогичных можно найти на просторах инфостарта).

Подмена хэша конфигурации в файле обмена.

  • Данный метод был взят из статьи Популярные ошибки РИБ. Метод на мой взгляд довольно таки сложный и длительный, поэтому я его указываю как самый последний из вариантов решения данной проблемы, его стоит использовать только лишь в том случае, если не один из выше перечисленных способов не позволил решить проблему. Его суть заключается в том, что мы заменяем хеш конфигурации в файле обмена на правильный и тем самым обманывая программу производим обмен.

Последовательность действий:

  • выполняем действия из предыдущей методики;
  • выгружаем из переферийной базы файл обмена, но не загружаем его в главную базу;
  • выгружаем из главной базы файл обмена, но не загружаем его в переферийную базу;
  • в файле обмена из главной базы заменяем блок, содержащий информацию об изменениях конфигурации и хэши (Digest1 и Digest2), на блок хэшей из файла переферийной базы (пример см. ниже).
  • производим загрузку файла из 4-го пункта в переферийную базу;
  • обязательно перезаписываем файл обмена из переферийной базы (2-й пункт) этот файл не должен быть загружен при обмене в главную базу.
  • для проверки делаем несколько последовательных обменов.

Если при обмене используется сжатие данных, то либо отключаем сжатие, либо сначала распаковываем файл, меняем, потом запаковываем обратно и отправляем.

Блок файла обмена из главной базы:

нужно заменить на блок файла обмена из переферийной базы (обратите внимание Digest1 у файла из переферийной базы всегда равен "00000000000000000000000000000000". )

3. Ошибка преобразования данных XML.

В статье описаны возможные ошибки, возникающие при обмене данными между программами 1С, а также варианты решения этих ошибок.

Общие ошибки, возникающие в 1С при работе с XML

Не установлен MS XML Core Services 4.0

На компьютере не установлен Microsoft XML Core Services 4.0, используемый "1С:Предприятием 8" для работы с XML.

Попробуйте установить Microsoft XML Core Services 4.0. При установке "1С:Предприятия 8" Microsoft XML Core Services 4.0 устанавливается автоматически.

Ошибка разбора XML

Ошибка, возникающая при синтаксическом анализе данных XML в процессе чтения. Все ошибки, определенные в SAX2, трансформируются в данную ошибку, генерируемую платформой "1С:Предприятие 8".

Проверьте правильность оформления и синтаксис данных XML.

Ошибочный порядок записи XML

Методы записи содержимого документа XML вызываются в неправильном порядке. Например, запись атрибута вызывается после записи текста элемента.

Текст XML содержит недопустимые символы

Записываемый текст XML содержит недопустимые символы.

Текст XML должен соответствовать требованиям к XML.

Недопустимое имя XML

Записываемое имя XML содержит недопустимые символы.

Имя XML должно соответствовать требованиям к XML.

Пустое значение URI допустимо только для пространства имен по умолчанию

Производится попытка записать соответствие пространства имен, в котором URI пространства имен, представленному пустой строкой, соответствует непустой префикс.

Значение URI пространства имен должно соответствовать рекомендации Namespaces in XML.

Переопределение пространства имен по умолчанию для текущего элемента XML недопустимо

Текущий записываемый элемент не относится ни к какому пространству имен. Поэтому для него недопустимо определение непустого пространства имен по умолчанию.

Переопределение пространства имен по умолчанию для элемента, не относящегося ни к какому пространству имен – запрещено.

Ошибка преобразования данных XML

Ошибка возникает вследствие нарушения структуры передаваемых данных.

Значения данного типа не могут быть представлены в XML

Производится попытка записи в XML значения, для типа которого не определена процедура записи в XML. Или производится попытка чтения из XML значения неизвестного типа или типа, для которого не определена процедура чтения из XML.

Ошибка данных XML

Ошибка возникает при получении некорректных данных из источника XML или же в случаях неудачного считывания из базы данных содержимого объекта, данные которого должны быть прочитаны из источника XML: блокировка объекта или же отсутствие прав на чтение данного объекта.

Например, чтение существующего элемента справочника: если элемент справочника является группой, а было прочитано то, что является элементом, будет сгенерирована данная ошибка.

Если вышеперечисленные способы не привели к устранению ошибки, то необходимо проверить целостность данных информационной базы.

Ситуации, возникающие при обмене данными в рамках распределенной информационной базы в 1С

Узел не является узлом распределенной ИБ

При вызове одного из методов встроенного языка, относящегося к распределенной ИБ, значение переданного параметра - узла плана обмена - не принадлежит плану обмена с установленным признаком "Распределенная информационная база".

Необходимо убедиться в правильности передаваемого в метод параметра.

Начальный образ может быть выгружен только во вновь созданную или пустую ИБ

По указанному месторасположению начального образа уже существует другая информационная база.

Необходимо убедиться, что при создании начального образа указано место, в котором не существует информационной базы.

Ошибка формата представления изменений

Попытка приема изменений от неизвестной конфигурации

Искажены изменения конфигурации!

Конфигурация узла распределенной ИБ не соответствует ожидаемой!

Изменения конфигурации не могут быть получены из подчиненного узла распределенной ИБ

Из главного узла распределенной ИБ получены изменения конфигурации

Из главного узла получены изменения конфигурации.

Данные не входят в состав плана обмена

Если не нашли решения своих ошибок или хотите воспользоваться услугами экспертов для настройки обмена данными между программами 1С, проверки и исправления ошибок, звоните в офисы Первого Бита.

Этот метод годится и при создании архивной копии базы.
Суть прикола вот в чем: если при выгрузке файл архива не помещается на одну дискету, то программа без проблемм разобъет его на несколько (в зависимости от объема). Но если вдруг одна из нескольких дискет окажется дефектной (т.е. записать-то оно запишет, прочитать потом не сможет), то придется весь процесс выгрузки повторить на другом комплекте дискет.
Однако есть таки способ делать одновременно несколько копий на дискеты без дополнительного считывания. Основан сей "фокус" на полезном свойстве буфера обмена: в него не копируется дважды одна и та-же информация. По ходу дела все станет понятно само собой.

Для этого "трюка" нам потребуется:
- достаточное количество дискет;
- запущенный "Конфигуратор";
- два окна проводника (просмотр дискеты и произвольного каталога на жестком диске).

Поехали.
1. Запускаем в "Конфигураторе" выгрузку данных, выбрав в качестве приемника дискету и задав имя файла выгрузки (например: "a:\data"). Программа произведет сжатие необходимой информации и запросит дискету №1.
2. Пишем не дискете карандашиком "А1" (это будет комплект "А"), вставляем в дисковод и нажимаем "ОК".
3. Закончив запись, программа запросит диск №2.
4. Переходим в окно проводника, где для просмотра выбрана дискета. Видите на ней файл выгрузки (его имя мы задали в п.1)? Если нет, то нажмите клавишу "F5" или в меню: "Вид" "Обновить". Появился? Выделяем его (мышкой) и копируем в буфер (нажимаем одовременно клавиши "Ctrl" и "C" или кнопку "Копировать", или в меню: "Правка" "Копировать").
5. Переходим в окно проводника, где выбран каталог на жестком диске. Вставляем файл (только что скопированный с дискеты) нажатием "Ctrl" и "V" или кнопку "Вставить", или в меню: "Правка" "Вставить". Заметьте: дисковод в это время не дергается, т.к. файл выгрузки находится в буфере (его поместил туда "Конфигуратор 1С"), так что даже если ваша дискета оказалась сбойной и не прочитается при обращении к ней, то файл на жестком диске без сбоев. Поэтому теперь этот файл (который только что вставили на жесткий диск) копируем в буфер (см. п.4).
6. Переходим в окно проводника, где выбрана дискета. Вынимаем дискету "А1", пишем на другой "Б1" (комплект "Б") и вставляем в дисковод.
7. Теперь даем команду "Вставить". Получаем вторую копию дискеты №1.
8. Повторяя п.7 можно сделать сколько угодно копий (хотя больше 3 вряд-ли имеет смысл) дискеты, подписывая их буквами по порядку.
9. Закончив с тиражированием дискеты №1, подписываем очередную дискету "А2" и вставляем в дисковод.
10.Переходим в "Конфигуратор". Он запрашивал диск №2? Мы его только что вставили, поэтому нажимаем "ОК".
11.Когда закончится запись, раскопируем дискету согласно п. с 4 по 8. При вставке на жесткий диск заметьте: файл с таким иненем уже существует и при вставке из буфера будет заменен! Если Вы имеете желание сохранить копии всех дискет, то придется каждую копию переместить в отдельный каталог (папку). Делается это так: создаем новую папку (Меню: "Файл" "Создать" "Папку") и меняем ее название на "Диск1", теперь "хватаем" наш файл мышкой и, удерживая левую кнопку мыши, переносим его на папку "Диск1". Копия дискеты сохранена, файла в текущем каталоге нет. Теперь даем команду "Вставить".
12.Если потребуется, то и остальные дискеты сохраняем аналогично. При желании сохранить копии всех дискет на жестком диске каждый очередной файл после копирования на дискеты переносим в отдельную папку "Диск2", "Диск3" и т.д. (п. 11).
13.Когда выгрузка полностью закончится, нужно либо удалить файл с жесткого диска, либо (если Вы сохраняете все копии дискет) перенести его в папку с очередным именем "Диск. ". Затем все вновь созданные папки "Диск1", "Диск2" и т.д. переносим в отдельную папку (чтобы все они были в одном месте).

Дело в том, что при первой выгрузке и при изменении конфигурации в выгрузку включается файл "1cv7.md" (у современных конфигураций достаточно большого размера, даже в архиве более 2Mb и на одну дискету ну никак не влезет). Его можно увидеть если Вы сохраните файл выгрузки на жесткий диск и откроете его архиватьром "WinZIP". Если Вам требуется перенести на дискетах данные сразу нескольких периферийных баз, то основной объем каждой выгрузки (это как раз файл "1cv7.md") будет многократно продублирован. Естественно, дискет потребуется много. Ну так мы его "вырежем" из архива и сохраним отдельно.
1.Сохраните файлы выгрузки для каждой периферийной базы на жесткий диск под разныма именами.
2.Откройте архиватором "WinZIP" (должен быть установнен отдельно) последовательно каждую выгрузку и удалите из нее файл "1cv7.md". Теперь Ваши файлики стали малюсенькоми (скорее всего несколько десятков килобайт) и их можно записать на дискеты (лучше сделать несколько копий, для надежности).
3.Отдельно архивируем файл "1cv7.md" из каталога Вашей базы с разбиением на дискеты (можно использовать тот-же "WinZIP").

На компьютере с периферийной ИБ нужно перед загрузкой данных файл "1cv7.md" вставить обратно в выгрузку. Для этого:
1.Скопируйте в каталог (папку) на жесткий диск файл с данными для текущей базы,
2.Разархивируйте в тот-же каталог файл "1cv7.md".
3.Добавьте файл "1cv7.md" в выгрузку (просто перетащив его мышкой или открыв архиватор "WinZIP"). Теперь файл выгрузки содержит все необходимое.
4.Загружаем данные в периферийную базу из файла с жесткого диска.
5.Удаляем лишние файлы.

Читайте также: