Имя: Пароль:
1C
1С v8
Реструктуризация после добавления ТЧ в Документ
0 GreyTim
 
21.12.21
15:10
База на SQL. Добавляю в документ новую ТЧ. Колонки ТЧ не содержат ссылочных данных, только типы Число и Строка. При сохранении конфигурации получаю реструктуризацию на 1 час+. Чем это вызвано и что с этим можно сделать, если вообще можно? По сути в SQL просто появляется еще одна пустая таблица.
1 Ёпрст
 
21.12.21
15:16
(0) включи реструктуризацию V2
2 Dmitrii
 
гуру
21.12.21
15:18
(0) >> получаю реструктуризацию на 1 час+. В SQL просто появляется еще одна пустая таблица.

Значит не "просто".
Чудес не бывает.
Попробуй на копии. Поменяй какой-нибудь маленький справочник (Оганизации, Склады, Валюты), чтобы инициировать реструктуризацию. Добавь какое-нибудь поле, например. Потом удалишь.
Может вы ни разу реструктуризацию не делали за последние несколько лет, но при этом, например, обновляли версию платформы?
3 GreyTim
 
21.12.21
15:21
(2) На копии попробую. Конфа дорабатывается постоянно, обслуживается ежедневно. Еще интересный момент, точно такую ТЧ добавлял в другой документ, реструктурировалось все около минуты.
4 Ёпрст
 
21.12.21
15:25
(3) чудес не бывает.
5 GreyTim
 
21.12.21
15:25
(1) У нас не КОРП, да и это не столько решение проблемы, сколько ее отправка в фон.
6 Ёпрст
 
21.12.21
15:26
(5) при чем тут корп ?
7 Ёпрст
 
21.12.21
15:26
И это решение проблемы с реструктуризацие любой, в принципе.
Там альтер тэйбл, заместо сопи-инсерт-делете
8 fisher
 
21.12.21
15:37
(0) Просто открой текущие активности сиквела и посмотри какие операции на каких таблицах делаются. А потом уже спиритические сеансы устраивай.
9 GreyTim
 
21.12.21
15:41
(2) Добавил строковый реквизит в Справочник.Склады. Реструктуризация прошла влет.
10 GreyTim
 
21.12.21
15:44
(8) А где конкретно в скуле это глянуть?
11 fisher
 
21.12.21
15:49
(10) В студии евойной. От версии может немного отличаться. Попробуй ПКМ на сервере в дереве объектов - "Монитор активности". Там вкладка процессы. Отсортируй по состоянию процессов, чтобы шуршащие вверху были. И там можно открыть подробности - покажет какой конкретно последний запрос процесс выполнял.
12 GreyTim
 
21.12.21
15:59
(10) Да, нашел, интересный инструмент. Даже планы запроса показывает. Сейчас буду разбираться. Тут хоть реально видно, что происходит. Спасибо.
13 GreyTim
 
21.12.21
16:48
В итоге получается такая ситуация. Как только я меняю метаданные в этом документе (Добавляю реквизит, ТЧ и т.д.) начинается полная реструктуризация этого объекта, что и приводит к такому длительному зависанию. Само зависание вызывала реструктуризация ТЧ Товары, в которой было 48 млн строк. Почему вышло так, что не смотря на то, что меняются данные не относящиеся к ТЧ Товары, а реструктурируется всеравно она, то предположу, что, когда-то что-то с этой базой наворочили (это к слову копия, для теста и доработок) и, видимо, прервали какую-то реструктуризацию. "Флаг", что реструктуризация не закончилась остался и теперь при любом изменении данного объекта начинается полная его реструктуризация, ну или та, которая была прервана. Иными словами, это частный случай и чудес не бывает. Всем спасибо, особенно fisher, за отличный инструмент скуля.
14 Ёпрст
 
21.12.21
18:47
(13) включи v2 и твои 48 млн прпожует минут за 5-10
15 Ёпрст
 
21.12.21
18:49
Или, если есть полная уверенность, что ТЧ товары не нуждается в реструктуризации, то в сскуле переименовываешь табличку, далее пкм на ней - задание на основе Create table - новый скрипт, в нём меняешь на имя как было, создаешь пустую табличку. далее в 1с реструктуризация за 5 сек, далее в скуле переименовываешь старую табличку на как и было, а пустышку дропаешь. Усё.
16 RomaH
 
naïve
22.12.21
07:04
(14) как её включить?
17 RomaH
 
