
Нам всем знакомо, как долго может идти обновление: это может занимать несколько часов, а в некоторых случаях – даже
несколько дней.
Однако, его можно заметно ускорить. А для этого нужно немного погрузиться в детали и поговорить о реструктуризации 🙂
Когда в 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С тормозит, а вы ничего не делаете» – это и раньше было нехорошо, а теперь и вовсе непозволительная роскошь.
27.01.22 — 12:04
есть большая база, 1с рекомендует выставить при обновлении параметр реструктуризации оптимизированный
выставляю — получаю ошибку.
а как просто посмотреть кол-во проводок в БП , может и старым методом пройдёт , там от 100 000 пишут новый запускать ?
админы сторонние , ошибку им передал, но и тут спрошу, может кто в курсе
В процессе обновления конфигурации базы данных при работе оптимизированного механизма обновления произошла критическая ошибка
по причине:
В процессе обновления конфигурации базы данных при работе оптимизированного механизма обновления произошла критическая ошибка
по причине:
Критическая ошибка работы Java-процесса.
Путь к Java: C:Program FilesJavajre1.8.0_321binjava.exe
Действие: prepare
Process ID: 5340
Код возврата: 1
Ошибка: Exception in thread «main» com._1c.dmf.v8.cli.ApplicationException: com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: «The server selected protocol version TLS10 is not accepted by client preferences [TLS12]». ClientConnectionId:de2212d4-8a77-49f8-8f42-0bfd41a57046
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 driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: «The server selected protocol version TLS10 is not accepted by client preferences [TLS12]». ClientConnectionId:de2212d4-8a77-49f8-8f42-0bfd41a57046
at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:2435)
at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1816)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2022)
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)
… 3 more
Caused by: javax.net.ssl.SSLHandshakeException: The server selected protocol version TLS10 is not accepted by client preferences [TLS12]
at sun.security.ssl.Alert.createSSLException(Unknown Source)
at sun.security.ssl.Alert.createSSLException(Unknown Source)
at sun.security.ssl.TransportContext.fatal(Unknown Source)
at sun.security.ssl.TransportContext.fatal(Unknown Source)
at sun.security.ssl.TransportContext.fatal(Unknown Source)
at sun.security.ssl.ServerHello$ServerHelloConsumer.onServerHello(Unknown Source)
at sun.security.ssl.ServerHello$ServerHelloConsumer.consume(Unknown Source)
at sun.security.ssl.SSLHandshake.consume(Unknown Source)
at sun.security.ssl.HandshakeContext.dispatch(Unknown Source)
at sun.security.ssl.HandshakeContext.dispatch(Unknown Source)
at sun.security.ssl.TransportContext.dispatch(Unknown Source)
at sun.security.ssl.SSLTransport.decode(Unknown Source)
at sun.security.ssl.SSLSocketImpl.decode(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readHandshakeRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1753)
… 11 more
1 — 27.01.22 — 12:11
2 — 27.01.22 — 12:37
(1) не осилит.
3 — 27.01.22 — 13:03
(0) короче, нужно в java.security найти строки с tlsv1
4 — 27.01.22 — 13:03
и удалить из алгортима
5 — 27.01.22 — 13:04
6 — 27.01.22 — 13:05
открыть java.security, найти jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, и в ней удалить TLSv1, TLSv1.1
7 — 27.01.22 — 13:05
усё.
8 — 27.01.22 — 14:28
(2) с чего бы ?
зы у меня прав нет, админам передал
Епрст- спасибо, но вроде всё понятно там
9 — 27.01.22 — 14:36
(8) т.к. не владеет минимальным базовым навыком пользования поисковыми сервисами интернет.
т.е. проф. непригодны
10 — 27.01.22 — 14:53
Самое простое удалить эту джаву и установить из дистрибутива с сайта 1С
11 — 27.01.22 — 15:10
(10) спасибо !
12 — 27.01.22 — 15:12
(0)
>>>>а как просто посмотреть кол-во проводок в БП
какой формат базы, для начала..файловая что ле ?
13 — 27.01.22 — 15:14
(12)
sql
вопрос был средствами 1с
зы я консультант
14 — 27.01.22 — 15:14
(13) ИР открой да гляди.
Перед реструктуризацией V2 прибей все итоги V2, тогда даже не заметишь, как и пройдёт.
15 — 27.01.22 — 15:15
* прибей все итоги РБ
16 — 27.01.22 — 15:16
и да, 20 релиз я бы не ставил, лучше 18
17 — 27.01.22 — 15:18
(16) да, это понятно, везде 18 ставим
18 — 27.01.22 — 15:19
(14) точно
19 — 27.01.22 — 15:51
(10) а как узнать какую из 4ёх на сайте ?
20 — 27.01.22 — 17:49
(19) Достаточно JRE, JDK нужно для разработчиков. 11 или 8 — У вас сейчас стоит 8, но я бы выбрал 11.
21 — 27.01.22 — 17:55
(20) а в принципе любая должна подойти, чтобы реструктуризация по новому на sql взлетела? правильно я понимаю ?
или там возможны заморочки?
22 — 27.01.22 — 19:07
(21) Да
23 — 27.01.22 — 23:28
Ваша проблема вызвана тем, что в новых сборках Java (JDK/JRE) старый протокол TLS 1.0 запрещен как небезопасный, а MS SQL Server пытается использовать именно ее
Какие могут быть решения:
1) Использовать более старую версию Java (не релиз, а именно версию внутри врупного релиза т.е какую более раннюю версию Java 8)
2) Изменить умолчания Java, как описано в (6)
3) Обновить MS SQL Server, чтобы он использовал более современные версии TLS
У Microsoft есть подробная инструкция
24 — 27.01.22 — 23:28
25 — 28.01.22 — 00:12
в рабочее время отгрузки, так что я могу только вечером делать
(22) установил с сайта 1с 11 версию , сначала не видело яву, прописал в кфг
стало ругаться на TLSv1, TLSv1.1 прописал в секюрити явы - написало нету классов в 11 яве
поставил 8ую, снова прописал путь в кфг и поправив секьюрити — взлетело
(24) я не особо в теме, а админы особого желания разбираться не изъявляли, ну и имхо это сложнее , чем исправить секьюрити
всем спасибо !
МихаилМ
26 — 28.01.22 — 00:30
(25) если админы не понимают устно ,то переходите на письменно. это азы правил корпоративного выживания. за одно и свою персону прикроете.
Содержание
- 1с-ка не видит Java (для запуска оптимизированной реструктуризации)
- Как ускорить процесс реструктуризации и обновления 1С в разы
- Умение находить и устранять причины медленной и нестабильной работы систем на 1С обязательно для программистов 1С
- После курса Вы сможете:
- Для кого этот курс
- Комментарии / обсуждение (48):
- 1с критическая ошибка работы java процесса
- Версия механизма реструктуризации
- Параллелизм СУБД в процессе реструктуризации
- Как получать полное описание ошибки при работе оптимизированного механизма реструктуризации (v2)
- По каким причинам может не работать второй механизм реструктуризации
1с-ка не видит Java (для запуска оптимизированной реструктуризации)
Платформа 8.3.15.1830. Конфигурация в режиме совместимости 8.3.14. На кластере установлена Java 8. 1С и Java 64-бит.
Путь к джаве прописан в conf.cfg: JavaHome=C:Program FilesJavajre1.8.0_261
Путь к джаве прописан в переменных среды
Запускаю реструктуризацию, через несколько минут ошибка:
В процессе обновления конфигурации базы данных при работе оптимизированного механизма обновления произошла критическая ошибка
по причине:
Не определен путь до каталога установки Java.
Сервер перезагружал, параметр удалял/добавлял в conf.cfg — без разницы
Не совсем понимаю, что мешает 1с-ке.
С ИТС про JavaHome в conf.cfg:
Определяет путь к директории установки JAVA. В случае если данный параметр не задан, то путь до директории установки JAVA определяется в переменной окружения JAVA_HOME. Используется в конфигурационном файле на компьютере, где расположен кластер серверов «1С:Предприятия».
Для ОС Windows в случае, есть в файле conf.cfg данный параметр не задан и не установлена переменная JAVA_HOME, то путь до директории установки JAVA будет определен из системного реестра, куда информация заносится при установке JRE.
—-
Т.е в принципе 1Ска должна найти Джаву по реестру после установки, без дополнительного прописывания в файле и переменных. Пробовал и до bin’а прописывать, хотя вроде достаточно C:Program FilesJavajre1.8.0_261.
До этого конфигуратор запускал на самом сервере(где 1Ска и Java) — ошибка. Сейчас запустил конфигуратор с локальной машины и он крутится уже достаточно долго. я правда не уверен что включился режим оптимизированной реструктуризации, не очень понятно как это можно проверить
Источник
Как ускорить процесс реструктуризации и обновления 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С
После курса Вы сможете:
- Оценивать состояние системы в любой момент времени
- Быстро находить причины замедления в программном коде – и сразу писать его так, чтобы замедления в будущем не было
- Отслеживать динамику производительности за определенный период
- Устранять ожидания на блокировках и решать проблемы со взаимоблокировками
Для кого этот курс
Комментарии / обсуждение (48):
Подскажите пожалуйста, при обновлении пишет “”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”. В чем может быть проблема??
![]()
В процессе обновления конфигурации базы данных при работе оптимизированного механизма обновления произошла критическая ошибка
по причине:
Критическая ошибка работы Java-процесса.
Путь к Java: c:Program FilesJavajre1.8.0_171\binjava.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)
Подскажите в чем может быть ошибка? ТиИ запустил и оно прошло успешно ошибок не нашлось. из конфы удаляются справочники которые входят в состав составного типа.
![]()
Попробуйте поставить Java версии 171 или младше.
ну вообще как раз 171 и стоит. как оказалось проблема в самой платформе и решили ее только на 8.3.21. т.е. после обновления платформы все заработало. причем в 8.3.21 есть уже свой JRE в комплекте
![]()
Ильшат, спасибо за информацию!
Что по поводу файловых баз, можно ли так ускорить обновление?
![]()
Честно говоря не могу сказать, просто файловые базы сами по себе не такие большие по объему и там не настолько критична проблема долгого обновления.
Платформа 8.3.20.1838, включил оптимизированный механизм обновления данных. при попытки изменения (реструктуризации) базы получил ошибку ” Multiple entries with same key: reference=reference:null and reference=reference:null” . (упп конфа). как исправить такую ошибку?
![]()
Попробуйте запустить Тестирование и исправление с исправлением ошибок.
Если в conf строка добавлена, а на сервере JRE не установлен, то при запуска реструктуризации что будет происходить?
![]()
Вероятнее всего будет ошибка с сообщением что не установлена JRE.
Настроил использование нового механизма реструктуризации, на SQL 2012 все работает, на SQL 2008 выдает ошибку (см. текст), настраивал исключение для java в брандмауэре, но не помогло.
Подскажите, в чем может быть причина?
В процессе обновления конфигурации базы данных при работе оптимизированного механизма обновления произошла критическая ошибка
по причине:
Критическая ошибка работы Java-процесса.
Путь к Java: C:Program FilesBellSoftLibericaJRE-8-Fullbinjava.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.
Источник
1с критическая ошибка работы java процесса
Речь идёт о настройке для серверных баз, которая расположена в свойствах базы на закладке «Обновление» в разделе «Сам процесс»:

