Причины наиболее часто встречающихся ошибок при синхронизации баз ЗУП-БП и способы их устранения
Не выгружаются сотрудники и кадровые документы в Бухгалтерию
Они и не должны выгружаться. Если вы зайдете в Администрирование – Синхронизация данных – Настройки синхронизации и нажмете иконку Состав отправляемых данных, вы увидите, какие объекты участвуют в обмене, а какие нет.
Не видно базу в окне выбора базы для начальной выгрузки
Необходимо зайти в стартовое меню, выбрать базу Бухгалтерии, нажать Изменить и просто нажать в появляющихся окнах Далее и Готово. После заново вернуться к окну выбора базы, как правило, такой способ решает проблему.
Не найден путь к каталогу обмена
Каталог обмена был вами создан не на облачном диске, а где-то на своем компьютере. Таким образом, базы на облачном диске просто не могут получить к нему доступа. Создать папку обмена необходимо именно в облаке. Желательно, в папке Общие.
Префикс, указываемый при настройке ЗУП для Бухгалтерии не соответствует префиксу, действительно назначенному для базы Бухгалтерии.
Уточнить префикс в Бухгалтерии — Администрирование — Синхронизация данных.
Если там это поле совсем пустое добавьте в него «00» и нажмите Enter.
Ведомости не выгружаются из ЗУП в Бухгалтерию
1. В ЗУП – Администрирование – Синхронизация данных — Настройки синхронизации — Настроить указано, что выгрузка производится сводно, а не с детализацией по сотрудникам.
Установить переключатель на С детализацией по сотрудникам, затем вручную зарегистрировать отправку нужных ведомостей. В дальнейшем они уже будут регистрироваться сами, при создании или изменении, как обычно.
2. В ЗУП – Администрирование – Синхронизация данных — Настройки синхронизации — Настроить указан месяц начала обмена в ЗУП больший, чем месяц выгружаемых ведомостей.
Установить корректный месяц начала обмена, затем вручную зарегистрировать отправку нужных ведомостей. В дальнейшем они уже будут регистрироваться сами, при создании или изменении, как обычно.
В Бухгалтерии при настройке синхронизации не появляется 3-й из 4-х шаг «Сопоставление данных»
Базы «не видят» друг друга. В Бухгалтерии на этапе Правила настройки подключения при настройке через каталог вами не был установлен флаг Получить настройки подключения из файла и не был выбран собственно файл настроек, созданный программой ЗУП в папке обмена.
В Бухгалтерии при получении документа Отражение зарплаты из ЗУП в нем есть лишь проводки по НДФЛ
В ЗУП — Настройка — Реквизиты организации — Учетная политика и другие настройки — Бухучет и выплата зарплаты — установить какой-то способ отражения зарплаты (если нет — создать новый, желательно с названием Отражение начислений по умолчанию, так как такой способ обычно уже присутствует в программе Бухгалтерия с сопоставленным счетом 26). Убедиться, что дата начала бухучета включает требуемые для передачи в Бухгалтерию документы. Заново заполнить документ Отражение зарплаты и повторно произвести синхронизацию в Бухгалтерию. Если данный способ в Бухгалтерии еще не настроен, настроить его (Зарплата и кадры – Настройки зарплаты – Отражение в учете – Способы учеты зарплаты — указать счет затрат и статью Оплата труда). В справочник способов отражения можно попасть напрямую из документа Отражение зарплаты.
После удаления документа на стороне Бухгалтерии он не отправляется заново из ЗУП
Удаляя документ в одностороннем порядке, вы разрываете связь этого документа с ЗУП в настройках обмена и оставшийся объект не может найти путь, по которому он должен быть отправлен с заменой. Если что-то удаляете на одной стороне — старайтесь выполнить удаление и на другой.
При попытке выгрузить предыдущий период ничего не выходит, хотя в ЗУП — Настройки синхронизации — Настроить — вы указали более раннюю дату начала обмена
Несмотря на то, что вы указываете новую дату обмена, все имеющиеся в данном периоде автоматически не будут лишь на этом основании включены в обмен. Вам придется добавить их в обмен вручную. В ЗУП для этого нажимаем кнопку Состав отправляемых данных (слева от кнопки Синхронизировать). Выбираем нужный тип документов и слева вверху нажимаем Зарегистрировать, где указываем отбор документов, которые нужно отправить — один объект, все или выбор по своему критерию.
В Бухгалтерии не делаются проводки в документе Отражение зарплаты — отсутствует ИФНС
На стороне ЗУП проверяем в Настройка — Реквизиты организации — Основное – Изменить данные регистрации — дату начала регистрации. Если она больше даты документов отражений, меняем ее, затем перепроводим документы начислений (чтобы зарегистрировать привязку к ИФНС) и перезаполняем отражение. Проверяем на вкладке НДФЛ присутствие ИФНС в соответствующей колонке. Отправляем документ в Бухгалтерию.
Суммы в Бухгалтерии после отражения зарплаты в учете задваиваются
Необходимо проверить нет ли в Бухгалтерии имеющихся начислений/выплат того же периода, сделанных когда учет велся в ней. Проверить можно расшифровкой оборотов в оборотно-сальдовой ведомости по счету 70. Если начисления есть, вам необходимо решить, что именно вы хотите оставить, а дублирующие документы в ЗУП или в Бухгалтерии — удалить.
Чтобы в Бухгалтерии посмотреть, какие документы действовали на момент, когда учет велся в Бухгалтерии, необходимо зайти в Зарплата и кадры – Настройки зарплаты и переключиться на режим В этой программе.
После проверки и необходимых изменений не забудьте переключить режим обратно.
Документы на стороне ЗУП считаются выгруженными, а в Бухгалтерии не появляются
В Бухгалтерии проверить Администрирование — Синхронизация данных — не стоит ли дата запрета загрузки. Это значение определяет дату, по которую в Бухгалтерию не могут быть загружены никакие документы из сторонней программы. Также в Администрирование — Синхронизация данных — Настройки синхронизации – ссылка Предупреждения проверить нет ли наших документов на вкладке Непринятые по дате запрета. Если они там есть, вы сможете, не трогая дату запрета загрузки, нажать Принять версию.
Организации/подразделения/физлица задвоились
На этапе сопоставления данных в Бухгалтерии при настройке синхронизации были проигнорированы круглые значки напротив объектов, которые сигнализируют о том, что данные объекты могут задвоиться. При двойном щелчке на такой значок вы попадаете в окно, разделенное пополам, где слева вы видите объекты из Бухгалтерии, а справа объекты из ЗУП. Если вы видите, что какие-то объекты слева и справа являют собой одно и тоже (ООО «Янтарь» в Бухгалтерии и Янтарь ООО в ЗУП) — вы должны щелкнуть дважды на любом из них и выбрать второй из списка. Таким образом вы даете указание программе их сопоставить и задвоения не произойдет.
При уже имеющемся задвоении вы можете:
а) восстановить резервные копии баз, сделанные до начала синхронизации
б) воспользоваться обработкой совмещения дублей — Администрирование — Обслуживание — Корректировка данных — Поиск и удаление дублей.
Путь к обработке для Бухгалтерии 3.0 и ЗУП 3.1 один и тот же – Администрирование – Обслуживание – Корректировка данных – Поиск и удаление дублей.
Важно! Перед запуском этой обработки создайте резервную копию базы. Это можно сделать прямо в папке базы (путь к которой указан в стартовом меню), либо через Администрирование – Обслуживание – Резервные копии и восстановление.
Также убедитесь, что отключены имеющиеся в системе даты запрета изменений – они, скорее всего, не дадут вам заменить все ссылки и операция не будет выполнена.
Нажимаем на ссылку Поиск и удаление дублей
Выбираем объект, по которому требуется проверить наличие дублей. В ссылке Сравнивать выбираем критерии, по которым программа определяет объекты как дубли. В нашем примере объект это Регистрация в налоговых органах, а дубли мы будем определять по совпадению кода налогового органа.
Программа выполнит поиск дублей, покажет их нам и в каждом конкретном случае пометит как основной (объект, который надо оставить) – тот объект, на который привязано больше всего ссылок на документы, записи регистров и прочие объекты.
Особое внимание обратите на критерий назначения объектов дублями. При поиске дублей среди физических лиц, например, программа по умолчанию назначает критерием Совпадает по похожим словам. Так вот, с таким критерием есть шансы на то, что программа в итоге сочтет дублями физических лиц с похожими фамилиями и удалит одних с заменой на другие со всеми вытекающими. Критерий нужно вручную поменять на Совпадает (точное совпадение фамилии, имени, отчества) Отнеситесь к этой операции серьезно и обязательно создайте копию базы!
Нажимаем Удалить дубли. Иногда, особенно в случаях с удалением ИФНС и организаций, первая попытка может не дать результата – останется какой-то один объект, который не даст завершить переназначение ссылок и дубли останутся. В этом случае выбираем как основной другой объект и пробуем повторить операцию удаления. В нашем примере мы вручную выбрали как основную ту регистрацию к которой привязана наша организация.
На этот раз переназначение ссылок прошло успешно, а оставшиеся без привязок объекты-дубли теперь помечены в системе на удаление и их можно удалить через Администрирование – удаление помеченных объектов.
Удаляем через Администрирование – Обслуживание – Удаление помеченных объектов уже ни к чему не привязанные лишние регистрации:
Иногда требуется настроить синхронизацию между базами 1с через каталог обмена. Но настройка не всегда так очевидна, как казалось бы…
В этой статье я привел решение ошибки «Каталог обмена информацией не существует» в случае, если сервер 1с установлен на Linux и Windows сервере.
- Решение для Linux сервера 1с
- Решение для Windows сервера и файлового режима работы 1с
Решение для сервера 1с на Linux на примере Centos Stream.
Скорее всего вы получаете одну из нескольких ошибок:
Прямое подключение к информационной базе недоступно на сервере под управлением ОС Linux — ошибка говорит сама за себя, нам потребуется настройка сетевого обмена.
Ошибка подключения: Каталог обмена информацией не существует — данная ошибка возникает из-за того, что при настройке обмена авторизация в сетевой папке происходит учетной записью usr1cv8 из под Linux.
Для решения данной проблемы нам придется смонтировать сетевую папку в Linux под учетной записью, под которой работает сервер 1с.
1) Расшариваем сетевую папку на вашем файловом сервере и даем права на запись для учетной записи guest.
У меня будет //192.168.128.32/public/1C_Share
2) Установим cifs-utils на Linux сервере 1с:
yum install cifs-utils #для Centos
apt install cifs-utils #для Ubuntu
3) Создадим каталог для обмена, в который будет монтироваться сетевая папка:
mkdir /1C_Share
4) Посмотрим uid пользователя usr1cv8, чтобы при монтировании указать его владельцем: каталога
less /etc/passwd
5) Смонтируем нашу сетевую папку в каталог 1С_Share:
mount -t cifs //192.168.128.32/public/1C_Share /1C_Share -o user=guest,password=,uid=993
Теперь в настройках 1с указываем каталог для обмена 1C_Share и смотрим есть ли подключение:
6) Сейчас сделаем так, чтобы сетевая папка в Linux монтировалась автоматически после перезагрузки:
nano /etc/fstab и в конфиге добавляем внизу
//192.168.128.32/public/1C_Share /1C_Share cifs username=guest,password=,uid=993,iocharset=utf8,nofail 0 0
Решение для сервера 1с установленном на Windows Server.
Здесь все гораздо проще. Нужно авторизоваться в сетевом каталоге под учетной записью с которой у вас запущена служба 1с. У меня это USR1CV8.
Для этого под пользователем USR1CV8 переходим в Панель управления — Диспетчер учетных данных — Учетные данные Windows и добавляем адрес сервера //192.168.128.32 с данными авторизации, которые вы указали на файловом сервере.
Если вдруг у вас появляется подобная ошибка при файловом режиме работы 1с, то вам не хватает прав на запись для вашей учетной записи в каталоге, в котором вы настраиваете обмен.
Стоит посмотреть права для пользователя на вкладке Безопасность:
При переносе данных с одной конфигурации в другую или загрузки каких-либо бухгалтерских данных в 1С пользователь может столкнуться с сообщением «Ошибка при загрузке данных: {Обработка.УниверсальныйОбменДанными XML}». Обычно после данного сообщения об ошибке следует какое-либо уточнение, конкретизирующее тип ошибки, например «Тип не определен (ПланСчетовСсылка.Налоговый)». Появление данной ошибки обычно сигнализирует о несовпадении типов объектов в двух конфигурациях 1С (базовой и конечной), требуя корректировки правил обмена. Ниже разберём суть возникшей дисфункции и способы её решения.
Содержание
- Суть и причины дисфункции
- Измените правила обмена
- Изучите текст сообщения об ошибке
- Перенесите остатки на текущий месяц
- Обратитесь в техническую поддержку
- Обратитесь к платным специалистам
- Заключение
Суть и причины дисфункции
Рассматриваемая проблема имеет массовый характер, и встречается у множества пользователей. Обычно её появление вызвано:
- Разницей конфигураций и версий 1С, из-за чего переменные в обеих конфигурациях отличаются (по типам объектов, реквизитам и др.). Например, вместо «УдалитьСтавкаНДС» в новой конфигурации стоит «СтавкаНДС», вместо «УчётнаяПолитикаОрганизаций» необходима «УчетнаяПолитика» и другое. В некоторых случаях запрашиваемый новой конфигурацией реквизит может и вовсе отсутствовать как таковой;
- Имеющейся ошибкой в правилах конвертации (обмена);
- Некорректным переносом остатков (имеется попытка переноса остатков не на текущий месяц);
- Некорректно работает программный помощник выгрузки (например, ПомощникВыгрузки_V8);
- Некорректно установленным обновлением 1С.
Давайте разберёмся, как исправить ошибку при загрузке данных: {Обработка.УниверсальныйОбмен ДаннымиXML} на вашем ПК.
Это полезно знать: как исправить неверный формат хранилища данных в 1С.
Измените правила обмена
Для квалифицированных специалистов первым (и наиболее очевидным) решением является изменение правил обмена по возникшей проблеме. Правила изменяются путём работы с форматом обмена данными xml, в котором изменяются те или иные параметры согласно конкретике возникшей проблемы. После корректировки правил обмена перенос данных из одной конфигурации в другую осуществляется без каких-либо проблем.
Также можно поискать правила обмена именно для вашей конфигурации на специализированных форумах 1С.
Изучите текст сообщения об ошибке
Обычно текст возникшей ошибки кроме процитированного нами шаблона содержит конкретику ошибки, например «Поле объекта не обнаружено (СтавкаНДС)». Таким образом, можно понять, что в новой конфигурации отсутствует реквизит «СтавкаНДС». Если вы не можете самостоятельно изменить настройки правил обмена, то в таком (и подобных ему) случаях необходимо открыть ваш конфигуратор, в справочниках отыскать справочник «Номенклатура», скопировать там реквизит «УдалитьСтавкаНДС», и назвать новый реквизит «СтавкаНДС».
Перенесите остатки на текущий месяц
Рассматриваемая дисфункция часто появляется при переносе остатков не на текущий месяц. Соответственно, для избежания ошибки при загрузке данных XML, необходимо переносить остатки на текущий месяц, и никак иначе.
Обратитесь в техническую поддержку
Поскольку появление ошибки при загрузке данных XML вызвано разницей в базовой и конечной конфигурации, то наиболее простым способом исправить ошибку {Обработка.УниверсальныйОбменДаннымиXML} является обращение в службу технической поддержки https://1c.ru/rus/support/support.htm. Если вы имеете дело с лицензионной версией продукта, тогда вам помогут. Вполне вероятно, что вам предоставят специализированные правила переноса (файлы с расширением .epf и .xml) для решения возникшей дисфункции.
Обратитесь к платным специалистам
Решение ошибки может состоять в обращении к специалистам по 1С, которые за определённую плату решат возникшую у вас проблему. Таких специалистов можно найти на различных форумах 1С, списаться с ними лично, и решить возникший вопрос.
Читайте также: «Обнаружено нарушение целостности системы» в 1C — как решить.
Заключение
В нашем материале мы разобрали, почему возникает ошибка при загрузке данных {Обработка.УниверсальныйОбменДаннымиXML} и как можно её исправить. Обычно появление проблемы вызвано ошибкой в правилах конфигурации и несоответствием реквизитов, из-за чего перенос данных не может быть осуществлён корректно. Решение проблемы состоит в изменении правил переноса и созданием конгруэнтных реквизитов, после чего рассматриваемая ошибка обычно исчезает.
Опубликовано 28 марта 2019 Обновлено 05 октября 2020
Посмотрел код.
В коде проверяется чтобы в zip-архиве был либо один либо два файла.
Это странно, ведь раньше в zip-файле всегда было три файла:
-правила обмена
-правила обмена корреспондента
-правила регистрации
Там такой код:
Если ЭтоПравилаКонвертации Тогда
СписокРаспакованныхФайлов.Количество() = 2 Тогда
Если СписокРаспакованныхФайлов[0].Имя = «ExchangeRules.xml»
И СписокРаспакованныхФайлов[1].Имя =»CorrespondentExchangeRules.xml» Тогда
ДвоичныеДанные = Новый ДвоичныеДанные(СписокРаспакованныхФайлов[0].ПолноеИмя);
ДвоичныеДанныеКорреспондента = Новый ДвоичныеДанные(СписокРаспакованныхФайлов[1].ПолноеИмя);
ИначеЕсли СписокРаспакованныхФайлов[1].Имя = «ExchangeRules.xml»
И СписокРаспакованныхФайлов[0].Имя =»CorrespondentExchangeRules.xml» Тогда
ДвоичныеДанные = Новый ДвоичныеДанные(СписокРаспакованныхФайлов[1].ПолноеИмя);
ДвоичныеДанныеКорреспондента = Новый ДвоичныеДанные(СписокРаспакованныхФайлов[0].ПолноеИмя);
Иначе
НСтрока = НСтр(«ru = ‘Имена файлов в архиве не соответствуют ожидаемым. Ожидаются файлы:
|ExchangeRules.xml — правила конвертации для текущей программы;
|CorrespondentExchangeRules.xml — правила конвертации для программы-корреспондента.’»);
ОбменДаннымиСервер.СообщитьОбОшибке(НСтрока, Отказ);
КонецЕсли;
// Старый формат
ИначеЕсли СписокРаспакованныхФайлов.Количество() = 1 Тогда
НСтрока = НСтр(«ru = ‘В архиве найден один файл правил конвертации. Ожидаемое количество файлов в архиве — два. Ожидаются файлы:
|ExchangeRules.xml — правила конвертации для текущей программы;
|CorrespondentExchangeRules.xml — правила конвертации для программы-корреспондента.’»);
ОбменДаннымиСервер.СообщитьОбОшибке(НСтрока, Отказ);
// В архиве оказалось несколько файлов, хотя должен быть один — отказываемся от загрузки.
ИначеЕсли СписокРаспакованныхФайлов.Количество() > 1 Тогда
НСтрока = НСтр(«ru = ‘При распаковке архива найдено несколько файлов. Должен быть только один файл с правилами.’»);
ОбменДаннымиСервер.СообщитьОбОшибке(НСтрока, Отказ);
КонецЕсли;
Иначе
// Закладываем полученный файл правил обратно в двоичные данные.
Если СписокРаспакованныхФайлов.Количество() = 1 Тогда
ДвоичныеДанные = Новый ДвоичныеДанные(СписокРаспакованныхФайлов[0].ПолноеИмя);
// В архиве оказалось несколько файлов, хотя должен быть один — отказываемся от загрузки.
ИначеЕсли СписокРаспакованныхФайлов.Количество() > 1 Тогда
НСтрока = НСтр(«ru = ‘При распаковке архива найдено несколько файлов. Должен быть только один файл с правилами.’»);
ОбменДаннымиСервер.СообщитьОбОшибке(НСтрока, Отказ);
КонецЕсли;
КонецЕсли;
В этой статье речь пойдет о настройках универсального
формата обмена и ошибках, которые возникают на начальном этапе настройки (этап
№1). В конвертации данных 3.0 есть инструкция по настройке правил конвертации
на примере. Однако не все пункты понятны и не везде дано подробное описание.
Плюс ко всему в стандартных обработках и в самой программе возникают ошибки, о
которых я и хочу рассказать в этой статье, а также предлагаю скачать
доработанные мной обработки и расширение, чтобы без ошибок и потери
драгоценного времени можно было настроить правила.
Обратимся к исходному примеру, который представлен в
конвертации данных в начале работы.
С первым шагом (шаг 1) – все понятно. Нужно для каждой
конфигурации, между которыми планируем настраивать обмен, выгрузить структуры
информационных баз. С помощью обработки MD83Exp.epf,
входящей в комплект поставки. На этом этапе останавливаться не будем, так как
он подробно описан в программе. Однако в стандартной обработке MD83Exp.epf скрыты
настройки обработки, в связи с этим не выгружаются регистры сведений. Я
исправила этот момент, и Вы можете приобрести исправленную обработку. Ссылки в конце страницы.
Следующим действием (шаг 2) предлагается сделать экспорт
xml-схемы формата обмена, из любой базы. В этом примере, который
рассматривается в конфигурации Конвертация данных xml-схемы одинаковые у обеих баз, так
что достаточно сделать экспорт из любой базы. Но в примере не говорится, что
если все-таки конфигурации разнятся, то нужно выбрать похожие XDTO-пакеты в базах и экспортировать их. Версия определяется по цифрам, указанным у XDTO-пакета.
Например: EnterpriseData_1_3_20 — версия формата 1.3.
Обратите внимание, что версию формата обмена нужно выбирать
наиболее оптимальную. Например: в одной конфигурации версия формата последняя
1.6, а в другой конфигурации – 1.5. Следовательно, оптимальный формат будет
1.5.
Сам экспорт xml-схемы формата обмена в программе описан. На
картинке ниже я показываю, как это можно сделать.
Далее в примере предлагается сделать загрузки в конвертацию
данных (шаг 3 и шаг 4).
Сначала загружаем структуру информационных баз (по очереди)
раздел «Конфигурации» — «Загрузка
структуры конфигурации» флаг «В новую версию конфигурации».
Затем нужно загрузить
xml-схему формата обмена. Формат
данных – «Загрузка структуры формата», выбираем ранее выгруженные файлы
с расширением «xsd». Выбираем
только один файл. Раньше делали Множественный выбор с ExchangeMessage, но это было в старых версиях
конфигурации. После загрузки обязательно проверьте структуру формата в разделе Формат
данных – Дерево объектов формата – далее выбрать версию формата. Если структура
заполнена – там есть документы, справочники, то все в порядке, можно продолжать
настройки, иначе выгрузите новую версию и повторите всю процедуру сначала.
Далее в примере
(этап 2) предлагается создание конвертации с нуля, однако если у баз уже есть
типовые правила обмена, которые достаточно доработать, то можно загрузить эти
правила в конфигурацию и работать с ними.
Прежде чем выгружать правила конвертации нужно открыть общий
модуль МенеджерОбменаЧерезУниверсальныйФормат.
Если это Бухгалтерия Предприятия 3.0, то открываем МенеджерОбменаЧерезУниверсальныйФормат13. В открытом модуле
переходим в меню Файл – Сохранить
копию – сохраняем файл с любым именем (например — Модуль).
Затем приступаем к
выгрузке типовых правил из конфигураций. Для выгрузки есть стандартная
обработка, которая называется Выгрузка
правил синхронизации.epf, однако при
работе с ней возникает ошибка и правила не выгрузить, также не работает в
последних версиях Бухгалтерии Предприятия. Для таких случаев я исправила эту
обработку. Вы можете приобрести исправленную обработку. Ссылки в конце страницы.
С помощью обработки
выгружаем правила, где каждую версию формата помещаем в новый каталог. Выгрузку
нужно проделать из обеих конфигураций.
Далее нужно
загрузить все версии правил для обеих конфигураций, между которыми настраиваем
обмен в Конвертацию данных.
Сначала создаем
новую конвертацию, Конвертации – Создать. Заполняем поля новой конвертации. Выбираем конфигурацию. Наименование
конвертации можно указать свое, реквизит Имя менять нельзя. Сохраняем
изменения.
Переходим в раздел
Конвертация – Загрузка правил синхронизации из файлов, далее заполняем поля. Место
загрузки нужно указать «В существующую конвертацию» и указать какую именно.
Файл с модулем обмена – нужно указать тот файл, копию которого сохраняли (в
этом примере он называется Модуль). Далее по очереди загружаем каждую
выгруженную версию правил, не закрывая настройки, просто выбираете новый
каталог обмена.
Сложностей в загрузке нет никаких. Все интуитивно понятно,
только в момент загрузки тоже возникает ошибка «Поле объекта не
обнаружено». Здесь тоже придется
либо вносить исправления в конфигурацию Конвертация данных, либо можно
воспользоваться уже моим готовым решением. Я сделала расширение для Конвертации
данных 3.0, подключив которое Вы решаете эту проблему. Приобрести расширение и две исправленные обработки, о которых я рассказывала вначале статьи, вы можете приобрести по ссылке ниже.
При загрузке
появится сообщение «Обработчики предназначены для другой конвертации…
Продолжить загрузку?» Нажимаем «Да».
После загрузки правил
можно приступать к их редактированию.
Процесс доработки и
выгрузки исправленных правил я в этой статье описывать не буду, так как моя
задача в этой статье предложить решения по исправлению ошибок на первом этапе
настроек. Но если кому-то нужна такая информация, Вы хотите более подробное
описание действий, наглядную инструкцию – пишите мне, я сделаю обучающее видео
на эту тему.
Находятся критики, которые заявляют, что можно самостоятельно исправить код, если специалист работает с конвертацией. Я не спорю – может. Я же выкладываю обработки для тех, кому жалко времени копаться в коде и переписывать, или человек еще только начинает разбираться в этой теме, а тут еще возникает куча проблем со стандартными обработками. Тем более что цена ниже стоимости проезда на транспорте в крупных городах.
На этой странице были выложены все доработанные отчеты и расширение бесплатно, однако я обнаружила, что скачиваний было очень много, и распространились продажи моих переделанный обработок. В связи с этим, я тоже сделала исправленные обработки платными, но все-таки цену оставила низкую, которую не жалко потратить, но и мне будет какая-то отдача для развития сайта.
Доработки проводились на конвертации данных 3.0(3.0.5.3)
Обработки предоставляются пакетом. То есть сразу две исправленные обработки и расширение, так как для работы нужны все перечисленные исправления. Стоимость пакета составляет 350 руб.
Оформить покупку
***
Обратите внимание! Обработки в архивах. Если у Вас проблема с архивом и появляется ошибка «файл поврежден» — обновите архиватор. Можете архиватор скачать по ссылке (в папке 4 файла — 2 файла с установкой плюс ключи).
Без паники. Если не получается обновить архиватор, напишите мне с почтового ящика, который указали при покупке или позвоните, как у меня будет доступ к компьютеру, я сразу же вышлю Вам файлы все, которые находятся в архиве. Не беспокойтесь.
***
Доброго дня, коллеги!
Наши слушатели часто сталкиваются с разного рода ошибками при настройке обмена между современными типовыми конфигурациями с помощью “1С:Конвертации данных 3.0” и технологии обмена через универсальный формат. Большинство ошибок связано с тем, что разработчики 1С активно меняют методы общих модулей БСП и способы их вызова, а решение КД 3.0 остается без изменений и новых поставок не выходит. В случае необходимости на помощь всегда приходит тренер!
Вопрос
При выполнении домашнего задания наткнулся на особенности в конфигурации УТ 11.4.10.57. Обработка выгрузки правил синхронизации из типового решения не работает по дефолту, приходится ее немного править. К примеру, теперь в модуле менеджера плана обмена через универсальный формат нет функции ПолучитьВерсииФорматаОбмена.
Такая ситуация сейчас и в других версиях типовых решений? Конфигурации меняют, а в КД 3.0 уже ничего не дорабатывают под эти изменения?
Ответ
Есть в КД 3.0 ошибка, которая создает проблему на последних версиях типовых решений. Для КД 3.0.5.1 (и не только для этого релиза) нужно выполнить следующее:
- В форме обработки ВыгрузкаПравилСинхронизации заменить код процедуры ПриСозданииНаСервере() на следующий:
ВерсииФормата = Новый Соответствие; ОбменДаннымиПереопределяемый.ПриПолученииДоступныхВерсийФормата(ВерсииФормата); Для Каждого ПланОбмена Из ОбменДаннымиПовтИсп.ПланыОбменаБСП() Цикл Если ОбменДаннымиПовтИсп.ЭтоПланОбменаXDTO(ПланОбмена) Тогда ВерсииФорматаПланаОбмена = Новый Соответствие; ВерсияБСП243 = ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СтандартныеПодсистемыСервер.ВерсияБиблиотеки(), “2.4.3.1”) >= 0; МодульОбменДаннымиСервер = ОбщегоНазначения.ОбщийМодуль(“ОбменДаннымиСервер”); Если ВерсияБСП243 Тогда ВерсииФорматаПланаОбмена = МодульОбменДаннымиСервер.ЗначениеНастройкиПланаОбмена(ПланОбмена, “ВерсииФорматаОбмена”); Иначе ПланыОбмена[ПланОбмена].ПолучитьВерсииФорматаОбмена(ВерсииФорматаПланаОбмена); КонецЕсли; Для Каждого ВерсияПланаОбмена Из ВерсииФорматаПланаОбмена Цикл МодульМенеджера = ВерсииФормата.Получить(ВерсияПланаОбмена.Ключ); Если МодульМенеджера = Неопределено Или МодульМенеджера <> ВерсияПланаОбмена.Значение Тогда ВерсииФормата.Вставить(ВерсияПланаОбмена.Ключ, ВерсияПланаОбмена.Значение); КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; Для Каждого ВерсияФормата ИЗ ВерсииФормата Цикл Элементы.НомерВерсииФормата.СписокВыбора.Добавить(ВерсияФормата.Ключ); КонецЦикла; АдресХранилищаВерсииФормата = ПоместитьВоВременноеХранилище(ВерсииФормата, УникальныйИдентификатор);
- В форме обработки “ЗагрузкаПравилСинхронизацииИзФайлов” в процедуре ЗагрузкаПКО() заменить строку
ТекПКО.ВариантИдентификации = Перечисления.ВариантыИдентификацииОбъектов[СтруктураАтрибутов.ВариантИдентификации];
на строку
ТекПКО.ВариантИдентификации = ?(СтруктураАтрибутов.ВариантИдентификации = “”, Перечисления.ВариантыИдентификацииОбъектов.ПустаяСсылка(), Перечисления.ВариантыИдентификацииОбъектов[СтруктураАтрибутов.ВариантИдентификации]);
- Кроме того при использовании конвертации может возникнуть ошибка из-за синхронного вызова вопроса “Обработчики предназначены для другой конвертации: Продолжить загрузку?” – для целей курса достаточно закомментировать несколько строк в процедуре ПроверитьКонвертациюПриЗагрузкеАлгоритмов(…) общего модуля КонвертацияДанныхXDTOКлиент внутри условия “Если ИмяКонвертации <> НаименованиеКонвертации Тогда ….. КонецЕсли;”, оставив не закомментированной только строку Возврат Ложь;
Комментарий слушателя
Все получилось, совет помог, спасибо! Единственное, в конвертации 3.0.5.3 процедура теперь называется ЗагрузитьПКО(), а не ЗагрузкаПКО().
- Ошибки на стороне веб-сервера
- Ошибки при работе с файлами данных
- Проблемы авторизации
- Ошибки MySQL
- Логические ошибки
- Диагностика отладки
- Отладка обмена на стороне 1С-Битрикс
- Модуль отладки обмена от ИНТЕРВОЛГИ
- Выводы
Настроить обмен между «1С» и «1С-Битрикс» интернет-магазина или сайта – не проблема. Эта функция присутствует «из коробки» начиная с ранних версий продуктов «1С:Предприятие», редакция Управление торговлей и «1С-Битрикс: Управление сайтом» в редакциях Малый бизнес и Бизнес.
Даже с учётом имеющейся документации по продукту, у многих разработчиков сайтов возникают сложности в корректной настройке обмена данными между этими системами. Рассмотрим самые частые проблемы, которые возникают у тех кто пытался.
Мы выделили несколько групп ошибок:
- проблемы авторизации;
- ошибки на стороне сервера;
- ошибки при работе с файлами данных;
- ошибки MySQL;
- логические ошибки.
Далее мы детально рассмотрим сами ошибки и способы их исправления.
Ошибки на стороне веб-сервера
К этой группе относятся ошибки, возникающие в подсистемах веб-сервера, отвечающих за выполнение PHP-кода. Обычно это: Nginx, Apache и сам интерпретатор языка PHP.
Возможны 2 варианта:
- Ошибка действительно вызвана неоптимальными настройками Nginx/Apache/PHP. Если Вы чувствуете неуверенность в своем веб-сервере или совсем недавно на него переехали — привлеките администратора для проверки и изменения настроек.
Название ошибки | Как исправить |
---|---|
Failed sending data to the peer (no headers, no data). |
|
Получен пустой ответ сервера. | |
Ошибка нехватки памяти, например выводится сообщение: Fatal error : Allowed memory size of 67108864 bytes exhausted (tried to allocate 102401…). | Проверить настройку memory_limit в php.ini. Должно быть указано не менее 512Mb, увеличить значение и перезагрузить сервер. Или не изменяя настройки сервера сделать равным таймаут сервера и таймаут «1С-Битрикс: Управление сайтом» (страница Магазин > Настройки магазина > Интеграция с 1С, поле Интервал одного шага в секундах). Если проблема с нехваткой памяти, данное решение не подойдёт. |
- Подобная ошибка может маскировать либо некорректную настройку объема одной порции загружаемых данных (10К товаров за раз, например), либо логическую ошибку в программном коде (например, пересчет каких-нибудь значений в товарах по событию изменения).
Способы решения:
- уменьшать объем передаваемых за раз данных (проверить на 1 товаре, но лучше выставлять значение поочередно, 1, 100, 1000, 10000 и смотреть, какое значение оптимально для ваших настроек);
- временно закомментировать обработчики событий в файле /bitrix/php_interface/init.php, может быть они мешают обмену.
Ошибки при работе с файлами данных
Данные ошибки возникают при неверной настройке прав доступа к файлу. Отображение ошибок звучит следующим образом: «Ошибка открытия файла» и «Ошибка записи файла». Возможные причины и их решение:
Название ошибки | Как исправить |
---|---|
Закончилось место на диске. |
Удалить старые бэкапы или увеличить тариф на хостинге. |
По ftp файлы загружаются, а через веб-интерфейс административного раздела сайта нет. |
Обратиться в техническую поддержку хостинг-провайдера. |
Не работает или некорректно работает сжатие данных при обмене. |
Для начала можно попробовать выключить сжатие в настройках модуля обмена. Также можно проверить работу функции zip_open на сервере Откройте в браузере страницу http://<ваш_сайт>//bitrix/admin/phpinfo.php (Либо выполните команду if (exist_function (“zip_open”)){ echo “OK”; } В браузере отобразится таблица:
Для строки ZIP должно стоять «enabled». |
Проблемы авторизации
Самая распространённая проблема, если пользователь не указал данные или указал их неверно.
Название ошибки | Проблема / как исправить |
---|---|
«Не удалось получить данные с сервера. Проверьте правильность адреса сервера, порт, имя пользователя и пароль, а также настройки подключения к Интернет». |
На сервере 1С установлено ПО, которое блокирует исходящие соединения, в этом случае при попытке обмена выдаётся ошибка. Исправляется добавлением адреса сайта в белый список ПО. |
«Авторизация не выполнена. Не удалось установить соединение с сервером. Проверьте имя пользователя и пароль». |
Неверно указаны логин/пароль доступа к сайту. Надо проверить, получается ли по указанному доступу зайти на сайт. И проверить наличие редиректов при переходе по ссылке, например на https версию сайта. Если по ссылке http:// адрес сайта /bitrix/admin/1c_exchange.php появляется сообщение, значит с логином и паролем всё в порядке.
|
Ошибки MySQL
Ошибки возникают при соединении с базой данных MySQL, настроенной на сайте.
Название ошибки | Проблема / как исправить |
---|---|
[Illegal mix of collations (russian_swedish_ci,IMPLICIT) and (cp1251_general_ci,COERCIBLE) for operation ‘=’] |
Конфликт кодировок. Причина ошибки — таблицы базы данных в одной кодировке, а сам база в другой. В данном случае база в russian и новые таблицы создаются в не russian. При выгрузке из «1С» создается временная таблица b_xml_tree в «некорректной» кодировке russian. |
Логические ошибки
Ошибки пользователей неверно понимающих процесс обмена данными и, соответственно, неверно выполняющих какие-то действия.
Название ошибки | Проблема / как исправить |
---|---|
Несовместимые версии модуля обмена и базовой конфигурации 1С. |
Проверить на официальном сайте “1С-Битрикс” соответствие версий продуктов. Если версии не совпадают, переустановить модуль обмена на стороне 1С |
«Изменения товаров не зарегистрированы. Выгрузка товаров не произведена». |
Неверно настроен отбор товаров в модуле обмена. Надо проверить эти настройки. Скорей всего, выбраны параметры, которые не позволяют правильно отфильтровать параметры для выгрузки. Также это сообщение выдаётся, если если в настройках Режима обмена данными с WEB-сайтом установлено: Выгружать только измененные объекты с момента последнего обмена. В этом случае это не ошибка, а выгрузки не произошло, потому что данные со стороны 1с не были изменены. |
«Не удалось найти вид номенклатуры». |
Ошибка появляется, если в «1С» нет видов номенклатуры «Услуга» и «Товар». Эти виды критичны для процесса обмена данными с сайтом. Решение – создать в «1С» указанные виды номенклатуры. |
«Поле объекта не обнаружено». |
Не указаны соответствия для полей заказа в «1С-Битрикс: Управление сайтом». Проверьте настройки, заданные в закладке Экспорт в «1С:Предприятие» страницы Настройки > Настройки продукта > Настройки модулей > Интернет-магазин. Два поля «Полное Название» и «Название» критичны для 1С. Если их не задать, экспорт выполняться не будет. Настройка соответствий для разных типов плательщиков производится отдельно. |
Данные выгружаются на сайт, но не обновляются. |
На сайте используют контрольные суммы для ускорения обмена, а на стороне 1С программисты обычно забывают их пересчитывать, когда пытаются доработать модуль обмена. Проверяется отключением контрольных сумм на сайте. Обмен становится дольше, поэтому надо заставить специалиста 1С вернуть отключенную настройку. |
Диагностика отладки
Мы применяем два инструмента отладки обмена между 1С и 1С-Битрикс.
Отладка обмена на стороне 1С-Битрикс
При настройке выгрузки необходимо проверить существование папки /upload/1c_catalog/. В эту папку будут загружаться файлы при обмене.
При необходимости, можно удалять из папки файлы последнего обмена, т.к. по завершению обмена файлы последней операции будут храниться именно в этой папке. Выполнение этой задачи возможно сделать автоматически, например запустить «Режим отладки» процесса обмена на сайте. При включенном «режиме отладки» не будут удаляться старые файлы из этого каталога после успешного обмена.
Включить «режим отладки» можно отредактировав файл dbconn.php. А именно, создать константу такого вида: define(«BX_CATALOG_IMPORT_1C_PRESERVE», true).
На стороне 1С-Битрикс мы можем увидеть только конечные данные. Если данные приходят корректные, то они попадают в инфоблоки и это видно. Если данные приходят некорректные, то либо неверные данные были выгружены из 1С, либо выставлен неверный тип данных. Например вы пытаетесь передать многострочный список как строку.
Модуль отладки обмена от ИНТЕРВОЛГИ
Для упрощения диагностики мы создали модуль отладки обмена.
Он встраивается между 1С и 1С-Битрикс и пишет логи того, что происходит при обмене. По этим логам можно выяснить, где ошибка и исправить её. Отображение логов происходит в административной части сайта.
Модуль отладки обмена от ИНТЕРВОЛГИ лучше логов со стороны 1С-Битрикс, потому что он:
- следит за размером и в результате его работы не закончится место на сайте;
- логирует обмен справочников и заказов;
- логирует время обмена и время выполнения одного шага.
Выводы
Если не разбираться в вопросе и попытаться исправить обмен, то можно сделать только хуже и придётся или переписывать код модуля или ставить модуль обмена заново.
Наша компания обладает компетенциями в вопросе отладки обмена. Если у вас возникла подобная проблема, напишите, обсудим.
Вам может быть интересно:
- Tutorial по стандартному и нестандартному обмену сайта с 1С. Часть первая: стандартный обмен и его хитрости.
- Tutorial по обмену сайта с 1С. Часть вторая: зачем и как писать свой обмен с нуля на очередях и REST API.
- Tutorial по обмену с 1С. Часть третья: Выжимаем максимум из стандарта. Что мы хотели бы знать 1000 проектов назад.
- Tutorial по обмену с 1С. Часть четвертая: Обмен через промежуточную базу данных.
- Tutorial по обмену с 1С. Часть пятая: Наш опыт настройки 1000 и 1 обмена.
Ткаченко Анастасия
Специалист по внедрению 1С франчайзинговой сети «ИнфоСофт».
08.09.2020
Время прочтения — 4 мин.
Получить бесплатную консультацию
Обмен не проходит, документы не переносятся
1) Проверка соответствия релизов БП 3.0 и ЗУП 3.1
Частой причиной ошибок при обмене выступает разрыв между обновлениями конфигураций ЗУП 3.1 и БП 3.0.
Помните, что для корректного обмена конфигурации должны быть актуальных релизов.
2) Проверка корректности подключения
Заходим в раздел Администрирование – Синхронизация данных – Настройка синхронизации данных.
Встаем мышкой на нужный обмен — кнопка Настроить – кнопка Ещё – Настройки подключения:
В открывшемся окне производим проверку подключения по одноименной кнопке:
Данную проверку следует произвести как в ЗУП 3.1, так и в БП 3.0.
Распространенные ошибки подключения:
-
При подключении через сетевой каталог – разные папки для обмена в ЗУП 3.1 и БП 3.0 (в данном случае нужно проверить оба пути и указать верный); отсутствие доступа до папки (обратиться к системному администратору для настройки общего доступа);
-
При прямом подключении – смена пароля у пользователя, используемого для подключения (следует обновить данные для подключения).
Подпишитесь на дайджест!
Подпишитесь на дайджест, и получайте ежемесячно подборку полезных статей.
Обмен проходит, документы не переносятся
Документы регистрируются к обмену в автоматическом режиме при добавлении, изменении. Бывают случаи, когда документ по какой-то причине не переносится.
Что делать?
1) Убедиться, что нужный документ по дате попадает в период, с которого начинается обмен данными:
Если необходимо, следует провести корректировку настроек обмена.
2) Проверить Предупреждения при обмене, раздел Непринятые по дате запрета:
Если нужный документ попадает в данный список, то необходимо подкорректировать дату запрета и повторно выполнить обмен.
3) Зарегистрировать документ к обмену вручную
Для этого необходимо перейти по кнопке Состав отправляемых данных, выбрать нужный вид документа, затем по кнопке Зарегистрировать или правой кнопкой мыши в соседней табличной части зарегистрировать нужный документ к обмену:
Затем следует повторить проведение обмена между конфигурациями.
______________________________________________________________________
Важно отметить, что сообщение «Не удалось синхронизировать данные» при обмене через каталог не всегда означает, что обмен не прошел.
Для анализа рекомендуем переходить по активной ссылке Журнал регистрации в полученном сообщении результата обмена:
Где мы увидим, что сообщение обмена было принято ранее, поэтому получать в ЗУП 3.1 из БП 3.0 было нечего.
Иными словами, файл с данными, который был отправлен конфигурацией БП 3.0 к запуску текущего обмена не обновлялся. Это означает, что данные из сообщения уже были загружены в ЗУП 3.1 ранее и повторно загрузка производиться не будет.
Для успешного завершения обмена при настройке подключения через каталог необходимо поэтапно запускать обмен в каждой из конфигураций.