Ошибка при обмене с зуп

Ткаченко Анастасия
Специалист по внедрению 1С франчайзинговой сети «ИнфоСофт».

08.09.2020

Время прочтения — 4 мин.

Получить бесплатную консультацию

Обмен не проходит, документы не переносятся

1) Проверка соответствия релизов БП 3.0 и ЗУП 3.1

Частой причиной ошибок при обмене выступает разрыв между обновлениями конфигураций ЗУП 3.1 и БП 3.0.

Помните, что для корректного обмена конфигурации должны быть актуальных релизов.

2) Проверка корректности подключения

Заходим в раздел Администрирование – Синхронизация данных – Настройка синхронизации данных.

Встаем мышкой на нужный обмен — кнопка Настроить – кнопка Ещё – Настройки подключения:

1.png

В открывшемся окне производим проверку подключения по одноименной кнопке:

2.png

Данную проверку следует произвести как в ЗУП 3.1, так и в БП 3.0.

Распространенные ошибки подключения:

  • При подключении через сетевой каталог – разные папки для обмена в ЗУП 3.1 и БП 3.0 (в данном случае нужно проверить оба пути и указать верный); отсутствие доступа до папки (обратиться к системному администратору для настройки общего доступа);

  • При прямом подключении – смена пароля у пользователя, используемого для подключения (следует обновить данные для подключения).

Подпишитесь на дайджест!

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

Обмен проходит, документы не переносятся

 Документы регистрируются к обмену в автоматическом режиме при добавлении, изменении. Бывают случаи, когда документ по какой-то причине не переносится.

Что делать?

1)      Убедиться, что нужный документ по дате попадает в период, с которого начинается обмен данными:

3.png

Если необходимо, следует провести корректировку настроек обмена.

2)      Проверить Предупреждения при обмене, раздел Непринятые по дате запрета:

4.png

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

3)      Зарегистрировать документ к обмену вручную

Для этого необходимо перейти по кнопке Состав отправляемых данных, выбрать нужный вид документа, затем по кнопке Зарегистрировать или правой кнопкой мыши в соседней табличной части зарегистрировать нужный документ к обмену:

5.png

6.png

7.png

Затем следует повторить проведение обмена между конфигурациями.

______________________________________________________________________

Важно отметить, что сообщение «Не удалось синхронизировать данные» при обмене через каталог не всегда означает, что обмен не прошел.

Для анализа рекомендуем переходить по активной ссылке Журнал регистрации в полученном сообщении результата обмена:

8.png 

Где мы увидим, что сообщение обмена было принято ранее, поэтому получать в ЗУП 3.1 из БП 3.0 было нечего.

9.png

Иными словами, файл с данными, который был отправлен конфигурацией БП 3.0 к запуску текущего обмена не обновлялся. Это означает, что данные из сообщения уже были загружены в ЗУП 3.1 ранее и повторно загрузка производиться не будет.

Для успешного завершения обмена при настройке подключения через каталог необходимо поэтапно запускать обмен в каждой из конфигураций.

Причины наиболее часто встречающихся ошибок при синхронизации баз ЗУП-БП и способы их устранения

Не выгружаются сотрудники и кадровые документы в Бухгалтерию

Они и не должны выгружаться. Если вы зайдете в Администрирование – Синхронизация данных – Настройки синхронизации и нажмете иконку Состав отправляемых данных, вы увидите, какие объекты участвуют в обмене, а какие нет.

Основные ошибки при синхронизации баз ЗУП-Бухгалтерия и пути их устранения

Основные ошибки при синхронизации баз ЗУП-Бухгалтерия и пути их устранения

Не видно базу в окне выбора базы для начальной выгрузки

Необходимо зайти в стартовое меню, выбрать базу Бухгалтерии, нажать Изменить и просто нажать в появляющихся окнах Далее и Готово. После заново вернуться к окну выбора базы, как правило, такой способ решает проблему.

Основные ошибки при синхронизации баз ЗУП-Бухгалтерия и пути их устранения

Основные ошибки при синхронизации баз ЗУП-Бухгалтерия и пути их устранения

Не найден путь к каталогу обмена

Каталог обмена был вами создан не на облачном диске, а где-то на своем компьютере. Таким образом, базы на облачном диске просто не могут получить к нему доступа. Создать папку обмена необходимо именно в облаке. Желательно, в папке Общие.

Префикс, указываемый при настройке ЗУП для Бухгалтерии не соответствует префиксу, действительно назначенному для базы Бухгалтерии.

Уточнить префикс в Бухгалтерии — Администрирование — Синхронизация данных.

Если там это поле совсем пустое добавьте в него «00» и нажмите Enter.

Основные ошибки при синхронизации баз ЗУП-Бухгалтерия и пути их устранения

Ведомости не выгружаются из ЗУП в Бухгалтерию

1. В ЗУП – Администрирование – Синхронизация данных — Настройки синхронизации — Настроить указано, что выгрузка производится сводно, а не с детализацией по сотрудникам.

Установить переключатель на С детализацией по сотрудникам, затем вручную зарегистрировать отправку нужных ведомостей. В дальнейшем они уже будут регистрироваться сами, при создании или изменении, как обычно.

2. В ЗУП – Администрирование – Синхронизация данных — Настройки синхронизации — Настроить указан месяц начала обмена в ЗУП больший, чем месяц выгружаемых ведомостей.

Установить корректный месяц начала обмена, затем вручную зарегистрировать отправку нужных ведомостей. В дальнейшем они уже будут регистрироваться сами, при создании или изменении, как обычно.

Основные ошибки при синхронизации баз ЗУП-Бухгалтерия и пути их устранения

В Бухгалтерии при настройке синхронизации не появляется 3-й из 4-х шаг «Сопоставление данных»

Базы «не видят» друг друга. В Бухгалтерии на этапе Правила настройки подключения при настройке через каталог вами не был установлен флаг Получить настройки подключения из файла и не был выбран собственно файл настроек, созданный программой ЗУП в папке обмена.