Версия механизма реструктуризации
Значение «из conf.cfg» означает, что обновлятор при выполнении пакетного обновления не указывает конкретной версии механизма реструктуризации, который следует использовать. В этом случае сервер 1с полагается на настройки конфигурационного файла conf.cfg (см. описание параметра UpdateDBCfg). Если параметр UpdateDBCfg в конфигурационных файлах (сервера и клиента) не описан — используется 1-я версия механизма реструктуризации (v1).
Значение «v1» означает 1-ю версию механизма реструктуризации, которая используется по умолчанию.
Значение «v2» означает 2-ю оптимизированную версию механизма реструктуризации, которая описана, например, здесь и здесь.
Параллелизм СУБД в процессе реструктуризации
Изменение параллелизма СУБД на время реструктуризации подробно описано здесь.
В обновляторе этот механизм реализован пока только для MS SQL Server.

Первое число означает значение параметра maxdop, которое обновлятор устанавливает на время выполнения обновления базы данных. Второе число означает значение этого же параметра, которое обновлятор устанавливает после выполнения реструктуризации.
Очевидно, что менять параллелизм для сервера СУБД через обновлятор имеет смысл только при однопоточном выполнении операций.
Как получать полное описание ошибки при работе оптимизированного механизма реструктуризации (v2)
При использовании второй (оптимизированной) версии механизма реструктуризации вы можете столкнуться с ситуацией, когда в отчёт попадает не вся информация об ошибке:

