Различаются версии корреспондента. Проверка на различие версии корреспондента в правилах текущей и другой программы.
// Проверка на различие версии корреспондента в правилах текущей и другой программы.
//
Функция РазличаютсяВерсииКорреспондента(ИмяПланаОбмена, КлючСообщенияЖурналаРегистрации, ВерсияВЭтойПрограмме,
ВерсияВДругойПрограмме, ТекстСообщения, ПараметрыВнешнегоСоединения = Неопределено) Экспорт
ВерсияВЭтойПрограмме = ?(ЗначениеЗаполнено(ВерсияВЭтойПрограмме), ВерсияВЭтойПрограмме, ВерсияКорреспондентаВПравилах(ИмяПланаОбмена));
Если ЗначениеЗаполнено(ВерсияВЭтойПрограмме) И ЗначениеЗаполнено(ВерсияВДругойПрограмме)
И ЗначениеНастройкиПланаОбмена(ИмяПланаОбмена, "ПредупреждатьОНесоответствииВерсийПравилОбмена") Тогда
ВерсияВЭтойПрограммеБезНомераСборки = ОбщегоНазначенияКлиентСервер.ВерсияКонфигурацииБезНомераСборки(ВерсияВЭтойПрограмме);
ВерсияВДругойПрограммеБезНомераСборки = ОбщегоНазначенияКлиентСервер.ВерсияКонфигурацииБезНомераСборки(ВерсияВДругойПрограмме);
Если ВерсияВЭтойПрограммеБезНомераСборки <> ВерсияВДругойПрограммеБезНомераСборки Тогда
СинонимПланаОбмена = Метаданные.ПланыОбмена[ИмяПланаОбмена].Синоним;
ШаблонСообщения = НСтр("ru = 'Синхронизация данных может быть выполнена некорректно, т.к. версия программы ""%1"" (%2) в правилах конвертации этой программы отличается от версии %3 в правилах конвертации в другой программе. Убедитесь, что загружены актуальные правила, подходящие для используемых версий обеих программ.'");
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, СинонимПланаОбмена, ВерсияВЭтойПрограммеБезНомераСборки, ВерсияВДругойПрограммеБезНомераСборки);
ЗаписьЖурналаРегистрации(КлючСообщенияЖурналаРегистрации, УровеньЖурналаРегистрации.Предупреждение,,, ТекстСообщения);
Если ПараметрыВнешнегоСоединения <> Неопределено
И ОбщегоНазначенияКлиентСервер.СравнитьВерсии("2.2.3.18", ПараметрыВнешнегоСоединения.ВерсияБСППоВнешнемуСоединению) <= 0
И ПараметрыВнешнегоСоединения.ВнешнееСоединение.ОбменДаннымиВнешнееСоединение.ПредупреждатьОНесоответствииВерсийПравилОбмена(ИмяПланаОбмена) Тогда
СинонимПланаОбменаДругойПрограммы = ПараметрыВнешнегоСоединения.УзелИнформационнойБазы.Метаданные().Синоним;
ТекстСообщенияВнешнееСоединение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения,
СинонимПланаОбменаДругойПрограммы, ВерсияВДругойПрограммеБезНомераСборки, ВерсияВЭтойПрограммеБезНомераСборки);
ПараметрыВнешнегоСоединения.ВнешнееСоединение.ЗаписьЖурналаРегистрации(ПараметрыВнешнегоСоединения.КлючСообщенияЖурналаРегистрации,
ПараметрыВнешнегоСоединения.ВнешнееСоединение.УровеньЖурналаРегистрации.Предупреждение,,, ТекстСообщенияВнешнееСоединение);
КонецЕсли;
Если ПараметрыСеанса.ОшибкаРасхожденияВерсийПриПолученииДанных.ПроверятьРасхождениеВерсий Тогда
СтруктураПроверки = Новый Структура(ПараметрыСеанса.ОшибкаРасхожденияВерсийПриПолученииДанных);
СтруктураПроверки.ЕстьОшибка = Истина;
СтруктураПроверки.ТекстОшибки = ТекстСообщения;
СтруктураПроверки.ПроверятьРасхождениеВерсий = Ложь;
ПараметрыСеанса.ОшибкаРасхожденияВерсийПриПолученииДанных = Новый ФиксированнаяСтруктура(СтруктураПроверки);
Возврат Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Возврат Ложь;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ВерсияИнтерфейсаКорреспондента (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)