Срочное новогоднее обновление базы УНФ 3.0.12
Клиент обратился с проблемой, что не может приходовать товары поставщика по ставке 22%. Хотя у него самого нет такой ставки при продаже.
В принципе, обновление требуется всего одно:

Но у клиента платформа 8.3.27.1688, а обновление подразумевает смену платформы на 8.5.
А смена редакции платформы с 8.3 на 8.5 — это риски, которые наложатся на проблемы переходного периода нового года. Поэтому попробуем обновить на последний релиз на 8.3.
Сейчас у клиента релиз УНФ 3.0.12.199 от 6 ноября 2025 года.
Ставка НДС 22% появилась с релиза 3.0.12.226 (еще на 8.3).
Поэтому пока обновимся на 3.0.12.237 — последний релиз на 8.3.
Блокируем базу Обновлятором:

Архивируем базу SQL-скриптом:
DECLARE @SrcDatabaseName AS SYSNAME
DECLARE @DstDatabaseName AS SYSNAME
DECLARE @SrcDatabaseNameLog AS SYSNAME
DECLARE @Backup AS NVARCHAR(MAX)
DECLARE @DstFileBase AS NVARCHAR(MAX)
DECLARE @DstFileLog AS NVARCHAR(MAX)
DECLARE @sqlquery AS NVARCHAR(MAX)
SET @SrcDatabaseName = 'unf' -- Имя исходной базы
SET @Backup = 'C:\backup\' + @SrcDatabaseName + '-26-01-03.bak' -- Куда записывать архив (файл)
BACKUP DATABASE @SrcDatabaseName TO DISK = @Backup WITH INIT, FORMAT, STATS = 1, CHECKSUM, COMPRESSION

Запускаем обновление Обновлятором:
Проверяем применимость расширений: всё применимо.
Не выполняется один обработчик:

Значение не является значением объектного типа (ВерсияПриложения)
{ОбщийМодуль.ИнтернетПоддержкаПользователей.Модуль(2387)}:ВерсияПриложения = ОбщегоНазначения.СистемнаяИнформацияКлиента().ВерсияПриложения;
{ОбщийМодуль.ИнтернетПоддержкаПользователей.Модуль(1223)}:Ответ.ПолучитьТелоКакДвоичныеДанные())),
{ОбщийМодуль.СПАРКРискиСервис.Модуль(3671)}:РезультатЗагрузкиСодержимого = ИнтернетПоддержкаПользователей.ЗагрузитьСодержимоеИзИнтернет(
{ОбщийМодуль.СПАРКФакторыРиска.Модуль(2256)}:СПАРКРискиСервис.ВызватьОперациюСервиса(
{ОбщийМодуль.СПАРКФакторыРиска.Модуль(2221)}:ВызватьОперациюКлассификаторФакторовРиска(Результат, ТелоОтвета);
{ОбщийМодуль.СПАРКФакторыРиска.Модуль(416)}:ОбновитьКлассификаторыФакторовРиска();
{(1)}:СПАРКФакторыРиска.НастройкаОбновленияФакторовРискаСПАРК(Параметры[0])
{ОбщийМодуль.ОбщегоНазначения.Модуль(6474)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")"; // АПК:487 Исполняемый код безопасен.
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(5261)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(КонтекстОбработчика.ИмяОбработчика, ПараметрыВызова);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(10866)}:ВыполнитьОтложенныйОбработчик(КонтекстОбработчика, АдресРезультата);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(613)}:ОбработчикиВыполнялись = ВыполнитьОтложенныйОбработчикОбновления(ПараметрыОбновления); // @skip-check query-in-loop - выполнение отложенных обработчиков.
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(2847)}:ВыполнитьОтложенноеОбновлениеСейчас(Параметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(111)}:ВыполнитьДействияПриОбновленииИнформационнойБазы(ПараметрыОбновления, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебныйВызовСервера.Модуль(20)}:Результат = ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]
Хотел написать патч:
&Вместо("СистемнаяИнформацияКлиента") Функция дор_СистемнаяИнформацияКлиента() Результат = ПродолжитьВызов(); Если ТипЗнч(Результат) = Тип("Структура") И Не Результат.Свойство("ВерсияПриложения") Тогда СИ = Новый СистемнаяИнформация(); Результат.Вставить(СИ.ВерсияПриложения); КонецЕсли; Возврат Результат; КонецФункции
Но там возвращается не структура, а сама системная информация, решил не заморачиваться, просто прогнорировать, все-таки не особо важный раздел:


Просто поменял на Выполнялся:

Открываем поступление и проверяем наличие ставки НДС 22%, есть:

Среда: УНФ 3.0.12.199 Объем: 1 час.




Ну да, а заглянуть в Исправление ошибок версии и установить патч EF_00_00802077 от 27.11.2025г.
Можно, а зачем?
вот сразу видно филосовский подход. действительно, некоторые ошибки 1с можно игнорировать, настолько мы уже к ним привычны. Настолько 1с уже покрыла себя позором.