Ошибка при обновлении конфигурации "Бухгалтерия для Украины" с 1.2 на 2.0

1. macho210386 13 27.01.20 15:32 Сейчас в теме
Обновляю конфигурацию "Бухгалтерия для Украины" (конфигурация снята с поддержки) с версии 1.2.51.1 на 2.0.19.1.
Платформа: 1С:Предприятие 8.3 (8.3.14.1854)
База файловая.

В процессе обновления выдаёт ошибку:
В процессе обновления информационной базы произошла критическая ошибка
по причине:
Ошибка SDBL:
Таблица или поле parentPredefinedID не содержится в разделе FROM

Базу тестировал ошибок нет.
Если базу (версии 1.2.51.1) внести изменение в конфигурацию и сохранить данная ошибка не повторяется.
Судя по всему проблема с предопределенными элементами справочника или плана видов характеристик, только как понять какого справочника или плана видов характеристик?!
По теме из базы знаний
Найденные решения
7. macho210386 13 29.01.20 11:31 Сейчас в теме
Нашёл решение: включаем технический журнал: файл log.cfg

<config xmlns="http://v8.1c.ru/v8/tech-log">
        <dump create="true" location="C:\dumps" prntscrn="true" type="2"/>
        <log history="72" location="C:\logs">
		<event><eq property="name" value="EXCP"/></event>
                <event><eq property="name" value="EXCPCNTX"/></event>
                <event><eq property="name" value="PROC"/></event>
                <event><eq property="name" value="ADMIN"/></event>       
                <event><eq property="name" value="MEM"/></event>       
                <event><eq property="name" value="LEAKS"/></event>       
                <property name="all"/>
        </log>
</config>
Показать


Далее пытаемся обновить конфигурацию - ошибка. Затем журнале ищем эту ошибку:

37:52.762602-0,EXCP,4,process=1cv8,OSThread=12192,Usr=DefUser,DBMS=DBV8DBEng,DataBase=Переход 1.2 на 2,Exception=DataBaseException,Descr='Ошибка SDBL:
Таблица или поле parentPredefinedID не содержится в разделе FR OM'
37:52.762603-0,EXCPCNTX,0,ClientComputerName=PC,ServerComputerName=PC,UserName=,ConnectString='File="C:\Переход 1.2 на 2.0";'
37:52.762604-3,EXCPCNTX,3,SrcName=SDBL,process=1cv8,OSThread=12192,Usr=DefUser,DBMS=DBV8DBEng,DataBase=Переход 1.2 на 2,Trans=0,Sdbl='SEL ECT T1.PredefinedID PredefinedID, T1.Description Description, T1.ID ID, T2.ID ParentID
INTO #mdUpdated_O
FR OM #mdUpdated_O2 T1
INNER JOIN Reference127 T2
ON T1.parentPredefinedID = T2.PredefinedID
WH ERE T1.parentPredefinedID <> 0x00000000000000000000000000000000 AND T2.ID IS NOT NULL'


Из ходя из запроса я понял, что проблема в справочнике Reference127 (текст "INNER JOIN Reference127");

Далее я использовал обработку со следующим кодом:

Процедура КнопкаВыполнитьНажатие(Кнопка)
	
        //Названия - -это таблица значений на форме
	Названия.Очистить();

	МассивИменМетаданных = Новый Массив();
	Для каждого Объект Из Метаданные.Справочники Цикл
		МассивИменМетаданных.Добавить(Объект.ПолноеИмя());
	КонецЦикла;

	// Таблица значений, содержащая таблицы указанного объекта.
	Таблицы = ПолучитьСтруктуруХраненияБазыДанных(МассивИменМетаданных);
	Для Каждого Таблица Из Таблицы Цикл

		НоваяСтрока = Названия.Добавить();
		НоваяСтрока.Справочник = Таблица.Метаданные;
		НоваяСтрока.Название = Таблица.ИмяТаблицыХранения;

	КонецЦикла;
	
КонецПроцедуры
Показать


