Причины реструктуризации. Практический пример

17.08.18

База данных - Технологический журнал

Получение и анализ подробной информации о причинах реструктуризации.

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

Стал искать причину. Анализ через "Сравнение/объединение" ответов на вопрос "Что является причиной" не дал (изменена по чуть-чуть почти вся конфигурация). Из интернета, документации и бесед с коллегами следовало проверять:

  • изменение общих реквизитов;
  • изменение регистрации в планах обменов;
  • изменение в ролях;
  • изменения в регистраторах;

Быстро проблему обнаружить не смог, а смотреть подробно каждое изменение в хранилище не радовало.

Решение оказалось простым: технологический журнал. В техжурнал пишется подробно, по какой причине платформа решила выполнить реструктуризацию, в т.ч. и для регистров накопления и сведений. Описывать настройку техжурнала не буду – это тема простая и давно разобрана, но приведу на всякий случай содержание моего logcfg.xml:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
    <system level="trace"/>
    <log history="48" location="D:\Database\Log">
        <event>
            <eq property="EventType" value="Workflow"/>
        </event>
        <event>
            <eq property="EventType" value="Analysis"/>
        </event>
        <event>
            <eq property="EventType" value="Restructuring"/>
        </event>
        <property name="RestructMode"/>
        <property name="Description"/>
        <property name="Duration"/>
    </log>
    <dump create="false"/>
</config>

И в заключении приведу часть самого техжурнала:
31:55.157190-0,SYSTEM,3,Description=Starting restructuring of accumulation register for РегистрНакопления.ЗапасыНаСкладах
31:55.157191-0,SYSTEM,3,Description=Starting analysis of changes for РегистрНакопления.ЗапасыНаСкладах
31:55.157192-0,SYSTEM,3,Description=Analyzing РегистрНакопления.ЗапасыНаСкладах. Hash column usage not changed. Does not require restructuring,RestructMode=None
31:55.157193-0,SYSTEM,3,Description=Analyzing РегистрНакопления.ЗапасыНаСкладах. Register type was balance and it remains balance
31:55.157194-0,SYSTEM,3,Description=Analyzing РегистрНакопления.ЗапасыНаСкладах. Data lock control mode not changed. Does not require restructuring,RestructMode=None
31:55.157195-0,SYSTEM,3,Description=Analyzing РегистрНакопления.ЗапасыНаСкладах. Register type not changed. Does not require restructuring,RestructMode=None
31:55.157196-0,SYSTEM,3,Description=Analyzing РегистрНакопления.ЗапасыНаСкладах. Compatibility mode 8.3.2 not changed. Does not require restructuring,RestructMode=None
31:55.157197-0,SYSTEM,3,Description=Analyzing РегистрНакопления.ЗапасыНаСкладах. Totals splitting not changed. Does not require restructuring,RestructMode=None
31:55.157198-0,SYSTEM,3,Description=Analyzing РегистрНакопления.ЗапасыНаСкладах. Recorders cardinality not changed. Does not require restructuring,RestructMode=None
31:55.157199-0,SYSTEM,3,Description=Analyzing РегистрНакопления.ЗапасыНаСкладах. Recorder deleted. Requires full restructuring,RestructMode=Full
31:55.157200-0,SYSTEM,3,Description=Analyzing РегистрНакопления.ЗапасыНаСкладах. РегистрНакопления.ЗапасыНаСкладах.Измерение.Организация. Dimension type not changed. Does not require restructuring,RestructMode=None
31:55.157201-0,SYSTEM,3,Description=Analyzing РегистрНакопления.ЗапасыНаСкладах. РегистрНакопления.ЗапасыНаСкладах.Измерение.Организация. Dimension order not changed. Does not require restructuring,RestructMode=None
31:55.157202-0,SYSTEM,3,Description=Analyzing РегистрНакопления.ЗапасыНаСкладах. РегистрНакопления.ЗапасыНаСкладах.Измерение.Организация. Dimension indexing not changed. Does not require restructuring,RestructMode=None
31:55.157203-0,SYSTEM,3,Description=Analyzing РегистрНакопления.ЗапасыНаСкладах. РегистрНакопления.ЗапасыНаСкладах.Измерение.Организация. Dimension usage in totals not changed. Does not require restructuring,RestructMode=None
31:55.157204-0,SYSTEM,3,Description=Analyzing РегистрНакопления.ЗапасыНаСкладах. РегистрНакопления.ЗапасыНаСкладах.Измерение.Номенклатура. Dimension type not changed. Does not require restructuring,RestructMode=None
31:55.157205-0,SYSTEM,3,Description=Analyzing РегистрНакопления.ЗапасыНаСкладах. РегистрНакопления.ЗапасыНаСкладах.Измерение.Номенклатура. Dimension order not changed. Does not require restructuring,RestructMode=None

и т.д.