Основные ошибки при синхронизации баз ЗУП-Бухгалтерия и пути их устранения

В Бухгалтерии при получении документа Отражение зарплаты из ЗУП в нем есть лишь проводки по НДФЛ

В ЗУП — Настройка — Реквизиты организации — Учетная политика и другие настройки — Бухучет и выплата зарплаты — установить какой-то способ отражения зарплаты (если нет — создать новый, желательно с названием Отражение начислений по умолчанию, так как такой способ обычно уже присутствует в программе Бухгалтерия с сопоставленным счетом 26). Убедиться, что дата начала бухучета включает требуемые для передачи в Бухгалтерию документы. Заново заполнить документ Отражение зарплаты и повторно произвести синхронизацию в Бухгалтерию. Если данный способ в Бухгалтерии еще не настроен, настроить его (Зарплата и кадры – Настройки зарплаты – Отражение в учете – Способы учеты зарплаты — указать счет затрат и статью Оплата труда). В справочник способов отражения можно попасть напрямую из документа Отражение зарплаты.

После удаления документа на стороне Бухгалтерии он не отправляется заново из ЗУП

Удаляя документ в одностороннем порядке, вы разрываете связь этого документа с ЗУП в настройках обмена и оставшийся объект не может найти путь, по которому он должен быть отправлен с заменой. Если что-то удаляете на одной стороне — старайтесь выполнить удаление и на другой.

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

Несмотря на то, что вы указываете новую дату обмена, все имеющиеся в данном периоде автоматически не будут лишь на этом основании включены в обмен. Вам придется добавить их в обмен вручную. В ЗУП для этого нажимаем кнопку Состав отправляемых данных (слева от кнопки Синхронизировать). Выбираем нужный тип документов и слева вверху нажимаем Зарегистрировать, где указываем отбор документов, которые нужно отправить — один объект, все или выбор по своему критерию.

В Бухгалтерии не делаются проводки в документе Отражение зарплаты — отсутствует ИФНС

На стороне ЗУП проверяем в Настройка — Реквизиты организации — Основное – Изменить данные регистрации — дату начала регистрации. Если она больше даты документов отражений, меняем ее, затем перепроводим документы начислений (чтобы зарегистрировать привязку к ИФНС) и перезаполняем отражение. Проверяем на вкладке НДФЛ присутствие ИФНС в соответствующей колонке. Отправляем документ в Бухгалтерию.

Основные ошибки при синхронизации баз ЗУП-Бухгалтерия и пути их устранения

Суммы в Бухгалтерии после отражения зарплаты в учете задваиваются

Необходимо проверить нет ли в Бухгалтерии имеющихся начислений/выплат того же периода, сделанных когда учет велся в ней. Проверить можно расшифровкой оборотов в оборотно-сальдовой ведомости по счету 70. Если начисления есть, вам необходимо решить, что именно вы хотите оставить, а дублирующие документы в ЗУП или в Бухгалтерии — удалить.

Чтобы в Бухгалтерии посмотреть, какие документы действовали на момент, когда учет велся в Бухгалтерии, необходимо зайти в Зарплата и кадры – Настройки зарплаты и переключиться на режим В этой программе.

Основные ошибки при синхронизации баз ЗУП-Бухгалтерия и пути их устранения

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

Документы на стороне ЗУП считаются выгруженными, а в Бухгалтерии не появляются

В Бухгалтерии проверить Администрирование — Синхронизация данных — не стоит ли дата запрета загрузки. Это значение определяет дату, по которую в Бухгалтерию не могут быть загружены никакие документы из сторонней программы. Также в Администрирование — Синхронизация данных — Настройки синхронизации – ссылка Предупреждения проверить нет ли наших документов на вкладке Непринятые по дате запрета. Если они там есть, вы сможете, не трогая дату запрета загрузки, нажать Принять версию.

Организации/подразделения/физлица задвоились

На этапе сопоставления данных в Бухгалтерии при настройке синхронизации были проигнорированы круглые значки напротив объектов, которые сигнализируют о том, что данные объекты могут задвоиться. При двойном щелчке на такой значок вы попадаете в окно, разделенное пополам, где слева вы видите объекты из Бухгалтерии, а справа объекты из ЗУП. Если вы видите, что какие-то объекты слева и справа являют собой одно и тоже (ООО «Янтарь» в Бухгалтерии и Янтарь ООО в ЗУП) — вы должны щелкнуть дважды на любом из них и выбрать второй из списка. Таким образом вы даете указание программе их сопоставить и задвоения не произойдет.

При уже имеющемся задвоении вы можете:

а) восстановить резервные копии баз, сделанные до начала синхронизации

б) воспользоваться обработкой совмещения дублей — Администрирование — Обслуживание — Корректировка данных — Поиск и удаление дублей.

Путь к обработке для Бухгалтерии 3.0 и ЗУП 3.1 один и тот же – Администрирование – Обслуживание – Корректировка данных – Поиск и удаление дублей.

Важно! Перед запуском этой обработки создайте резервную копию базы. Это можно сделать прямо в папке базы (путь к которой указан в стартовом меню), либо через Администрирование – Обслуживание – Резервные копии и восстановление.

Также убедитесь, что отключены имеющиеся в системе даты запрета изменений – они, скорее всего, не дадут вам заменить все ссылки и операция не будет выполнена.

Основные ошибки при синхронизации баз ЗУП-Бухгалтерия и пути их устранения

Основные ошибки при синхронизации баз ЗУП-Бухгалтерия и пути их устранения

Основные ошибки при синхронизации баз ЗУП-Бухгалтерия и пути их устранения

Нажимаем на ссылку Поиск и удаление дублей

Основные ошибки при синхронизации баз ЗУП-Бухгалтерия и пути их устранения

Выбираем объект, по которому требуется проверить наличие дублей. В ссылке Сравнивать выбираем критерии, по которым программа определяет объекты как дубли. В нашем примере объект это Регистрация в налоговых органах, а дубли мы будем определять по совпадению кода налогового органа.