naïve
22.12.21
07:05
18 Bigbro
 
22.12.21
07:11
(3) других документов 100 штук в базе а этих 200 000.
например.
19 RomaH
 
naïve
22.12.21
09:17
а как понять - по какой версии идет реструктуризация? поставили джаву, указал флаг UpdateDBCfg=v2 ?
как было 30 минут, так и осталось
20 Ёпрст
 
22.12.21
09:43
(19) кластер серверов надо перезапустить(службу). Потом в пофигураторе конфа- обновить -на сервере.
21 Ёпрст
 
22.12.21
09:44
Если не вклюае протокол tcp илиинет жабы,то напишет тебе об этом.
22 RomaH
 
naïve
22.12.21
09:46
(20) вроде все так и не пишет ничего - но по времени разницы нет
23 FIXXXL
 
22.12.21
09:49
(13) обмены и этот документ среди них? :)
24 Ёпрст
 
22.12.21
09:50
(22) внизу в окошке сообщений должен писать что оптимизированный механизм бла бла бла..
25 Ёпрст
 
22.12.21
09:51
Службу перезапущал?
26 RomaH
 
naïve
22.12.21
09:51
(24) во ... а если не пишет - то не оптимизированный? тогда почему?
27 RomaH
 
naïve
22.12.21
09:51
(25) да - два раза ..
28 Ёпрст
 
22.12.21
09:52
Единственный минус, эту хрень не остановить. Она не предолжит потом как при v1 тебе окошко с изменениями.
29 RomaH
 
naïve
22.12.21
09:53
пишет Обновляет конфигурацию базы данных и производит её реструктуризацию на сервере
30 Ёпрст
 
22.12.21
09:53
(26) tcp включен в протоколах скуля?
31 RomaH
 
naïve
22.12.21
09:54
(300 да
32 RomaH
 
naïve
22.12.21
09:55
(30) где смотреть?
33 RomaH
 
naïve
22.12.21
09:58
34 Ёпрст
 
22.12.21
09:59
35 Галахад
 
гуру
22.12.21
10:00
Полезная тема. В закладки.
36 Конструктор1С
 
22.12.21
10:13
(0) в чем проблема реструктуризации в течении часа? Это мелочь
37 Конструктор1С
 
22.12.21
10:18
(13) нет, это всего-лишь стандартная реструктуризация 1с. Платформа создаёт все новые пустые таблички объекта (шапка+ТЧ), с учетом изменений в метаданных, потом делает insert из старых табличек в новые, в конце грохает старые таблички
38 Ёпрст
 
22.12.21
10:25
(33) в какой хоть файл прописал ...v2= ?
39 RomaH
 
naïve
22.12.21
10:27
40 RomaH
 
naïve
22.12.21
10:27
C:\Program Files\1cv8\conf - на сервере где 1С
41 Ёпрст
 
22.12.21
10:27
(40) путь верный..
у меня вот так в нём
SystemLanguage=RU
DisableUnsafeActionProtection=.*;
UpdateDBCfg=v2
42 Ёпрст
 
22.12.21
10:28
Это, версия платформы какая хоть ?
43 RomaH
 
naïve
22.12.21
10:28
1С:Предприятие 8.3 (8.3.20.1549)
44 Ёпрст
 
22.12.21
10:30
(43) ну не знаю..ради чистоты эксперимента, рестартани сервак целиком, что ле..
45 timurhv
 
22.12.21
10:51
(33) Если сервер 1С стоит на этом же серваке: по shared memory не работает, нажимать обновить конфигурацию базы данных на сервере.
46 Ёпрст
 
22.12.21
10:59
(45) наеборот же, работает
47 timurhv
 
22.12.21
11:02
(46) https://its.1c.ru/db/v8320doc#bookmark:adm:TI000000376
● v2 ‑ оптимизированный механизм реструктуризации. Работает только для клиент-серверного варианта работы информационной базы в том случае, если в качестве СУБД используется Microsoft SQL Server или PostgreSQL. Если планируется использование оптимизированного механизма реструктуризации совместно с СУБД Microsoft SQL Server, то сервер «1С:Предприятия» для соединения с СУБД должен использовать сетевой протокол TCP/IP (в терминах СУБД). Работа оптимизированного механизма реструктуризации не поддерживается в том случае, если сервер «1С:Предприятия» подключается к СУБД Microsoft SQL Server с использованием сетевых протоколов Разделяемая память или Именованные каналы.
48 RomaH
 
naïve
22.12.21
11:06
(47) вот, а отключить Shared Memory - не вариант
49 Ёпрст
 
22.12.21
11:06
(47) ага, только на практике это не так.
50 RomaH
 
naïve
22.12.21
11:06
(49) предлагаешь попробовать?
51 timurhv
 
22.12.21
11:07
(49) Давай нажалуюсь :)
52 Ёпрст
 
