Вопрос по форме Торг-12
Добавлено: 20 мар 2006, 18:49
Здравствуйте!
У меня следующая ситуация :
Галактика 7.12 со всеми патчами на 15 марта 2006 года
Включая патчи по складскому учету и оперативному контуру
SKLAD02 (fix01-04) OPER02(fix01-09)
По запросу пользователей слегка надо измнить форму торг-12.
Пытаюсь откомпилить сначала стандартную...
Обнаружиаю что в новом исходнике куча инклюдов которые
успешно подключаю и я...
А также обнаруживаю необходимость подключить в проект
#include ExtAttr.vih,
Который так же подключаю
После этого форма успешно компилируется, НО при запуске отваливается по рантайму!
Ищу ошибку и обнаружиаю что она проявляется в модуле CodeMC.frn
Вот его код:
------------------------------
!Код учетной и отпускной единицы матценности
!ОКЕИ в российский формах
.begin
var piExAttr : iExtAttr;
CodeOtpEd := '';
CodeEd := '';
FROMKATMC.pNrec := comp(спецификацияМЦ_нрек);
if (FROMKATMC.GetFirst SpSopr = tsOk)
{
if (FROMKATMC.GetFirst KatOtpEd = tsOk)
{
if (FROMKATMC.GetFirst KatEd where ((FROMKATMC.KatOtpEd.cKatEd == KatEd.NRec )) = tsOk)
CodeOtpEd := piExAttr.sGetAttr(coKatEd, FROMKATMC.KatEd.NRec, 'Код');
}
if (FROMKATMC.GetFirst KatMC = tsOk)
if (FROMKATMC.GetFirst KatEd where ((FROMKATMC.KatMC.cEd == KatEd.NRec )) = tsOk)
CodeEd := piExAttr.sGetAttr(coKatEd, FROMKATMC.KatEd.NRec, 'Код');
}
end.
---------------------------------
Валится отчет у меня на вот этой строчке :
CodeEd := piExAttr.sGetAttr(coKatEd, FROMKATMC.KatEd.NRec, 'Код');
Разобравшись понимаю что за каким то... код единицы измерения стандартный отчет берет из внешнего атрибута, а у меня внешний атрибут не заполнен и не будет заполнен!
Проблему конечно решил так :
--------------------------------------
!Код учетной и отпускной единицы матценности
!ОКЕИ в российский формах
.begin
CodeOtpEd := '';
CodeEd := '';
FROMKATMC.pNrec := comp(спецификацияМЦ_нрек);
if (FROMKATMC.GetFirst SpSopr = tsOk)
{
if (FROMKATMC.GetFirst KatOtpEd = tsOk)
{
if (FROMKATMC.GetFirst KatEd where ((FROMKATMC.KatOtpEd.cKatEd == KatEd.NRec )) = tsOk)
{
CodeOtpEd := FROMKATMC.KatEd.KOD;
}
}
if (FROMKATMC.GetFirst KatMC = tsOk)
{
if (FROMKATMC.GetFirst KatEd where ((FROMKATMC.KatMC.cEd == KatEd.NRec )) = tsOk)
{
CodeEd := FROMKATMC.KatEd.KOD;
}
}
}
end.
------------------------------
Но осталось непонятным почему же все таки функция sGetAttr так злостно рушила программу!???
И зачем надо брать код единицы измерения из внешнего атрибута?
Очень хочу понять, подскажите пожалуйста.
У меня следующая ситуация :
Галактика 7.12 со всеми патчами на 15 марта 2006 года
Включая патчи по складскому учету и оперативному контуру
SKLAD02 (fix01-04) OPER02(fix01-09)
По запросу пользователей слегка надо измнить форму торг-12.
Пытаюсь откомпилить сначала стандартную...
Обнаружиаю что в новом исходнике куча инклюдов которые
успешно подключаю и я...
А также обнаруживаю необходимость подключить в проект
#include ExtAttr.vih,
Который так же подключаю
После этого форма успешно компилируется, НО при запуске отваливается по рантайму!
Ищу ошибку и обнаружиаю что она проявляется в модуле CodeMC.frn
Вот его код:
------------------------------
!Код учетной и отпускной единицы матценности
!ОКЕИ в российский формах
.begin
var piExAttr : iExtAttr;
CodeOtpEd := '';
CodeEd := '';
FROMKATMC.pNrec := comp(спецификацияМЦ_нрек);
if (FROMKATMC.GetFirst SpSopr = tsOk)
{
if (FROMKATMC.GetFirst KatOtpEd = tsOk)
{
if (FROMKATMC.GetFirst KatEd where ((FROMKATMC.KatOtpEd.cKatEd == KatEd.NRec )) = tsOk)
CodeOtpEd := piExAttr.sGetAttr(coKatEd, FROMKATMC.KatEd.NRec, 'Код');
}
if (FROMKATMC.GetFirst KatMC = tsOk)
if (FROMKATMC.GetFirst KatEd where ((FROMKATMC.KatMC.cEd == KatEd.NRec )) = tsOk)
CodeEd := piExAttr.sGetAttr(coKatEd, FROMKATMC.KatEd.NRec, 'Код');
}
end.
---------------------------------
Валится отчет у меня на вот этой строчке :
CodeEd := piExAttr.sGetAttr(coKatEd, FROMKATMC.KatEd.NRec, 'Код');
Разобравшись понимаю что за каким то... код единицы измерения стандартный отчет берет из внешнего атрибута, а у меня внешний атрибут не заполнен и не будет заполнен!
Проблему конечно решил так :
--------------------------------------
!Код учетной и отпускной единицы матценности
!ОКЕИ в российский формах
.begin
CodeOtpEd := '';
CodeEd := '';
FROMKATMC.pNrec := comp(спецификацияМЦ_нрек);
if (FROMKATMC.GetFirst SpSopr = tsOk)
{
if (FROMKATMC.GetFirst KatOtpEd = tsOk)
{
if (FROMKATMC.GetFirst KatEd where ((FROMKATMC.KatOtpEd.cKatEd == KatEd.NRec )) = tsOk)
{
CodeOtpEd := FROMKATMC.KatEd.KOD;
}
}
if (FROMKATMC.GetFirst KatMC = tsOk)
{
if (FROMKATMC.GetFirst KatEd where ((FROMKATMC.KatMC.cEd == KatEd.NRec )) = tsOk)
{
CodeEd := FROMKATMC.KatEd.KOD;
}
}
}
end.
------------------------------
Но осталось непонятным почему же все таки функция sGetAttr так злостно рушила программу!???
И зачем надо брать код единицы измерения из внешнего атрибута?
Очень хочу понять, подскажите пожалуйста.