Добавление объекта в подсистему "Версионирование объектов" на расширении в ЗУП

30.01.26

Разработка - Механизмы типовых конфигураций

Описываю мой опыт подключения документа к подсистеме "Версионирование объектов" в ЗУП 3.1.

Здоровья всем страждущим!

Давеча необходимо было добавить документу версионирование.

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

1. Начнем с базы, согласно ИТС. Для документов захватываем на расширении только определяемый тип "ВерсионируемыеДанные" (тип ссылка).

Если у вас другой тип объекта, например Справочник, тогда также захватываем "ВерсионируемыеДанныеОбъект" (тип объект).

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

2. Во всех формах версионируемых объектов и документов в обработчике "ПриСозданииНаСервере" добавить фрагмент кода:

// СтандартныеПодсистемы.ВерсионированиеОбъектов
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов

Во всех модулях менеджера объектов (элементов), для которых встраивается версионирование, добавить фрагмент кода:

// СтандартныеПодсистемы.ВерсионированиеОбъектов

// Определяет настройки объекта для подсистемы ВерсионированиеОбъектов.
//
// Параметры:
//  Настройки - Структура - настройки подсистемы.
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт

КонецПроцедуры

// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов

Если необходимо скрыть из отчетов по версиям технические реквизиты и табличные части, необходимо в процедуру определения настроек модуля менеджера добавить:

Настройки.ПриПолученииСлужебныхРеквизитов = Истина;

И в том же модуле менеджера:

// Ограничивает видимость реквизитов объекта в отчете по версии.
//
// Параметры:
//  Реквизиты - Массив - список имен реквизитов объекта.
Процедура ПриПолученииСлужебныхРеквизитов(Реквизиты) Экспорт
    Реквизиты.Добавить("ИмяРеквизита"); // реквизит объекта
    Реквизиты.Добавить("ИмяТабличнойЧасти.*"); // табличная часть объекта
КонецПроцедуры
// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов

Конец базы :)

3. Захватываем подписку на событие "ЗаписатьВерсиюДокументаЗарплатаКадрыБазовая" и в источнике указываем наши объекты.

4. Для корректной работы формы регистра сведений "НастройкиВерсионированияОбъектов" захватываем его форму списка "НастройкиХраненияИстории" на расширении, далее захватываем в расширение реквизит формы "ДеревоОбъектовМетаданных" и расширяем колонку реквизита "ТипОбъекта" нашими объектами.

5. Захватываем в общем модуле "ОбщегоНазначения" функцию "ИдентификаторОбъектаМетаданных" и дополняем следующим кодом (взято из указанной выше статьи):

&ИзменениеИКонтроль("ИдентификаторОбъектаМетаданных")
Функция РасширениеА_ИдентификаторОбъектаМетаданных(ОписаниеОбъектаМетаданных, ВызыватьИсключение)
	
	#Вставка
	Если ТипЗнч(ОписаниеОбъектаМетаданных) = Тип("Строка") Тогда
		ИдентификаторРасширения = Справочники.ИдентификаторыОбъектовРасширений.НайтиПоНаименованию(ОписаниеОбъектаМетаданных, Истина);
		Если ЗначениеЗаполнено(ИдентификаторРасширения) Тогда
			Возврат ИдентификаторРасширения;
		КонецЕсли;
	КонецЕсли;
	#КонецВставки
	
	Возврат Справочники.ИдентификаторыОбъектовМетаданных.ИдентификаторОбъектаМетаданных(
	ОписаниеОбъектаМетаданных, ВызыватьИсключение);

КонецФункции

В конечном итоге, не считая ваших объектов, состав расширения следующий (в скриншоте я работаю с хранилищем):

 

 

Тестировал на 1С:Предприятие 8.3 (8.3.26.1656), Зарплата и управление персоналом КОРП, редакция 3.1 (3.1.36.39) .

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

БСП Версионирование ЗУП Расширение

См. также

Механизмы типовых конфигураций Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Россия Бесплатно (free)

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

11.08.2025    5156    user1988284    0    

18

Механизмы типовых конфигураций Программист 1С:Предприятие 8 Бесплатно (free)

Каждый, кто работал с кадровыми отчетами в ЗУП, ERP или УХ, сталкивался с механизмом представлений – странным кодом запроса, где поля отображаются пустыми ссылками, а в названии временной таблицы есть слово «Представление». В статье разберем, что такое представления и как ими пользоваться. Больше не нужно ломать голову над тем, откуда и как правильно получать данные. Механизм представлений сделает это за вас.

08.07.2025    10854    user2012581    55    

59

Механизмы типовых конфигураций Программист Стажер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Бесплатно (free)

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

02.06.2025    2534    lkey    2    

6

Работа с интерфейсом БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Программист 1С:Предприятие 8 1C:ERP Бесплатно (free)

В этой статье я расскажу, как в конфигурации 1С:ERP 2.5 при начале работы системы настроить открытие своих нетиповых форм (в том числе и из внешних обработок). Данную методику можно использовать как на тонком клиенте, так и на мобильном или веб-клиенте, а также в мобильном приложении.

12.05.2025    5960    AlexeyPROSTO_1C    3    

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