СравнениеВерсийАвтомат (БСП)

Автор: 1С
ОбщийМодуль.РаботаСФайламиСлужебныйКлиент
БСП

Сравнение версий автомат.

Процедура СравнениеВерсийАвтомат(Результат, ПараметрыВыполнения) Экспорт
	
	Если Результат <> -1 Тогда
		Если ПараметрыВыполнения.ТекущийШаг = 1 Тогда
			Если Результат <> КодВозвратаДиалога.ОК Тогда
				Возврат;
			КонецЕсли;
			
			ПерсональныеНастройки = ПерсональныеНастройкиРаботыСФайлами();
			ПараметрыВыполнения.СпособСравненияВерсийФайлов = ПерсональныеНастройки.СпособСравненияВерсийФайлов;
			
			Если ПараметрыВыполнения.СпособСравненияВерсийФайлов = Неопределено Тогда
				Возврат;
			КонецЕсли;
			ПараметрыВыполнения.ТекущийШаг = 2;
			
		ИначеЕсли ПараметрыВыполнения.ТекущийШаг = 3 Тогда
			ПараметрыВыполнения.Результат1      = Результат.ФайлПолучен;
			ПараметрыВыполнения.ПолноеИмяФайла1 = Результат.ПолноеИмяФайла;
			ПараметрыВыполнения.ТекущийШаг = 4;
			
		ИначеЕсли ПараметрыВыполнения.ТекущийШаг = 4 Тогда
			ПараметрыВыполнения.Результат2      = Результат.ФайлПолучен;
			ПараметрыВыполнения.ПолноеИмяФайла2 = Результат.ПолноеИмяФайла;
			ПараметрыВыполнения.ТекущийШаг = 5;
		КонецЕсли;
	КонецЕсли;
	
	Если ПараметрыВыполнения.ТекущийШаг = 1 Тогда
		Если ПараметрыВыполнения.СпособСравненияВерсийФайлов = Неопределено Тогда
			
			ПерсональныеНастройки = ПерсональныеНастройкиРаботыСФайлами();
			ПараметрыВыполнения.СпособСравненияВерсийФайлов = ПерсональныеНастройки.СпособСравненияВерсийФайлов;
			
			Если ПараметрыВыполнения.СпособСравненияВерсийФайлов = Неопределено Тогда
				// Первый вызов - еще не инициализирована настройка.
				Обработчик = Новый ОписаниеОповещения("СравнениеВерсийАвтомат", ЭтотОбъект, ПараметрыВыполнения);
				ОткрытьФорму("Обработка.РаботаСФайлами.Форма.ВыборСпособаСравненияВерсий", ,
					ЭтотОбъект, , , , Обработчик);
				Возврат;
			КонецЕсли;
		КонецЕсли;
		ПараметрыВыполнения.ТекущийШаг = 2;
	КонецЕсли;
	
	Если ПараметрыВыполнения.ТекущийШаг = 2 Тогда
		
		Если ПараметрыВыполнения.Свойство("ВладелецВерсии") И ЗначениеЗаполнено(ПараметрыВыполнения.ВладелецВерсии) Тогда
			ПараметрыВыполнения.ДанныеФайла1 = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(
				ПараметрыВыполнения.ВладелецВерсии, ПараметрыВыполнения.Ссылка1, ПараметрыВыполнения.УникальныйИдентификатор);
			ПараметрыВыполнения.ДанныеФайла2 = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(
				ПараметрыВыполнения.ВладелецВерсии ,ПараметрыВыполнения.Ссылка2, ПараметрыВыполнения.УникальныйИдентификатор);
		Иначе
			ПараметрыВыполнения.ДанныеФайла1 = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(
				ПараметрыВыполнения.Ссылка1, Неопределено, ПараметрыВыполнения.УникальныйИдентификатор);
			ПараметрыВыполнения.ДанныеФайла2 = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(
				ПараметрыВыполнения.Ссылка2, Неопределено, ПараметрыВыполнения.УникальныйИдентификатор);
		КонецЕсли;
		
		ПараметрыВыполнения.ТекущийШаг = 3;
	КонецЕсли;
	
	Если ПараметрыВыполнения.ТекущийШаг = 3 Тогда
		Обработчик = Новый ОписаниеОповещения("СравнениеВерсийАвтомат", ЭтотОбъект, ПараметрыВыполнения);
		ПолучитьФайлВерсииВРабочийКаталог(
			Обработчик, ПараметрыВыполнения.ДанныеФайла1, ПараметрыВыполнения.ПолноеИмяФайла1);
		Возврат;
	КонецЕсли;
	
	Если ПараметрыВыполнения.ТекущийШаг = 4 Тогда
		Обработчик = Новый ОписаниеОповещения("СравнениеВерсийАвтомат", ЭтотОбъект, ПараметрыВыполнения);
		ПолучитьФайлВерсииВРабочийКаталог(
			Обработчик, ПараметрыВыполнения.ДанныеФайла2, ПараметрыВыполнения.ПолноеИмяФайла2);
		Возврат;
	КонецЕсли;
	
	Если ПараметрыВыполнения.ТекущийШаг = 5 Тогда
		Если ПараметрыВыполнения.Результат1 И ПараметрыВыполнения.Результат2 Тогда
			ШаблонЗаголовкаФайла = НСтр("ru='Файл №%1 (%2)'");
			ИмяФайла1 = ОбщегоНазначенияКлиентСервер.ПолучитьИмяСРасширением(
				ПараметрыВыполнения.ДанныеФайла1.ПолноеНаименованиеВерсии,
				ПараметрыВыполнения.ДанныеФайла1.Расширение);
			ЗаголовокФайла1 = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
				ШаблонЗаголовкаФайла,
				ИмяФайла1,
				ПараметрыВыполнения.ДанныеФайла1.НомерВерсии);
				
			ИмяФайла2 = ОбщегоНазначенияКлиентСервер.ПолучитьИмяСРасширением(
				ПараметрыВыполнения.ДанныеФайла2.ПолноеНаименованиеВерсии,
				ПараметрыВыполнения.ДанныеФайла2.Расширение);
			ЗаголовокФайла2 = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
				ШаблонЗаголовкаФайла,
				ИмяФайла2,
				ПараметрыВыполнения.ДанныеФайла2.НомерВерсии);
				
			Если ПараметрыВыполнения.ДанныеФайла1.НомерВерсии < ПараметрыВыполнения.ДанныеФайла2.НомерВерсии Тогда
				ПолноеИмяФайлаСлева  = ПараметрыВыполнения.ПолноеИмяФайла1;
				ЗаголовокФайлаСлева  = ЗаголовокФайла1;
				ПолноеИмяФайлаСправа = ПараметрыВыполнения.ПолноеИмяФайла2;
				ЗаголовокФайлаСправа = ЗаголовокФайла2;
			Иначе
				ПолноеИмяФайлаСлева  = ПараметрыВыполнения.ПолноеИмяФайла2;
				ЗаголовокФайлаСлева  = ЗаголовокФайла2;
				ПолноеИмяФайлаСправа = ПараметрыВыполнения.ПолноеИмяФайла1;
				ЗаголовокФайлаСправа = ЗаголовокФайла1;
			КонецЕсли;
				
			ВыполнитьСравнениеФайлов(
				ПолноеИмяФайлаСлева,
				ПолноеИмяФайлаСправа,
				ПараметрыВыполнения.СпособСравненияВерсийФайлов,
				ЗаголовокФайлаСлева,
				ЗаголовокФайлаСправа);
		КонецЕсли;
	КонецЕсли;
	
КонецПроцедуры

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ОткрытьОтчетСравненияВерсий (БСП)

СравнитьФайлы (БСП)

ВесВерсии (БСП)

ДанныеРазличаются (БСП)

ОткрытьОтчетПоИзменениям (БСП)

ПоставляемыйМакетИзменен (БСП)

ИР Запомнить для сравнения

ЭтоВидСравненияСписка (БСП)

ВыполнитьСравнениеФайлов (БСП)

Синтакс-помощник БСП