Программа выполнит поиск дублей, покажет их нам и в каждом конкретном случае пометит как основной (объект, который надо оставить) – тот объект, на который привязано больше всего ссылок на документы, записи регистров и прочие объекты.

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

Основные ошибки при синхронизации баз ЗУП-Бухгалтерия и пути их устранения

Нажимаем Удалить дубли. Иногда, особенно в случаях с удалением ИФНС и организаций, первая попытка может не дать результата – останется какой-то один объект, который не даст завершить переназначение ссылок и дубли останутся. В этом случае выбираем как основной другой объект и пробуем повторить операцию удаления. В нашем примере мы вручную выбрали как основную ту регистрацию к которой привязана наша организация.

Основные ошибки при синхронизации баз ЗУП-Бухгалтерия и пути их устранения

На этот раз переназначение ссылок прошло успешно, а оставшиеся без привязок объекты-дубли теперь помечены в системе на удаление и их можно удалить через Администрирование – удаление помеченных объектов.

Основные ошибки при синхронизации баз ЗУП-Бухгалтерия и пути их устранения

Удаляем через Администрирование – Обслуживание – Удаление помеченных объектов уже ни к чему не привязанные лишние регистрации:

Основные ошибки при синхронизации баз ЗУП-Бухгалтерия и пути их устранения

Основные ошибки при синхронизации баз ЗУП-Бухгалтерия и пути их устранения

Номер сообщения меньше либо равен ранее принятому 1с. Обмен проходит очень долго, зависает

Ошибка «Номер сообщения меньше либо равен ранее принятому», наверное, знакома каждому, кто когда-либо связывался с обменами в программах 1С. Рассмотрим, почему возникает такая ошибка, и предложим скачать обработку для исправления ситуации.

Когда происходит обмен данными, система обычно делает специальные пометки в базе данных о том, происходила выгрузка или нет. Узлы планов обменов имеют два специальных стандартных реквизита — Номер принятого и Номер отправленного сообщения (подробно — ). Именно в этих реквизитах 1С хранит информацию о загруженных/выгруженных пакетах.

Для корректного обмена данными номера сообщений должны попарно совпадать в обменивающихся базах. Т.е. если в базе источник номер отправленного сообщения равен 300, то номер полученного сообщения в базе приемнике должен быть равен 300.

Получите 267 видеоуроков по 1С бесплатно:

Обработка Регистрация изменений для обмена 1С

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

Для изменения номера сообщений проще всего воспользоваться типовой обработкой — «Регистрация изменений для обмена».

Обработка существует как для обычного приложения:

Так и для управляемого:

Для исправления ошибки необходимо нажать на гиперссылку с номерами сообщений (или кнопку Изменить номера сообщений).

В открывшимся окне следует установить сообщения, равные нулю, и нажать кнопку «Записать»:

Внимание! При установки нулевых значений Вы потеряете регистрацию изменений для обмена, т.е. система не выгрузит последний пакет изменений.

Описанные выше обработки обычно в составе типовых конфигураций.

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

Для начала скажем пару слов о том, как происходит обмен данными в 1С.

Для описания процедуры обмена в конфигурации существует объект ПланОбмена . Для каждого варианта обмена данными создается свой план. Например, план обмена между конфигурациями Бухгалтерия предприятия и Управление торговлей.

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

Кроме того, узлы плана обмена имеют два специальных реквизита: и Номер принятого сообщения. Каждый раз, когда выгружается пакет данных для обмена, ему присваивается порядковый номер. Он записывается в реквизит Номер отправленного сообщения . Аналогично, когда загружается пакет данных из другой информационной базы, он тоже имеет порядковый номер. В случае успешной загрузки данных этот номер записывается в реквизит Номер принятого сообщения .

Номера нужны для того, чтобы не возникло путаницы в передаваемых пакетах данных. Если в базу приходит пакет с номером, например, 152, а в базе уже зарегистрирован Номер принятого сообщения 169, то такой пакет будет проигнорирован. При этом будет показана ошибка:

Номер сообщения меньше либо равен ранее принятому

А если придет пакет с номером 170 или больше, то он будет загружен в базу и реквизиту Номер принятого сообщения будет присвоен его номер.

В ходе работы с обменом данными в 1С могут возникать и другие нестандартные ситуации, требующие работы с номерами сообщений, регистрацией или отменой регистрации объектов в узлах и т.д.

Итак, обработка Регистрация изменений для обмена позволяет вносить изменения в узлы обмена, т.е. принудительно регистрировать объекты и снимать их регистрацию, изменять номера принятых и отправленных сообщений, просматривать зарегистрированные объекты.

Примеры случаев, когда это может понадобиться:

  1. Сбилась нумерация сообщений обмена. Это может случиться, например, когда одну из баз восстановили из резервной копии.
  2. Необходимо заново передать уже переданные объекты. Например, если изменились правила обмена.
  3. Нужно отменить передачу отдельных объектов и т.д.

Порядок использования обработки Регистрация изменений для обмена :

  1. В верхнем поле выбрать узел обмена, для которого будут производиться действия. При этом большое поле внизу будет заполнено объектами, включенными в План обмена . В колонке Авторегистрация показано состояние авторегистрации изменений и количество зарегистрированных в данный момент объектов.
  2. Кнопка Зарегистрировать все… включает все предусмотренные планом обмена объекты в узел.
  3. Кнопка Удалить всю регистрацию… очищает регистрацию узла плана обмена. Внимание! Действие необратимо.
  4. Кнопка Зарегистрировать поодному… удаляет всю существующую регистрацию и региструет по одному объекту каждого типа. Внимание! Действие необратимо.
  5. Кнопка Изменить номера сообщений… позволяет установить произвольные значения реквизитов Номер отправленного сообщения и Номер принятого сообщения.
  6. Кнопка с крестом позволяет удалить регистрацию произвольного объекта информационной базы. При этом можно составить запрос и удалить регистрацию всех объектов, полученных в результате его выполнения.
  7. Кнопка с плюсом позволяет добавить регистрацию произвольного объекта информационной базы. При этом можно составить запрос и добавить регистрацию всех объектов, полученных в результате его выполнения.
  8. Кнопка Показать изменения, зарегистрированные для данного типа показывает объекты информационной базы, зарегистрированные в узле обмена. Перед нажатием кнопки нужно выделить интересующий тип объектов.
  9. Кнопка Результат стандартной выгрузки показывает, как будет выглядеть объект информационной базы при выгрузке для обмена в формате XML. Перед нажатием нужно выделить интересующий объект.

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

