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

Как программно полу...
 

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


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

приведи пример кода ЕРП



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

Для получения версий объектов программно в конфигурации 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/



   
ОтветитьЦитата