И сформировав список справочников, я нашёл, что это справочник "Способы отражения зарплаты в регл. учете". В 1.2 иерархия была отключена, а в 2.0 включена. Тогда в ред. 1.2 я включил иерархию в данном справочнике и обновление конфигурации прошло успешно.
krava_vlad; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. acanta 27.01.20 15:35 Сейчас в теме
Если вы это делаете на 32х версии виндоус, попробуйте на 64х.
3. macho210386 13 27.01.20 15:38 Сейчас в теме
(2) вы имеете ввиду версию платформы 1С?
6. macho210386 13 27.01.20 16:01 Сейчас в теме
4. acanta 27.01.20 15:38 Сейчас в теме
5. macho210386 13 27.01.20 15:39 Сейчас в теме
7. macho210386 13 29.01.20 11:31 Сейчас в теме
Нашёл решение: включаем технический журнал: файл log.cfg

<config xmlns="http://v8.1c.ru/v8/tech-log">
        <dump create="true" location="C:\dumps" prntscrn="true" type="2"/>
        <log history="72" location="C:\logs">
		<event><eq property="name" value="EXCP"/></event>
                <event><eq property="name" value="EXCPCNTX"/></event>
                <event><eq property="name" value="PROC"/></event>
                <event><eq property="name" value="ADMIN"/></event>       
                <event><eq property="name" value="MEM"/></event>       
                <event><eq property="name" value="LEAKS"/></event>       
                <property name="all"/>
        </log>
</config>
Показать


Далее пытаемся обновить конфигурацию - ошибка. Затем журнале ищем эту ошибку:

37:52.762602-0,EXCP,4,process=1cv8,OSThread=12192,Usr=DefUser,DBMS=DBV8DBEng,DataBase=Переход 1.2 на 2,Exception=DataBaseException,Descr='Ошибка SDBL:
Таблица или поле parentPredefinedID не содержится в разделе FR OM'
37:52.762603-0,EXCPCNTX,0,ClientComputerName=PC,ServerComputerName=PC,UserName=,ConnectString='File="C:\Переход 1.2 на 2.0";'
37:52.762604-3,EXCPCNTX,3,SrcName=SDBL,process=1cv8,OSThread=12192,Usr=DefUser,DBMS=DBV8DBEng,DataBase=Переход 1.2 на 2,Trans=0,Sdbl='SEL ECT T1.PredefinedID PredefinedID, T1.Description Description, T1.ID ID, T2.ID ParentID
INTO #mdUpdated_O
FR OM #mdUpdated_O2 T1
INNER JOIN Reference127 T2
ON T1.parentPredefinedID = T2.PredefinedID
WH ERE T1.parentPredefinedID <> 0x00000000000000000000000000000000 AND T2.ID IS NOT NULL'


Из ходя из запроса я понял, что проблема в справочнике Reference127 (текст "INNER JOIN Reference127");

Далее я использовал обработку со следующим кодом:

Процедура КнопкаВыполнитьНажатие(Кнопка)
	
        //Названия - -это таблица значений на форме
	Названия.Очистить();

	МассивИменМетаданных = Новый Массив();
	Для каждого Объект Из Метаданные.Справочники Цикл
		МассивИменМетаданных.Добавить(Объект.ПолноеИмя());
	КонецЦикла;

	// Таблица значений, содержащая таблицы указанного объекта.
	Таблицы = ПолучитьСтруктуруХраненияБазыДанных(МассивИменМетаданных);
	Для Каждого Таблица Из Таблицы Цикл

		НоваяСтрока = Названия.Добавить();
		НоваяСтрока.Справочник = Таблица.Метаданные;
		НоваяСтрока.Название = Таблица.ИмяТаблицыХранения;

	КонецЦикла;
	
КонецПроцедуры
Показать


И сформировав список справочников, я нашёл, что это справочник "Способы отражения зарплаты в регл. учете". В 1.2 иерархия была отключена, а в 2.0 включена. Тогда в ред. 1.2 я включил иерархию в данном справочнике и обновление конфигурации прошло успешно.
krava_vlad; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот