Как ускорить процесс реструктуризации и обновления 1С в разы

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

Однако, его можно заметно ускорить. А для этого нужно немного погрузиться в детали и поговорить о реструктуризации :)

Когда в 1С изменяются метаданные (добавляются документы, реквизиты, индексы), происходит изменение структуры таблиц.

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

Для случаев, когда объемы данных небольшие, это не так чувствительно.

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

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

С момента выхода этого релиза прошло уже 5 лет, но, судя по вопросам в Мастер-группе, до сих пор многие не знакомы с этим механизмом и не знают о его преимуществах.

Сегодняшнее видео закрывает этот вопрос:

  • Объясняем, чем механизм, который появился в 8.3.11, отличается от стандартного способа реструктуризации
  • Показываем, как настроить и использовать новый механизм
  • Демонстрируем его преимущества и рассказываем о его недостатках
  • Объясняем, кому необходим этот механизм, а кому переходить на него не стоит.

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

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

Ключевые моменты видео:

  • 00:00 – Постановка задачи
  • 00:28 – Старый способ реструктуризации и его недостатки
  • 01:50 – Новый способ реструктуризации
  • 02:17 – Плюсы нового способа
  • 03:04 – Установка Java на сервер 1С
  • 04:18 – Настройка файла conf.cfg на клиенте
  • 05:40 – Демонстрация работы старого механизма
  • 07:36 – Демонстрация работы нового механизма
  • 08:58 – Особенности использования нового механизма
  • 09:10 – Включение протокола TCP/IP для СУБД
  • 10:52 – Проверка сторонних индексов
  • 13:20 – Настройка параметра MAXDOP в MS SQL
  • 16:36 – Итоги

Умение находить и устранять причины медленной и нестабильной работы систем на 1С - обязательно для программистов 1С

Чтобы Вы могли быстро и без ошибок решать эти задачи, мы выпустили курс «Ускорение и оптимизация 1С».

После курса Вы сможете:

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

Для кого этот курс

Вам нужен этот курс, если Вы хотите:
  • Писать код, за который не стыдно – в нестабильное время особенно важно быть в компании на хорошем счету
  • Быть востребованным специалистом – на каждом втором собеседовании спрашивают про умение оптимизировать 1С
  • Не терять клиентов из-за того, что «ваша 1С тормозит, а вы ничего не делаете» – это и раньше было нехорошо, а теперь и вовсе непозволительная роскошь.