Мы видим, что при использовании оптимизированного механизма обновления произошла критическая ошибка, но не видим подробной информации об этой ошибке.
В этом случае можно выполнить эту же операцию интерактивно через конфигуратор — там будет полный текст ошибки.
Но я советую поступить по-другому.
Если вы планируете использовать второй механизм для реструктуризации базы данных, то лучше заблаговременно настроить на клиенте (там где стоит обновлятор) технологический журнал для сбора и кратковременного хранения информации об исключительных ситуациях при работе конфигуратора.
Файл настройки logcfg.xml для сбора данных конф. журнала будет таким: ссылка.
Значение параметра history равное 48 означает, что данные технологического журнала будет хранится на диске за последние 48 часов.
Значение параметра location равное «c:log1c» означает путь к папке, куда 1с будет записывать данные технологического журнала. Данная папка должна быть уже создана и пользователь, под которым работает обновлятор должен иметь права на запись в эту папку.
Да, я рекомендую настроить сбор технологического журнала именно на клиенте. Этого нам будет достаточно, так как ошибка реструктуризации будет возвращаться конфигуратором на стороне клиента. По этой же причине в файле настройки я намеренно устанавливаю фильтр на процесс «1cv8».
Разместить файл logcfg.xml удобней всего для конкретного пользователя операционной системы, под которым запускается обновлятор (и соотв. конфигуратор для пакетных операций), в папке «C:UsersusernameAppDataLocal1C1cv8conf».
После этого при возникновении ошибки реструктуризации в указанной нами папке для сбора данных мы сможем найти (по дате и времени) соотв. файл с подробным описанием ошибки, например:

