|
47 | 47 | // Сначала пытаемся использовать семвер |
48 | 48 | РезультатСравнения = Версии.СравнитьВерсии(УстановленнаяВерсия, ОписаниеЗависимости.МинимальнаяВерсия); |
49 | 49 | Исключение |
50 | | - // Если семвер не может обработать версию (например, 4-значную), используем простое сравнение |
51 | | - // Это базовый fallback для не-семвер версий |
52 | | - РезультатСравнения = СравнитьВерсииПростое(УстановленнаяВерсия, ОписаниеЗависимости.МинимальнаяВерсия); |
| 50 | + // Если семвер не может обработать версию (например, 4-значную), используем модуль РаботаСВерсиями |
| 51 | + РезультатСравнения = РаботаСВерсиями.СравнитьВерсии(УстановленнаяВерсия, ОписаниеЗависимости.МинимальнаяВерсия); |
53 | 52 | КонецПопытки; |
54 | 53 |
|
55 | 54 | УстановленаКорректнаяВерсия = РезультатСравнения >= 0; |
|
174 | 173 |
|
175 | 174 | КонецФункции |
176 | 175 |
|
177 | | -// Простое сравнение версий для не-семвер форматов (например, 4-значных версий) |
178 | | -// Возвращает 1, если ЭтаВерсия > БольшеЧемВерсия, -1 если ЭтаВерсия < БольшеЧемВерсия и 0, если они равны |
179 | | -Функция СравнитьВерсииПростое(Знач ЭтаВерсия, Знач БольшеЧемВерсия) |
180 | | - |
181 | | - // Разбиваем версии на компоненты |
182 | | - КомпонентыЭтойВерсии = СтрРазделить(ЭтаВерсия, "."); |
183 | | - КомпонентыБольшеЧемВерсии = СтрРазделить(БольшеЧемВерсия, "."); |
184 | | - |
185 | | - // Определяем максимальное количество компонентов |
186 | | - МаксКоличествоКомпонентов = Макс(КомпонентыЭтойВерсии.Количество(), КомпонентыБольшеЧемВерсии.Количество()); |
187 | | - |
188 | | - // Сравниваем по компонентам |
189 | | - Для Сч = 0 По МаксКоличествоКомпонентов - 1 Цикл |
190 | | - |
191 | | - КомпонентЭтаВерсия = 0; |
192 | | - КомпонентБольшеЧем = 0; |
193 | | - |
194 | | - Если Сч < КомпонентыЭтойВерсии.Количество() Тогда |
195 | | - Попытка |
196 | | - КомпонентЭтаВерсия = Число(КомпонентыЭтойВерсии[Сч]); |
197 | | - Исключение |
198 | | - КомпонентЭтаВерсия = 0; |
199 | | - КонецПопытки; |
200 | | - КонецЕсли; |
201 | | - |
202 | | - Если Сч < КомпонентыБольшеЧемВерсии.Количество() Тогда |
203 | | - Попытка |
204 | | - КомпонентБольшеЧем = Число(КомпонентыБольшеЧемВерсии[Сч]); |
205 | | - Исключение |
206 | | - КомпонентБольшеЧем = 0; |
207 | | - КонецПопытки; |
208 | | - КонецЕсли; |
209 | | - |
210 | | - Если КомпонентЭтаВерсия > КомпонентБольшеЧем Тогда |
211 | | - Возврат 1; |
212 | | - ИначеЕсли КомпонентЭтаВерсия < КомпонентБольшеЧем Тогда |
213 | | - Возврат -1; |
214 | | - КонецЕсли; |
215 | | - |
216 | | - КонецЦикла; |
217 | | - |
218 | | - Возврат 0; |
219 | | - |
220 | | -КонецФункции |
| 176 | + |
221 | 177 |
|
222 | 178 | Процедура ПриСозданииОбъекта(КаталогПоискаБиблиотек = "") |
223 | 179 |
|
|
0 commit comments