ключевую запись (Recorder deleted. Requires full restructuring,RestructMode=Full) выделил жирным. Из чего следует, что в моем случае коллега случайно удалил регистрацию движений по регистру накопления ЗапасыНаСкладах для нескольких документов. Ошибку исправили.

Спасибо за внимание )))

Вступайте в нашу телеграмм-группу Инфостарт

причины реструктуризации поиск регистры накопления регистры сведений регистры бухгалтерии

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

HighLoad оптимизация Инструментарий разработчика Технологический журнал Разработчик 1С 8.3 Россия Абонемент ($m)

Скрипт tj_baseline.py собрал акт замеров из технологического журнала: 7 повторов до и 7 после замены запросов в цикле на «Нано-УТ 2.0». Справка на 150 строк ускорилась с 817,0 до 145,0 мс, проверка доступности с 301,3 до 2,2 мс. При 120 и 300 вызовах в день и ставке 800 руб. выгода 9353 руб. в год по журналу, 4939 руб. по секундомеру без журнала. В архивах скрипт, тесты, журналы опыта, образец приложения к договору и калькулятор.

7 стартмани

27.10.2026    298    Ninel_S    0    

1

HighLoad оптимизация Администрирование СУБД Технологический журнал Системный администратор Разработчик 1С 8.3 Абонемент ($m)

Проверила на стенде совет «сортируйте строки перед записью»: 1С 8.3.27 на PostgreSQL, учебная «Нано-УТ», 20 потоков и по 2000 документов на каждый способ записи движений. Взаимоблокировки дают построчный захват (99 % ошибок) и повышение разделяемой блокировки до исключительной (95 %, сортировка не помогает); одна блокировка на весь набор работает без сортировки. Плюс механика PostgreSQL, дерево ожиданий через pg_blocking_pids, TDEADLOCK в журнале и единицы порога TLOCK в logcfg.xml. В архиве стенд, выгрузка конфигурации и журналы прогона.

5 стартмани

22.10.2026    429    Ninel_S    10    

1

Журнал регистрации Инструменты администратора БД Технологический журнал Мониторинг Системный администратор Разработчик 1С 8.3 1С 8.5 1С:Управление торговлей 11 Абонемент ($m)

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

3 стартмани

19.10.2026    497    6    windsurf    0    

3

HighLoad оптимизация Технологический журнал Сервера Запросы Системный администратор Разработчик 1С 8.3 1С 8.5 1С:Бухгалтерия 3.0 Бесплатно (free)

Составной отчет формировался 15 минут. Вместо перебора разделов одна команда rac показала, что сеанс занят запросом к СУБД, а временный техжурнал с порогом 20 секунд за один прогон назвал виновника: один SQL на 240 секунд и точную строку модуля. В статье четыре разные картины «висит» и как их различить: идет запрос в СУБД, клиент ждет невидимое модальное окно, зомби-вызов после закрытого клиента, зависшее фоновое задание. Пример logcfg.xml, разбор события DBMSSQL с полем Context, замер пакета запросов по временным таблицам, регламентное задание, которое «выполнено», а данные стоят, и шпаргалка по диагностике.

16.10.2026    1106    Konstmax13    6    

2

Технологический журнал Сервера EDT Обновление 1С Системный администратор Разработчик 1С 8.3 1С 8.5 1С:Бухгалтерия 3.0 Бесплатно (free)

Конфигуратор и агент EDT тихо вылетают на 0 % «Обработки структуры базы данных», EDT пишет «Потеряно соединение с агентом конфигуратора», а модель проекта при этом чистая. Разбор двух аварий на большой серверной базе БП КОРП: какие факты снимать (журнал Windows, техжурнал нужной версии, хвост лога процесса), почему инкрементальная выгрузка EDT ломается после сбоев, как довести обновление пакетно через /UpdateDBCfg -Server, как опознать свои rphost среди нескольких кластеров и снять агент EDT, который сам поднимается и держит базу. Протокол одного дня по минутам и порядок диагностики из восьми шагов.

15.10.2026    486    Konstmax13    0    

0

HighLoad оптимизация Технологический журнал Разработчик 1С:Предприятие 8 Бесплатно (free)

В этой статье рассматривается только первый этап диагностики производительности: как получить длительный SQL-запрос из технологического журнала, связать его с прикладным кодом 1С и точно локализовать место выполнения. Причины длительности и оптимизация самого запроса разбираются уже после локализации.

21.09.2026    1386    markbraer    1    

5

Технологический журнал Системный администратор Разработчик 1С 8.3 Бесплатно (free)

База ERP, 400 пользователей, сервер загружен, 1С подвисает, доступа к SQL Server нет. Оптимизировать можно бесконечно, вопрос в том, с чего начать. ЦУП это платная лицензия и отдельная стройка, а технологический журнал встроен в платформу, включается одним файлом и на боевой базе в рабочее время не вызвал ни одной жалобы от пользователей. Разбираю, что он собой представляет, где лежит настройка, как читается строка события и что означает каждое из одиннадцати событий, которые я видел в журналах боевой ERP. Плюс рабочий logcfg.xml, три ловушки, на которых отчёт получается красивым и неверным, и шесть находок за один прогон.