Программа, стоимость и условия:
Ускорение и оптимизация работы 1С, Базовый курс
  • 16 учебных часов видео
  • 50 практических заданий
  • 3 месяца поддержки и доступа к ответам на вопросы
  • Пожизненный доступ к видео-урокам и учебным материалам

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

  1. Андрей

    Добрый день!

    У меня ЕРП с расширениями. Обновляется очень долго.

    Пытаюсь применить новый механизм, но получаю ошибки типа:

    В процессе обновления конфигурации базы данных при работе оптимизированного механизма обновления произошла критическая ошибка
    по причине:
    Критическая ошибка работы Java-процесса.
    Путь к Java: C:\Program Files\BellSoft\LibericaJDK-8-Full\bin\java.exe
    Действие: prepare
    Process ID: 183092
    Код возврата: 1
    Ошибка: Exception in thread “main” com._1c.dmf.migrationbuilder.MigrationBuilderException: База данных не соответствует DbSpace: таблица _InfoRgChngR110490X1 не найдена
    at com._1c.dmf.internal.migrationbuilder.dbspacebuilders.DbColumnDefinitionsFromDatabase.build(DbColumnDefinitionsFromDatabase.java:62)
    at com._1c.dmf.internal.migrationbuilder.PreparedMigrationBuilder.buildMigration(PreparedMigrationBuilder.java:51)
    at com._1c.dmf.internal.migrationbuilder.MigrationBuilder.buildMigration(MigrationBuilder.java:50)
    at com._1c.dmf.v8.internal.integration.DmfService.prepareMigration(DmfService.java:70)
    at com._1c.dmf.v8.cli.Migration.run(Migration.java:109)
    at com._1c.dmf.v8.cli.Migration.main(Migration.java:84)

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

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

    • Андрей Бурмистров

      Андрей, здравствуйте.
      Тут к сожалению не подскажу в чем дело, посмотрите на багборде, возможно эта ошибка уже зарегистрирована в 1С.

  2. Татьяна

    Здравствуйте!
    У меня не ругалось на джаву. Но, если только в конфиг прописать, то изменений по скорости не было при обновлении конфигурации (там как раз долгая реструктуризация). Если еще сделать параллелизм=0 в sql, то быстрее. Если параллелизм=0 без изменений в конфиг – то столько же времени, как параллелизм=0 с изменением в конфиг. И еще вот такие штуки в Active Monitors, которых вроде быть не должно, то есть таблица с суффиксом NG (при новых настройках в конфиг): INSERT INTO dbo._SystemSettingsNG WITH(TABLOCK) (_UserId, _ObjectKey, _SettingsKey, _Version, _SettingsPresentation, _SettingsData, _ChangeDate, _DataSeparationUse9498, _DataSeparationUse9499, _Fld9497, _Fld9454) SELECT

    То есть по всем признакам – настройка в конфиг не срабатывает. Что я делаю не так?
    Установила джаву, зашла в каталог нужной версии 1с, добавила вторую строку, потом службу 1с перегрузила. То есть вот так получилось:
    ConfLocation=C:\Program Files\1cv8\conf
    UpdateDBCfg=v2

    • Андрей Бурмистров

      Здравствуйте.
      Новый механизм ускоряет только некоторые виды реструктуризации, но не все.
      Что именно вы меняете в конфигурации?

      • Татьяна

        Здравствуйте! Я просто обновляю на новую версию: документооборот с 2.1.31.5 на 2.1.33.11. Когда еще обычным способом обновляла, то есть не добавляла эту строку в config и параллелизм был 1, то обратила внимание, что реструктуризация долго висела на ДокументыЭДо.Исходящие

        • Андрей Бурмистров

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

            • Анна Бортникова

              Доброго дня, Татьяна! Да, скачайте и установите последнюю доступную версию платформы.
              Например, на текущий момент на портале ИТС доступна Технологическая платформа 8.3 редакции 8.3.23.1912.

  3. Алексей

    Платформа 8.3.22.2143 х64
    В настройках Conf.cfg указал UpdateDBCfg=v1
    C:\Program Files\1cv8\conf
    C:\Program Files\1cv8\8.3.22.2143\bin\conf
    При нажатии обновить требует Java где еще может находится настройка которая бы указывала на применение оптимизированного режима реструктуризации?

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

    • Андрей Бурмистров

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

      • Алексей

        Я отключил эту настройку, но 1с все равно ругается на то что не указан каталог ЯВА

        • Андрей Бурмистров

          Службу сервера 1С после этого перезапускали?
          Ругается в интерфейсе или только запись в ТЖ появляется? Если последнее то это не имеет большого значения.

      • Алексей

        В ТЖ нашел вот такую запись

        Descr=’src\backend\src\DataBase2.cpp(2619):
        0c9464f4-7955-44f6-b561-7a602af3ef6e: Не определен путь до каталога установки Java.’

        • Андрей Бурмистров

          Ругается в интерфейсе или только запись в ТЖ появляется? Если последнее то это не имеет большого значения.

          • Алексей

            Ругается в интерфейсе и не дает делать реструктуризацию
            Причем режим выставлен в версию 1

            • Андрей Бурмистров

              Настройки UpdateDBCfg не должно быть нигде, вообще нигде.
              Не нужно ставить ее в значение 1 или что-то еще, нужно просто стереть эту строку из файла.

  4. Алексей

    Здравствуйте, получаю такую ошибку, хотя Java установлена:
    В процессе обновления конфигурации базы данных при работе оптимизированного механизма обновления произошла критическая ошибка

    по причине:

    Не определен путь до каталога установки Java.

  5. enmelnik

    Добрый день, в процессе общего пересчета итогов выпала с ошибкой:

    Выполнение одного или нескольких заданий завершилось с ошибкой Ошибка СУБД
    Microsoft SQL Server Native Client 11. 0: Недопустимое имя объекта “dbo._
    InfoRg38860NG”
    HRESULT-80040E37, SQLSrv. SOLSTATE=42502, state=1, Seventy= 10, native =208, line= 1

    Можете подсказать что не так?

    • Андрей Бурмистров

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

  6. Равшан Мамажанов

    Подскажите пожалуйста, при обновлении пишет “”The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption” when trying to connect to a database”. В чем может быть проблема??

  7. Ильшат Сибагатуллин

    В процессе обновления конфигурации базы данных при работе оптимизированного механизма обновления произошла критическая ошибка
    по причине:
    Критическая ошибка работы Java-процесса.
    Путь к Java: c:\Program Files\Java\jre1.8.0_171\\bin\java.exe
    Действие: prepare
    Process ID: 9088
    Код возврата: 1
    Ошибка: Exception in thread “main” java.lang.IllegalArgumentException: expected one element but was:
    at com.google.common.collect.Iterators.getOnlyElement(Iterators.java:312)
    at com._1c.dmf.v8.converters.attributes.extdimensions.ExtDimensionInActionConverter.getConvertExpression(ExtDimensionInActionConverter.java:62)
    at com._1c.dmf.internal.comparator.AttributeComparisonContext.createConvertExpression(AttributeComparisonContext.java:116)
    at com._1c.dmf.internal.comparator.AttributeComparisonContext.getConvertExpression(AttributeComparisonContext.java:90)
    at com.google.common.collect.Maps.toMap(Maps.java:1119)
    at com.google.common.collect.Maps.toMap(Maps.java:1097)
    at com._1c.dmf.internal.comparator.ComparisonProcess.processEntity(ComparisonProcess.java:150)
    at java.lang.Iterable.forEach(Unknown Source)
    at com._1c.dmf.internal.comparator.Comparator.compare(Comparator.java:35)
    at com._1c.dmf.v8.internal.integration.DmfService.prepareMigration(DmfService.java:67)
    at com._1c.dmf.v8.cli.Migration.run(Migration.java:90)
    at com._1c.dmf.v8.cli.Migration.main(Migration.java:65)
    Подскажите в чем может быть ошибка? ТиИ запустил и оно прошло успешно ошибок не нашлось. из конфы удаляются справочники которые входят в состав составного типа.

      • Ильшат Сибагатуллин

        ну вообще как раз 171 и стоит. как оказалось проблема в самой платформе и решили ее только на 8.3.21. т.е. после обновления платформы все заработало. причем в 8.3.21 есть уже свой JRE в комплекте

    • Андрей Бурмистров

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

  8. Сергей Сергеевич

    Платформа 8.3.20.1838, включил оптимизированный механизм обновления данных. при попытки изменения (реструктуризации) базы получил ошибку ” Multiple entries with same key: reference=reference:null and reference=reference:null” . (упп конфа). как исправить такую ошибку?

    • Андрей Бурмистров

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

  9. Andrey Blokhin

    Если в conf строка добавлена, а на сервере JRE не установлен, то при запуска реструктуризации что будет происходить?

    • Андрей Бурмистров

      Вероятнее всего будет ошибка с сообщением что не установлена JRE.

  10. Павел

    Добрый день,

    Настроил использование нового механизма реструктуризации, на SQL 2012 все работает, на SQL 2008 выдает ошибку (см. текст), настраивал исключение для java в брандмауэре, но не помогло.
    Подскажите, в чем может быть причина?

    В процессе обновления конфигурации базы данных при работе оптимизированного механизма обновления произошла критическая ошибка
    по причине:
    Критическая ошибка работы Java-процесса.
    Путь к Java: C:\Program Files\BellSoft\LibericaJRE-8-Full\bin\java.exe
    Действие: prepare
    Process ID: 8484
    Код возврата: 1
    Ошибка: Exception in thread “main” com._1c.dmf.v8.cli.ApplicationException: com.microsoft.sqlserver.jdbc.SQLServerException: The connection to the host (local), named instance INST018 failed. Error: “java.net.UnknownHostException: (local)”. Verify the server and instance names and check that no firewall is blocking UDP traffic to port 1434. For SQL Server 2005 or later, verify that the SQL Server Browser Service is running on the host.
    at com._1c.dmf.v8.cli.jdbc.mssql.MsSqlDataSourceFactory.getYearOffset(MsSqlDataSourceFactory.java:105)
    at com._1c.dmf.v8.cli.jdbc.mssql.MsSqlDataSourceFactory.create(MsSqlDataSourceFactory.java:51)
    at com._1c.dmf.v8.cli.Migration.run(Migration.java:81)
    at com._1c.dmf.v8.cli.Migration.main(Migration.java:65)
    Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The connection to the host (local), named instance INST018 failed. Error: “java.net.UnknownHostException: (local)”. Verify the server and instance names and check that no firewall is blocking UDP traffic to port 1434. For SQL Server 2005 or later, verify that the SQL Server Browser Service is running on the host.
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:227)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.getInstancePort(SQLServerConnection.java:5241)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.primaryPermissionCheck(SQLServerConnection.java:1916)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1669)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1528)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:866)
    at com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnectionInternal(SQLServerDataSource.java:968)
    at com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnection(SQLServerDataSource.java:69)
    at com._1c.dmf.v8.cli.jdbc.V8DataSource.getConnection(V8DataSource.java:36)
    at com._1c.dmf.v8.cli.jdbc.mssql.MsSqlDataSourceFactory.getYearOffset(MsSqlDataSourceFactory.java:86)
    … 3 more

    • Андрей Бурмистров

      Здравствуйте.
      У вас в 2008-м разрешены подключения по сети?
      Судя по ошибке не доступен инстанс или не запущена служба SQL Server Browser Service.

  11. Георгий

    А есть инструкция по настройке нового механизма для сервера 1С, работающего под Linux?

    • Андрей Бурмистров

      В документации ничего не сказано касательно ОС, поэтому могу предположить что все то же самое.
      Обращаю внимание что новый механизм работает только с двумя СУБД: MS SQL и PG.

      • Георгий

        Под Виндой все работает, под Centos 7 – нет. Пакеты java установлены, но сервер 1С их почему то не видит.

        • Андрей Бурмистров

          Тут к сожалению не подскажу, возможно механизм работает только с Windows, но это не указано в документации, может что-то еще для Linux нужно настроить.
          Если есть доступ можно попробовать спросить на партнерском форуме.

            • Андрей Бурмистров

              Я про партнерский форум, хотя на конференции тоже наверно можно было бы спросить :)
              Если доступа нет, тогда либо попробовать самому позадавать вопросы на 1Совских форумах в сети, либо попробовать написать в 1С (если есть подписка ИТС), вдруг повезет :)

  12. Александр Дмитриевич

    В процессе обновления конфигурации базы данных при работе оптимизированного механизма обновления произошла критическая ошибка
    по причине:
    Критическая ошибка работы Java-процесса.
    Путь к Java: C:\Program Files\BellSoft\LibericaJRE-8-Full\bin\java.exe
    Действие: prepare
    Process ID: 7208
    Код возврата: 1
    Ошибка: Exception in thread “main” com._1c.dmf.comparator.ComparatorException: Конвертер com._1c.dmf.v8.converters.entities.VtTableConverter@43dac38f определил объект “VT67353” как некорректный
    at com._1c.dmf.internal.comparator.ConverterManager.lambda$getConverters$1(ConverterManager.java:80)
    at java.util.stream.ReferencePipeline$11$1.accept(ReferencePipeline.java:439)
    at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
    at java.util.Iterator.forEachRemaining(Iterator.java:116)
    at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566)
    at com._1c.dmf.internal.comparator.ComparisonProcess.processEntity(ComparisonProcess.java:136)
    at java.lang.Iterable.forEach(Iterable.java:75)
    at com._1c.dmf.internal.comparator.Comparator.compare(Comparator.java:35)
    at com._1c.dmf.v8.internal.integration.DmfService.prepareMigration(DmfService.java:67)
    at com._1c.dmf.v8.cli.Migration.run(Migration.java:90)
    at com._1c.dmf.v8.cli.Migration.main(Migration.java:65)

    Не подскажите в чём проблема? Спасибо.

    • Андрей Бурмистров

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

  13. Анастасия К

    Добрый день, вижу только текстовый материал, по какой-то причине видео отсутствует или не отображается на странице, почему?

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

      Здравствуйте, Анастасия!
      Проверили — видео на странице воспроизводится корректно.
      Попробуйте почистить кэш и cookie-файлы. Если это не решит проблему, стоит проверить настройки браузера, установленные в нем расширения и плагины либо воспользоваться другим браузером.

  14. RBEvgeny

    Добрый день!
    Включал новый механизм. Вроде бы прошло. После пришлось поставить версию java выше 8. Стала появляться ошибка.
    Отключил новый механизм, но стала появляться ошибка:

    “В процессе обновления конфигурации базы данных при работе оптимизированного механизма обновления произошла критическая ошибка
    по причине:
    Критическая ошибка работы Java-процесса.
    Путь к Java: C:\Program Files\BellSoft\LibericaJRE-11-Full\\bin\java.exe
    Действие: revert
    Process ID: 5764
    Код возврата: 1
    Ошибка: Exception in thread “main” java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4061)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3157)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:82)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3121)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7151)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2478)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2026)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1687)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1528)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:866)
    at com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnectionInternal(SQLServerDataSource.java:968)
    at com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnection(SQLServerDataSource.java:69)
    at com._1c.dmf.v8.cli.jdbc.V8DataSource.getConnection(V8DataSource.java:36)
    at com._1c.dmf.v8.cli.jdbc.mssql.MsSqlDataSourceFactory.getYearOffset(MsSqlDataSourceFactory.java:86)
    at com._1c.dmf.v8.cli.jdbc.mssql.MsSqlDataSourceFactory.create(MsSqlDataSourceFactory.java:51)
    at com._1c.dmf.v8.cli.Migration.run(Migration.java:81)
    at com._1c.dmf.v8.cli.Migration.main(Migration.java:65)
    Caused by: java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
    at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
    … 17 more”
    Можете подсказать в чем тут дело?

    • Андрей Бурмистров

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

      • Евгений

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

        • Андрей Бурмистров

          Видимо этот механизм пошел по пути динамического обновления, идея хорошая, но реализация…

  15. dk9

    Не обязательно редактировать conf.cfg в папке конкретной версии. Можно указать нужный параметр только в корневом c:\Program Files\1cv8\conf\conf.cfg , ведь в остальных conf ссылки на корневой.

    • Андрей Бурмистров

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

  16. dk9

    На сайте 1С тоже выложен дистрибутив Liberica 8 Full JRE. Но версия кажется немного другая “8u302+8” (https://releases.1c.ru/project/Liberica8FullJRE), проверил, тоже работает. А на официальном сайте BellSoft версия “8u322+6”
    1С вносит какие-либо специальные изменения в свой дистрибутив? Может лучше его использовать?

    • Андрей Бурмистров

      Вносит ли 1С туда свои изменения не могу сказать, но думаю что вряд ли. А на сайте BellSoft вероятно более свежая версия.

  17. filipp.selin

    Здравствуйте.
    Использую SQL Server 2016, в связке с JRE 8 версии работает при условии что других дистрибутивов не установлено. Если ставлю jdk 11.0.127 (для edt), то появляется ошибка:

    Критическая ошибка работы Java-процесса.
    Путь к Java: C:\Program Files\BellSoft\LibericaJDK-11-Full\\bin\java.exe
    Действие: prepare
    Process ID: 13848
    Код возврата: 1
    Ошибка: Exception in thread “main” java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4061)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3157)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:82)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3121)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7151)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2478)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2026)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1687)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1528)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:866)
    at com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnectionInternal(SQLServerDataSource.java:968)
    at com.microsoft.sqlserver.jdbc.SQLServerDataSource.getConnection(SQLServerDataSource.java:69)
    at com._1c.dmf.v8.cli.jdbc.V8DataSource.getConnection(V8DataSource.java:36)
    at com._1c.dmf.v8.cli.jdbc.mssql.MsSqlDataSourceFactory.getYearOffset(MsSqlDataSourceFactory.java:86)
    at com._1c.dmf.v8.cli.jdbc.mssql.MsSqlDataSourceFactory.create(MsSqlDataSourceFactory.java:51)
    at com._1c.dmf.v8.cli.Migration.run(Migration.java:81)
    at com._1c.dmf.v8.cli.Migration.main(Migration.java:65)
    Caused by: java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    … 17 more

    ————————————–
    Подскажите как решить проблему?

    • Андрей Бурмистров

      В документации 1С написано только про Java 8, возможно проблема именно в этом.

      • Дмитрий Медведев

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

        • Андрей Бурмистров

          Быть режимом по умолчанию это не может т.к. не поддерживает все СУБД, а уж делать ради галочки это да, там к сожалению такое часто происходит.
          Посмотрим, возможно все таки доведут до ума, ну или будет как с динамическим обновлением…

    • Александр

      Как правило, при обновлении практически любого ПО, написанного на Java, нужно откатывать версию Java до 8, а затем при работе с новым ПО можете уже использовать любую свежую версию Java. Для удобства в PATH путь к Java можно указать так $JAVA_HOME/bin (Linux) или %JAVA_HOME%\bin (Windows), тогда не придется каждый раз переписывать все пути.

  18. Dach

    Андрей, важные дополнения:

    1. “conf.cfg на клиенте” – только если жмете “синий бочонок” в конфигураторе на клиенте. Если выполняете “Конфигурация – Обновить конфигурацию БД на сервере”, то conf.cfg настраивать нужно на сервере.

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

    3. Механизм так и не стал стабильным за все эти годы, как он только появился. Куча нюансов – нельзя сортировать реквизиты по имени одновременно с изменением типа, наличие собственных индексов, нарушение ссылочной целостности (при котором обычное обновление проходит, а новое – нет) и т.д. Комменты к моей статье, не реклама если что (https://infostart.ru/1c/articles/934237/) пишут до сих пор, хотя написана она в 18-м году

    4. На PG объемно не тестировал, но за несколько раз было неудачно – и у меня, и у комментаторов в статье.

    • dk9

      Получается за все эти годы 1С не вносила никаких исправлений в данный механизм? Как выпустили в 8.3.11 так и работает? И в официальной документации прописан очень скудно

      • Андрей Бурмистров

        Не отслеживал файл Update по этому механизму, но к сожалению механизм до сих пор еще “сыроват”, им хоть и можно им пользоваться но с осторожностью.

  19. StepinRN

    Под сервером 1С в данной случае понимается сервер, на котором установлен кластер или сервер, на котором развернут MS SQL? Просто у нас например это разные машины

    • Андрей Бурмистров

      Сервер 1С это сервер приложений, т.е. компьютер на котором запущена служба агента сервера 1С.

  20. Станислав Байковский

    Добрый день! Есть ли особенности использования данного механизма на PG? Какие настройки надо сделать при использовании данной СУБД?

    • Андрей Бурмистров

      Здравствуйте.
      Сделать нужно все тоже самое за исключением опции MAXDOP, это настройка для MS SQL.

  21. Андрей

    1 Почему вы устанавливаете Liberica 8, а не Liberica 11?
    2 Будет ли выигрыш в скорости реструктуризации на файловой базе при использовании UpdateDBCfg=v2?

    • Андрей Бурмистров

      1. В требованиях 1С написано что должна быть Java 8, другие версии ставить не пробовал.
      2. На текущий момент механизм работает только с MS SQL и PG, другие СУБД в том числе и файловая не поддерживаются.

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

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

Вход на сайт

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

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

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

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

E-mail или логин

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