/1s-GoToLinkedObjects-EMP

Разработка на github.com прекращена. Репозиторий перемещён на gitlab.ivcsm.ru. Расширение, добавляющее в ЕМП общую команду перехода в БГУ 2 к сопоставленными при обмене объектам

Primary Language1C EnterpriseThe UnlicenseUnlicense

Поддержка быстрого перехода к сопоставленным объектам из ЕМП в БГУ 2

GitHub release

Semantic Versioning Conventional Commits

Данный репозиторий содержит расширение конфигураций 1С:Предприятие 8.3 для управляемых форм, предоставляющее общую команду для перехода к сопоставленным объектам из ЕМП в БГУ 2 в синхронизируемых информационных базах.

Назначение расширения

Данное расширение конфигурации предназначено для использования в 1С:Единая метрологическая платформа 2.0 (далее - ЕМП) до версии 8.0.1.58 (начиная с указанной версии расширение интегрировано в конфигурацию).

Расширение добавляет общую команду ППСО_ПерейтиКСопоставленномуОбъекту (в интерфейсе - "Перейти в БГУ 2") в командную панель формы "Синхронизация данных".

Команда перехода к сопоставленному объекту

Команда доступна в формах объектов всех синхронизируемых объектов.

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

Диагностируемые проблемы синхронизации и методы их решения

Дублирование объектов при синхронизации

Описание проблемы

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

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

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

Возможные причины возникновения проблемы

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

К сожалению, указанная обработка некорректно обрабатывает записи в регистре СоответствияОбъектовИнформационныхБаз, при замене ссылок на удаляемый дубликат объекте не удаляя записи для него в указанном регистре, а заменяя в нём ссылки на дубликат ссылками на оригинал (основной объект). В итоге - получаем в регистре множественные записи.

Методы решения проблемы

Метод решения - выяснить, какая из записей содержит действительные сведения о сопоставленном объекте в синхронизируемой информационной базе, и удалить остальные. Для этих целей из формы объекта, с синхронизацией которого возникли описанные выше проблемы, переходим с использованием поставляемой данным расширением команды в форму списка регистра СоответствияОбъектовИнформационныхБаз. Записи в указанном регистре будут отобраны по текущему объекту, из формы которого осуществлён переход. Непосредственно из формы списка регистра проверяем возможность перехода к сопоставленным объекта в синхронизируемых информационных базах. Удаляем записи, содержащие недействительные сведения о сопоставленных объектах в синхронизируемых информационных базах.

Подготовка к работе

Для использования расширения его необходимо подключить. При подключении следует отключить параметры "Безопасный режим", "Защита от опасных действий". Причина - расширение добавляет собственную роль "Использование перехода к сопоставленным объектам", и предоставляет этой роли право чтения планов обмена и регистров НастройкиТранспортаОбменаДанными, СоответствияОбъектовИнформационныхБаз.

Подключение расширения

Таким образом, пользователи, которым Вы назначите роль "Использование перехода к сопоставленным объектам", получат так же доступ на чтение к указанным объектам конфигурации.

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

  • Использование перехода к сопоставленным объектам (поставляется расширением)
  • Администрирование системы (поставляется расширяемой конфигурацией)
  • Полные права (поставляется расширяемой конфигурацией)
  • Выполнение синхронизации данных (поставляется расширяемой конфигурацией)

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

Создание профиля доступа

Для работы расширения необходимы параметры подключения к базе ЕМП:

  • FQDN сервера (имя сервера)
  • имя базы данных на сервере 1С:Предприятия

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

Вызов формы параметров подключения к базе Параметры подключения к базе

О подготовке рабочего места разработчика

Подготовка рабочего места заключается в исполнении (с правами администратора) файла install\install.cmd. Текущим должен быть корневой каталог репозитория! Потребуется несколько перезагрузок. Выполнять вплоть до отсутствия ошибок при выполнении.

Будут установлены:

  • chocolatey (менеджер пакетов)
  • git
  • VSCode
  • OneScript
  • ряд пакетов под OneScript
  • и git precommit hook в репозиторий проекта

Внесение изменений в расширения

Используем precommit1c. Порядок действий по фиксации изменений в расширениях следующий:

  • пишем новую версию расширения в каталог extensions
  • добавляем расширение в индекс git: git add extensions/\*.cfe, или же указываем конкретный файл
  • собственно, commit: git commit. При этом precommit1c разберёт добавленные в индекс расширения конфигурации, добавит в индекс "исходные" файлы расширений, а сами файлы расширений из индекса уберёт.

Безусловно, удобнее выполнять эти действия с использованием VSCode.

Репозиторий проекта размещён по адресу github.com/csm-ivanovo-ru/1s-GoToLinkedObjects-EMP. Стратегия ветвления - Git Flow.

При необходимости внесения изменений в сам проект предложите Pull Request в основной репозиторий в ветку develop.

Полезные ссылки