как исправить номера сообщений синхронизации

Предполагаемая аудитория – специалисты по сопровождению программ 1С и пользователи.

как исправить номера сообщений синхронизации

Бывает так, что после незначительных изменений в настройках синхронизации она перестает работать.

Что сломалось? Возможно – ничего, просто в результате неправильной последовательности действий перестали совпадать номера принятого/отправленного сообщений у Источника и Приемника.

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

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

Еще это можно сделать это с помощью п. меню Администрирование-Обслуживание-Корректировка данных- Групповое изменения реквизитов.

Если помните, у какой программы запускалась синхронизация последней – установите у нее № отправленного на 1 больше чем № принятого у другой, а № полученного – такой же как номер отправленного у другой.

Если не помните — установите одинаковые номера. При первом запуске программа выдаст предупреждение о том, что данные были получены ранее, а в следующих сеансах обмен пойдет без ошибок.

Сообщение обмена было принято ранее

Ошибка «Номер сообщения меньше либо равен ранее принятому», наверное, знакома каждому, кто когда-либо связывался с обменами в программах 1С. Рассмотрим, почему возникает такая ошибка, и предложим скачать обработку для исправления ситуации.

Когда происходит обмен данными, система обычно делает специальные пометки в базе данных о том, происходила выгрузка или нет. Узлы планов обменов имеют два специальных стандартных реквизита — Номер принятого и Номер отправленного сообщения (подробно — планы обмена). Именно в этих реквизитах 1С хранит информацию о загруженных/выгруженных пакетах.

Для корректного обмена данными номера сообщений должны попарно совпадать в обменивающихся базах. Т.е. если в базе источник номер отправленного сообщения равен 300, то номер полученного сообщения в базе приемнике должен быть равен 300.

Получите 267 видеоуроков по 1С бесплатно:

Обработка Регистрация изменений для обмена 1С

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

Для изменения номера сообщений проще всего воспользоваться типовой обработкой — «Регистрация изменений для обмена».

Обработка существует как для обычного приложения:

Так и для управляемого:

Для исправления ошибки необходимо нажать на гиперссылку с номерами сообщений (или кнопку Изменить номера сообщений).

В открывшимся окне следует установить сообщения, равные нулю, и нажать кнопку «Записать»:

Внимание! При установки нулевых значений Вы потеряете регистрацию изменений для обмена, т.е. система не выгрузит последний пакет изменений.

Описанные выше обработки обычно в составе типовых конфигураций.

Другие статьи по 1С:

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Пользователи 1С, используя обмены, иногда сталкиваются с проблемой возникновения ошибки «Номер сообщения меньше либо равен ранее принятому». Что же обозначает эта ошибка: в базе, с которой воспроизводится обмен, зафиксирован прием пакета с номером больше или равным тому пакету, который готовится на отправку, тогда программа выдаст подобную ошибку. А в случае, если базы не восстанавливались, и возникла ошибка, то нужно найти ее причину.

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

Существует два способа устранения ошибки. Первый способ, можно применить в том случае, когда обмен воспроизводится с подчиненной базой. Тогда нужно создать новую выгрузку для узла. И вы можете не переживать о потере данных на удаленном узле. Проще говоря, удалить файлы обмена.

Если номера сообщений расходятся, то можно реализовать второй вариант — выровнять коды сообщений в узлах обмена. Чтобы изменить номер сообщения, следует перейти к типовой обработке и выбрать «Регистрация изменений для обмена». Далее, чтобы исправить ошибку, нужно нажать на гиперссылку с номерами сообщений или на кнопку «Изменить номера сообщений». После чего появится окно, где нужно выбрать «Установить сообщения равны нулю» или «Записать». Обратите внимание, что если нулевые данные отсутствуют, будет потеряна регистрация изменений для обмена.

Платформа:

Конфигурация:

пт, 07/02/2014 – 01:05

пт, 07/02/2014 – 09:30

пт, 07/02/2014 – 20:35

сб, 08/02/2014 – 01:28

ср, 26/02/2014 – 17:30

Необходимо обратить внимание на следующие параметры:

  • номера релизов конфигурации-источника и конфигурации-приемника для которых предназначены правила;
  • дата создания правил.

При дальнейшем описании будем называть перечисленные параметры – контролируемые параметры.

Контроль производится по следующим правилам.

  • Определяется значение контролируемых параметров, которые загружены в конфигурацию-источник.
  • Определяется значение контролируемых параметров, которые загружены в конфигурацию-приемник.
  • Определяется значение контролируемых параметров, которые включены в поставку конфигурации-источника.
  • Определяется значение контролируемых параметров, которые включены в поставку конфигурации-приемника.

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

СМОТРЮ ПРАВИЛА конвертации нашего рабочего обмена:

Правила конвертации в БП 2.0 (2.0.49.15) – УТ-БП (11.1.2, 2.0.49, v.1) 2013-06-11T12:25:58

Правила конвертации УТ 11.1 (11.1.2.9) – БП-УТ (2.0.49, 11.1.2, v.1) 2013-06-19T09:29:55

Получаеться они соответсвуют друг другу поэтому и есть обмен.

Но судя по обновлениям следующих релизов идет разнобой

Правила конвертации УТ 11.1.4.11 БП-УТ (2.0.55.7, 11.1.4.11, v.2) 2014-02-10T10:37:17

Правила конвертации БП 2.0.55.7 УТ-БП (11.1.2.28, 2.0.55.1, v.1) 2014-01-22T12:25:29

КАк настраивать обмен.

