Проблема передачи расширений в распределенных базах – как это решается с редакции 8.3.12?

Распределенная база (РИБ) – часто используемый вариант работы.

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

И в таких базах также могут использоваться расширения. А с ними возникают нюансы

Проблема с распространением расширений в распределенных информационных базах

До выпуска 8.3.12 на уровне платформы не было обмена расширениями в РИБ.

Поэтому, если в центральной базе мы добавили расширение – нужно было еще распространить его во все периферийные узлы.

Для этого приходилось изобретать свои решения, например, веб-серверы во всех магазинах, обмен через веб-сервисы и т.п.

Что изменилось в 8.3.12?

В редакции 8.3.12 обмен расширениями в территориально распределенных базах реализован на уровне платформы.

Теперь не нужны доработки по синхронизации самих расширений, можно не использовать дополнительное ПО, типа веб-серверов.

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

Видео – как передать расширения в периферийные узлы распределенной базы начиная с версии платформы 8.3.12

Мы подготовили для вас 10-минутное видео. Посмотрев его, вы узнаете:

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

 

Для тех, кто хочет идти в ногу со временем

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

Наш курс поможет освоить все возможности расширений буквально за пару месяцев.

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

Комментарии / обсуждение (26):

  1. Максим

    Добрый день,
    А если в центральном узле в расширение добавить новый справочник. Элементы этого справочника, созданные в режиме “предприятие” будут автоматически переносится во все узлы (магазины) или в расширении нужно будет заимствовать план обмена (например, РИБ по магазинам для розницы), в котором указывать параметры авторегистрации “разрешить” для нового справочника?

    • Василий Ханевич

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

      • Максим

        А возможно ли в итоге обмениваться данными из расширений (например, данными нового справочника) с узлами РИБ не дорабатывая при этом конфигурацию (пользуясь только расширениями)?

        • Василий Ханевич

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

          • Максим

            Вы слишком сложный путь предлагаете. Я проверил, достаточно в расширении позаимствовать план обмена (например, риб по магазину) и в нем для добавленных справочников включить авторегистрацию. Тогда этот справочник будет передаваться в узлы. Да и в типовых документах, где используется ссылка на справочник из расширения всё будет перегружаться и работать.

            • Василий Ханевич

              Я понял, что вообще без доработок надо обойтись, внешними средствами:)
              А так да, всё правильно – при помощи расширений можно работать с планами обмена.

  2. han24rus

    Не подскажете, почему даже в последней версии конфигурации “Бухгалтерия предприятия 3.0”, например, версии 3.0.68.58, в плане обмена РИБ (“Полный”, “ПоОрганизации”) не установлены галочки “Включать расширения конфигурации”, хотя режим совместимости у конфигурации уже давно 8.3.12? Понятно, что вопрос нужно адресовать разработчикам прикладного решения “Бухгалтерия предприятия 3.0”, но надеюсь на вашу осведомленность.

    При установке галочки “Включать расширения конфигурации” у плана обмена РИБ “ПоОрганизации” в конфигурации “Бухгалтерия предприятия 3.0” версии 3.0.68.58, и последующей попытки синхронизации, последняя не проходит с сообщением:

    “ПланСчетов.Хозрасчетный. Недопустимо использование предопределенных элементов, если не включены все разделители объекта конфигурации”.

    Если использовать расширения, изменяющие структуру метаданных конфигурации, в которой нет галочки “Включать расширения конфигурации” (БП 3.0), тогда при синхронизации ловим ошибку:

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

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

    В итоге не могу заставить нормально работать “Бухгалтерия предприятия 3.0” версии 3.0.68.58,
    совместно с расширениями, меняющими структуру метаданных конфигурации, т.к. при обмене с РИБ “ПоОрганизации” получаю:

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

    При этом все расширения, само собой, перенесены в РИБ вручную.

    У кого-нибудь такая связка расширений и РИБ работает?

    • Василий Ханевич

      Добрый день!
      Можно попробовать выполнить обмены (или вообще все действия, начиная с формирования периферийных узлов) на разных релизах платформы. Потому что контрольные суммы формируются в файлах обмена на уровне платформы, это не механизм прикладного решения, редактированием кода на встроенном языке тут не обойтись. Возможно, в каком-нибудь релизе платформы дорабатывали/изменяли этот (или смежный?) механизм, что привело к возникновению подобных ошибок.
      То, что контрольные суммы отличаются, – это некорректное поведение. По возможности задайте этот вопрос разработчикам платформы на v8@1c.ru, отправьте базы с примером воспроизведения, чтобы разработчики смогли диагностировать причину такого поведения платформы.

  3. Еремин Сергей

    Добрый день. Создал первоначальный образ полностью по вашей методике. При первой выгрузке из центральной базы во вновь созданный образ, я получаю ошибку принятия сообщения. А именно:
    “Данные принимаются от узла с другим набором расширений, меняющих структуру данных.
    Необходимо произвести перенос расширений конфигурации в узел.”

    Как можно решить эту задачу?

    Буду очень признателен за любую информацию

    • Василий Ханевич

      Добрый день!
      Такая ошибка может возникать, даже когда в базе нет ни одного расширения.
      Система считает, что в главном и в периферийном узле разные конфигурации. В файлах обмена есть специальная контрольная сумма (тег Digest в xml-файле). Она не совпадает, поэтому система считает, что обмениваются вообще разные базы, не дает загружать данные.
      Раньше, когда расширений еще не было, лечилось полной загрузкой конфигурации из cf-файла. Тогда конфигурации становились на 100% одинаковыми, обмен восстанавливался.
      Что можно попробовать сделать.
      1) Выполнить обмен на предыдущих релизах платформы (например, 8.3.12). Может, изменялись какие-то внутренние алгоритмы. Один из участников курса обошел проблему, выполнив загрузку на платформе 8.3.12.1714, хотя на релизе 8.3.13.1644 возникала указанная Вами ошибка.
      2) Проверить, что в периферийной базе есть все расширения из центральной, они идентичны, конфигурация базы данных обновлена. Попробовать заново выполнить цикл обмена.
      3) Еще пробуют вручную редактировать контрольные суммы в файлах обмена, чтобы восстановился обмен. После этого обмен начинает работать корректно. Обязательно иметь копии баз, чтобы было к чему вернуться в случае проблем.

      • Еремин Сергей

        Помогло редактирование контрольных сумм. По крайней мере первый обмен прошел. Спасибо большое

  4. Алексей

    Здравствуйте, хотелось бы воспользоваться возможностью именно НЕ применения расширения в РИБ, а пользоваться им только в центральном узле. Не ставлю признак “Используется в распределенной ИБ” и при попытке создать узел: “Не удалось создать начальный образ по причине: В текущем сеансе существуют изменяющие данные расширения конфигурации, неиспользуемые в распределенной информационной базе.”

    • Василий Ханевич

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

  5. Владимир

    День добрый!
    Есть 1С:Предприятие 8.3.12.1616 и Розница 2.2.9.20 с уже работающей РИБ. Сделали расширение тестовое. Как его распространить на удаленные базы? Пробовали создать свой план обмена, но в нем не дает отметить подсистему в которой участвует новый план обмена… Уже существующие планы не дает редактировать (замочки на них).
    Дайте подсказку, что мы не так делаем!
    Спасибо

    • Василий Ханевич

      Добрый день!
      Первым делом нужно проверить режим совместимости конфигурации. Чтобы план обмена умел передавать расширения в сообщениях обмена, режим совместимости должен быть не ниже Версия 8.3.12. Если он ниже, то обмениваться расширениями между базами РИБ нужно будет вручную.
      Если режим совместимости 8.3.12 и выше, то в плане обмена нужно установить галочку Включать расширения конфигурации. Тогда обмен расширениями будет выполняться на уровне платформы. Чтобы в типовых конфигурациях можно было вносить исправления, нужно для объекта включить возможность редактирования (“снять с замка”).

  6. Михаил Госьков

    Добрый день!
    Расширение1 передано в периферийную базу. Сможем ли мы увидеть его в пользовательском режиме, без использования конфигуратора?

    • Василий Ханевич

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

  7. markers

    Доброго времени суток!
    Хотел бы уточнить по схеме обновления расширений до 8.3.12, веб-сервер нужен только один, в центральной базе, а подчиненные узлы к нему подключаются через веб-сервис.
    И вопрос, когда вы добавили Расширение1 и сделали обмен, в показанной XML присутствуют данные от расширения ВесТовара, я правильно понимаю что обмен не разностный, а полный? Т.е. при любых обменах, расширения включаются в сообщение обмена в полном объёме, а не разница? По тому-что я не заметил на видео, чтоб изменилось расширение ВесТовара.
    Спасибо!

    • Василий Ханевич

      Добрый день!
      1. Да, конечно, в простом случае достаточно веб-сервера в центре. Но если из периферийной базы нужно будет передать расширение дальше “по иерархии” в подчиненную базу следующего уровня, то и в узле тоже потребуется веб-сервер. Или если в торговой точке нужно передавать расширение в подчиненные распределенные базы по кассам. Поэтому на схеме для общего случая оставил картинки веб-сервера.
      2. Погонял обмен расширениями на демо-базах. Получилось, что расширения всегда попадали в файл обмена. Даже если совершить полный цикл обмена, т.е. загрузить ответ подчиненной базы обратно в центральную.

      • markers

        Ок! Большое спасибо за ответы! Конечно была надежда на разностные обмены расширения, но так тоже терпимо. Тем-более что зачастую расширения даже большие, весят не много.

  8. ikolegov

    Добрый день.
    Не подскажете примерный срок перехода на режим совместимости 8.3.11 (12) на типовых. Интересует ERP и БП 3.0

    • Василий Ханевич

      Добрый день!
      На пользовательском сайте для БП указана ориентировочная дата выхода – сентябрь 2018 (Адаптация конфигурации к работе на платформе 8.3.12 без совместимости с предыдущими версиями).

  9. Виктория

    Здравствуйте! Я бухгалтер,но часто сталкиваюсь с тем, что нужно подредактировать печатную форму либо создать новую обработку и к ней печатную форму. Мне не нужны абсолютно все знания, можно как-то пройти урезанный курс обучения? Какова стоимость?

    • Кузьмин Сергей

      Виктория, нельзя приобрести часть занятий курса. Курс не делится на части и приобрести его можно только целиком.
      Обратите внимание, до 24 апреля курс можно приобрести по сниженной цене.

  10. VasilyFirst

    Здравствуйте, я покупал несколько курсов.Перед покупкой этого курса прошу ответить на простой вопрос:
    Есть процедура общего модуля, в ней запрос. Как я должен оформить расширение конфигурации (кратко), чтоб она в дальнейшем обновлялась без меня. Например, при условии, что 1с внесет изменения в запрос в этой процедуре.

    • Василий Ханевич

      Добрый день!
      Можно использовать аннотацию После, в модуле в расширении реализовать логику, как именно следует изменить текст запроса. Например, с использованием функции СтрЗаменить:

      &После("СформироватьТекстЗапроса")
      Процедура Расш_СформироватьТекстЗапроса(ТекстЗапроса)
          ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "...", "...");
      КонецПроцедуры

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вход на сайт

Зарегистрироваться

Подтверждение регистрации будет отправлено на указанный e-mail.

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

Восстановить доступ

E-mail или логин

Ссылка на создание нового пароля будет отправлена на указанный e-mail.