Страница 1 из 2

alter interface + cnf, странная ошибка

Добавлено: 16 май 2008, 05:52
Алексей Терещенко
Пытаюсь скомпилить alter interface, добавив после него cnf (сама cnf-ка рабочая, выдранная из живого интерфейса).

Код: Выделить всё

#component "L_KATORG"
alter interface KATORG ( '');
end.

object 'L_KATORG::KATORG' : InterfaceWindow {
  Centered = True;
  object TRKATORG : TreeBrowser {
    object 'ExtAttr: KATORGIMP,4612239941089124362' : TreeColumn {
...
      FieldName = 'ExtAttr: KATORGIMP,4612239941089124362';
...
    } // ExtAttr: KATORGIMP,4612239941089124362 : TreeColumn
  } // TRKATORG : TreeBrowser
} // L_KATORG::KATORG : InterfaceWindow
При компиляции вылазит ошибка:
Ошибка интерпретации имени поля:
"ExtAttr: KATORGIMP,4612239941089124362"
потом:
Runtime error 144 (ошибка в структуре ресурса вычисляемых выражений) in streams_.dll at 0003BD35
Другие alter interface'ы, в которых нет "ExtAttr:", компилятся без проблем. Даже с конструкцией типа "ExtClass: ..." компилятся, а вот с "ExtAttr:" - нет. Что за глюк, как бороться?
Галактика 8.10, Атлантис 5.3

Добавлено: 16 май 2008, 09:41
edward_K
attrnam подгрузите в ту базу на которой компилите.

Добавлено: 16 май 2008, 10:34
Алексей Терещенко
Не совсем понял, что надо сделать.

Добавлено: 16 май 2008, 10:39
Алексей Терещенко
Теперь я столкнулся с такой проблемой. Компилю файл:

Код: Выделить всё

#component "L_BASEDOC"
alter interface VSCHETB ( '');
end.

// снабжение - документы - до на закупку - enter
object 'L_BASEDOC::VSCHETB' : InterfaceWindow {
  object WVSCHET : InterfaceWindow {
    object SCVSCHET : Screen {
      object 'STXOGETFIELD(''SPKAU'',''NAME'',COTXOGETEXTATTR(''BASEDOC'',''ВИДЫ РАСЧЕТОВ'',BASEDOC.NREC))' : PanelInputLine {
        Original = False;
        Visible = True;
        Hidden = False;
        Protect = True;
        Skip = True;
        UpCase = False;
        Password = False;
        NoValidCheck = True;
        PickButton = False;
        CalcButton = False;
        Calendar = False;
        LessNull = False;
        StatusCtx = 16;
        Strings = ( // Список строк
        )
        StringsNull = 0;
        HelpLine = '';
        FieldName = 'STXOGETFIELD(''SPKAU'',''NAME'',COTXOGETEXTATTR(''BASEDOC'',''ВИДЫ РАСЧЕТОВ'',BASEDOC.NREC))';
        DefaultValue = '';
        Origin_X = 423;
        Origin_Y = 300;
        Size_X = 299;
        Size_Y = 14;
        TextAlign = 0;
        SpinButton = False;
        SpinInc = 0.0;
        SpinMin = 0.0;
        SpinMax = 0.0;
        NoStatic = False;
        EnumValues = ( // Список целых
        )
        PassiveFormat = '';
        Points = 0;
        MaxLen = 255;
        PrecisionVarName = '';
        HistoryID = 0;
        DropTarget = False;
        DropSource = False;
      }
      object 'LbSTXOGETFIELD(''SPKAU'',''NAME'',COTXOGETEXTATTR(''BASEDOC'',''ВИДЫ РАСЧЕТОВ'',BASEDOC.NREC))' : Label {
        Original = False;
        Title = '(виды расчетов)';
        Visible = True;
        Hidden = False;
        HelpLine = '';
        Origin_X = 423;
        Origin_Y = 280;
        Size_X = 98;
        Size_Y = 14;
      } 
    } // SCVSCHET : Screen
  } // WVSCHET : InterfaceWindow
} // L_BASEDOC::VSCHETB : InterfaceWindow
//-----------------------------------------------------------------------------
Атлантис делает вот так:
Runtime error 213 (rtl: выход за границы коллекции) in streams_.dll at 0002AD1D
Не знаю, что дальше делать.