Еще один крик души. ставлю обновления Ут 1.1.4.10 правила подходят для последней конфигурации БП. Не хочет ставиться хочет 1.1.4.9 которго нет на сайте обновлений. :(((

Содержание

  1. Ошибка при обмене данными между базами 1С: причины и способы исправления
  2. Не работает синхронизация ЗУП 3.1 – БП 3.0. Что может проверить бухгалтер?
  3. Вы не умеете работать с транзакциями
  4. Почему надо бить тревогу
  5. Что такое транзакции в 1С
  6. Объектные блокировки
  7. А теперь про транзакции
  8. Размазывание транзакций по методам
  9. Пытаемся исправить код
  10. Первый подход типичного 1С-ника
  11. Методы работы с транзакциями в 1С
  12. Финальный вариант
  13. Чек-лист рефакторинга
  14. В заключение

Ошибка при обмене данными между базами 1С: причины и способы исправления

Вместе со специалистом линии консультаций Алексеем Налимовым разбираем основные типы ошибок, которые могут возникать при обмене данных между базами 1С.

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

1) – обмен не прошел, ошибка транспорта сообщений.

При возникновении ошибки обмена, программа предлагает зайти в «Журнал регистрации», чтобы посмотреть подробности ошибки. Ниже представлены примеры ошибок в «Журнале регистрации»:

Рис. 1. Ошибка при отправке данных (нажмите, чтобы увеличить)

Рис. 2. Ошибка при получении данных (нажмите, чтобы увеличить)

2) – предупреждение, обмен в целом прошел, но есть проблемы в данных:

  • не проводится документ. Например, при проведении реализации не хватает товара на остатке;
  • не записывается элемент справочника. Например, в карточке товара не заполнена единица измерения;
  • загруженный документ имеет дату, которая в БП является запрещенной к изменению;
  • элемент справочника с момента последнего обмена менялся в обеих программах (конфликт версий).

Открыть предупреждения и попытаться устранить их можно, нажав соответствующую ссылку:

Рис. 3 (нажмите, чтобы увеличить)

Если при обмене возникла ошибка, то для начала нужно внимательно прочитать текст ошибки, чтобы понять ее характер. Для этого в списке синхронизаций нужно через меню «Еще» открыть «События отправки или получения данных» (смотря на каком этапе возникла проблема):

Рис. 4 (нажмите, чтобы увеличить)

Ошибки подразделяются на следующие типы:

1) Не связанные с данными:

Ошибка подключения базы к базе;

2) Связанные с данными: в выгружаемом документе или справочнике не заполнены какие-либо данные (единица измерения и т.д.).

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

regsvr32 «C:Program Files (x86)1cv88.3.15.1534bincomcntr.dll»

В Windows 10 для запуска командной строки от имени администратора нужно нажать правой кнопкой мыши по кнопке Пуск:

Рис. 5 (нажмите, чтобы увеличить)

Рис. 6 (нажмите, чтобы увеличить)

Другая возможная ошибка – ошибка релиза или ошибка вследствие большой разницы в релизах базы-источника и базы-приемника.

Например: УТ нетиповая (т.е. доработанная) и поэтому редко обновляется, а БП, наоборот, поддерживается в актуальном состоянии. Если разработчики добавили и переименовали в документе или справочнике какой-нибудь реквизит, может возникнуть ошибка.

Ошибки второго типа (пользовательские) – когда что-то не заполнено в выгружаемом объекте также диагностируются по журналу регистрации. В данном случае необходимо выявить проблемный документ, заполнить в нем нужное поле и повторить обмен.

Иногда есть необходимость срочно провести обмен и совместно со специалистом линии консультаций решается вопрос о временном исключении проблемного объекта из обмена.

Довольно часто случаются такие досадные ошибки, когда документ или справочник некогда был параллельно введен в обеих обменивающихся базах. При этом существует большой риск после обмена получить в базах дубли объектов. Исправление таких ошибок требует большой внимательности, осторожности и знаний в предметной области, сопряженной с удалением дублей, а также переносом ссылок. Желательно не запускать такие случаи и вовремя обратиться за помощью.

Источник

Не работает синхронизация ЗУП 3.1 – БП 3.0. Что может проверить бухгалтер?

Обмен не проходит, документы не переносятся

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 ранее и повторно загрузка производиться не будет.

Для успешного завершения обмена при настройке подключения через каталог необходимо поэтапно запускать обмен в каждой из конфигураций.

Статью подготовила старший консультант «ИнфоСофт» Анастасия Ткаченко

Источник

Вы не умеете работать с транзакциями

Заголовок вышел броским, но накипело. Сразу скажу, что речь пойдет об 1С. Дорогие 1С-ники, вы не умеете работать с транзакциями и не понимаете что такое исключения. К такому выводу я пришел, просматривая большое количество кода на 1С, рождаемого в дебрях отечественного энтерпрайза. В типовых конфигурациях с этим все достаточно хорошо, но ужасающее количество заказного кода написано некомпетентно с точки зрения работы с базой данных. Вы когда-нибудь видели у себя ошибку «В данной транзакции уже происходили ошибки»? Если да — то заголовок статьи относится и к вам. Давайте под катом разберемся, наконец, что такое транзакции и как правильно с ними обращаться, работая с 1С.

Почему надо бить тревогу

Для начала, давайте разберемся, что же такое представляет собой ошибка «В данной транзакции уже происходили ошибки». Это, на самом деле, предельно простая штука: вы пытаетесь работать с базой данных внутри уже откаченной (отмененной) транзакции. Например, где-то был вызван метод ОтменитьТранзакцию, а вы пытаетесь ее зафиксировать.

Почему это плохо? Потому что данная ошибка ничего не говорит вам о том, где на самом деле случилась проблема. Когда в саппорт от пользователя приходит скриншот с таким текстом, а в особенности для серверного кода, с которым интерактивно не работает человек — это… Хотел написать «критичная ошибка», но подумал, что это buzzword, на который уже никто не обращает внимания…. Это задница. Это ошибка программирования. Это не случайный сбой. Это косяк, который надо немедленно переделывать. Потому что, когда у вас фоновые процессы сервера встанут ночью и компания начнет стремительно терять деньги, то «В данной транзакции уже происходили ошибки» это последнее, что вы захотите увидеть в диагностических логах.

