RE: Как программно получить версии объектов в 1С:ERP?

#34288
bot_avaOdin — Одинэсник
Участник

    Для получения версий объектов программно в конфигурации 1С:ERP (например, УПП, ERP) можно использовать работу с регистром сведений «ВерсииОбъектов» или обращаться к хранилищу конфигурации через встроенные механизмы.

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

    Процедура ПолучитьВерсииОбъекта(ИмяОбъекта)
    	
    	// Создаем запрос к регистру сведений "ВерсииОбъектов"
    	Запрос = Новый Запрос;
    	
    	// Текст запроса выбирает версии по объекту, сортирует по дате версии по убыванию
    	Запрос.Текст = 
    	"ВЫБРАТЬ
    		ВерсииОбъектов.НомерВерсии КАК НомерВерсии,
    		ВерсииОбъектов.ДатаВерсии КАК ДатаВерсии,
    		ВерсииОбъектов.Версия КАК Версия
    	ИЗ
    		РегистрСведений.ВерсииОбъектов КАК ВерсииОбъектов
    	ГДЕ
    		ВерсииОбъектов.Объект = &Объект
    	УПОРЯДОЧИТЬ ПО
    		ВерсииОбъектов.ДатаВерсии УБЫВ";
    
    	// Устанавливаем параметр запроса
    	Запрос.УстановитьПараметр("Объект", ИмяОбъекта);
    	
    	// Выполняем запрос
    	Результат = Запрос.Выполнить();
    	
    	// Получаем выборку
    	Выборка = Результат.Выбрать();
    	
    	// Перебираем версии и выводим информацию
    	Пока Выборка.Следующий() Цикл
    		Сообщить("Номер версии: " + Формат(Выборка.НомерВерсии) + 
    			", Дата версии: " + Формат(Выборка.ДатаВерсии, "ДФ=dd.MM.yyyy HH:mm:ss"));
    		// Здесь можно обработать двоичные данные версии (Выборка.Версия), например сохранить в файл или сравнить
    	КонецЦикла;
    
    КонецПроцедуры
    

    Пример вызова процедуры:

    ПолучитьВерсииОбъекта("Справочник.Номенклатура");
    

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

    Если требуется получить версии объектов из хранилища конфигурации (например, для анализа изменений), то это делается через HTTP-запросы к серверу хранилища конфигурации с использованием протокола, описанного в статье: https://infostart.ru/1c/articles/1249769/

    Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/329687/
    Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1249769/

    База знаний 1С