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

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) выделил жирным. Из чего следует, что в моем случае коллега случайно удалил регистрацию движений по регистру накопления ЗапасыНаСкладах для нескольких документов. Ошибку исправили.

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

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

См. также

Магия преобразований Vector, часть 2: технологический журнал

Технологический журнал Мониторинг Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

15.11.2023    765    4    AlexSTAL    0    

8

Магия преобразований: ЖР, ТЖ, RAS/RAC, логи - универсальное решение Vector

Мониторинг Журнал регистрации Технологический журнал Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

13.11.2023    2967    4    AlexSTAL    0    

42

«Монитор» – простой анализ производительности

Администрирование СУБД Технологический журнал Бесплатно (free)

Для расследования проблем производительности недостаточно просто проанализировать технологический журнал. Нужен парсинг контекста событий, его сопоставление с информацией из Extended Events и логов, агрегация огромного количества информации.

21.09.2023    5722    Andreynikus    14    

79

Экспорт технологического журнала 1С в Elastic с помощью Logstash

Технологический журнал Платформа 1С v8.3 Абонемент ($m)

Целью данного решения является организация хранения и анализа данных из технологического журнала 1С с использованием стека Elasticsearch + Logstash + Kibana.

5 стартмани

18.09.2023    3276    huxuxuya    3    

23

Мобильный помощник эксперта 1С (приложение android, позволяющее строить отчеты на СКД по логам технологического журнала и не только)

Технологический журнал Мониторинг Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Приложение на мобильной платформе 1С Предприятие, позволяющее разбирать все, что может быть разобрано в командной строке linux, и выводить полученный результат типовыми методами системы компоновки данных. По мотивам направления Эксперт по технологическим вопросам

16.05.2023    3317    capitan    0    

23

Разбор технологического журнала без боли и страданий

Технологический журнал Абонемент ($m)

Технологический журнал - мощный инструмент логирования, используемый для анализа проблем производительности 1С. Но он обладает одним огромным недостатком, в "сыром виде" он почти не поддается адекватному анализу из-за своей структуры. Существует довольно много способов "разобрать" технологический журнал, но все опробованные способы обладают теми или иными недостатками. Предлагаю вам мой вариант "велосипеда" для разбора ТЖ и хранения разобранного в различных форматах.

1 стартмани

12.12.2022    8154    37    Segate    26    

86

Выполняем в СУБД запрос из ТЖ

Технологический журнал Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка для подстановки или нумерации параметров в тексте запроса из технологического журнала.

1 стартмани

24.11.2022    2856    3    VKislitsin    1    

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

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

Основной список обычно невелик:
- удаление регистратора из движений
- удаление значения перечисления
- удаление объектов
Но в если изменений много - глаза не помогут (
11. ProgrammistC 60 18.12.19 16:53 Сейчас в теме
9. Serg O. 224 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 110 21.01.20 09:15 Сейчас в теме
(12)

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

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