После чего стала наблюдаться в некоторых отчетах "шикарная проблема". Например в авансовом в поле руководитель стоят паспортные данные, а номере отчета - расчетный счет. Такое ощущения что поля сдвинуты на несколько позиций.
После обновлений поехали поля в отчетах
Модераторы: m0p3e, edward_K, Модераторы
-
- Сообщения: 18
- Зарегистрирован: 01 июн 2010, 13:01
- Откуда: Рязань
После обновлений поехали поля в отчетах
Третьего дня обновили галактику по состоянию обновлений на 24.06.
После чего стала наблюдаться в некоторых отчетах "шикарная проблема". Например в авансовом в поле руководитель стоят паспортные данные, а номере отчета - расчетный счет. Такое ощущения что поля сдвинуты на несколько позиций.
После чего стала наблюдаться в некоторых отчетах "шикарная проблема". Например в авансовом в поле руководитель стоят паспортные данные, а номере отчета - расчетный счет. Такое ощущения что поля сдвинуты на несколько позиций.
Re: После обновлений поехали поля в отчетах
А пользовательские ресурсы есть? Попробуйте без них отчет получить.
Re: После обновлений поехали поля в отчетах
F_PLPOR_RES_810570:
В ОБНОВЛЕНИИ ПОМЕНЯЛИСЬ БАЗОВЫЕ ФОРМЫ ОТЧЕТОВ:
PLATDOCS
KASSA_KO3
REEPLPOR
# ПРИМЕЧАНИЕ:
Возможно потребуется перекомпиляция Ваших форм
Подробности изменения базовых форм читайте в описании проблем
да и в патчмане это сообщение выскакивало
В ОБНОВЛЕНИИ ПОМЕНЯЛИСЬ БАЗОВЫЕ ФОРМЫ ОТЧЕТОВ:
PLATDOCS
KASSA_KO3
REEPLPOR
# ПРИМЕЧАНИЕ:
Возможно потребуется перекомпиляция Ваших форм
Подробности изменения базовых форм читайте в описании проблем
да и в патчмане это сообщение выскакивало
-
- Сообщения: 18
- Зарегистрирован: 01 июн 2010, 13:01
- Откуда: Рязань
Re: После обновлений поехали поля в отчетах
Вагон и маленькая тележка. Сейчас все отцепил сформировал - получился нормально; буду по одному прицеплять смотреть какой из них влияет.empyros писал(а):А пользовательские ресурсы есть? Попробуйте без них отчет получить.
А вот что делать когда локализую "злодейский" ресурс пока не очень представляю. Кто что посоветует, коллеги?
-
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: После обновлений поехали поля в отчетах
Нужно переделывать те отчеты, которые съехали. Если устраивают стандартные отчеты - используйте их. Программист есть в конторе?
Re: После обновлений поехали поля в отчетах
А в "злодейском" ресурсе - изменился прототип, его надо перекомпилировать. Если при компиляции будет говорить, что присоединенная форма не совпадает с прототипом - ищите отличия (иногда что изменилось можно найти в сопроводительных файлах) - но скорее всего надо будет просто добавить или убрать {фигурные скобки}.Aleksandr Kryuchkov писал(а):Вагон и маленькая тележка. Сейчас все отцепил сформировал - получился нормально; буду по одному прицеплять смотреть какой из них влияет.empyros писал(а):А пользовательские ресурсы есть? Попробуйте без них отчет получить.
А вот что делать когда локализую "злодейский" ресурс пока не очень представляю. Кто что посоветует, коллеги?
-
- Сообщения: 18
- Зарегистрирован: 01 июн 2010, 13:01
- Откуда: Рязань
Re: После обновлений поехали поля в отчетах
ну вроде как я за него, но на интуиции далеко не проедешь. А то "злодейский ресурс" тянулся еще с 7.12 с тиражного решения для Почты но это было сильно до меня.Алексей писал(а):Нужно переделывать те отчеты, которые съехали. Если устраивают стандартные отчеты - используйте их. Программист есть в конторе?
Да вот сколько не пробовал играть в игру нади десять отличий что то толком никак не получилось что то пересобрать. ТО переменные аобъявлены свои, то вьюхи...empyros писал(а):.....А в "злодейском" ресурсе - изменился прототип, его надо перекомпилировать. Если при компиляции будет говорить, что присоединенная форма не совпадает с прототипом - ищите отличия (иногда что изменилось можно найти в сопроводительных файлах) - но скорее всего надо будет просто добавить или убрать {фигурные скобки}.
Эх.. почитать бы толковую методу с примерами ....
Re: После обновлений поехали поля в отчетах
То есть "злодея" нашли... Он компилируется без предупреждений? Если да, то после перекомпиляции - должен работать нормально.Aleksandr Kryuchkov писал(а): Да вот сколько не пробовал играть в игру нади десять отличий что то толком никак не получилось что то пересобрать. ТО переменные аобъявлены свои, то вьюхи...
Эх.. почитать бы толковую методу с примерами ....
Если нет - закидывайте код - будем вместе искать отличия.
-
- Сообщения: 18
- Зарегистрирован: 01 июн 2010, 13:01
- Откуда: Рязань
Re: После обновлений поехали поля в отчетах
Приколы продолжаются. Скомпилил. прикрутил.
Злодей нужен для того чтобы закачивать некие хозоперации.
Вся суть его сведена к коду который не работает,а может и рабоатет тут пока открытый вопрос.
Мне не совсем понятно какого черта галка тянет авансовые, приходные, расходные из собственного ресурса а не из стандартного f_plpor.res?
P.S. Код достался по наследству от 7.12 писал его не я, я все го лигшь пытаюсь по аналогии заставить его работать под 8 и своершенно не понимаю пока как это сделать.
VIP-овский код тоже есть, если надо выложу.
Злодей нужен для того чтобы закачивать некие хозоперации.
Вся суть его сведена к коду который не работает,а может и рабоатет тут пока открытый вопрос.
Код: Выделить всё
.LinkForm 'ВВОД ХОЗОПЕРАЦИЙ ДЛЯ ГЛАВНОЙ РАСПРЕДЕЛИТЕЛЬНОЙ КАССЫ' Prototype is 'PlatDocs'
.group ’ПРИХОДНЫЙ КАССОВЫЙ ОРДЕР ЦБРФ - РТФ’
.p 60
.DEFP PA4
.CLENGTH 148
.CWIDTH 210
.DEFO LANDSCAPE
.Var
Count : Word;
.EndVar
.fields
Count
.endfields
.{
.{checkenter PlatDocsCycleDocRash
.}
.{checkenter PlatDocsCycleDebetBuhNotes
.}
.{checkenter PlatDocsCycleKreditBuhNotes
.}
.{
.}
.{
.}
.{checkenter PlatDocsCycleVKassu
.{checkenter PlatDocsCycleMemo1
.}
.}
.{checkenter PlatDocsCycleIzKassy
.{checkenter PlatDocsCycleMemo2
.}
.}
.{
.{
.{
.}
.}
.}
.if DELIMITERPLAT
---------------------------------------------------------------------------------
.else
.end
.if PAGESYMBOL
.else
.end
.begin
RunInterface(Gkassa, PlPorNrec, Count);
end.
Импортировано ^ хозопераций
.}
.endform
P.S. Код достался по наследству от 7.12 писал его не я, я все го лигшь пытаюсь по аналогии заставить его работать под 8 и своершенно не понимаю пока как это сделать.
VIP-овский код тоже есть, если надо выложу.
Re: После обновлений поехали поля в отчетах
Рассказали бы хотя бы в двух словах, что и где должно поменяться после того, как код отработает. В той форме, которая выложена, нет ничего информативного, идет обращение к интерфейсу и всё. Непонятно, зачем в форме опции печати, если она для печати не предназначена; остается предположить, что их просто удалить поленились.Aleksandr Kryuchkov писал(а):Приколы продолжаются. Скомпилил. прикрутил.
Злодей нужен для того чтобы закачивать некие хозоперации.
Вся суть его сведена к коду который не работает,а может и рабоатет тут пока открытый вопрос.
Еще переменную Count желательно переименовать, т. к. есть стандартная функция с таким же именем. Может, совпадение имен на работу и не повлияет, но лучше подстраховаться...
Тянет что? Если линкформы, так она и должна тянуть их из всех доступных RES-файлов, как из ваших, так и из стандартных.Aleksandr Kryuchkov писал(а):Мне не совсем понятно какого черта галка тянет авансовые, приходные, расходные из собственного ресурса а не из стандартного f_plpor.res?
По уже выложенному коду сказать нечего. Хотите конкретный совет - выкладывайте, кто-нибудь что-нибудь наверняка скажет. Только на словах опишите, что этот код должен делать. И разместить всё это уместнее в форуме "Программирование".Aleksandr Kryuchkov писал(а):P.S. Код достался по наследству от 7.12 писал его не я, я все го лигшь пытаюсь по аналогии заставить его работать под 8 и своершенно не понимаю пока как это сделать. VIP-овский код тоже есть, если надо выложу.
-
- Сообщения: 18
- Зарегистрирован: 01 июн 2010, 13:01
- Откуда: Рязань
Re: После обновлений поехали поля в отчетах
2Katz: Начну с конца.
По существу:
Этот код пока для меня черный ящик от и до.
На входе или как это должно работать : Если мы выбираем Приходный ордер
то на входе используем xls файл в котором содерджатся сведения об излишках денег в отделении связи.
Uploaded with ImageShack.us
имя файла вводим через внешние атрибуты у приходного ордера. Поэтому наверное и была притянута печать...
на выходе после обработки В Галке имеем на первом этапе список из полей: отделения связи, сумма, №мс45
на форме две кномпки ввод данных, а второй мы не пользовались.
по вводу данных куда-то импортируется количество хозопераций равное количеству отделений в списке.
дальше мы снова заходили в кассовый ордер выбирали тхо и формировалось количество проводок к документу равное количеству отделений в исходной xls-ке.
Буду премного благодарен если форумчане помогут мне понять логику этого кода, и помогут организовать нечто подобное для версии 8.10
Оставлю на усмотрения модератора - посчитает нужным - перенесет, на мой взгляд эта задача соповождения, поскольку во главе угла пользовательсякая доработка, но это мое частное мнение.KATZ писал(а):...И разместить всё это уместнее в форуме "Программирование".
По существу:
Рискну привести здесь gkassa.vipKATZ писал(а):...Рассказали бы хотя бы в двух словах, что и где должно поменяться после того, как код отработает...
Код: Выделить всё
Const
sci134EnIns = 6922;
sci13EscTreeA = 8209;
End;
Interface gKassa 'Импорт распоряжений по главной распределительной кассе'(,,sci134EnIns);
Var
Handle : LongInt;
jDDoc : String;
jNazn, jPodr, jPodr1 : String;
NrecPlPor : Comp;
BadF, i : Word;
jSum : String;
CurF : String;
SS, count_n : longint;
mc4, mc41:string;
NrecPodr, cSeg, At4, At16, AtS :Comp;
MarB : Word;
FirstNum : String;
F16, F161 : String;
Table Struct jPrev "Таблица для превью"
(
cPodr : Comp,
Podr : String,
NumMc4 : String,
Summa : Double,
Mar : String,
NumF16 : String,
NumSum : String,
Prim : String
);
Table Struct jMar "Уникальные маршруты"
(
Mar : String,
Num : String
);
Create View jView
As
Select * From PlPor, SoprHoz, BaseFin, KauReff
, AttrVal, AttrNam, LastNumD, KatDoc, Pick, jPrev,JMAR
, ExClassVal, ExClassSeg, ExClassName, KatPodr KatPodr1
Where ((
NrecPlPor==PlPor.Nrec and
AttrVal.cAttrNam==AttrNam.Nrec and
jPrev.cPodr == KatPodr.Nrec and
Word(1413) == ExClassName.wTable and
'Маршруты' == ExclassName.Name and
Word(1413) == ExClassVal.wTable and
KatPodr.Nrec ==ExClassVal.cRec and
ExClassVal.cClassSeg==ExClassSeg.Nrec
))
Order by jPrev.Mar, jPrev.Podr;
Parameters NrecPlPor, count_n;
Panel jBrow;
Table jPrev;
Browse jBr
Show at (,,,20)
Fields
KatPodr.Name 'Подразделение ' : [25], Protect;
jPrev.Summa 'Сумма' : [18,2];//[18.2,'[|-]36`666`666`666.88'] ;
jPrev.NumMc4 '№ МС-4' : [10],Protect;
jPrev.Mar 'Маршрут' : [12],Protect, PickButton;
jPrev.NumF16 '№ Ф-16' : [10], Protect;
jPrev.NumSum '№ бр/сумки' : [10], NoProtect;
jPrev.Prim 'Примечание' : [35], NoProtect;
End;
Screen SRC (,,) show at (,21,,)
Buttons
cmOk, default;
cmNum;
<<
<. Ввод данных .> <. Перенумерация Ф-16 .>
>>
end;
End;
!End;
!HandleEvent
! cmInit:
! SS:='';
! cmOk: CloseDialogParam);
!End;
!End;
Procedure InsertSoprHoz;
Begin
! Message(NrecPlPor+' 1');
GetFirst PlPor;
ClearBuffer(#SoprHoz);
SoprHoz.NREC := GetNextNREC(#SoprHoz,0);
SoprHoz.cSoprDoc:= PlPor.Nrec;
SoprHoz.NoDoc := PlPor.NoDok;
SoprHoz.DatOb := PlPor.DatOb;
SoprHoz.TiDkGal := PlPor.TidkGal;
SoprHoz.TipDoc := PlPor.Tidk;
SoprHoz.Descr := PlPor.Descr;
SoprHoz.DesGr := PlPor.DesGr;
SoprHoz.Direct := Word(2);
SoprHoz.cFilKor := PlPor.cFilKor;
SoprHoz.VhSumHoz:= '+';
SoprHoz.ModeDoc := PlPor.ModeDoc;
SoprHoz.Summa := jPrev.Summa;
SoprHoz.cOrg := Plpor.cPlat;
SoprHoz.NameSho := jPrev.Prim;
insert current SoprHoz;
ClearBuffer(#AttrVal);
AttrVal.Nrec := GetNextNrec(#AttrVal,0);
AttrVal.wTable := Word(1120);
AttrVal.cRec := SoprHoz.Nrec;
AttrVal.cAttrNam := At4;
AttrVal.vString := jPrev.NumMc4;
Insert Current AttrVal;
ClearBuffer(#AttrVal);
AttrVal.Nrec := GetNextNrec(#AttrVal,0);
AttrVal.wTable := Word(1120);
AttrVal.cRec := SoprHoz.Nrec;
AttrVal.cAttrNam := At16;
AttrVal.vString := jPrev.NumF16;
Insert Current AttrVal;
ClearBuffer(#AttrVal);
AttrVal.Nrec := GetNextNrec(#AttrVal,0);
AttrVal.wTable := Word(1120);
AttrVal.cRec := SoprHoz.Nrec;
AttrVal.cAttrNam := AtS;
AttrVal.vString := jPrev.NumSum;
Insert Current AttrVal;
ClearBuffer(#BaseFin);
BaseFin.NREC := GetNextNREC(#BaseFin,0);
BaseFin.cSoprDoc:= PlPor.Nrec;
BaseFin.cPlPor := PlPor.Nrec;
BaseFin.NoDoc := PlPor.NoDok;
BaseFin.dDoc := PlPor.DatOb;
BaseFin.TiDkGal := PlPor.TidkGal;
BaseFin.TipDoc := PlPor.Tidk;
BaseFin.Descr := PlPor.Descr;
BaseFin.DesGr := PlPor.DesGr;
BaseFin.Direct := Word(2);
BaseFin.Summa := jPrev.Summa;
BaseFin.cOrg := Plpor.cPlat;
BaseFin.cSoprHoz:= SoprHoz.Nrec;
insert current BaseFin;
GetFirst PlPor;
PlPor.SumPlat:=PlPor.SumPlat+ jPrev.Summa;
Update current Plpor;
If jPrev.cPodr>Comp(0)
{
ClearBuffer(#KauReff);
KauReff.Nrec := GetNextNrec(#KauReff,0);
KauReff.CoTable := Word(1120);
KauReff.cRec := SoprHoz.Nrec;
KauReff.wKau := Word(2);
KauReff.cKau := jPrev.cPodr;
Insert Current KauReff;
}
End;
Procedure NumMar;
Begin
GetFirst LastNumD Where ((Word(2068)==LastNumd.LndType and Word(0)==LastNumD.LndSubT));
If LastNumD.LndNum<>FirstNum
{
LastNumD.LndNum:=FirstNum;
Update Current LastNumD;
}
If GetFirst jPrev =TsOk {};
Do
{
MarB := 0;
If GetFirst jMar=TsOk
Do
{
If jMar.Mar = jPrev.Mar Marb:=1;
}While GetNext jMar=TsOk;
If MarB=0
{
jMar.Mar:=jPrev.Mar;
GetFirst LastNumD Where ((Word(2068)==LastNumd.LndType and Word(0)==LastNumD.LndSubT));
jMar.Num := LastNumD.LndNum;
Insert Current jMar;
LastNumd.LndNum:=Word(LastNumd.LndNum)+1;
Update current LastNumD;
PushPos(#jPrev);
Update jPrev Where jPrev.Mar=jMar.Mar Set jPrev.NumF16:=jMar.Num;
PopPos(#jPrev);
}
}While GetNext jPrev=TsOk
ReScanPanel(#jPrev);
Delete All jMar;
End;
Procedure InsertjPrev;
Begin
ClearBuffer(#jPrev);
If SS=0
If GetFirst KatPodr Where((jPodr==KatPodr.Name))=TsOk {};
If SS=1 GetFirst KatPodr Where((Pick.cRec==KatPodr.Nrec));
jPrev.cPodr := KatPodr.nRec;
jPrev.Podr := KatPodr.Name;
jPrev.Summa :=Double(jSum);
If GetFirst ExClassSeg = TsOk
jPrev.Mar:= ExClassSeg.Name;
GetFirst LastNumD Where ((Word(2067)==LastNumd.LndType and Word(0)==LastNumD.LndSubT))
jPrev.NumMC4 :=LastNumd.LndNum;
jPrev.Prim :='' ;
Insert Current jPrev;
LastNumd.LndNum:=Word(LastNumd.LndNum)+1;
Update current LastNumD;
End;
Procedure ReadExcel;
Begin
CurF:='';
BadF:=0;
If GetFirst AttrVal Where ((Word(9015)==AttrVal.wTable and NrecPlPor==AttrVal.cRec))=TsOk
Do
{
GetFirst AttrNam;
If Instr('файл', AttrNam.Name)>0 Or Instr('Файл', AttrNam.Name)>0 CurF:=AttrVal.vString;
}While GetNext AttrVal Where ((Word(9015)==AttrVal.wTable and NrecPlPor==AttrVal.cRec)) =TsOk
If CurF<>''
{
If Instr('.XLS', CurF)>0 or Instr('.xls', CurF)>0
{
If Not xlIsExcelValid
If not xlCreateExcelWithTemplate(CurF, False)
{
Message('Ошибка открытия Excel-файла '+ CurF);
exit;
}
While Instr('\',CurF)>0 Do CurF:=substr(CurF,pos('\',CurF)+1,Length(CurF)-pos('\',CurF)+1);
If Instr('.',CurF)>0 CurF:=SubStr(CurF,1,Length(CurF)-Instr('.',CurF)+1);
xlSetActiveWorkBookByName(CurF);
xlSetActiveSheetByName(CurF);
StartNewVisual(vtRotateVisual, vfTimer+vfBreak,
''#3'Разбор файла...'+''#13#3,1);
i:=5
BadF:=0;
xlGetCellValue(i, 1,jPodr);
Do
{
If GetFirst KatPodr Where((jPodr==KatPodr.Name))<>TsOk
If Message('В справочнике подразделений отсутсвует подразделение '+ jPodr+ ' продолжить разбор файла?',YesNo)<>cmYes BadF:=1;
If BadF=0
{
i:=i+1;
xlGetCellValue(i, 1,jPodr);
}
}While Instr('ИТОГ', jPodr)=0 and BadF=0;
If BadF=0
{
i:=5
xlGetCellValue(i, 1,jPodr);
xlGetCellValue(i, 2,jSum);
If (InStr(',',jSum)<>0) jSum:=Replace(jSum,',','.');
Do
{
i:=i+1;
! GetFirst KatPodr Where((jPodr==KatPodr.Name));
If Double(jSum)>0 InsertjPrev;
xlGetCellValue(i, 1,jPodr);
xlGetCellValue(i, 2,jSum);
}While Instr('ИТОГ', jPodr)=0 ;
}
If xlIsExcelvalid xlKillExcel;
StopVisual('',0);
}
If Instr('.DBF', CurF)>0 or Instr('.dbf', CurF)>0
{
i:=5
Handle := DBFOpen(CurF,stOpenRead);
StartNewVisual(vtRotateVisual, vfTimer+vfBreak,
''#3'Разбор файла...'+''#13#3,1);
If dbfGetfirst(Handle)=tsOK
Do
{
jPodr1:=dbfGetFieldValue(Handle,'KOT');
If jPodr1<>'999'
{
jPodr:=''
GetFirst KatPodr1;
_Loop KatPodr1
{
If KatPodr1.TEl=jPodr1 jPodr:=KatPodr1.Name
}
If jPodr=''
If Message('В справочнике подразделений отсутсвует подразделение с кодом(Телефон)'+ jPodr1+ ' продолжить разбор файла?',YesNo)<>cmYes BadF:=1;
jSum:=dbfGetFieldValue(Handle,'SVY');
If Double(jSum)>0
{
InsertjPrev;
i:=i+1;
}
}
}While dbfGetNext(Handle)=tsOK and BadF=0;
dbfClose(Handle);
StopVisual('',0);
}
}
Else Message('Не задано имя файла, задайте имя файла во внешнем атрибуте!!!');
End;
Procedure RunMyInterface;
Begin
If GetFirst AttrNam Where ((Word(1120)==AttrNam.wTable and 'Ф-16'==AttrNam.Name))=TsOk
At16:=AttrNam.Nrec
Else Message('Отсутсвует внешний атрибут "Ф-16" к таблице SoprHoz');
If GetFirst AttrNam Where ((Word(1120)==AttrNam.wTable and 'МС-4'==AttrNam.Name))=TsOk
At4:=AttrNam.Nrec
Else Message('Отсутсвует внешний атрибут "МС-4" к таблице SoprHoz');
If GetFirst ExClassName<>TsOk
Message('Отсутсвует внешняя классификация "Маршруты" к каталогу подразделений');
If GetFirst AttrNam Where ((Word(1120)==AttrNam.wTable and 'номер сумки'==AttrNam.Name))=TsOk
AtS:=AttrNam.Nrec
Else Message('Отсутсвует внешний атрибут "номер сумки" к таблице SoprHoz');
mc4:='1';
If GetFirst LastNumD Where ((Word(2067)==LastNumd.LndType and Word(0)==LastNumD.LndSubT))=TsOk
mc4:=String(LastNumD.LndNum)
Else
{
ClearBuffer(#LastNumD);
LastNumD.Nrec := GetNextNrec(#LastNumD,0);
LastNumD.LndType := Word(2067);
LastNumD.LndSubT :=Word(0);
LastNumD.LndNum :='1';
Insert Current LastNumD;
ClearBuffer(#KatDoc);
KatDoc.Nrec := GetNextNrec(#KatDoc,0);
KatDoc.TidkGal := Word(2067);
KatDoc.TidkUsers :=Word(2067);
KatDoc.Name :='Письмо формы МС-4 (Почта)';
Insert Current KatDoc;
}
f16:='1';
If GetFirst LastNumD Where ((Word(2068)==LastNumd.LndType and Word(0)==LastNumD.LndSubT))=TsOk
f16:=String(LastNumD.LndNum)
Else
{
ClearBuffer(#LastNumD);
LastNumD.Nrec := GetNextNrec(#LastNumD,0);
LastNumD.LndType := Word(2068);
LastNumD.LndSubT :=Word(0);
LastNumD.LndNum :='1';
Insert Current LastNumD;
ClearBuffer(#KatDoc);
KatDoc.Nrec := GetNextNrec(#KatDoc,0);
KatDoc.TidkGal := Word(2068);
KatDoc.TidkUsers :=Word(2068);
KatDoc.Name :='Накладная Ф-16(Почта)';
Insert Current KatDoc;
}
f161:=f16;
If RunDialog(Param111,ss, mc4, f16)=cmCancel exit;
If mc41<>mc4
If GetFirst LastNumD Where ((Word(2067)==LastNumd.LndType and Word(0)==LastNumD.LndSubT))=TsOk
{
LastNumD.LndNum:=mc4;
Update current lastnumD;
}
If f161<>f16
If GetFirst LastNumD Where ((Word(2068)==LastNumd.LndType and Word(0)==LastNumD.LndSubT))=TsOk
{
LastNumD.LndNum:=f16;
Update current LastNumD;
}
FirstNum:=F16;
If SS=0 ReadExcel;
If SS=1
{
ClearFieldOption(#jPrev.Summa, ofProtected);
Delete all Pick;
If RunInterface(Z_KATPODR::GetAnyPodr,NrecPodr,15)<>cmCancel
{
i:=5;
If GetFirst Pick Where ((Word(11)==Pick.wList))=TsOk
Do
{
GetFirst KatPodr Where ((Pick.cRec==KatPodr.Nrec));
If KatPodr.IsLeaf=Word(1)
{
jSum:=0;
InsertjPrev;
i:=i+1;
}
}While GetNext Pick Where ((Word(11)==Pick.wList))=TsOk
Else Message('1 '+NrecPodr);
}
Delete all Pick;
}
NumMar;
End; //RunMyInterface
HandleEvent
cmInit:
{
mc4:='1';
If GetFirst LastNumD Where ((Word(2068)==LastNumd.LndType and Word(0)==LastNumD.LndSubT))=TsOk
mc4:=String(LastNumD.LndNum);
FirstNum:=Mc4;
SetFieldOption(#jPrev.Summa, ofProtected);
RunMyInterface;
}//Init
cmOK:
{
If GetFirst jPrev =TsOk
Do
{
PushPos(#jPrev);
If jPrev.Summa>Double(0) InsertSoprHoz;
PopPos(#jPrev);
}While GetNext jPrev=TsOk
Set count_n:=i-5;
Delete All SoprHoz Where ((Word(8)==SoprHoz.TipDoc and NrecPlPor==SoprHoz.cSoprDoc)) and SoprHoz.Summa=0;
CloseInterFace(-1);
}//cmok
cmNum:
{
NumMar;
}
cmCancel:
{
Set count_n:=0;
CloseInterFace(-1);
}
cmUpdateRecord: Update current jPrev;
cmPick:
{
Case CurField Of
#jPrev.Mar :
{
If GetFirst ExClassName=TsOk
If RunInterface (C_EXTCLASS::PickExClassifier,Word(1413),cSeg,1)<> cmCancel
{
GetFirst ExClassSeg Where ((cSeg==ExClassSeg.Nrec));
jPrev.Mar:=ExClassseg.Name;
UpDate Current jPrev;
Set jPrev.Mar:=jPrev.Mar;
}
}
End;
}
End;//HandleEvent
End.//Interface
Param111 dialog
!Screen qqq;
Fields
SS :word;
MC4 : String;
F16 : String;
Buttons
cmOk, Default;
cmCancel;
<<
Параметры:
(.) Импортировать из файла`
(.) Ввести вручную`
Нумерация МС-4 начинается с .@@@@@@@@@@@
Нумерация Ф-16 начинается с .@@@@@@@@@@@
<. ~В~вод .> <. ~О~тмена .>
>>
На входе или как это должно работать : Если мы выбираем Приходный ордер
Код: Выделить всё
..........
.LinkForm 'ВВОД ХОЗОПЕРАЦИЙ ДЛЯ ГЛАВНОЙ РАСПРЕДЕЛИТЕЛЬНОЙ КАССЫ' Prototype is 'PlatDocs'
.group ’ПРИХОДНЫЙ КАССОВЫЙ ОРДЕР ЦБРФ - РТФ’
...........
Uploaded with ImageShack.us
имя файла вводим через внешние атрибуты у приходного ордера. Поэтому наверное и была притянута печать...
на выходе после обработки В Галке имеем на первом этапе список из полей: отделения связи, сумма, №мс45
на форме две кномпки ввод данных, а второй мы не пользовались.
по вводу данных куда-то импортируется количество хозопераций равное количеству отделений в списке.
дальше мы снова заходили в кассовый ордер выбирали тхо и формировалось количество проводок к документу равное количеству отделений в исходной xls-ке.
Буду премного благодарен если форумчане помогут мне понять логику этого кода, и помогут организовать нечто подобное для версии 8.10
Re: После обновлений поехали поля в отчетах
Теперь более-менее понятен смысл задачи. Код, ИМХО, далек от идеала...Aleksandr Kryuchkov писал(а):Буду премного благодарен если форумчане помогут мне понять логику этого кода, и помогут организовать нечто подобное для версии 8.10
В вашем случае для "быстрого старта" лучше всего было бы позвать грамотного специалиста, который бы в вашем присутствии написал эту задачу заново, и по ходу написания объяснял бы вам смысл каждой вводимой строки. Объем небольшой, одного дня хватило бы за глаза. Это так, философские "советы постороннего"...
По существу. Ресурсы от версии 7.12 к 8.1 не подойдут, перекомпиляция неизбежна. В большинстве случаев при переносе на 8.1 код не нуждается в редактировании. К тому же, судя по Z_KATPODR::GetAnyPodr и C_EXTCLASS::PickExClassifier, он у вас уже адаптировался под 8.1. Компилятор интерфейсов у вас есть? Файл компилируется? Какие ошибки/предупреждения при этом выдаются? Скомпилированный интерфейс пробовали использовать? В какой момент он начинает "капризничать"? По ходу его работы в БД что-нибудь успевает поменяться (это можно по журналу посмотреть)?