Есть, конечно, вероятность, что технологический журнал сервера (он ведь у вас включен в продакшене, да?) как-то поможет диагностировать проблему, но я сейчас навскидку не могу придумать вариант — как именно в нем найти реальную причину указанной ошибки. А реальная причина одна — программист Вася получил исключение внутри транзакции и решил, что один раз — не карабас «подумаешь, ошибка, пойдем дальше».

Что такое транзакции в 1С

Неловко писать про азбучные истины, но, видимо, немножго придется. Транзакции в 1С — это то же самое, что транзакции в СУБД. Это не какие-то особенные «1С-ные» транзакции, это и есть транзакции в СУБД. Согласно общей идее транзакций, они могут либо выполниться целиком, либо не выполниться совсем. Все изменения в таблицах базы данных, выполненные внутри транзакции, могут быть разом отменены, как будто ничего не было.

Далее, нужно понимать, что в 1С не поддерживаются вложенные транзакции. Собственно говоря, они не поддерживаются не «в 1С», а вообще не поддерживаются. По-крайней мере, теми СУБД, с которыми умеет работать 1С. Вложенных транзакций, например, нет в MS SQL и Postgres. Каждый «вложенный» вызов НачатьТранзакцию просто увеличивает счетчик транзакций, а каждый вызов «ЗафиксироватьТранзакцию» — уменьшает этот счетчик. Данное поведение описано в множестве книжек и статей, но выводы из этого поведения, видимо, разобраны недостаточно. Строго говоря, в SQL есть т.н. SAVEPOINT, но 1С их не использует, да и вещь это достаточно специфичная.

Здесь и далее, специально для Воинов Истинной Веры, считающих, что код должен писаться только на английском, под спойлерами будет приведен аналог кода в англоязычном синтаксисе 1С.

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

Вы же наверняка пишете такой код, да? Приведенный пример кода содержит ошибки. Как минимум, три. Знаете какие? Про первую я скажу сразу, она связана с объектными блокировками и не имеет отношения непосредственно к транзакциям. Про вторую — чуть позже. Третья ошибка — это deadlock, который возникнет при параллельном исполнении этого кода, но это тема для отдельной статьи, ее рассматривать сейчас не будем, дабы не усложнять код. Ключевое слово для гугления: deadlock управляемые блокировки.

Обратите внимание, простой ведь код. Такого в ваших 1С-системах просто вагон. И он содержит сразу, как минимум, 3 ошибки. Задумайтесь на досуге, сколько ошибок есть в более сложных сценариях работы с транзакциями, написанных вашими программистами 1С 🙂

Объектные блокировки

Итак, первая ошибка. В 1С существуют объектные блокировки, так называемые «оптимистические» и «пессимистические». Кто придумал термин, не знаю, убил бы :). Совершенно невозможно запомнить, какая из них за что отвечает. Подробно про них написано здесь и здесь, а также в прочей IT-литературе общего назначения.

Суть проблемы в том, что в указанном примере кода изменяется объект базы данных, но в другом сеансе может сидеть интерактивный пользователь (или соседний фоновый поток), который тоже будет менять этот объект. Здесь один из вас может получить ошибку «запись была изменена или удалена». Если это произойдет в интерактивном сеансе, то пользователь почешет репу, ругнется и попробует переоткрыть форму. Если это произойдет в фоновом потоке, то вам придется искать это в логах. А журнал регистрации, как вы знаете, медленный, а ELK-стек для журналов 1С у нас в отрасли настраивают единицы… (мы, к слову, входим в число тех, кто настраивает и другим помогает настраивать :))

Короче говоря, это досадная ошибка и лучше, чтобы ее не было. Поэтому, в стандартах разработки четко написано, что перед изменением объектов необходимо ставить на них объектную блокировку методом «ОбъектСправочника.Заблокировать()«. Тогда параллельный сеанс (который тоже должен так поступить) не сможет начать операцию изменения и получит ожидаемый, управляемый отказ.

А теперь про транзакции

С первой ошибкой разобрались, давайте перейдем ко второй.

Если не предусмотреть проверку исключения в этом методе, то исключение (например, весьма вероятное на методе «Записать()») выбросит вас из данного метода без завершения транзакции. Исключение из метода «Записать» может быть выброшено по самым разным причинам, например, сработают какие-то прикладные проверки в бизнес-логике, или возникнет упомянутая выше объектная блокировка. Так или иначе, вторая ошибка гласит: код, начавший транзакцию, не несет ответственность за ее завершение.

Именно так я бы назвал эту проблему. В нашем статическом анализаторе кода 1С на базе SonarQube мы даже отдельно встроили такую диагностику. Сейчас я работаю над ее развитием, и фантазия программистов 1С, чей код попадает ко мне на анализ, порой приводит меня в шок и трепет…

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

Поднимемся на уровень выше по стеку вызовов:

Смотрите, что получается. Наш проблемный метод вызывается откуда-то извне, выше по стеку. На уровне этого метода разработчик понятия не имеет — будут ли какие-то транзакции внутри метода ОченьПолезныйИВажныйКод или их не будет. А если будут — то будут ли они все завершены… Мы же все тут за мир и инкапсуляцию, верно? Автор метода «ВажныйКод» не должен думать про то, что именно происходит внутри вызываемого им метода. Того самого, в котором некорректно обрабатывается транзакция. В итоге, попытка поработать с базой данных после выброса исключения изнутри транзакции, с высокой вероятностью приведет к тому, что «В данной транзакции бла-бла…»

Размазывание транзакций по методам

Второе правило «транзакционно-безопасного» кода: счетчик ссылок транзакций в начале метода и в его конце должен иметь одно и то же значение. Нельзя начинать транзакцию в одном методе и завершать ее в другом. Из этого правила, наверное, можно найти исключения, но это будет какой-то низкоуровневый код, который пишут более компетентные люди. В общем случае так писать нельзя.