22.12.21
11:07
(50) отключи шаред мемори, рестартани скуль, проверь, есть ли v2, включи.
У меня v2 потом работало и с 2-мя включенными протоколами
53 fisher
 
22.12.21
11:12
(47) Странно. То есть предполагается, что java-приблуда будет переиспользовать соединение сервера. А такое возможно вообще? Может, достаточно чтобы tcp/ip был в разрешенных протоколах подключения?
54 timurhv
 
22.12.21
11:15
(53) я не проверял shared memory, может в (52) сервер не перезагружали (как вариант)
55 Ёпрст
 
22.12.21
11:18
при v2 если не включен tcp он напишет об этом.
56 timurhv
 
22.12.21
11:20
(55) ну, судя по комментариям в (17) много ошибок, возможно и это пропустили
57 fisher
 
22.12.21
11:24
(55) Что v2 нужен tcp/ip - это понятно. Вопрос - поднимает ли v2 свое соединение или переиспользует соединение сервера. По контексту (47) предполагается что переиспользует серверное соединение. Если это так, тогда v2 на подключении shared memory подключиться не сможет физически. Но мне почему-то кажется, что на самом деле v2 поднимает свое соединение.
58 RomaH
 
naïve
22.12.21
11:33
все перезагрузил - один фиг

https://ibb.co/phYpTck
59 fisher
 
22.12.21
11:35
Можно вот таким запросиком глянуть реальные протоколы соединений:

select program_name, net_transport
from sys.dm_exec_sessions as t1
left join sys.dm_exec_connections AS t2 ON t1.session_id=t2.session_id
where not t1.program_name is null

Ну и в профайлере видно.
60 RomaH
 
naïve
22.12.21
11:38
(59) - везде TCP
61 fisher
 
22.12.21
11:42
(60) Ты над включением v2 бьешься? Сам не включал, но я бы проверил доступность java из командной строки под пользователем сервера 1С, ее версию и поставку.
62 RomaH
 
naïve
22.12.21
11:46
java - vertion выполняет и показывает
63 fisher
 
22.12.21
11:53
(62) Что именно показывает?
Реструктуризацию запускаешь Конфигурация – Конфигурация базы данных – Обновить конфигурацию базы данных на сервере?
Если обычное F7, то как я понял всегда v1 будет.
64 RomaH
 
naïve
22.12.21
11:54
(63) - см (58)
65 Ёпрст
 
22.12.21
12:01
(64) в строке сообщения че пишет потом ?..он там подумает подумает и напишет что идёт реструктуризация с помощью оптимизированного механизма бла бла бла..
66 RomaH
 
naïve
22.12.21
12:03
(65) не, про "опти" нет ни одного слова
67 RomaH
 
naïve
22.12.21
12:08
(65) и как бы по F7 и по "Конфигурация – Конфигурация базы данных – Обновить конфигурацию базы данных на сервере" - одно время
68 RomaH
 
naïve
22.12.21
12:32
Обновление конфигурации базы данных
Обработка структуры базы данных...
Сбор служебной информации...
Объект изменен: Документ.
Принятие изменений...
Обновление конфигурации базы данных успешно завершено
69 Ёпрст
 
22.12.21
12:35
(68) не, это не то
70 RomaH
 
naïve
22.12.21
12:38
во
после нескольких рестартов ...

В процессе обновления конфигурации базы данных при работе оптимизированного механизма обновления произошла критическая ошибка
по причине:
При попытке запуска Java в оптимизированном механизме обновления конфигурации базы данных возникла ошибка.
Путь к Java: C:\Program Files\Java\jre1.8.0_191\bin\java.exe
Действие: prepare
71 Ёпрст
 
22.12.21
12:39
(70) о! уже более похоже на правду..
72 Ёпрст
 
22.12.21
12:40
Самая ж..па, что оно потом всегда v2 будет делать..
:))
73 RomaH
 
naïve
22.12.21
12:40
(72) и по F7?
74 RomaH
 
naïve
22.12.21
12:42
ага - вижу , так ... как починить? что бы хоть что-нибудь заработало?
75 RomaH
 
