Найти тему
Про 1С

Версионирование документов, справочников в базах 1С Предприятие 8.3. Пример 1С Управление торговлей 11

Доброго времени суток, читатели моего канала!

На этот раз я попробую описать такой полезный функционал в конфигурациях фирмы 1С как версионирование объектов.

Частая ситуация, которая встречается в реалиях жизни, особенно когда в базе работает большое количество пользователей. Когда документ кто-то изменил, причем не свой и не всегда понятно зачем.

Этот механизм помогает ответить на данный вопрос.

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

В этой ситуации версионирование, тот самый инструмент, который может ответить на все вопросы связанные и изменением объектов, за исключением одного "Зачем?" :)

Для примера я взял типовую демонстрационную базу 1С Управление торговлей 11.5

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

Для того чтобы произвести настройки рассмотренные в данной статье необходимо пользователю иметь роль "Полные права"

И так для того чтобы у нас в базе включить версионирование объектов, нам необходимо

Зайти в базу

Перейти НСИ и администрирование \ Общие настройки

В общих настройках необходимо найти параметр "Хранить историю изменений". Именно эта константа отвечает за то что, будет в базе вести версионирование или нет.

-2

Для включения версионирования выставляем флажок "Хранить историю изменений"

-3

После этого становится доступной гиперссылка "Настроить". Нажимаем на неё.

Открылось окно "Настройки хранения истории изменений"

-4

Начнем рассматривать содержимое окна настроек.

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

Табличная часть состоит из трех колонок:

  • Объект (в это поле выводится название объекта (справочника, документа, плана видов характеристик))
  • Когда сохранять версии (в этой колонке можно для каждого объекта можно задать то событие при котором будет сохранена версия объекта)
  • Срок хранения версий (собственно название говорит само за себя, сколько времени хранить версию объекта в базе)

Теперь по подробнее по поводу параметра "Когда сохранять версии"

У документов три варианта значения

-5

У справочников и планов видов характеристик два варианта значений, т.к. у этих объектов, нет такого понятия как проведение.

-6

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

Теперь по поводу значений параметра "Срок хранения версий"

Тут всё просто

-7

Варианты

  • Бессрочно, (самый вредный для базы вариант), название значения говорит о том, что все сохраненные версии в базе будут храниться вечно
  • За последнюю неделю, тут тоже понятно, что версия объекта будет храниться неделю, после чего удаляется регламентным заданием.
  • Все остальные значения аналогичны предыдущему, отличие только в сроке хранения версии объекта (месяц, квартал, полгода, год)
С настройкой версионирования объектов необходимо быть предельно осторожно. Т.к. с одной стороны избыточность в объектах, по которым настроена версионирование может занимать приличное количество места в базе и второй момент процедуры записи и проведении объектов также страдают, т.к. подключается процесс сохранения версий объектов, который занимает какое-то время. С другой стороны отсутствие сохранение версии какого-нибудь из объектов базы, может не найти виновника косяка в конфликтном документе, справочнике. :)

И так попробуем настроить для примера версионирование для парочки объектов.

Первый это документ "Заказ клиента"

-8

Будем сохранять документ при каждом проведении документа и хранить версии в течении месяца

Второй, это справочник "Номенклатура"

-9

Будем сохранять документ при каждой записи товара и хранить версии в течении трех месяцев

Версионирование документов, пример

Переходим в журнал заказов клиентов и пробует что-то изменить в существующем документе и провести документ

-10

Правим комментарий в документе и удаляем строку в табличной части с товарами

-11
-12

И так проводим документ, возвращаясь в журнал "Заказы клиентов"

Теперь чтобы нам посмотреть что происходило с документом нам необходимо выбрать в списке документов интересующий нас заказ, в главном меню журнала выбрать "Ещё", прокрутить список команд вниз и найти пункт "История изменений". Нажимаем на неё

-13

В итоге мы зашли в историю изменений конкретно нашего заказа

-14

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

Даже если вы просто открыли документ и закрыли документ по кнопке "Ок", т.к. не многие понимают различие между кнопка "Ок" и кнопкой "Закрыть"

-15
При нажатии на кнопку "ОК" в документе возникает два события "Запись" и "Проведение документа", для справочника, только одно событие "Запись".
При нажатии на кнопку "Закрыть", событий ни каких не возникает и отражать версию программе нет никакого смысла

Теперь попробуем сравнить две версии нашего заказа. Для этого необходимо выбрать две строчки версий, при помощи клавиш Shift и стрелкой "Вниз"

-16

И нажимаем на кнопку "Сравнить" на панели управления журнала со списком версий

После чего формируется отчет в котором указывается, что конкретно изменялось в документе

-17

Из представленной информации явно видно что в процессе правки документа, была изменена сумма документа, внесён комментарий и удалена строка из табличной части "Товары". Даже указывается, что это была 6 строка :)

В самом низу отчета расписаны легенда цветов, какой цвет и что сообщает.

-18

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

Закрываем отчет, возвращаясь в список версий нашего заказа.

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

-19

В итоге заказ перезаполняется в исходное состояние.

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

Например пользователь Кладовщик (КисловАС) в демобазе с профилем "кладовщик" не имеет доступа в просмотру версий объектов

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

Типичный вред, это откатить версию какого-нибудь документа реализации, который уже отражен в отчетности :)

Версионирование справочников, пример

Та-же самая история и с версионированием в справочниках

И так идем в карточку товара

-21

И правим карточку, в моем примере, добавляю текстовое описание, присваиваю артикул товару. Записываю, закрываю карточку товара

-22

Вернувшись в справочник "Номенклатура" выбираем строку нашего измененного товара, Главное меню табличной части формы, кнопка "Ещё", крутить список команд вниз. Находим пункт "История изменений"

-23

Открывается журнал версий конкретно выбранного элемента справочника

Мы также можем выделить обе версии (Shift+кнопка вниз)

-24

Нажимаем на кнопку "Сравнить". Открывается отчет по изменению версий объекта, который показывает что изменили в карточке товара

-25

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

Важный момент по поводу срока хранения версий объектов. Важно обратить на то что у вас настроено и работает регламентное задание "Очистка устаревших версий объектов"

-26

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

Ещё момент. Если вы попробуете посмотреть версии объекта, по которым не настроено версионирование. В нашем примере это справочник "Банковские счета", то при переходе по пункту "История изменений", вы увидите вот такое сообщение

-27

Говорящее о том, что для этого типа объекта версий нет.

Описанная логика работы с версионированием, идентична и для других конфигураций, построенных на управляемых формах платформы 1С Предприятие 8.3.. таких как 1С Комплексная автоматизация 2.5, 1С Управление предприятием 2.5. 1С Бухгалтерия предприятия 8.3 и т.п.

На этом у меня всё надеюсь, что данный материал был вам полезен!

Ставьте лайки и подписывайтесь на канал

Всего вам доброго!

#1С #ВерсионированиеОбъектов