Искать можно по фразе «в процессе обновления конфигурации базы данных при работе оптимизированного механизма».
В данном конкретном случае причина ошибки — не был запущен сервис «SQL Server Browser».
По каким причинам может не работать второй механизм реструктуризации
Прежде всего на сервере 1с должна быть установлена среда исполнения Java 8 Full JRE той же битности, что и сам сервер 1с.
К SQL серверу должно быть возможно подключение по протоколу TCP/IP (для MS SQL Server этот параметр настраивается в SQL Server Configuration Manager в разделе SQL Server Network Configuration).
Для MS SQL Server версии 2005 и позднее должна быть запущена служба SQL Server Browser.
Могут быть и более специфичные причины ошибок, связанные непосредственно с базой данных (например, индексы отличные от стандартных). В этом случае я советую собрать подробную информацию по ошибке из технологического журнала. И если всё-равно не получится разобраться самому — обращаться с этой информацией в службу технической поддержки 1с.
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю).
Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Нажмите одну из кнопок, чтобы поделиться:
Источник
<?php // Полная загрузка сервисных книжек, создан 2023-01-05 12:44:55
global $wpdb2;
global $failure;
global $file_hist;
///// echo '<H2><b>Старт загрузки</b></H2><br>';
$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
///// echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}
$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
///// echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}
/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
///// echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
///// echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist); ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7]; ////получаем размер файла
$m_mtime_file=$masiv_data_file[9]; ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file
///// echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
///// echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
///// echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);
if ($results)
{ foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));
////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
///// echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
///// echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}
////загружаем данные
$table='vin_history'; // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация // (путь от корня web-сервера)
$delim=';'; // Разделитель полей в CSV файле
$enclosed='"'; // Кавычки для содержимого полей
$escaped='
Related Posts
Восстановление последовательности документов при закрытии месяца в Бухгалтерия 3.0 не завершается
Заполнение табличных частей
Формирование сводных актов выполненных работ
Ввод поступления в переработку на основании передачи сырья (между организациями)
Конспект по установке сервера 1С на linux
Получение имени компьютера и его IP локально и в терминале
46 Comments
-
-
(1) да, весьма в тему, спасибо!
Reply ↓
-
Буду тестировать скоро отключение режима совместимости 8.2))) БД почти 3 ТБ.
Reply ↓
-
Двойственные чувства.
С одной стороны слава тебе Господи, наконец-то 1С сподобилась взяться за то, что куча народа ждало еще со времён 7.7. С другой стороны тут и Java, тут и Powershell… А сплясать в водолазном костюме в гамаке не надо?
Reply ↓
-
(4) аналогичные чувства… только обрадоваться хотел, но остался вопрос, почему нельзя сделать это всё прямо из платформы, по кнопке «сделать всё хорошо»?
Reply ↓
-
(4) Java — это отголоски наработок по платформе 1C 8.4. Развитие этой версии идет медленно и новостей давно не слышно, но ее наработки постепенно появляются в 8.3. На Java никто писать не заставляет, а представить машину без JRE сейчас сложно. И судя по всему с Java придется дружить всё больше — EDT, сервер взаимодействия и т.д.
Powershell для примера же приведен. Там кроме команды запуска 1С с параметрами «UpdateDBCfg -Server -v2» и нет ничего, одна консольная команда. Не внешнюю же обработку для выполнения одной консольной команды писать…
Reply ↓
-
Я один раз пробовал.
Мне вывело сообщение ошибка и на какой то внутренний модуль.
Гугл сказал что ничего не светит. я сказал ок и по старому за 6 часов обновился.
Обидно конечно.
Reply ↓
-
Интересно что за данные в базе на 1тб.
Reply ↓
-
(6)
Там кроме команды запуска 1С с параметрами «UpdateDBCfg -Server -v2» и нет ничего
CMD не подойдёт?
Reply ↓
-
(8)скорее всего продажи, чеки, заказы на перемещение / перемещения на магазины.
У нас база 3 Тб
Reply ↓
-
(8)Размер базы обычной небольшой торговой сети, может быть еще с небольшим производством…
Reply ↓
-
Можно и cmd. Друзья, конечно это не одна кнопка «сделать всё хорошо», но уже существенный задел. База — склад, продажи, логистика. Плюс у нас ещё и РИБ. Механизм обновления активно используем, все работает… На ИТС информации мало, поэтому посчитал нужным поделиться опытом и отчитаться об успехе) в дальнейшем неплохо было бы иметь возможность обновляться пакетно с возможностью логгировать ход обновления
Reply ↓
-
(12)пока логирование обновления можно наблюдать на стороне базы данных
Reply ↓
-
У конфигурации режим совместимости был 8.3.11? Или ниже?
Reply ↓
-
(14) режим совместимости был выключен. Но думаю, в режиме совместимости 8.3.11 должно отработать
Reply ↓
-
(15) значит как и завялено при режиме совместимости 8.3.10 все будет по старому!
Reply ↓
-
О даааа!!!!! Это случилось! В 1С выучили Alter Table!
Reply ↓
-
Малину портит только » На сервере 1С обязательно должен быть установлен runtime Java 8″. Вопрос «зачем так» наверное риторический…
Reply ↓
-
(18) весь «интеллект» умных скриптов T-SQL написан на Java, в недрах платформы, насколько я понял ))
Reply ↓
-
(19) т.е. можно в принципе написать левый скрипт на Java, который реструктуризует базу под новую конфигурацию и зальет туда измененный cf с гитхаба или с какого нибудь каталога?
И все будет работать?
Reply ↓
-
(19) в недрах платформы Java нет, иначе мы бы это уже «почувствовали».
Пока надеюсь что и не будет.
Reply ↓
-
-
(20) можно декомпильнуть то что написано, подправить и юзать как хочется теперь 🙂
Reply ↓
-
(23) на каждое добавление булева не надекомпилируешься. Но сама идея о неразрывном совмещении данных в базе и их интерфейса достаточно спорная.
При том, что на все итоги и индексы, целостность которых якобы гарантирует платформа, существуют процедуры SQL, выполняющие пересчеты.
Reply ↓
-
(22) ну как-то же она тексты скриптов собирает, в зависимости от выполненных действий в конфигураторе
Reply ↓
-
(26) мы бы тоже хотели знать как и почему alter возник только сейчас. Исторически сложилось, что реструктуризация выполнялась таким образом в DBF. Сначала все измененные файлы складывались в папку NewStru, затем копировались вместо находящихся в базе. Почти цитирую старый мануал: при возникновении сбоя на первом этапе файлы в базе будут первоначальных вариантов и никакие данные не будут утеряны.
При возникновении сбоя на втором этапе часть данных в базе может стать некорректной, но всегда есть возможность скопировать файлы из NewStru и завершить процесс реструктуризации вручную. Исходили из положения что бакап и изменение структуры в процессе работы с DBF по-горячему сделать невозможно, а программист, обслуживающий конфигурацию не полезет в dbf и работу платформы, но точно знает основы работы с файлами в файловом менеджере.
В SQL есть возможность добавить колонку в таблицу в процессе работы. Немонопольно. Это не проблема для SQL, это проблема конфигуратора, который не умеет работать одновременно с разными версиями данных (до и после) какой то реструктуризации.
Reply ↓
-
(7)
Вот такое у меня сейчас. Ковыряемся. Ради спортивного интереса хочу докопаться до причин.
В процессе обновления конфигурации базы данных при работе оптимизированного механизма обновления произошла критическая ошибка
по причине:
Критическая ошибка работы Java-процесса.
Путь к Java: C:Program FilesJavajre1.8.0_181injava.exe
Действие: prepare
Process ID: 22296
Код возврата: 1
Ошибка: Exception in thread «main» java.lang.IllegalStateException: Duplicate key ae4a0c5e-f97b-4cf4-96d8-c040bf8e222b
at java.util.stream.Collectors.lambda$throwingMerger$0(Unknown Source)
at java.util.HashMap.merge(Unknown Source)
at java.util.stream.Collectors.lambda$toMap$58(Unknown Source)
at java.util.stream.ReduceOps$3ReducingSink.accept(Unknown Source)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.util.stream.ReferencePipeline.collect(Unknown Source)
at com._1c.dmf.v8.converters.parameters.documentjournal.GraphContent.<init>(GraphContent.java:24)
at com._1c.dmf.v8.cli.modelparsing.ConfigurationModelParser.deserializeGraphContent(ConfigurationModelParser.java:352)
at com._1c.dmf.v8.cli.modelparsing.ConfigurationModelParser.deserializeValue(ConfigurationModelParser.java:208)
at com._1c.dmf.v8.cli.modelparsing.ConfigurationModelParser.deserializeParameter(ConfigurationModelParser.java:172)
at com._1c.dmf.v8.cli.modelparsing.ConfigurationModelParser.deserializeAttributeParameter(ConfigurationModelParser.java:155)
at com._1c.dmf.v8.cli.modelparsing.ConfigurationModelParser.deserializeEntityParameters(ConfigurationModelParser.java:139)
at com._1c.dmf.v8.cli.modelparsing.ConfigurationModelParser.deserializeParameters(ConfigurationModelParser.java:112)
at com._1c.dmf.v8.cli.modelparsing.ConfigurationModelParser.parse(ConfigurationModelParser.java:92)
at com._1c.dmf.v8.internal.integration.Arguments.getOldModel(Arguments.java:84)
at com._1c.dmf.v8.internal.integration.DmfService.prepareMigration(DmfService.java:64)
at com._1c.dmf.v8.cli.Migration.run(Migration.java:90)
at com._1c.dmf.v8.cli.Migration.main(Migration.java:65)
Reply ↓
-
(28)
at java.util.HashMap.merge(Unknown Source)
Да что то очень похожее.
Причем все базы кроме нужной реструктурировались новым методом нормально.
Но там было не к спеху, и я просто сделал по старинке.
Изменений очень много было, может в этом была проблема?
Reply ↓
-
(28) поставь Яву не 181, а 171 или младше
Reply ↓
-
(21) я на java драйвера для фискальных регистраторов пишу, очень удобно, т.к. один код работает под виндой, линуксом и андроидом. Что я делаю не так? С++ я тоже умею.
Reply ↓
-
(31) драйвера или обёртки для готовых dllso ?
Reply ↓
-
(32) библиотеки работы с com/usb готовые, драйвера мои что-то типа….
@Override
public ByteBuffer getCommand() {
ByteBuffer data = ByteBuffer.allocate(12 + cashier.length() + cashierFiscalId.length());
data.order(ByteOrder.LITTLE_ENDIAN);
data.putShort((short) 2); // отчет об открытии смены
data.putShort((short) (4 + cashier.length() + 4 + cashierFiscalId.length()));
data.putShort((short) 1021);
data.putShort((short) cashier.length());
data.put(cashier.getBytes(Charset.forName(«IBM866»)));
data.putShort((short) 1203);
data.putShort((short) cashierFiscalId.length());
data.put(cashierFiscalId.getBytes(Charset.forName(«IBM866»)));
setData(data);
return super.getCommand();
}
Reply ↓
-
(0) Спасибо за интересный материал! Не подскажите, режим совместимости с 8.2.13 возможно заставить работать этот механизм?
Reply ↓
-
(34) к сожалению, нет. Вам придется прибегать к другим методам… О том, как добавлять колонки и индексы в большие таблицы БД — куча статей есть на ИС, в том числе и у меня (не реклама)
Reply ↓
-
Надо добавить, что для клиент — серверного варианта базы нужно перезапустить службу сервера 1С
У меня возникла ошибка
В процессе обновления конфигурации базы данных при работе механизма реструктуризации второй версии произошла критическая ошибка
по причине:
При работе механизма реструктуризации второй версии возникла ошибка. Код возврата: 1. Операция: execute.
Версия платформы 8.3.13.1513
Reply ↓
-
(0) молодцы! ждем вьюхи
Reply ↓
-
(21) Ну при всей моей нелюбви к Джаве, я бы все-таки не стал называть ее мусором 🙂 Тот же Apache Kafka на ней написан и шустр до безобразия.
Reply ↓
-
(2) и еще в догонку по теме «для тех кто тюнингует 1С+MS SQL» http://v8.1c.ru/predpriyatie/questions_licence.htm#lrvs1cpp
это к последнему апдейту
ВАЖНО: Если обновление по v2 падает с ошибкой — одна из причин может быть в том, что в вашей БД есть индексы, отличные от стандартных платформенных (добавленные вручную) — их необходимо физически удалить (именно удалить, а не отключить) перед запуском обновления.
Reply ↓
-
А, говорят, Java теперь платная, Oracle денег просит за её использование
не в домашнем применении.
Reply ↓
-
(4) я думал только у меня такое ощущение)
Reply ↓
-
почти типовая УПП…
В процессе обновления конфигурации базы данных при работе оптимизированного механизма обновления произошла критическая ошибка
по причине:
Критическая ошибка работы Java-процесса.
Путь к Java: C:Program Files (x86)Javajre1.8.0_221injava.exe
Действие: prepare
Process ID: 2660
Код возврата: 1
Ошибка: Exception in thread «main» java.lang.OutOfMemoryError: Java heap space
Reply ↓
-
Эта проблема решилась добавлением опции JavaOpts=-Xmx2048m в conf.cfg, но теперь ошибка без расшифровки
Критическая ошибка работы Java-процесса.
Путь к Java: C:Program Files (x86)Javajre1.8.0_221injava.exe
Действие: prepare
Process ID: 3392
Код возврата: 1
Ошибка:
Reply ↓
-
повышение режима совместимости УПП до 8.3.1 результатов не дало. Видать сырая еще опция
Reply ↓
-
(44) механизм работает с версии 8.3.11. Совместимость должна быть не ниже этой версии
Reply ↓
-
(45)
Неверно. У меня в режиме совместимости 8.3.6 отрабатывает.
Reply ↓
-
(1) Ирония в том, что в старом механизме реструктуризации указание MAXDOP=0 используется по умолчанию, она добавлена в качестве опции в запросе на создание индекса.
А вот в новом механизме, который описан в данной статье, разработчики почему-то забыли эту опцию включить в запрос и если в настройках сервера MAXDOP равен 1, то реструктуризация будет медленнее чем хотелось бы . Возможно следует в статье 4-м пунктом добавить, что включение на сервере MAXDOP=0 на время реструктуризации, дополнительно ускорит этот процесс.
Reply ↓
Leave a Comment
Ваш адрес email не будет опубликован. Обязательные поля помечены *
Как исправить зависание Центра обновления Windows?

Windows — одна из самых популярных операционных систем, а также одна из самых «подверженных проблемам» операционных систем.
Когда мы говорим о Windows, в первую очередь мы думаем об обновлениях.
В большинстве случаев процесс обновления не сильно беспокоит пользователей, но иногда во время работы обновление Windows зависала, и это могло быть проблемой.
В этой статье мы расскажем, как исправить застывание или зависание обновления Windows.
Как исправить зависание Центра обновления Windows?
Как узнать, зависло ли обновление Windows?
Если вы видите одно из этих сообщений в течение длительного времени (более 3 часов), скорее всего, обновление зависло (применимо для Windows 10/8/7/Vista).
- Подготовка к обновлениям Windows, не выключайте компьютер (обычно встречается в Windows 10),
- Настройка обновлений Windows, xyz% завершено, компьютер не выключайте (часто встречается в Windows 7/8/Vista),
- Работаем над обновлениями, xyz% завершен, не выключайте компьютер (Windows 10/8/7),
- Не выключайте компьютер, пока это не будет сделано. Установка обновления x из x… (Windows 7/Vista),
- Готовим Windows, не выключайте компьютер.
Мы рекомендуем вам подождать не менее 3-4 часов, если вы увидите какое-либо из вышеперечисленных сообщений, как будто процесс обновления идет нормально, и вы пытаетесь что-то сделать, могут возникнуть дополнительные сложности.
Причин очень много, но одна из распространенных причин, по которой обновление может зависнуть, заключается в конфликте существующего программного обеспечения с существующими обновлениями.

