Подсистема сложносочиненного версионирования

04.05.21

Разработка - БСП (Библиотека стандартных подсистем)

Статья описывает мою личную боль при работе в Управление холдингом, редакция 3.0, и может не совпадать с вашими ощущениями. Прощу учитывать, что это лишь мысленный эксперимент. В качестве эксперимента поставил себе задачу: "Как отслеживать изменения, для объектов, которые состоят из нескольких других объектов?".

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Подсистема сложносочиненного версионирования:
.dt 127,98Mb ver:1.0.0.1
0
0 Скачать (1 SM) Купить за 1 850 руб.

Рассмотрим несколько примеров

Справочник "Валюты" и его реквизиты:

На форме видим элементы, ссылающиеся только на значения реквизитов объекта:

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

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

Рассмотрим другой пример, справочник "Шаблоны трансформационных корректировок" и его реквизиты:

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

Форма справочника содержит табличную часть "Шаблоны проводок", которой нет в дереве конфигурации:

Путь к данным у табличной части "ШаблоныПроводок":

"ШаблоныПроводок" - это таблица значений, которая собирается при открытии формы и записывается соответственно при записи формы. Данные выбираются запросом:

И из запроса понятно, что почти все элементы формы не являются реквизитами объекта справочника "Шаблоны трансформационных корректировок".

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

Но ведь! Это один объект, почему же так сложно? - потому что произошла протечка абстракции.

Решение, подсистема "Версионирование сложносочиненных объектов"

90% кода, это подсистема "Версионирования объектов", спасибо 1С за отличную подсистему. Я только скопировал объекты и код, адаптировав под свой эксперимент, чтобы решения не пересекались.

  1. Добавил подсистему "Версионирование сложносочиненных объектов". Состав подсистемы и пример работы можно самостоятельно посмотреть в демо примере на базе "Библиотека стандартных подсистем", редакция 3.1. т.е. Я скопировал общую команду для вызова формы истории хранимых объектов, регистр сведений для хранения версий, общие модули и так далее. Все переименовал и чуть-чуть изменил под себя. По-этому не буду подробно описывать каждую процедуру, все есть в моем демо примере на GitHub или в этой статье;

  2. В форму объект который требуется контролировать, добавил код перед записью на сервере;

  1. В Регистре сведений и в общей команде установил объектами мой справочник, который хочу контролировать;

  2. В предприятии открыл подсистему "Дополнительные служебные подсистемы", открыл форму "Дополнительная форма настройки" и установил флаг "Использовать версионирование сложносочиненных объектов". Готово.

Кнопка вызова версий

Информация о версии

Сравнение версий

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

PS

Коллеги, я согласен со всеми вашими доводами, за то, что мое решение не до конца решает задачу, по этому это лишь эксперимент. Буду рад вашей критике и идеям как лучше реализовать такое версионирование.

Минусы

  • Пользователь может зайти в регистр сведений и внести правки в него. В таком случаи факт изменения зафиксируется только при следующей записи (Но! Много таких пользователей вы знаете? Кроме программистов);
  • Если реализована сложная логика при записи, то при групповом изменении объекта (Обработкой) могут быть изменены записи реестров, при этом новая версия не зафиксируется, потому что запись версии я вызываю из формы объекта, а как по другому? Мне ведь нужен универсальный механизм, который бы записывал данные, которые инициализируются только в открытой форме;
  • А в УХ если забыть расставить везде признаки модификации, то даже из формы пользователь сможет сохранить данные в регистр, без записи объекта. Но это скорее минус разработчиков УХ, данную проблему можно обойти - записывая связанные регистры только вместе с записью объекта.

Ссылка на репозиторий https://github.com/johnnyshut/1c-versioning-complex-objects

Версионирование УправлениеХолдингом БСП

См. также

БСП (Библиотека стандартных подсистем) Программист Платные (руб)

Синтакс-помощник БСП - cправочник по библиотеке стандартных подсистем. В состав справочника входит описание экспортных процедур и функций, размещенных в областях кода ПрограммныйИнтерфейс БСП.

1800 руб.

21.11.2024    159    1    0    

2

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Бесплатно (free)

В статье описан алгоритм для включения документа или справочника в систему БСП. Будет полезно программистам 1С, начинающим работать с БСП.

24.10.2024    1130    PROSTO-1C    0    

13

БСП (Библиотека стандартных подсистем) Работа с интерфейсом Программист Платформа 1С v8.3 Бесплатно (free)

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

08.10.2024    1007    PROSTO-1C    4    

12

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

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

04.10.2024    1856    MadRave    11    

24

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

Пример отслеживания прогресса фонового выполнения дополнительной обработки с использованием программного интерфейса длительных операций БСП.

10.09.2024    1849    MadRave    1    

17

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

А что, если долгожданная реализация Паузы в 1С смутно напоминает старую, проверенную? А?!

06.09.2024    1267    n_mezentsev    10    

8

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Добавим дополнительные свойства в новый документ средствами БСП

02.09.2024    4125    John_d    10    

52

БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Бесплатно (free)

Всё больше организаций выбирает для серверов под 1С операционные системы Linux. Одним из отличий систем Windows и Linux является отсутствие COM объектов, которые зачастую использовались для формирования печатных форм офисных документов (Word). Конечно, можно выполнять печать и на клиенте, но есть риск импортозамещения. В работе у меня случались проблемы с зависанием процесса Word, поэтому я не люблю его использовать.

29.07.2024    5379    PROSTO-1C    12    

52
Оставьте свое сообщение