Каталог решений - История данных. Изменения в платформе 8.3.24

История данных. Изменения в платформе 8.3.24

История данных. Изменения в платформе 8.3.24

В наличии

16.06.2023 вышла бета 8.3.24.1020, давайте посмотрим, что поменялось в плане Истории данных.

Категория:

Описание

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

Честно скажу, меня терзал интерес, так как ранее я не стал дожидаться, когда обработку по программному включению истории данных выпустит 1С, и сделал ее сам. Выложил для бесплатного скачивания: Моя версия настройки состава «Истории данных»

В статье я сравню эти две разработки и выложу типовую от фирмы 1С.

Поехали, начнем с бага.

 

1 Баг, который присутствовал в предыдущих версиях (до 8.3.24.1020):

 

 

Я решил его воссоздать.

Демонстрирую на платформе (8.3.23):

Я создал справочник «ТестируемБаг», добавил ему реквизит «Комментарий» — строка длиной 150 символов.

Включил Историю данных и обновление истории данных сразу после записи:

 

 

Далее я запустил клиент и создал элемент справочника:

 

 

В истории у нас вот такая версия:

 

 

Добавил подписки ПередЗаписью и ПриЗаписи:

 

 

Код обработчиков вот такой:

Процедура ТестируемБагПередЗаписью(Источник, Отказ) Экспорт

               Источник.Комментарий = "Перед записью"

КонецПроцедуры



Процедура ТестируемБагПриЗаписи(Источник, Отказ) Экспорт

               Источник.Комментарий = "При записи"

КонецПроцедуры

 

Открыл созданный ранее элемент и перезаписал:

В комментарии видим «При записи»

 

 

Нажимаем «Перечитать»

 

 

В комментарии видим «Перед записью»

 

 

А что у нас в Истории данных?

 

 

В истории данных мы видим «При записи», а в элементе справочника в текущий момент «Перед записью».

Я проверил данное поведение в 8.3.24.1020. Данное поведение исправили, правда должен быть выключен режим совместимости. Возможно, во всех платформах младше 8.3.23 вышедших после данного релиза ошибку поправят, но это не точно.

 

2 Сравнение типовой обработки с моей в части включения Истории данных по объектам.

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

 

 

В итоге я вытащил типовую обработку из платформы и закомментировал код, выполняющий запуск формы:

&AtClient

Procedure OnOpen(Cancel)

              

          MakeFilterPresentation(FilterValue);

               // СДВ Форма отбора при открытии обработки ++

    //AttachIdleHandler("OnOpenDelayed", 0.1, True);

               // СДВ Форма отбора при открытии обработки --  

              

EndProcedure

В таком виде я прикрепил типовую обработку к статье. Напомню, для работы заявленного 1С функционала нужна платформа от 8.3.11, а лучше 8.3.15.

 

Объекты, на которые нет прав:

Открываем типовую обработку 1С:

 

 

Решение интересное. Если нет прав тогда название объекта становится светлым и появляется надпись, что прав недостаточно. С другой стороны, кто будет пользоваться этой обработкой? Обычные пользователи?

Запускаем мою обработку:

 

 

Я предусмотрел «привилегированный режим» включения, тем более данные настройки должен включать человек с административными правами.

Итог: За оформление объектов, на которые нет прав я несомненно ставлю плюс фирме 1С, но то, что не предусмотрен привилегированный режим ставлю минус.

Счет: 1-1

 

Запуск на платформе 8.3.24 в режиме совместимости 8.3.10 (до появления истории данных):

Открываем типовую обработку 1С как внешнюю:

 

 

Информативность сообщения, конечно, не «Агонь». Хотелось бы более дружелюбное сообщение, в котором указывалось с какой версии обработку можно запускать.

Хм, стресс тест не пройден… Дам тогда фору и запущу на 8.3.24 в режиме совместимости 8.3.10 прямо из «Функции для технического специалиста». Но не тут-то было. Обработка пропала из меню.

 

Запускаем мою обработку:

 

 

У меня обработка запускается и выводит четко и понятно какую платформу нужно установить.