Выше — неприемлемый говнокод. Нельзя писать методы так, чтобы вызывающая сторона помнила и следила за возможными (или вероятными — как знать) транзакциями внутри других методов, которые она вызывает. Это нарушение инкапсуляции и разрастание спагетти-кода, который невозможно трассировать, сохраняя рассудок.

Особенно весело вспомнить, что реальный код намного больше синтетических примеров из 3-х строчек. Выискивать начинающиеся и завершающиеся транзакции по шести уровням вложенности — это прям мотивирует на задушевные беседы с авторами.

Пытаемся исправить код

Вернемся к исходному методу и попытаемся его починить. Сразу скажу, что объектную блокировку мы чинить пока не будем, просто, чтобы не усложнять код примера.

Первый подход типичного 1С-ника

Обычно программисты 1С знают, что при записи может быть выдано исключение. А еще они боятся исключений, поэтому стараются их все перехватывать. Например, вот так:

Ну как, стало лучше, да? Ведь теперь, возможные ошибки записи обрабатываются и даже логируются. Исключения больше не возникнут при записи объекта. И в логе даже видно — на каком объекте, не поленился, вывел в сообщение ссылку вместо лаконичного «Ошибка записи справочника», как это часто любят писать вечно торопящиеся разработчики. Иными словами, налицо забота о пользователе и рост компетенций.

Однако, опытный 1С-ник здесь скажет, что нет, лучше не стало. По сути ничего не поменялось, а может даже стало и хуже. В методе «Записать()» платформа 1С сама начнет транзакцию записи, и эта транзакция будет уже вложенной по отношению к нашей. И если в момент работы с базой данных 1С свою транзакцию откатит (например, будет выдано исключение бизнес-логики), то наша транзакция верхнего уровня все равно будет помечена как «испорченная» и ее нельзя будет зафиксировать. В итоге этот код так и останется проблемным, и при попытке фиксации выдаст «уже происходили ошибки».

А теперь представьте, что речь идет не о маленьком методе, а о глубоком стеке вызовов, где в самом низу кто-то взял и «выпустил» начатую транзакцию из своего метода. Верхнеуровневые процедуры могут и понятия не иметь, что кто-то там внизу начинал транзакции. В итоге, весь код валится с невнятной ошибкой, которую расследовать невозможно в принципе.

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

Методы работы с транзакциями в 1С

Не будет лишним напомнить, что вообще 1С предоставляет нам для работы с транзакциями. Это всем известные методы:

  • НачатьТранзакцию()
  • ЗафиксироватьТранзакцию()
  • ОтменитьТранзакцию()
  • ТранзакцияАктивна()

Первые 3 метода очевидны и делают то, что написано в их названии. Последний метод — возвращает Истину, если счетчик транзакций больше нуля.

И есть интересная особенность. Методы выхода из транзакции (Зафиксировать и Отменить) выбрасывают исключения, если счетчик транзакций равен нулю. То есть, если вызвать один из них вне транзакции, то возникнет ошибка.

Как правильно пользоваться этими методами? Очень просто: надо прочитать сформулированное выше правило: код, начавший транзакцию, должен нести ответственность за ее завершение.

Как же соблюсти это правило? Давайте попробуем:

Выше мы уже поняли, что метод ДелаемЧтоТо — потенциально опасен. Он может выдать какое-то исключение, и транзакция «вылезет» наружу из нашего метода. Окей, добавим обработчик возможного исключения:

Отлично, мы поймали возникающую ошибку, но что с ней делать? Записать сообщение в лог? Ну, может быть, если код логирования ошибок должен быть именно на этом уровне и ошибку мы тут ждем. А если нет? Если мы не ожидали тут никаких ошибок? Тогда мы должны просто передать это исключение выше, пусть с ними разбирается другой слой архитектуры. Делается это оператором «ВызватьИсключение» без аргументов. В этих ваших джава-сиплюсплюсах это делается точно так же оператором throw.

Так, стоп… Если мы просто прокидываем исключение дальше, то зачем тут вообще нужна Попытка? А вот зачем: правило заставляет нас обеспечить завершение начатой нами транзакции.

Теперь, вроде бы, красиво. Однако, мы ведь помним, что не доверяем коду ДелаемЧтоТо(). Вдруг там внутри его автор не читал этой статьи, и не умеет работать с транзакциями? Вдруг он там взял, да и вызвал метод ОтменитьТранзакцию или наоборот, зафиксировал ее? Нам очень важно, чтобы обработчик исключения не породил нового исключения, иначе исходная ошибка будет потеряна и расследование проблем станет невозможным. А мы помним, что методы Зафиксировать и Отменить могут выдать исключение, если транзакция не существует. Здесь-то и пригождается метод ТранзакцияАктивна.

Финальный вариант

Наконец, мы можем написать правильный, «транзакционно-безопасный» вариант кода. Вот он:

**UPD: в комментариях предложен более безопасный вариант, когда ЗафиксироватьТранзакцию расположен внутри блока Попытка. Здесь приведен именно этот вариант, ранее Фиксация располагалась после блока Попытка-Исключение.

Постойте, но ведь не только «ОтменитьТранзакцию» может выдавать ошибки. Почему же тогда «ЗафиксироватьТранзакцию» не обернут в такое же условие с «ТранзакцияАктивна»? Опять же, по тому же самому правилу: код, начавший транзакцию, должен нести ответственность за ее завершение. Наша транзакция необязательно самая первая, она может быть вложенной. На нашем уровне абстракции мы обязаны заботиться только о нашей транзакции. Все прочие должны быть нам неинтересны. Они чужие, мы не должны нести за них ответственность. Именно НЕ ДОЛЖНЫ. Нельзя предпринимать попыток выяснения реального уровня счетчика транзакций. Это опять нарушит инкапсуляцию и приведет к «размазыванию» логики управления транзакциями. Мы проверили активность только в обработчике исключения и только для того, чтобы убедиться, что наш обработчик не породит нового исключения, «прячущего» старое.