07.09.2026    2454    nedomolkov.ivan    0    

3

Технологический журнал Системный администратор Разработчик 1С 8.3 Абонемент ($m)

Обработка включает технологический журнал, читает его и отвечает на 13 вопросов человеческим языком: кто блокирует базу, какой запрос к СУБД самый тяжёлый, какой код суммарно грузит СУБД больше всех, какой вызов съедает память. Настройка идёт галочками с человеческими формулировками, logcfg.xml обработка пишет сама, права администратора для этого обычно не нужны. Отдельная кнопка сводит журнал в один markdown-файл: на боевой ERP 288 МБ и 2 055 229 строк ужались в 17 459 знаков, файл кладётся в чат с нейросетью и разбирается за минуту. Имена баз и пользователей в нём заменены псевдонимами. Без внешних компонент, к СУБД обращений нет.

10 стартмани

07.09.2026    1489    6    nedomolkov.ivan    0    

2
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SanyMaga 77 17.08.18 20:05 Сейчас в теме
Если у измерения свойство "ведущий" тогда получите реструктуризации тоже. А еще версионировние ))))
3. _KaA 116 20.08.18 09:58 Сейчас в теме
(1)
Для меня большим откровением стал тот момент, что изменение состава поля составного типа не отобразилось при сравнении/объединении... не логично как-то.
10. l1ike 23.08.18 12:55 Сейчас в теме
(3)
Ссылочные типы 1с хранятся в БД как два поля Тип и ГУИД, если в составной тип добавляется еще одна ссылка - то это не влечет реструктуризацию, если добавить, к примеру, строковый тип - будет реструктуризация.
2. user700035_6550355 37 20.08.18 08:36 Сейчас в теме
Как обычно виноваты кривые пальчики
4. maslennikov_ea 6 20.08.18 11:37 Сейчас в теме
а при сравнении (с бекапом) разве удаление регистрации из регистра не видно?!
7. _KaA 116 21.08.18 12:09 Сейчас в теме
(4) (6)

У меня правлено 70-80% конфигурации, коммитов около 100 -> я просто устану сравнивать )))
8. nvv1970 21.08.18 22:02 Сейчас в теме
(7) как вы до такого дотянули? 100??? 70% - это много лет разработки ))
5. kiruha 389 20.08.18 17:07 Сейчас в теме
А коллега не мог еще случайно удалить еще что нибудь ...
Как искать то будете ?
6. nvv1970 20.08.18 18:41 Сейчас в теме
Однако, автор молодец, что дальним маршрутом быстро добрался

Основной список обычно невелик:
- удаление регистратора из движений
- удаление значения перечисления
- удаление объектов
Но в если изменений много - глаза не помогут (
11. ProgrammistC 68 18.12.19 16:53 Сейчас в теме
(6) критерии отбора еще
9. Serg O. 337 22.08.18 07:24 Сейчас в теме
Отчет сравнения в файл можно выгрузить табличный... Или текстовый...Там удобнее что-то искать... Не думал, что тех.журнал так можно использовать, ставлю +
YuriOvs; jaroslav.h; +2 – Ответить
12. user612295_death4321 15.01.20 11:01 Сейчас в теме
Жаль, что похоже работает не на всех версиях платформы. На 8.3.9.2170 в режиме совместимости 8.2 - не работает :(
13. _KaA 116 21.01.20 09:15 Сейчас в теме
(12)

К сожалению нет времени проверять в других версиях, но и платформа, сказать откровенно, не нова...
14. kalyaka 1190 28.07.23 15:22 Сейчас в теме
Прекрасно работает на платформе 8.3.22.2106.
Чтобы быстро понять, где будет реструктуризация, можно поступить следующим образом: создать пустую базу, выполнить изменение, посмотреть технологический журнал.
В событиях Description нужно искать строку "type CHANGED", например вот такую
...Реквизит.Организация. Tabular section attribute type CHANGED. Requires full restructuring,RestructMode=Full
Далее, зная место возникновения реструктуризации, нужно проверить изменяемые типы и реквизиты.
15. kalyaka 1190 28.07.23 15:54 Сейчас в теме
Еще одно важно замечание: этот технологический журнал собирается на клиенте! Т.е. если у вас клиент-серверная база, то журнал нужно настраивать на клиенте. Файлы тех журнала будут складываться в подкаталоги вида 1cv8_NNNNN.

Если использовать команду "Обновить конфигурацию базы данных на сервере", то файлы будут в подкаталогах rphost_NNNNN на сервере 1С.
Для отправки сообщения требуется регистрация/авторизация