naïve
22.12.21
12:43
F7 - тоже "оптимизированный"
76 Ёпрст
 
22.12.21
12:45
(73) не, по f7 старый метод, но тоже чегой-то иногда жабу хочет
77 RomaH
 
naïve
22.12.21
12:46
(76) по F7 - он мне такую же ошибку выплюнул
78 Ёпрст
 
22.12.21
12:47
(70) короче..если качал последнюю жабу, надо разрешить старый протокол
79 Ёпрст
 
22.12.21
12:47
ща..
80 RomaH
 
naïve
22.12.21
12:49
и похоже на V2 влияет конфиг локальный
когда прописал у себя на машине - начало ошибку выдавать
поставил
UpdateDBCfg=v1
стало обновлять по v1 хотя на сервере прописано v2
81 Ёпрст
 
22.12.21
12:55
(80)

Go to folder C:\Program Files (x86)\Java\jre1.8.0_291\lib\security In file java.security find option jdk.tls.disabledAlgorithms and delete TLSv1
82 Ёпрст
 
22.12.21
12:56
вот эту хрень сделай для своей версии жаба
83 Ёпрст
 
22.12.21
13:00
должно вот так остаться

jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, \
    DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
    include jdk.disabled.namedCurves
84 arsik
 
гуру
22.12.21
13:02
(81) Может лучше нормальную жабу взять с сайта 1С.
85 arsik
 
гуру
22.12.21
13:08
Мне интересно что там с режимом совместимости. Новая возможность появилась в 8.3.11
У меня сейчас 8.3.18 с режимом совместимости 8.3.10 - Будет работать или нет?
86 timurhv
 
22.12.21
13:22
(70) в (17) в конце статьи написано про prepare: добавлен реквизит и произведена сортировка
87 RomaH
 
naïve
22.12.21
13:24
(86) не - я ж ТЕСТИРУЮ
открыл док - изменил тип реквизита - запустил обновление - обновилось по v1

тот же реквизит вернул тип - перезапустил все - ничего не сортировал - получил ошибку

т.е. у меня в базе изменился ТОЛЬКО тип ОДНОГО реквизита - больше после последнего обновления с реструктуризацией ничего не изменял
88 RomaH
 
naïve
22.12.21
13:52
(83) не помогло

В процессе обновления конфигурации базы данных при работе оптимизированного механизма обновления произошла критическая ошибка
по причине:
При попытке запуска Java в оптимизированном механизме обновления конфигурации базы данных возникла ошибка.
Путь к Java: C:\Program Files\Java\jre1.8.0_191\bin\java.exe
Действие: prepare
89 RomaH
 
naïve
22.12.21
13:53
надо будет попробовать жабу с сайта 1С все-таки
90 RomaH
 
naïve
22.12.21
13:54
и не понятно - почему на "оптимизированный" режим влияет конфиг не сервера, а клиентской машины
91 ptiz
 
22.12.21
13:57
(0) Смириться и делать реструктуризацию в нерабочее вермя. Или плясать с бубнами. Вариантов много: от V2 до убийства 1С в процессе реструктуризации и последующего шаманства с реструктуризируемыми таблицами и таблицей config.
92 Ёпрст
 
22.12.21
14:36
(88) у меня стоит jre1.8.0_311
93 Ёпрст
 
22.12.21
14:38
(90) если просто добавить реквизит куда либо и запустить v2 , работает ?
94 Ёпрст
 
22.12.21
14:39
у меня такой ошибки не было, но v2 мне ломал базу пару раз..
Там нельзя прерывать процесс, иначе потом танцы с бубнами возле возврата таблички конфиг и еще пару системных
95 RomaH
 
naïve
22.12.21
14:43
(93) вроде добавление реквизита не всегда реструктуризация ... вот недавно добавлял в большую таблицу - нажал обновить и вспомнил - что это на часик - а оно быстро прошло
96 Ёпрст
 
22.12.21
14:44
(95) тогда меняй тип числового реквизита, просто уменьшив разряд, например
97 RomaH
 
naïve
22.12.21
14:47
добавил реквизит - строка 10
реструктуризация (быстрая без обхода таблицы) - v1
включил v2 в локальном конфиге
поменял тип на число
F7 - критическая ошибка
98 RomaH
 
naïve
22.12.21
14:54
включил v1
удалил реквизит
обновил
включил v2
добавил реквизит
F7 - критическая


в общем танцы с бубном отложим до версии жабы от 1С ... или 311
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан