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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

  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 не будет опубликован. Обязательные поля помечены *

Мы используем файлы cookies, чтобы сделать сайт удобнее.
Продолжая просмотр сайта, Вы соглашаетесь с их использованием.
Подробнее