Имя: Пароль:
1C
 
Ошибка при обновлении УПП: Несовместимые типы "ССЫЛКА"
0 Косой
 
27.05.08
11:19
Ситуация следующая: Выполняется обновление информационной базы после обновления релиза, отрабатывает Обработка "Запуск пакета обработок обновления конфигурации", доходит да места:

: Заполнение измерений Контрагент, Организация регистров учета взаиморасчетов

и возникает ошибка:
{ОбщийМодуль.ОбновлениеИнформационнойБазы(3011)}: Ошибка при вызове метода контекста (Выполнить): {(8, 30)}: Несовместимые типы "ССЫЛКА"
ИЛИ РегистрУчета.Регистратор <<?>>ССЫЛКА Документ.ВводНачальныхОстатковПоВзаиморасчетам
   Возврат Запрос.Выполнить().Выбрать();
по причине:
{(8, 30)}: Несовместимые типы "ССЫЛКА"
ИЛИ РегистрУчета.Регистратор <<?>>ССЫЛКА Документ.ВводНачальныхОстатковПоВзаиморасчетам

в процедуре:
// Возвращает список документов, для которых нужно обновлять движения регистров учета взаиморасчетов
Функция ПолучитьВыборкуДокументовВзаиморасчеты(СсылкаНач, ИмяРегистра)
   
   Если ИмяРегистра = "РасчетыПоПриобретениюОрганизации" или ИмяРегистра="РасчетыПоРеализацииОрганизации" Тогда
       Если ИмяРегистра = "РасчетыПоПриобретениюОрганизации" Тогда
           ВыборВидОперации = "РегистрУчета.Регистратор ССЫЛКА Документ.КорректировкаЗаписейРегистров
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.АвансовыйОтчет
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ВозвратТоваровПоставщикуИзНТТ
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ОтчетКомиссионераОПродажах
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ПолучениеУслугПоПереработке
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ПоступлениеНМА";
       Иначе
           ВыборВидОперации = "РегистрУчета.Регистратор ССЫЛКА Документ.КорректировкаЗаписейРегистров
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.АктОбОказанииПроизводственныхУслуг
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ПередачаОС
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ОтчетКомиссионераОПродажах
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.РеализацияУслугПоПереработке
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ПередачаНМА";
       КонецЕсли;
       
       ТекстЗапроса = "
       |ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 500
       |    РегистрУчета.Регистратор КАК Регистратор,
       |    ВЫБОР КОГДА "+ВыборВидОперации+" ТОГДА """"
       |    Иначе РегистрУчета.Регистратор.ВидОперации КОНЕЦ КАК ВидОперации
       |ИЗ
       |    РегистрСведений." + ИмяРегистра + " КАК РегистрУчета
       |ГДЕ
       |    (РегистрУчета.Документ.Дата = &ПустаяДата или РегистрУчета.Документ.Дата is null) "+
       ?(СсылкаНач = Неопределено,"","
       |    И РегистрУчета.Регистратор > &СсылкаНач")+"
       |Упорядочить по Регистратор
       |";

   Иначе    
       
       Если ИмяРегистра = "ВзаиморасчетыСКонтрагентами" Тогда
           ВыборОрганизация = "РегистрУчета.Регистратор ССЫЛКА Документ.КорректировкаЗаписейРегистров
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ПереоценкаВалютныхСредств";
       ИначеЕсли ИмяРегистра = "РасчетыСКонтрагентами"    Тогда
           ВыборОрганизация = "РегистрУчета.Регистратор ССЫЛКА Документ.КорректировкаЗаписейРегистров
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ПереоценкаВалютныхСредств
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ЗакрытиеЗаказовПокупателей
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ЗакрытиеЗаказовПоставщикам
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ЗакрытиеЗаявокНаРасходованиеСредств
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ЗакрытиеПланируемыхПоступленийДенежныхСредств
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.КорректировкаЗаказаПокупателя
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.КорректировкаЗаказаПоставщику";
       Иначе
           ВыборОрганизация = "РегистрУчета.Регистратор ССЫЛКА Документ.КорректировкаЗаписейРегистров";
       КонецЕсли;
       ВыборКонтрагент = "";
       Если ИмяРегистра = "РасчетыПоПриобретениюВУсловныхЕдиницахОрганизации" или ИмяРегистра = "РасчетыПоРеализацииВУсловныхЕдиницахОрганизации" Тогда
           ВыборКонтрагент = "РегистрУчета.Регистратор ССЫЛКА Документ.КорректировкаЗаписейРегистров
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ВводНачальныхОстатковНДС
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ВводНачальныхОстатковПоВзаиморасчетам
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.КорректировкаДолга";
           Если ИмяРегистра = "РасчетыПоПриобретениюВУсловныхЕдиницахОрганизации"    Тогда
               ВыборКонтрагент = ВыборКонтрагент+" ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.АвансовыйОтчет";
           КонецЕсли;
       ИначеЕсли  ИмяРегистра = "ВзаиморасчетыСКонтрагентами" Тогда
           ВыборКонтрагент = "РегистрУчета.Регистратор ССЫЛКА Документ.КорректировкаЗаписейРегистров
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.АвансовыйОтчет
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ВводНачальныхОстатковПоВзаиморасчетам
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.КорректировкаДолга
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ПереоценкаВалютныхСредств";
       ИначеЕсли  ИмяРегистра = "ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов" Тогда
            ВыборКонтрагент = "РегистрУчета.Регистратор ССЫЛКА Документ.КорректировкаЗаписейРегистров
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.АвансовыйОтчет
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ВводНачальныхОстатковПоВзаиморасчетам
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.КорректировкаДолга";
       ИначеЕсли ИмяРегистра = "РасчетыСКонтрагентами"    Тогда
           ВыборКонтрагент = "РегистрУчета.Регистратор ССЫЛКА Документ.КорректировкаЗаписейРегистров
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.АвансовыйОтчет
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ВводНачальныхОстатковПоВзаиморасчетам
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.КорректировкаДолга
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ПереоценкаВалютныхСредств
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ЗакрытиеЗаказовПокупателей
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ЗакрытиеЗаказовПоставщикам
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ЗакрытиеЗаявокНаРасходованиеСредств
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.ЗакрытиеПланируемыхПоступленийДенежныхСредств
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.КорректировкаЗаказаПокупателя
           |ИЛИ РегистрУчета.Регистратор ССЫЛКА Документ.КорректировкаЗаказаПоставщику";
       Иначе
           ВыборКонтрагент = "РегистрУчета.Регистратор ССЫЛКА Документ.КорректировкаЗаписейРегистров";
       КонецЕсли;
       
       
       ТекстЗапроса = "
       |ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 500
       |    РегистрУчета.Регистратор КАК Регистратор,
       |    ВЫБОР КОГДА "+ВыборОрганизация+" ТОГДА &ПустаяОрганизация
       |    ИНАЧЕ РегистрУчета.Регистратор.Организация КОНЕЦ КАК Организация,
       |    ВЫБОР КОГДА "+ВыборКонтрагент+" ТОГДА &ПустойКонтрагент
       |    ИНАЧЕ РегистрУчета.Регистратор.Контрагент КОНЕЦ КАК Контрагент
       |ИЗ
       |    РегистрНакопления." + ИмяРегистра + " КАК РегистрУчета
       |ГДЕ
       |    ((РегистрУчета.Организация = &ПустаяОрганизация) ИЛИ
       |    (РегистрУчета.Контрагент = &ПустойКонтрагент)) И РегистрУчета.ДоговорКонтрагента<>&ПустойДоговор "+
       ?(СсылкаНач = Неопределено,"","
       |    И РегистрУчета.Регистратор > &СсылкаНач")+"
       |Упорядочить по Регистратор
       |";
   КонецЕсли;
   Запрос = Новый Запрос;
   Запрос.Текст = ТекстЗапроса;

   Запрос.УстановитьПараметр("СсылкаНач",                СсылкаНач);
   Запрос.УстановитьПараметр("ПустойДоговор",            Справочники.ДоговорыКонтрагентов.ПустаяСсылка());
   Запрос.УстановитьПараметр("ПустаяОрганизация",    Справочники.Организации.ПустаяСсылка());
   Запрос.УстановитьПараметр("ПустойКонтрагент", Справочники.Контрагенты.ПустаяСсылка());
   Запрос.УстановитьПараметр("ПустаяДата",     Дата('00010101'));

   Возврат Запрос.Выполнить().Выбрать();
   
КонецФункции // ПолучитьВыборкуДокументовВзаиморасчеты()
-----------------
Чем чревато? Как побороть?
1 ТелепатБот
 
гуру
27.05.08
11:19
2 Косой
 
27.05.08
11:35
И откуда могли взяться "битые" ссылки, если перед обновлением выполнялась операция "ТЕстирование и исправление информационной базы" с контролем таких ссылок и удалением объектов???
3 НЕА123
 
27.05.08
11:39
может просто для ИмяРегистра
Документ.ВводНачальныхОстатковПоВзаиморасчетам
не является регистратором?
4 НЕА123
 
27.05.08
11:39
битые ссылки тут ни при чем.
5 Sol78
 
27.05.08
11:49
Скорее всего коряво обновилось и как правильно сказали в (3) док. "ВводНачальныхОстатковПоВзаиморасчетам" перестал быть регистратором для РН "ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов".

Можно кстати попытаться устранить последствия кривого обновления наиболее простым способом. Зайди в Конфигурация-Поддержка-Настройка поддержки...

Нажми там кнопку "Сравнить, объеденить". После того как она отработает, сними галки с тех объектов/реквизитов, которые у тебя в базе настроены. Всё остальное оставь, нажимай обновить.
6 Sol78
 
27.05.08
11:50
+ (5) Главное знать, что у тебя настроено ;)
7 Косой
 
27.05.08
12:01
Конфигурация не менялась и поэтому я обновлял ее через
Конфигурация=>Поддержка=>Обновить конфигурацию
8 Sol78
 
27.05.08
12:03
Т.е. она "под замком"?

С какого на какой релиз обновляешь?
Программист всегда исправляет последнюю ошибку.