Доброго времени суток, читатели моего канала!
На этот раз я попробую описать такой полезный функционал в конфигурациях фирмы 1С как версионирование объектов.
Частая ситуация, которая встречается в реалиях жизни, особенно когда в базе работает большое количество пользователей. Когда документ кто-то изменил, причем не свой и не всегда понятно зачем.
Этот механизм помогает ответить на данный вопрос.
Во всех конфигурациях фирмы 1С есть конечно такое понятие как журнал регистрации, который может регистрировать разные события в базе в зависимости от настроек. Но журнал регистраций может дать ответ поверхностно, кто перепроводил документ, или кто изменял карточку товара, но что конкретно было изменено в проблемном объекте остается вопросом.
В этой ситуации версионирование, тот самый инструмент, который может ответить на все вопросы связанные и изменением объектов, за исключением одного "Зачем?" :)
Для примера я взял типовую демонстрационную базу 1С Управление торговлей 11.5
Сразу скажу, что описанный процесс работы с версионированием объектов подходит для многих конфигураций построенных на платформе управляемых форм 1С Предприятие 8.3.
Для того чтобы произвести настройки рассмотренные в данной статье необходимо пользователю иметь роль "Полные права"
И так для того чтобы у нас в базе включить версионирование объектов, нам необходимо
Зайти в базу
Перейти НСИ и администрирование \ Общие настройки
В общих настройках необходимо найти параметр "Хранить историю изменений". Именно эта константа отвечает за то что, будет в базе вести версионирование или нет.
Для включения версионирования выставляем флажок "Хранить историю изменений"
После этого становится доступной гиперссылка "Настроить". Нажимаем на неё.
Открылось окно "Настройки хранения истории изменений"
Начнем рассматривать содержимое окна настроек.
В этом окне представлены все объекты (справочники, документы, планы видов характеристик) базы для которых можно включить и настроить версионирование.
Табличная часть состоит из трех колонок:
- Объект (в это поле выводится название объекта (справочника, документа, плана видов характеристик))
- Когда сохранять версии (в этой колонке можно для каждого объекта можно задать то событие при котором будет сохранена версия объекта)
- Срок хранения версий (собственно название говорит само за себя, сколько времени хранить версию объекта в базе)
Теперь по подробнее по поводу параметра "Когда сохранять версии"
У документов три варианта значения
У справочников и планов видов характеристик два варианта значений, т.к. у этих объектов, нет такого понятия как проведение.
- По умолчанию у всех объектов стоит вариант "Никогда", это говорит о том, что для объекта с таким значение параметра, версионирование не включено
- "При записи" название значение, также говорит само за себя. Версия сохраняется при каждом нажатии на кнопку "Записать".
Важный момент событие записать у документов возникает каждый раз при проведении документа
- "При проведении" это значение доступно только в документах и при выставлении этого значения, версия документа сохраняется только при проведении документа, или при очередных перепроведениях документов.
Теперь по поводу значений параметра "Срок хранения версий"
Тут всё просто
Варианты
- Бессрочно, (самый вредный для базы вариант), название значения говорит о том, что все сохраненные версии в базе будут храниться вечно
- За последнюю неделю, тут тоже понятно, что версия объекта будет храниться неделю, после чего удаляется регламентным заданием.
- Все остальные значения аналогичны предыдущему, отличие только в сроке хранения версии объекта (месяц, квартал, полгода, год)
С настройкой версионирования объектов необходимо быть предельно осторожно. Т.к. с одной стороны избыточность в объектах, по которым настроена версионирование может занимать приличное количество места в базе и второй момент процедуры записи и проведении объектов также страдают, т.к. подключается процесс сохранения версий объектов, который занимает какое-то время. С другой стороны отсутствие сохранение версии какого-нибудь из объектов базы, может не найти виновника косяка в конфликтном документе, справочнике. :)
И так попробуем настроить для примера версионирование для парочки объектов.
Первый это документ "Заказ клиента"
Будем сохранять документ при каждом проведении документа и хранить версии в течении месяца
Второй, это справочник "Номенклатура"
Будем сохранять документ при каждой записи товара и хранить версии в течении трех месяцев
Версионирование документов, пример
Переходим в журнал заказов клиентов и пробует что-то изменить в существующем документе и провести документ
Правим комментарий в документе и удаляем строку в табличной части с товарами
И так проводим документ, возвращаясь в журнал "Заказы клиентов"
Теперь чтобы нам посмотреть что происходило с документом нам необходимо выбрать в списке документов интересующий нас заказ, в главном меню журнала выбрать "Ещё", прокрутить список команд вниз и найти пункт "История изменений". Нажимаем на неё
В итоге мы зашли в историю изменений конкретно нашего заказа
В текущем списке мы видим что для нашего заказа присутствуют две версии объекта. Версия до изменения и версия после нашего изменения. Таких версий может быть ровно столько, сколько событий вызывающих запись очередной версии
Даже если вы просто открыли документ и закрыли документ по кнопке "Ок", т.к. не многие понимают различие между кнопка "Ок" и кнопкой "Закрыть"
При нажатии на кнопку "ОК" в документе возникает два события "Запись" и "Проведение документа", для справочника, только одно событие "Запись".
При нажатии на кнопку "Закрыть", событий ни каких не возникает и отражать версию программе нет никакого смысла
Теперь попробуем сравнить две версии нашего заказа. Для этого необходимо выбрать две строчки версий, при помощи клавиш Shift и стрелкой "Вниз"
И нажимаем на кнопку "Сравнить" на панели управления журнала со списком версий
После чего формируется отчет в котором указывается, что конкретно изменялось в документе
Из представленной информации явно видно что в процессе правки документа, была изменена сумма документа, внесён комментарий и удалена строка из табличной части "Товары". Даже указывается, что это была 6 строка :)
В самом низу отчета расписаны легенда цветов, какой цвет и что сообщает.
С таким отчетом можно решить и устранить и решить кучу вопросов, особенно если всех пользователей уведомить об этом, что все изменения в базе сохраняются.
Закрываем отчет, возвращаясь в список версий нашего заказа.
В журнале версий есть кнопка, которая позволяет вернуть документ первоначальный вариант. Т.е. выбираем версию к которой мы можем откатиться и после этого нажимаем на кнопку "Перейти на версию"
В итоге заказ перезаполняется в исходное состояние.
Опять-же не каждый может взять и посмотреть историю изменения объектов, для этого у пользователя должны быть соответствующие права.
Например пользователь Кладовщик (КисловАС) в демобазе с профилем "кладовщик" не имеет доступа в просмотру версий объектов
Ещё раз повторюсь, функционал версионирование объектов, может как помочь разобраться в проблемной ситуации, так и навредить. Поэтому к данному инструменту, обычно дают доступ тем людям, которые понимают что и для чего делают :)
Типичный вред, это откатить версию какого-нибудь документа реализации, который уже отражен в отчетности :)
Версионирование справочников, пример
Та-же самая история и с версионированием в справочниках
И так идем в карточку товара
И правим карточку, в моем примере, добавляю текстовое описание, присваиваю артикул товару. Записываю, закрываю карточку товара
Вернувшись в справочник "Номенклатура" выбираем строку нашего измененного товара, Главное меню табличной части формы, кнопка "Ещё", крутить список команд вниз. Находим пункт "История изменений"
Открывается журнал версий конкретно выбранного элемента справочника
Мы также можем выделить обе версии (Shift+кнопка вниз)
Нажимаем на кнопку "Сравнить". Открывается отчет по изменению версий объекта, который показывает что изменили в карточке товара
В нашем пример видно, что заполнили артикул и текстовое описание товара.
Важный момент по поводу срока хранения версий объектов. Важно обратить на то что у вас настроено и работает регламентное задание "Очистка устаревших версий объектов"
Иначе версии будут в базе оставаться все и навсегда в не зависимости от того, какие сроки хранения вы установили в настройках.
Ещё момент. Если вы попробуете посмотреть версии объекта, по которым не настроено версионирование. В нашем примере это справочник "Банковские счета", то при переходе по пункту "История изменений", вы увидите вот такое сообщение
Говорящее о том, что для этого типа объекта версий нет.
Описанная логика работы с версионированием, идентична и для других конфигураций, построенных на управляемых формах платформы 1С Предприятие 8.3.. таких как 1С Комплексная автоматизация 2.5, 1С Управление предприятием 2.5. 1С Бухгалтерия предприятия 8.3 и т.п.
На этом у меня всё надеюсь, что данный материал был вам полезен!
Ставьте лайки и подписывайтесь на канал
Всего вам доброго!
#1С #ВерсионированиеОбъектов