Итог: Если вы используете режим совместимости 8.3.10 вы даже не узнаете про новую возможность. Балы не дам не себе не 1С, будем считать это незначительными придирками.

Счет: 1-1

В режимах совместимости 8.3.11 и выше, обработки ведут себя одинаково адекватно

Счет: 2-2

 

Информативность:

Открываем типовую обработку 1С:

 

 

Вот скажите История данных включена в конфигураторе или программно? А может быть, где-то есть выключенная программно история данных?

Смотрим, например, Регистр Сведений:

 

 

Что за поля? Что есть ресурс, а что реквизит? И самое непонятное — это для чего выведено измерение?

 

 

 

Я решил провести краш тест. Выключаем измерение «Имя подсистемы»

 

 

Меня ждал сюрприз, дело в том, что ранее подобное поведение приводило к ошибке, из-за чего я выключил отображение измерений в своей обработке.

В любом случае не видно, что у регистра Версии подсистем что-то отключено, пока не выделишь его.

Запускаем мою обработку:

 

 

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

Я вернул обратно «Измерения» и выложил новую версию своей обработки.

 

 

Итог: Информативность у 1С явно проигрывает и самое интересное далее станет понятно почему ;))

Счет: 2-3

Тест — Нажимаем «Записать» ничего не меняя:

Ничего не произошло. Обе обработки прошли этот тест.

Счет: 3-4

Тест – Нажимаем выключить, а затем включить историю данных у объекта, после чего нажимаем «Записать».

Ничего не произошло. Обе обработки прошли этот тест.

Счет: 4-5

Тест – У включенного в конфигуратор объекта снимаем галочку. Записываем. Ставим галочку обратно и записываем.

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

 

 

А теперь ставим включить и записываем.

1С сделала двойное включение…

 

 

 

То есть теперь история данных включена и в конфигураторе и программно. Соответственно в таблице, где хранятся программные настройки «DataHistorySettings» появилась лишняя запись, а обыватель об этом и знать не знает.

Моя обработка смотрит если включено в конфигураторе тогда программно включать не надо и не включает.

 

 

Итог: В 1С явно пошли путем на скорую руку, работает и ладно. Тут я бы еще и отнял бал за реализацию, но не буду.

Счет: 4-6

 

Настройки по умолчанию.

Что я ожидал от этой кнопки? Я ожидал, что в любой момент нажму на данную кнопку и вернусь к версии с очищенными программными настройками.

В 1С так и делают на первый взгляд. Снимают все галочки программные. А дальше ты думаешь все норм и закрываешь обработку и изменения не меняются. Оказывается, нужно нажать «Записать» и вот тут получаем еще более странное поведение:

До того, как нажал «Настройки по умолчанию» и «Записать»:

 

 

Результат:

 

 

Включенный программно объект, выключен тоже программно. Соответственно место в таблице «DataHistorySettings» занято данной настройкой.

Моя обработка при нажатии «Настройка по умолчанию» чистит программные настройки освобождая таблицу «DataHistorySettings» от ненужных данных.

 

 

Итог: Поведение у 1С крайне странное, отключение программных настроек происходит путем создания программной настройки. Моя обработка удаляет программные настройки и соответственно чистит после себя таблицу «DataHistorySettings»

Счет: 4-7

Отменить изменения и Прочитать настройки заново:

Обе обработки отработали корректно. Отменили все текущие изменения.

Счет: 4-8

 

Подвожу итоги:

Обработка от 1С рабочая, но, к сожалению, сделана на скорую руку. Имеет функционал достаточный для включения/выключения истории данных в пользовательском режиме, но только если есть права на все объекты. Визуально непонятно, что включено программно, а что в конфигураторе. При выключенных реквизитах вы не увидите изменений по выключенному объекту. В общем, хорошо, что они сделали, но плохо что сделали на 3-

По моему субъективному мнению, моя обработка выиграла со счетом 8 – 4, хотя я поддавался в некоторых пунктах. 

На этом заканчиваю. Всем удачи и новых свершений!

 

Полезные статьи по этой теме:

Обработка для программной настройки состава "Истории данных"

Версионирование объектов VS История данных

has been added to your cart:
Оформление заказа