Добавлено: 16 май 2008, 10:56
edward_K
вы на какой базе компилите? на той где есть этот атрибут или на какой то тестовой?

Добавлено: 16 май 2008, 11:03
Алексей Терещенко
Где есть, конечно.

Добавлено: 16 май 2008, 12:09
edward_K
обычно рантаймить где нет.
проверте лишний раз.
Еще компилятор не любить больших файлов.
лучше компилить отдельно vip (один фейс на файл) и потом cnf(тоже так же). Да и рес не забудьте грохнуть - а то не то докомпилить будете :) - в бантик пропишите. Далее делайте ошибку в коде до тех пор пока не свалитесь, прежде получения сообщения об ошибке - кусок это сюды и проверте на последних патчах в конфигураторе мож объекта уже и нет куда вы поле добавляете.

Добавлено: 20 май 2008, 04:11
Алексей Терещенко
Пробовал компилить на живой базе, в которой есть вся необходимая информация и из которой эти cnf-ки собственно взяты. Там они работают прекрасно. Так что нехватка данных или отсутствие объекта исключаются. Пробовал компилить отдельно vip. Оказалось, что до cnf дело даже не доходит. Компилятор падает на vip-файле, состоящем всего лишь из таких строк:

Код: Выделить всё

#component "L_BASEDOC"
alter interface VSCHETB;
end.
Потом вставлял левый символ (знак минус) через каждое слово и перекомпиливал. Получилось, что так еще компилится и выдает ошибку:

Код: Выделить всё

#component "L_BASEDOC"
alter interface - VSCHETB;
end.
А вот так уже рантайм:

Код: Выделить всё

#component "L_BASEDOC"
alter interface VSCHETB -;
end.
Причем, рантайм появляется не для всех фейсов. Конкретно в моем случае успешно компилятся L_MCU::KATMC, L_KATORG::KATORG, F_PLPOR::PLPOR, F_SFO::EDITNORMSFO, а падают L_BASEDOC::VSCHETB, L_DOGOVOR::DOGOVOR.

Добавлено: 20 май 2008, 15:25
edward_K
1. Не все фейсы разрешены для докомпиляции.
2. на каждый alter свой файл - я пробовал как то 2 в одном сделать - тоже упало, а по отдельности(но в одном проекте ) прокатило.
опять же сначала alter потом cnf

Добавлено: 21 май 2008, 02:48
Алексей Терещенко
Именно так. Падает. Уже нет времени воевать с этими глюками. Сделал по старинке через crf.

Вопрос закрыт, спасибо.

Добавлено: 21 май 2008, 13:20
Alpiton
Может дело в несовпадении патчей Галактики и Атлантиса?

Добавлено: 21 май 2008, 15:34
edward_K
да. Я месяц назад пробовал докомпилять L_DOGOVOR::DOGOVOR - без проблем. Тока я делал это для теста - так что на сегод. момент не могу сказать точно.

Re: alter interface + cnf, странная ошибка

Добавлено: 21 мар 2013, 12:37
RAJAH
В коде формы никаких alter interface нету. Огрёб такую же ошибку (только адрес 000433D6)...
Алексей Терещенко писал(а):
Runtime error 144 (ошибка в структуре ресурса вычисляемых выражений) in streams_.dll at 0003BD35
До неё появляется окошко:
---------------------------
Ошибка
---------------------------
Внутренняя ошибка - объект не найден в ресурсе
---------------------------
ОК
---------------------------
После описания view и функций у меня сразу идёт

Код: Выделить всё

.begin
   RunInterface('M_TPP::iTPM', 0, 2, 4, 4, 0, 0, 1);
...
Однако интерфейс не появляется, т.е. выполнение формы даже не начинается.
Все временные файлы удаляю, ресурсы свои отключаю. Что означает такая ошибка?

Re: alter interface + cnf, странная ошибка

Добавлено: 21 мар 2013, 13:39
Polimer
RAJAH писал(а):... ресурсы свои отключаю.
А если попробовать их удалить? Есть подозрение, что они все равно "участвуют" в компиляции.

Re: alter interface + cnf, странная ошибка

Добавлено: 21 мар 2013, 14:01
RAJAH
Polimer писал(а):в компиляции
Забыл уточнить: компилируется нормально, ошибка выходит при запуске отчёта.