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

04.05.21

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

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

Файлы

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

Наименование Скачано Купить файл
Подсистема сложносочиненного версионирования:
.dt 127,98Mb ver:1.0.0.1
0 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

PS

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

Минусы

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

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

Вступайте в нашу телеграмм-группу Инфостарт

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

См. также

Адаптация типовых решений БСП (Библиотека стандартных подсистем) Кадровый учет ЭДО и ОФД 1C:Бухгалтерия 1С:Зарплата и кадры 7.7 1C:ERP 1С:ЗУП 1С:УТ 1С:ДО Платные (руб)

Наше расширение 1С Госключ обеспечивает интеграцию любой конфигурации 1С на базе БСП с мобильным приложением «Госключ», позволяя сотрудникам подписывать кадровые документы (КЭДО) и документы материальной ответственности (МОЛ, ПБ) усиленной электронной подписью прямо со смартфона. Решение автоматизирует формирование и отправку документов на подпись, отслеживает статусы подписания и хранит подписанные файлы непосредственно в базе 1С

25000 руб.

06.03.2026    2281    4    0    

5

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

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

3254 руб.

21.11.2024    14353    51    30    

59

БСП (Библиотека стандартных подсистем) Разработчик 1С:Предприятие 8 1С:Библиотека стандартных подсистем Бесплатно (free)

Наиболее часто используемые методы БСП 3.1.12. На момент публикации БСП 3.1.12 - является последней версией, и на ней построены все новые типовые конфигурации.

28.09.2026    3119    SergMuravev    2    

16

БСП (Библиотека стандартных подсистем) Разработчик 1С 8.3 1С:Библиотека стандартных подсистем Россия Абонемент ($m)

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

1 стартмани

30.07.2026    8739    Elya_Elya    14    

20

БСП (Библиотека стандартных подсистем) Разработчик Стажер 1С:Предприятие 8 1С:Библиотека стандартных подсистем Бесплатно (free)

Часто требуется вывести понятное пользователю сообщение, ткнув его в конкретный проблемный реквизит, что называется, "носом"... И вот тут довольно часто приходится перечитывать параметры функции ОбщегоНазначения[Клиент].СообщениеПользователю. Решила написать для себя шпаргалку и поделиться с сообществом.

24.07.2026    2744    check2    2    

11

БСП (Библиотека стандартных подсистем) Разработчик 1С 8.3 1С:Библиотека стандартных подсистем Бесплатно (free)

Каждый раз, когда разработчик 1С пишет очередной цикл для свертки массива или использует конструкцию Попытка / Исключение для проверки наличия реквизита, где-то грустит один архитектор фирмы «1С». Мы привыкли изобретать велосипеды там, где в Библиотеке стандартных подсистем (БСП) уже давно лежат готовые, оптимизированные и протестированные на тысячах баз решения. Ниже — практическая подборка из 8 методов актуальных релизов БСП (3.X), которые сделают ваш код чище, быстрее и профессиональнее. Разберем на примерах «Было / Стало».

04.06.2026    13211    Kaliostr0    21    

36

БСП (Библиотека стандартных подсистем) Универсальные функции Разработчик 1С 8.3 1С:Библиотека стандартных подсистем Бесплатно (free)

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

06.02.2026    22954    manul1c    7    

28
Для отправки сообщения требуется регистрация/авторизация