Если у вас есть старый ноутбук с индикатором жесткого диска, вы можете определить, зависло ли обновление или нет.
Если индикатор мигает с регулярным интервалом, это означает, что ОС обновляется, и вам не нужно ничего делать.
Однако если индикатор не мигает, можно предположить, что обновление зависло.
Возможные решения проблемы зависания Центра обновления Windows
1. Перезагрузка компьютера
Не нужно беспокоиться о появлении на экране сообщения «Пожалуйста, не выключайте компьютер».
Вы можете вернуться к Windows 10 после принудительного выключения без каких-либо проблем.
В худшем случае вы можете столкнуться с ошибками на диске, которые Windows автоматически исправит при следующей загрузке.

Нажатие «Ctrl + Alt + Del» также иногда срабатывает, если обновление застряло на определенной фазе.
Если это произойдет, компьютер перезагрузится, и вас встретит загрузка Windows.
2. Загрузитесь в безопасном режиме
Если с вашим компьютером что-то не так, вы можете определить проблему, загрузившись в безопасном режиме.
В безопасном режиме Windows загружается с минимальным набором драйверов, отвечающих за загрузку вашего компьютера, при отключении других ненужных функций.
Если с обновлением что-то пойдет не так, вы автоматически загрузитесь в безопасном режиме.
Кроме того, существует множество способов загрузиться в безопасном режиме.

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

