Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Ошибка SDBL при обновлении БП 3.0.64.54 => 3.0.65.80 на платформе 8.3.12.1595

Ошибка SDBL при обновлении БП 3.0.64.54 => 3.0.65.80 на платформе 8.3.12.1595
Я
   jk3
 
11.10.18 - 17:09
Для начала, сразу скажу, что ТИИ базы со всеми галками до обновления сделано, ошибок не выдает.
Конфа БП 3.0.64.54 полностью типовая.

cfu встает без проблем, конфа сохраняется, изменения применяются по F7 успешно.

Потом при обновлении в режиме предприятия падает вот так:
    {Справочник.ИдентификаторыОбъектовМетаданных.МодульМенеджера(1713)}: Ошибка при вызове метода контекста (Записать)
                ТаблицаОбъект.Записать();
    по причине:
    Ошибка при выполнении обработчика - 'ПередЗаписью'
    по причине:
    {ОбщийМодуль.СтандартныеПодсистемыСервер.Модуль(902)}: Ошибка при вызове метода контекста (Добавить)
                Объект.ОбменДанными.Получатели.Добавить(Получатель);
    по причине:
    Несоответствие типов (параметр номер '1')


Это Процедура ЗарегистрироватьОбъектНаВсехУзлах(Знач Объект, Знач ИмяПланаОбмена, Знач ВключаяГлавныйУзел = Истина) Экспорт

Падает при ИмяПланаОбмена = "Полный".
Если ИмяПланаОбмена = "АвтономнаяРабота", то проходит без проблем.

Код процедуры такой:
        ТекстЗапроса =
        "ВЫБРАТЬ
        |    ПланОбмена.Ссылка КАК Получатель
        |ИЗ
        |    ПланОбмена.[ИмяПланаОбмена] КАК ПланОбмена
        |ГДЕ
        |    ПланОбмена.Ссылка <> &ЭтотУзел
        |    И НЕ ПланОбмена.ПометкаУдаления";
        
        ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяПланаОбмена]", ИмяПланаОбмена);
        
        Запрос = Новый Запрос;
        Запрос.УстановитьПараметр("ЭтотУзел", ПланыОбмена[ИмяПланаОбмена].ЭтотУзел());// возвращает Неопределено, хотя должно возвращать ссылку на предопределенный элемент плана обмена

        Запрос.Текст = ТекстЗапроса;
        
        Получатели = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Получатель");
        
        ГлавныйУзел = ПланыОбмена.ГлавныйУзел();
        
        Для Каждого Получатель Из Получатели Цикл
            Если Не ВключаяГлавныйУзел И Получатель = ГлавныйУзел Тогда
                Продолжить;
            КонецЕсли;
            Объект.ОбменДанными.Получатели.Добавить(Получатель);// падает здесь

        КонецЦикла;


Если в отладчике попробовать получить значение переменной Получатель, возвращает "Ошибка SDBL: Таблица или поле ID не содержится в разделе FROM".

Эту ошибку можно обойти в отладчике, заменив значение ИмяПланаОбмена = "Полный" на "АвтономнаяРабота" в начале процедуры.

Но потом после того как обновление установится, при попытке сделать ТИИ с галкой "проверка логической целостности" сразу выдается ошибка в виде предупреждения и ТИИ останавливается:
    Microsoft SQL Server Native Client 11.0: Нарушено "PK___tmpRCT__80E37C38266317B0" ограничения PRIMARY KEY.
    Не удается вставить повторяющийся ключ в объект "dbo._tmpRCT".
    Повторяющееся значение ключа: (0x0000001b).
    HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=E, native=2627, line=1


Т.е. фактически на выходе получаем битую базу.
 
 
   МихаилМ
 
1 - 11.10.18 - 17:27
поняли. а что хотели? предупредть ?
   jk3
 
2 - 11.10.18 - 17:32
(1) Что делать чтобы обновилось без этой ошибки?

Всё делал на тестовой базе.
Рабочую, естественно, оставил пока на релизе 3.0.64.54.
Но рано или поздно придётся обновлять, а тут такая Ж.
Может быть кто-то уже столкнулся с тем же самым и смог победить.
   Amra
 
3 - 11.10.18 - 17:33
Более свежий релиз платформы попробуй, из 12ых
   dka80
 
4 - 11.10.18 - 17:34
(2) вы не первый, кто жалуется на ошибки при переходе на этот релиз. Поэтому лучше переждать
   jk3
 
5 - 11.10.18 - 17:39
Да, забыл уточнить, что никакого РИБ в помине нет. Это одиночная база.
   jk3
 
6 - 11.10.18 - 17:41
(3) Я понимаю, что это баг платформы, а не конфы.

Из более свежих только 2 версии 8.3.12.1616 и 8.3.12.1685.
В описании исправленных багов нечто отдаленно похожее нашёл, но не совсем оно:
При выполнении тестирования и исправления информационной базы, в которой определены разделители, при тестировании служебных таблиц некоторых объектов может происходить ошибка вида Ошибка SDBL: таблица или поле Fld2683 не содержится в разделе FROM (pos=7)

Исправлена: "Технологическая платформа", версия 8.3.12.1685
   VladZ
 
7 - 11.10.18 - 17:41
(0) Последнюю платформу (8.3.13) не пробовал ставить?
   jk3
 
8 - 11.10.18 - 17:46
(7) Я таким экстримом не занимаюсь))
Обновляю платформу только по надобности и не на самый последний релиз.
   elCust
 
9 - 11.10.18 - 17:54
Файловая без ошибок обновилась на 3.0.65.80.
Правда пустая.

Платформа 8.3.12.1616.
   jk3
 
10 - 11.10.18 - 17:57
(9) Демо-база БП у меня без ошибок обновилась до 3.0.65.80 на платформе 8.3.12.1595.
А вот копия реальной базы -- фиг.
 
 Рекламное место пустует
   МихаилМ
 
11 - 11.10.18 - 21:13
(10) значит ТЖ в руки и исправляйте ошибку.
   jk3
 
12 - 14.10.18 - 23:26
Та же самая ошибка на последней платформе 8.3.13.1513.

(11) Как надо настроить тех.журнал, чтобы попытаться самостоятельно отловить ошибку?
   hhhh
 
13 - 14.10.18 - 23:40
(12) всё ж таки проверьте планы обмена. наверняка левый узел там кто-то создал.
   MSOliver
 
14 - 15.10.18 - 04:32
Ошибка зарегистрирована?
   jk3
 
15 - 15.10.18 - 10:21
(13) Это я первым делом проверил.
В плане обмена "Полный" только один предопределенный элемент без кода, наименования, т.е. который не использовался никогда.
По остальным планам обмена на всякий случай тоже посмотрел.
У всех остальных, кроме 3-х (ниже), точно такая же картина с одним предопределенным элементом.
"Обновление информационной базы" -- кроме предопределенного еще 5 обычных элементов.
"Синхронизация данных через универсальный формат" -- 2 элемента: один предопределенный и еще один обычный элемент.
"Управление торговлей, редакция 11" -- 2 элемента: один предопределенный, а второй помечен на удаление.

   jk3
 
16 - 15.10.18 - 10:21
(14) Еще в субботу написал на v8, но, такое ощущение, что по выходным они почту не обрабатывают.
   jk3
 
17 - 15.10.18 - 10:44
Только вот сейчас ответили "Ваше письмо будет рассмотрено в ближайшее время".
   hhhh
 
18 - 15.10.18 - 10:55
(15) ну вот, тот что помечен на удаление, удалите нахрен. Бывших узлов не бывает.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует