Сравнение версий автомат.
Процедура СравнениеВерсийАвтомат(Результат, ПараметрыВыполнения) Экспорт
Если Результат <> -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
///////////////////////////////////////////////////////////////////////////////////////////////////////
ОткрытьОтчетСравненияВерсий (БСП)
ОткрытьОтчетПоИзменениям (БСП)