Перейдите в «Система и безопасность — Система».

Найдите «Защита системы» слева от логотипа Windows.

В открывшемся новом окне найдите и нажмите «Восстановление системы».

Остальная часть процесса довольно очевидна.
После того, как все будет сделано, нажмите кнопку перезагрузки, и вы загрузитесь с предыдущими обновлениями Windows.
4. Использование дополнительных параметров для запуска восстановления
Если обновление зависло и компьютер не загружается, вам нужно будет создать загрузочный USB-накопитель с Windows 10 на нем.
Вы можете сделать это с помощью «Rufus», который является отличным инструментом для создания загрузочных USB-накопителей.
Когда вы закончите создание загрузочного USB, войдите в меню загрузки, нажав клавишу F2 / F12, когда во время загрузки появится логотип производителя.

Выберите параметр «Загрузить с USB / DVD-привода», чтобы загрузить программу установки Windows 10.

Внизу вы найдете опцию «Восстановить Windows 10», нажмите на нее, и вы войдете в меню «Дополнительные параметры».
5. Тестирование на сбой памяти

Повторная установка ОЗУ или жесткого диска — еще одно решение этой проблемы.
Эта проблема встречается реже, но если вы пробовали любой другой метод и не увидели результатов, вам следует продолжить и протестировать память с помощью таких инструментов, как «MemTest86».
6. Переустановка Windows
Если ничего из вышеперечисленных методов не работает, вероятно, ОС или ее файловая система повреждены и нуждаются в переустановке.
Шаги для этого такие же, как шаги, упомянутые в разделе номер 4 «Использование дополнительных параметров для запуска восстановления».
Единственная разница в том, что вместо того, чтобы нажимать «Восстановить Windows 10», вам нужно нажать «Пуск» и пошагово следовать процессу.

Если вы не столкнулись ни с одной из вышеперечисленных проблем и пришли сюда просто для получения знаний, мы предлагаем вам сделать резервную копию вашего жесткого диска.
В большинстве случаев упомянутый выше метод «Переустановки Windows» должен устранить проблему.
Однако ничто не решает проблему — не остается другого варианта, кроме переустановки Windows.
Если вы нашли решение проблемы с застыванием или зависанием обновления Windows, прочитав эту статью, сообщите нам об этом в разделе комментариев ниже.
Поделитесь этим с кем-нибудь из ваших знакомых, кто сталкивается с той же проблемой.
Долго выполняются дополнительные процедуры обновления 1С
После обновления программы 1С запускается обработка для дополнительной обработки данных. Иногда она зависает и может висеть очень долга. При этом пользователи не могут работать в 1С, не могут провести документы. При этом если запустить базу, что выходит окно “Результаты обновления программы”
Результат обновления программы
Версия программы успешно обновлена на версию 11.4.13.148
Выполняются дополнительные процедуры и обработки данных на версию 11.4.13.148
Работа с этими данными временно ограничена
Приоритет: Работа пользователей или Обработка данных 8 потоками

Как принудительно обновить 1С
Если столкнулись с такой проблемой, то можно ускорить процесс обновления 1С. Для этого переходим в меню НСИ и Администрирование – Обслуживание – Регламентные операции – Регламентные и фоновые задания”:

На закладке “Регламентные задания” находим строку с названием “Отложенное обновление ИБ”, устанавливаем на нее курсор и нажимаем кнопку “Выполнить сейчас”

