1с ошибка тип не определен

1c ошибка тип не определен

Что я люблю в 1с, так это непонятные непредвиденные ошибки. На днях нужно было помочь человеку обновить старую бухгалтерию до современного релиза, я согласился. Как же я был удивлен когда 1с подкинула мне ошибку тип не определен.

Предистория: Бухгалтерия предприятия базовая 2.0.66.138 нужно обновить до актуального релиза бухгалтерии 3.0.

Каких-то особых выдумок я применять не стал, скачал обновление с https://releases.1c.ru/total и установил его. Я сильно удивился увидев ошибку тип не определен.

В начале я попробовал откатится к версии до обновления. Хорошо что я перед работами всегда делаю бекап. Сделал тестирование и исправление, проверил базу на повреждения, обновил повторно, но получил ту же ошибку. После этого решил посмотреть журнал регистрации и поправить ошибку в отладке.

Журнал регистрации всеми силами направлял меня в общий модуль управление доступом служебный.

тип не определен, журнал регистрации
тип не определен, журнал регистрации
Тип не определен
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(26085)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(25277)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(24362)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(23491)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(23243)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(22956)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(22337)}:
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(22217)}:
{РегистрСведений.ПараметрыОграниченияДоступа.МодульМенеджера(206)}:ДействующиеПараметры = УправлениеДоступомСлужебный.ДействующиеПараметрыОграниченияДоступа(
{РегистрСведений.ПараметрыОграниченияДоступа.МодульМенеджера(157)}:ЗапланироватьОбновление_00_00268406("ПереходНаВерсиюБСП_3.0.3.168");
{ОбщийМодуль.УправлениеДоступомСлужебный.Модуль(4489)}:
{(1)}:УправлениеДоступомСлужебный.ОбновитьВспомогательныеДанныеПоИзменениямКонфигурации()
{ОбщийМодуль.ОбщегоНазначения.Модуль(5113)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(6320)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.Процедура, ПараметрыОбработчика);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(2155)}:ВыполнитьОбработчикОбновления(Обработчик, ПараметрыОбработчика, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(1707)}:ИтерацияОбновления.ВыполненныеОбработчики = ВыполнитьИтерациюОбновления(ИтерацияОбновления, Параметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(93)}:ВыполнитьДействияПриОбновленииИнформационнойБазы(ПараметрыОбновления, ДополнительныеПараметры);
{ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(2289)}:Результат = ВыполнитьОбновлениеИнформационнойБазы(ПараметрыОбновления);
{(1)}:ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОбновлениеИнформационнойБазыВФоне(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(5113)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(1036)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1026)}:ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);

Перехожу в конфигуратор ищу ОбщийМодуль.УправлениеДоступомСлужебный и что же я вижу. Исходный текст модуля отсутствует, конфигурация на поддержке и снимать и ломать модуль для рядового обновления это точно ложный путь.

Общий Модуль Управление Доступом Служебный
Общий Модуль Управление Доступом Служебный

Пришло время изучать ошибку тип не определен, вот что удалось выяснить. Ссылки с решением долго не заставили себя ждать, давний баг, который привели в порядок, но старые версии БСП и старая версия платформы написаны так, словно это не ошибка.

https://bugboard.v8.1c.ru/error/000100482
https://partners.v8.1c.ru/forum/topic/1950512

В версиях платформы до 8.3.22.1704 конструкция Тип(«») (где в качестве аргумента — пустая строка), возвращала пустое значение типа Тип, в новой версии платформы попытка выполнения данной конструкции приводит к ошибке.

Причем если взять и разные версии платформы и потестировать, что будет возвращаться, поведение и тип возвращаемого значения меняется в каждой версии платформы. Причем если в старых платформах возвращается пустая строка или пустое значение типа, то начиная с 8.3.22.1704 конструкция просто приводит к вылету с ошибкой.

Я не стал выдумывать патчи и писать какие-то доработки, просто использовал более старую версию платформы и все заработало.

Какой можно сделать вывод из этой истории — нужно обновлять платформу и конфигурации вовремя!


Опубликовано

в

от

Комментарии

6 комментариев на ««1c ошибка тип не определен»»

  1. Аватар пользователя Тормоз
    Тормоз

    СПАСИБО ТЕБЕ ДОБРЫЙ ЧЕЛОВЕК!!!

  2. Аватар пользователя робин

    Спасибо! Отлично ! Помогло!

  3. Аватар пользователя Банзай
    Банзай

    ВЕРИВЕРИМАЧ!!!!

  4. Аватар пользователя Sergey
    Sergey

    Дай бог тебе здоровья, мил человек!

  5. Аватар пользователя Михаил
    Михаил

    Благодарю от всей души!

Добавить комментарий