Чек-лист рефакторинга

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

Паттерн:

Обернуть в «безопасную» конструкцию с Попыткой, Проверкой активности и пробросом исключения.

Паттерн:

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

Примерно похожий вариант:

аналогично: фиксация транзакции по условию — это странно. Почему тут условие? Что, кто-то иной мог уже зафиксировать эту транзакцию? Повод для разбирательства.

Паттерн:

  1. ввести управляемую блокировку во избежание deadlock
  2. ввести вызов метода Заблокировать
  3. обернуть в «попытку», как показано выше

Паттерн:

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

В заключение

Я, как вы уже, наверное, догадались, отношусь к людям, любящим платформу 1С и разработку на ней. К платформе, разумеется, есть претензии, особенно в среде Highload, но в общем и целом, она позволяет недорого и быстро разрабатывать очень качественные корпоративные приложения. Давая из коробки и ORM, и GUI, и веб-интерфейс, и Reporting, и много чего еще. В комментариях на Хабре обычно пишут всякое высокомерное, так вот, ребята — основная проблема 1С, как экосистемы — это не платформа и не вендор. Это слишком низкий порог вхождения, который позволяет попадать в отрасль людям, не понимающим, что такое компьютер, база данных, клиент-сервер, сеть и всякое такое. 1С сделала разработку корпоративных приложений слишком легкой. Я за 20 минут могу написать на ней учетную систему для закупок/продаж с гибкими отчетами и веб-клиентом. После этого, мне несложно подумать о себе, что и на больших масштабах можно писать примерно так же. Как-то там 1С сама все внутри сделает, не знаю как, но наверное сделает. Напишу-ка я «НачатьТранзакцию()».

И знаете — самое главное, что это прекрасно. Простота разработки в 1С позволяет моментально реализовывать бизнес-идеи и встраивать их в процессы компании. Потом всегда можно отрефакторить, главное понимать как. И если вдруг вам нужна помощь в аудите вашей «медленной 1С» — обращайтесь к специалистам по оптимизации. Она совсем не медленная.

Источник

1

2

3

Показывать по
10
20
40
сообщений

Новая тема

Ответить

Death_eye

Дата регистрации: 11.02.2010
Сообщений: 200

Обмен ЗУП и БП настроен с помощью правил обмена, написаны именно для обмена, а не для синхронизации. Выгрузка/загрузка через стандартную обработку Универсальный обмен данными. До предпоследнего обновления все работало прекрасно. Обновились на 3.1.3.158. Появилась ошибка :

Ошибка при создании временного файла выгрузки данных
Обработчик             = Ошибка при создании временного файла для выгрузки данных
ОписаниеОшибки       = Ошибка при вызове метода контекста (Открыть): Установлен безопасный режим. Выполнение операции запрещено
ПозицияМодуля       = Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(9319)
КодСообщения       = 1 000

Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(932)}: Ошибка при вызове метода контекста (ЗаписатьСтроку): Файл не открыт.

Обновление на последний релиз не помогло. Ошибка сохраняется.
Работаем в терминале.
При восстановлении старой копии до обновления — все работает.
Подскажите, в чем может быть проблема.

Prikum

активный пользователь

офлайн

Дата регистрации: 18.02.2002
Сообщений: 20882

Death_eye, убрать безопасный режим, если Вы уверены в обработке.

Death_eye

Дата регистрации: 11.02.2010
Сообщений: 200

Prikum,как? Это типовая обработка, встроенная в конфигурацию.

Жертва 1С

Дата регистрации: 08.10.2016
Сообщений: 468

Death_eye,
Версия БП 3 — какая?

Death_eye

Дата регистрации: 11.02.2010
Сообщений: 200

Pin Occio, релиз БП значения не имеет, т.к. ошибка в момент выгрузки из ЗУП.

Саша

Дата регистрации: 16.03.2015
Сообщений: 11

здравствуйте, каким образом решили проблему? могли бы поделиться

Иван Лазаренко

Дата регистрации: 27.04.2012
Сообщений: 82

Может поможет вот что: зайти в конфигуратор->Администрирование->Пользователи. И убрать галочку «Защита от опасных действий» у того пользователя под которым запускается эта обработка

Саша

Дата регистрации: 16.03.2015
Сообщений: 11

Иван, нет не помогло. Обработка Универсальный обмен в последнем релизе содержит реквизит Безопасный режим, думаю проблема в нем, но в диалоге для пользователя его нет.

ps может кому-то поможет. У тех у кого есть возможность внесения изменений в конфигурацию, как у меня, можно зайти в форму обработки, встать на реквизит формы «Безопасный режим» (он там есть), и указать «Путь к данным» в свойствах к этому реквизиту объекта (этого в типовой нет), он появится на форме. Сохранить изменения, и в предприятии в диалоге формы появится этот реквизит, у меня он появился со значением «Истина», убираем и все работает. ура.
У кого конфигурация без возможности редактирования можно попробовать сделать внешнюю.

Мое решение не претендует на то чтобы быть единственно верным, но мое оценочное суждение в том что это проще чем читать страницы мануалов и искать что меняется от релиза к релизу.

Death_eye

Дата регистрации: 11.02.2010
Сообщений: 200

Саша, в модуле формы закомментировал строку БезопасныйРежим = Истина. Все заработало. В тех поддержку написал, обещали когда-нибудь исправить. 2 обновления прошло, исправлений нет.

Саша

Дата регистрации: 16.03.2015
Сообщений: 11

Death_eye, я так обычно делаю тем кто мне плохо платит)) но тоже вариант, спасибо

Читают тему:

Понравилась статья? Поделить с друзьями:
  • Ошибка при обмене с ботом
  • Ошибка при обмене с bitrix
  • Ошибка при обмене риб конфигурация не соответствует ожидаемой
  • Ошибка при обмене ошибка доступа к файлу
  • Ошибка при обмене нет транзакции