Через несколько минут в окне, где ранее было зависшее обновление 1С начнется процесс обновления и вскоре увидите окно с сообщением “Дополнительные процедуры обработки данных завершены”. Закрываете его и можно начинать работу.
Как ускорить процесс реструктуризации и обновления 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С тормозит, а вы ничего не делаете» – это и раньше было нехорошо, а теперь и вовсе непозволительная роскошь
Комментарии / обсуждение (26):
Добрый день, вижу только текстовый материал, по какой-то причине видео отсутствует или не отображается на странице, почему?
Здравствуйте, Анастасия!
Проверили — видео на странице воспроизводится корректно.
Попробуйте почистить кэш и cookie-файлы. Если это не решит проблему, стоит проверить настройки браузера, установленные в нем расширения и плагины либо воспользоваться другим браузером.
Добрый день!
Включал новый механизм. Вроде бы прошло. После пришлось поставить версию java выше 8. Стала появляться ошибка.
Отключил новый механизм, но стала появляться ошибка:
“В процессе обновления конфигурации базы данных при работе оптимизированного механизма обновления произошла критическая ошибка
по причине:
Критическая ошибка работы Java-процесса.
Путь к Java: C:Program FilesBellSoftLibericaJRE-11-Full\binjava.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С.
Помогла переустановка платформы на сервере.
Оглавление
- Введение
- Версия механизма реструктуризации
- Параллелизм СУБД в процессе реструктуризации
- Как получать полное описание ошибки при работе оптимизированного механизма реструктуризации (v2)
- По каким причинам может не работать второй механизм реструктуризации
Введение
Речь идёт о настройке для серверных баз, которая расположена в свойствах базы на закладке «Обновление» в разделе «Сам процесс»:

Версия механизма реструктуризации
Значение «из conf.cfg» означает, что обновлятор при выполнении пакетного обновления не указывает конкретной версии механизма реструктуризации, который следует использовать. В этом случае сервер 1с полагается на настройки конфигурационного файла conf.cfg (см. описание параметра UpdateDBCfg). Если параметр UpdateDBCfg в конфигурационных файлах (сервера и клиента) не описан — используется 1-я версия механизма реструктуризации (v1).
Значение «v1» означает 1-ю версию механизма реструктуризации, которая используется по умолчанию.
Значение «v2» означает 2-ю оптимизированную версию механизма реструктуризации, которая описана, например, здесь и здесь.
Параллелизм СУБД в процессе реструктуризации
Изменение параллелизма СУБД на время реструктуризации подробно описано здесь.
В обновляторе этот механизм реализован пока только для MS SQL Server.

Первое число означает значение параметра maxdop, которое обновлятор устанавливает на время выполнения обновления базы данных. Второе число означает значение этого же параметра, которое обновлятор устанавливает после выполнения реструктуризации.
Очевидно, что менять параллелизм для сервера СУБД через обновлятор имеет смысл только при однопоточном выполнении операций.
Как получать полное описание ошибки при работе оптимизированного механизма реструктуризации (v2)
При использовании второй (оптимизированной) версии механизма реструктуризации вы можете столкнуться с ситуацией, когда в отчёт попадает не вся информация об ошибке:

Мы видим, что при использовании оптимизированного механизма обновления произошла критическая ошибка, но не видим подробной информации об этой ошибке.
В этом случае можно выполнить эту же операцию интерактивно через конфигуратор — там будет полный текст ошибки.
Но я советую поступить по-другому.
Если вы планируете использовать второй механизм для реструктуризации базы данных, то лучше заблаговременно настроить на клиенте (там где стоит обновлятор) технологический журнал для сбора и кратковременного хранения информации об исключительных ситуациях при работе конфигуратора.
Файл настройки logcfg.xml для сбора данных конф. журнала будет таким: ссылка.
Значение параметра history равное 48 означает, что данные технологического журнала будет хранится на диске за последние 48 часов.
Значение параметра location равное «c:log1c» означает путь к папке, куда 1с будет записывать данные технологического журнала. Данная папка должна быть уже создана и пользователь, под которым работает обновлятор должен иметь права на запись в эту папку.
Да, я рекомендую настроить сбор технологического журнала именно на клиенте. Этого нам будет достаточно, так как ошибка реструктуризации будет возвращаться конфигуратором на стороне клиента. По этой же причине в файле настройки я намеренно устанавливаю фильтр на процесс «1cv8».
Разместить файл logcfg.xml удобней всего для конкретного пользователя операционной системы, под которым запускается обновлятор (и соотв. конфигуратор для пакетных операций), в папке «C:UsersusernameAppDataLocal1C1cv8conf».
После этого при возникновении ошибки реструктуризации в указанной нами папке для сбора данных мы сможем найти (по дате и времени) соотв. файл с подробным описанием ошибки, например:

Искать можно по фразе «в процессе обновления конфигурации базы данных при работе оптимизированного механизма».
В данном конкретном случае причина ошибки — не был запущен сервис «SQL Server Browser».
По каким причинам может не работать второй механизм реструктуризации
Прежде всего на сервере 1с должна быть установлена среда исполнения Java 8 Full JRE той же битности, что и сам сервер 1с.
К SQL серверу должно быть возможно подключение по протоколу TCP/IP (для MS SQL Server этот параметр настраивается в SQL Server Configuration Manager в разделе SQL Server Network Configuration).
Для MS SQL Server версии 2005 и позднее должна быть запущена служба SQL Server Browser.
Могут быть и более специфичные причины ошибок, связанные непосредственно с базой данных (например, индексы отличные от стандартных). В этом случае я советую собрать подробную информацию по ошибке из технологического журнала. И если всё-равно не получится разобраться самому — обращаться с этой информацией в службу технической поддержки 1с.
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.