1с константы история данных

Заметки из Зазеркалья

Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.

Реализовано в версии 8.3.13.1513.

Мы расширяем возможности механизма История данных. Теперь этот механизм охватывает несколько новых объектов конфигурации, а также позволяет вам реализовывать собственные алгоритмы при переходе на версию и переопределять все основные формы, используемые этим механизмом.

Новые объекты конфигурации, для которых поддерживается история данных

Теперь история данных поддерживается ещё для трёх классов объектов конфигурации. Это:

С данными этих объектов механизм работает по тем же принципам, что и с данными справочников или документов.

Поддержка изменений реквизита ИмяПредопределенныхДанных

В механизм истории данных мы добавили поддержку изменения стандартного реквизита ИмяПредопределенныхДанных для таких объектов как:

Особенностью этого реквизита является то, что он может изменяться как в режиме Конфигуратор (в процессе разработки), так и в режиме 1С:Предприятие. Механизм истории данных создаёт версии только для тех изменений, которые выполняются в режиме 1С:Предприятие.

Управление переходом на версию

Мы реализовали новое событие ОбработкаФормированияПоВерсии() для таких программных объектов как:

С помощью этого события вы можете вмешаться в процесс формирования новой версии. Например, вы можете добавить комментарий к версии, исключить реквизит объекта из стандартной обработки, изменить данные (номер версии) и так далее.

Также мы реализовали новый параметр формы НомерВерсииПереходаНаВерсию. Если вы задаёте этот параметр при получении или открытии формы объекта, то будет выполнено восстановление данных той версии, которую вы указали. Также, анализируя этот параметр в форме, вы можете предусмотреть специальные действия, которые должны выполняться только при переходе на версию.

Также мы улучшили эргономику работы с версиями. Например, в формы списков мы добавили стандартную команду История изменений. С помощью неё, например, вы можете просматривать историю изменений для записи подчиненного регистра сведений. А в формах объектов, при переходе на версию, мы отображаем в заголовке номер версии. Например, для документа заголовок будет выглядеть следующим образом:

Заказ 000000001 от 18.08.2016 0:00:00 (Переход на версию 1)

Формы, используемые механизмом истории данных

Для основных форм, используемых механизмом истории данных, мы предусмотрели возможность их переопределения в Конфигураторе. Теперь у объекта конфигурации появились три новых свойства:

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

Кроме этого вы можете открыть или получить перечисленные формы из встроенного языка. Для них добавлены стандартные имена, которые вы можете использовать в методах ОткрытьФорму() или ПолучитьФорму().

Также во встроенный язык мы добавили ещё два стандартных имени для двух других форм истории данных. Это:

Эти формы вы тоже можете, например, открыть из встроенного языка, но переопределить их нельзя.

Помимо назначения собственных форм в Конфигураторе, вы можете «динамически» переопределять формы истории данных. Например, стандартные имена форм механизма истории данных передаются в обработчик ОбработкаПолученияФормы() в параметре ВидФормы. Проанализировав значение этого параметра, вы можете отказаться от открытия стандартной формы, и открыть, например, собственную форму истории данных.

Источник

История данных в 1С

Нередко возникают ситуации, когда необходимо определить пользователя, от имени которого были выполнены некие изменения в данных в 1С. При помощи журнала регистрации в 1С 8.3 можно прояснить лишь общую картину: факт сохранения изменений в объекте (например, элементе справочника или документе) или удаления данных. При этом никакой конкретики по изменениям журнал регистрации в 1С 8.3 не предоставляет: нельзя точно определить, кто и когда изменил значение одного из реквизитов или исправил допущенную ранее ошибку.

1. Что такое история данных в 1С

В этом случае может помочь механизм платформы 1С, называемый историей (или версионированием в 1С) данных.

История данных – механизм платформы 1С, позволяющий хранить историю изменения данных пользователями, упорядоченную по времени. При этом в базе данных хранится не полная копия объекта до и после изменения, а только «разница». Также при настройке можно указать, что версионирование в 1С требуется не для всех объектов, а только для интересующих.

Данные возможности положительно сказываются на производительности и позволяют производить экономию дискового пространства.

2. Для каких видов объектов метаданных 1С реализована история хранения данных

Хранение истории реализовано для следующих видов объектов метаданных 1С:

— планы видов расчетов

Начиная с версии платформы 8.3.13.1513 в список видов объектов с поддержкой истории данных добавлены:

— планы видов характеристик

По умолчанию для большинства объектов отключено ведение истории данных в 1С, разработчик сам решает, в каких случаях требуется установить использование механизма.

3. Как включить механизм версионирования в 1С

Включение механизма версионирования в 1С возможно как из режима конфигуратора, так и из режима 1С:Предприятия (путем выполнения обработки). Нужно указать, данные каких объектов требуется версионировать в 1С.

При настройке 1С:Предприятия можно выбрать полный режим хранения объекта или частичный (хранение изменений значений отдельных реквизитов, измерений, также могут быть сохранены изменения значений реквизитов табл. частей).

1с константы история данных

Программная работа с историей данных осуществляется через свойство глобального контекста ИсторияДанных типа МенеджерИсторииДанных. Предлагаемые методы позволяют производить запись версий, получать различия версий, выполнять поиск версий в соответствии с отбором, дополнять версию комментарием, удалять версии.

1с константы история данных

Рассмотрим, как выполняется запись версии.

Запись версии может быть выполнена 2 способами:

— автоматически механизмами платформы 1С (основной вариант использования)

— обработкой на встроенном языке методом ЗаписатьВерсию().

Автоматическое формирование истории данных выполняется в несколько этапов:

1. Фиксируется необходимость создания версии. При этом есть возможность указать, что запись должна произойти в ускоренном режиме (свойство версионируемого объекта «Обновлять историю данных сразу после записи» программно меняется через параметр ОбновлятьИсториюСразуПослеЗаписи), или требуется выполнение постобработки после записи версии в истории данных (свойство «Выполнять обработку после записи версии истории данных» программное обращение через параметр ВыполнитьОбработкуПослеЗаписиВерсии), или требуется добавить дополнительные данные (метод ДобавитьДополнительныеДанные()).

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

2. Фактическая запись версии в базу.

3. Постобработка после записи в историю данных.

Последний этап выполняется в том случае, если ранее в настройках 1С:Предприятия был установлен флаг «Выполнять обработку после записи версии истории данных» либо программно установлен параметр ВыполнитьОбработкуПослеЗаписиВерсии.

Источник

Версионирование (история изменений) объектов в 1С:Предприятие 8

Механизм версионирования позволяет хранить не только даты и автора изменений, но и историю изменений документа (реквизиты. параметры данных и т.д.), опция позволяет просматривать различные версии состояния одного и того же документа. Чтобы использовать данную опцию, необходимо предварительно провести настройку версионирования объектов. Как настройку, так и просмотр всех состояний документа может проводить администратор системы.

Как настроить версионирование объектов?

Выполнение настройки версионирования проводится в учетной записи Администратора, в которой открыты все права.

1. Открыть конфигурацию в режиме конфигуратора

2. Выбрать КонфигурацияПоддержкаНастройка поддержки

3. Снять запрет на редактирование у корневого узла конфигурации (при необходимости включив возможность изменения), затем закрыть

1с константы история данных

4. Выбрать КонфигурацияСравнить, объединить с конфигурацией из файла, выбрать загруженный файл

1с константы история данных

5. В открывшемся окне снять галку у вкладки Свойства в основной конфигурации (слева), затем нажать Выполнить

6. Для настройки необходимо открыть программу, на панели навигации перейти к пункту Операции/Константы:

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

1с константы история данных1с константы история данных

8. Далее следует открыть блок настройки, для чего нужно нажать на кнопку Настройка версионирования объектов…»

1с константы история данных

В параметрах настройки есть возможность указать значение всех типов документов, справочников:

Не версионировать — параметр установлен для всех типов объектов по умолчанию;
Версионировать — параметр применяется для настройки справочников и документов;
Версионировать при проведении —используется только для документов.

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

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

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

1с константы история данных

9. Для просмотра истории версий необходимо в панели навигации перейти к пункту Сервис/История. Эта опция доступна исключительно для использования из-под учетной записи Администратора. Просматривать можно лишь те объекты, к которым была применена настройка версионирования. После того, как форма откроется, следует выбрать объект, изменения которого необходимо отследить, затем нужно выделить несколько версий для сравнения и нажать «Сравнить версии».

1с константы история данных1с константы история данных

Для удобства можно ввести кнопку на отчет прям из документа, которая будет формировать отчет сразу по изменениям версий данного документа:

1с константы история данных

Конфигурация тестировалась на различных версиях:

— 1С Бухгалтерия 2.0 (2.0.44.8)

— Управление торговлей 10.3 (10.3.34.2)

— Альфа-Авто: Автосалон+Автосервис+Автозапчасти, редакция 5.1 (5.1.02.09).

Должно работать с любой конфигурацией на обычных формах.

Источник

История данных в 1С

В технологической платформе 8.3.11 был введен специальный механизм — «История данных». Этот механизм видится достаточно полезным, так как предоставляет ту функциональность, которую не редко приходится реализовывать вручную. В этой статье я попробую рассказать о том, что это за механизм, для чего он нужен и как с ним работать.

Общая информация

Начнем с общей теоретической информации о том, что такое история данных и как она устроена.

Описание и возможности

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

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

Само по себе хранение истории достаточно бесполезная функция, поэтому с историей данных можно выполнять следующие операции:

На момент написания статьи (8.3.13) история данных поддерживается для следующих объектов:

Работа с историей данных регулируется правами доступа и отражается в журнале регистрации.

Устройство механизма

История данных хранится в специальных таблицах информационной базы. Кроме самих данных в этих таблицах хранятся метаданные прежних версий объектов. Версии метаданных создаются в момент изменения этих самых метаданных у объекта и никак не связаны с изменением данных объекта.

Также следует помнить, что на данный момент система не отличает включение версионирования для реквизита от создания реквизита и отключение версионирования реквизита от удаления реквизита.

Создание версии объекта состоит из двух этапов. Сначала, автоматически или с помощью специального метода, фиксируется факт изменения объекта и информация об этом изменении попадает в очередь. Перенос данных из очереди в таблицы базы выполняется методом ОбновитьИсторию(), этот метод можно выполнять асинхронно, например регламентным заданием. Идущие подряд изменения одного объекта не «склеиваются» и фиксируются отдельно, вне зависимости от периодичности обновления истории данных.

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

Для управления историей данных объектов в конфигураторе реализовано свойство «История данных», оно присутствует как у основных объектов (у справочников, например) так и у подчиненных — реквизиты, табличные части с их реквизитами, ресурсы регистров сведений.

По умолчанию свойство «История данных» установлено в значение «Использовать» у:

Использование механизма

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

Управление использованием истории данных

Ниже приведены примеры того, как, средствами встроенного языка, можно управлять использованием истории данных. Отмечу, что значения свойства ИсторияДанных (полученные «через точку») берутся из конфигуратора и могут не соответствовать действительности, для получения актуальной информации нужно пользоваться методом ПолучитьНастройки().

Источник

Интерфейс для истории данных (платформенное версионирование) в режиме обычных форм

Итак, основные черты функционала «История данных» by 1с.

1. Версионироваться могут: справочники, документы, бизнес-процессы, задачи и регистры сведений(!).

2. Версионирование объекта метаданных включается либо на уровне конфигурации (на вкладке «Прочее» набора свойств объекта метаданных), либо программно. Программно можно назначить версионирование как всего объекта, так и только(!) отдельных(!) реквизитов объекта метаданных.

3.Платформа сохраняет информацию о различиях между версиями, а не объект целиком. Это позволяет сильно экономить место.

4. Версионирование асинхронно. При изменении объекта, задача на формировании версии кладется в стек. А извлечение из стека и формирование версии осуществляется методом менеджера истории данных «ИсторияДанных.ОбновитьИсторию()». 1с рекомендует организовать периодический вызов метода через регламентное задание. Таким образом версия для просмотра и работы с ней становится доступной только после изъятия данных о ней из некоего стека и последующего складирования этих данных в СУБД.

Возможности обработки

1. Универсальный выбор любого объекта метаданных, для которого включено версионирование на уровне конфигурации.

2. Просмотр списка версий

3. Просмотр данных версии

4. Сравнение 2х версий.

5. Построение объекта на основании данных о версии (его можно потом просто записать, тем самым совершив откат к определенной версии).

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *