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

Я лошадь или опять "недокладывают мяса"?

Добавлено: 16 апр 2010, 17:02
Maverick
1. Накатили последние патчи (все апрельские какие есть)
2. Пытаюсь элементарно модифнуть линкформу "Отчет кассира" (KO4report , прототип dayuchved, компонента F_BuhRep). Для этого как обычно ищу последнюю модификацию в FRM соответствующих форм. Естественно не нахожу. Беру релизную DayUchRus.frn и по ее структуре ваяю себе линк-форму.
3. При компиляции ругается на отсутствие в форме-прототипе идентификатора OkFilDch (строка .if OkFilDch), т.е. несовпадение структуры линка и прототипа
4. По F4 достать последний линк не могу - нет FCENMAIN в лицензионном файле, хотя лицензия на ВИП есть. Через консоль администратора - тоже невозможно достать - тупо в нужном интерфейсе формы нет. там я так понял только FRF-формы светятся...

ВОПРОС: Каким образом и ГДЕ можно ГАРАНТИРОВАННО получить последние версии FRM?

Актуальность: СРОЧНО, еще вчера!!!

В натуре, "тигру в клетку не докладывают мяса" (с) Г.Хазанов

Добавлено: 16 апр 2010, 17:37
Masygreen

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

//------------------------------------------------------------------------------
//                                                      (c) Корпорация ГАЛАКТИКА
//------------------------------------------------------------------------------
// Галактика 5.8 - ФРО
// Кассовая книга, валютная касса, ежедневный учет по счету
//------------------------------------------------------------------------------

// Внимание! Существует slk-отчет по Ежедневному учету (копии всех присоединенных форм)

#doc
Базовая форма отчета "Кассовая книга, валютная касса, ежедневный учет по счету"
#end
.set name = 'DayUchVed'
!---------------------
! Кассовая книга рублевая
!---------------------
!.group 'DayUchRub_f1'
!.group 'DayUchRub_f2'
!.group 'DayUchRub_f3'
!.group 'KassaRus_f1'
!.group 'KassaBel_f1'
!---------------------
! Кассовая книга валютная
!---------------------
!.group 'DayUchVal_f1'
!.group 'DayUchVal_f2'
!.group 'DayUchVal_f3'
!.group 'DayUchBel'
!---------------------
! Ежедневный учет
!---------------------
!.group 'DayUch51_f1'
!.group 'DayUch51_f1'
!.group 'DayUch51_f1'
!---------------------
.nameinlist 'Базовая форма'
.hide
.var
  ShowDigit : word
  wKau      : tTabKau
  cKau      : tGetKau
  iSchet26  : ShowSchet26
  BudjSchet : string
  Compatibility: boolean;
.endvar
.begin
  ShowDigit := wGetTune('Fin.ShowDigit');
end.
.fields
! интервал
ИнтерДат
! месяц
МесяцДаты : integer
! дата DD mon YYYY
ДатаКассы
! счет и его имя
НомОсСчета ИмяОсСчета
! наименование кассы/раздела расчетного счета
ИмяРаздела
! наименование валюты (для валютной кассы)
ИмяТекВал
! субсчет и его имя (для валютной кассы)
НомОсСуб ИмяОсСуб
! символы НДЕ и БВ
СимвНДЕ СимвБВ
! наименование НДЕ и БВ
ИмяНДЕ ИмяБВ
! номер очередного листа с начала года
НомЛиста : integer
! количество листов с начала месяца
КолЛистов : integer
c1f1
c2f1 c2f2
!----------------------------------------------
! символ валют по страницам
СимвНДЕ_П СимвБВ_П СимвНДЕ_Р СимвБВ_Р

! входящее сальдо
ДатаВхСал
  ВхСалНДЕ : double
  ВхСалВал : double
  ВхСалБВ  : double
  БюджВхСалНДЕ : double
  БюджВхСалВал : double
  БюджВхСалБВ  : double
ПропущеноДней
ВалютаГруппир КурсВалГруппир
! обороты
OborotNRec НоДок СодОпер SchetKs КорСчет КорСуб ПлатПол
! аналитика
KauKsTbl1 : word   KauKsNrec1 : comp
KauKsTbl2 : word   KauKsNrec2 : comp
KauKsTbl3 : word   KauKsNrec3 : comp
KauKsTbl4 : word   KauKsNrec4 : comp
KauKsTbl5 : word   KauKsNrec5 : comp
KauKsTbl6 : word   KauKsNrec6 : comp

  ПрихНДЕ        : double
  ПрихВал        : double
  ПрихБВ         : double
  РасхНДЕ        : double
  РасхВал        : double
  РасхБВ         : double
  БюджПрихНДЕ    : double
  БюджПрихВал    : double
  БюджПрихБВ     : double
  БюджРасхНДЕ    : double
  БюджРасхВал    : double
  БюджРасхБВ     : double
! суммы
! СумНДЕ_П СумВал_П СумБВ_П СумНДЕ_Р СумВал_Р СумБВ_Р
!----------------------------------------------
! итоговые суммы  (приход-расход-остаток)
  ИсхПрихНДЕ     : double
  ИсхПрихВал     : double
  ИсхПрихБВ      : double
  ИсхРасхНДЕ     : double
  ИсхРасхВал     : double
  ИсхРасхБВ      : double
  ИсхСалНДЕ      : double
  ИсхСалВал      : double
  ИсхСалБВ       : double
! итоговые суммы по внебюджету (приход-расход-остаток)
  БюджИсхПрихНДЕ : double
  БюджИсхПрихВал : double
  БюджИсхПрихБВ  : double
  БюджИсхРасхНДЕ : double
  БюджИсхРасхВал : double
  БюджИсхРасхБВ  : double
  БюджИсхСалНДЕ  : double
  БюджИсхСалВал  : double
  БюджИсхСалБВ   : double
! на зарплату (только для кассы)
  ЗарплНДЕ       : double
  ЗарплВал       : double
  ЗарплБВ        : double
  БюджЗарплНДЕ   : double
  БюджЗарплВал   : double
! кол-во документов (только для кассы)
КолДок_1 КолДок_2 КолДок_3
КолДокПрих КолДокРасх
ФИОКассира ГлавБух РукПред ДолжРук
.endfields
ИнтерДат  ^
МесяцДаты  ^
ДатаКассы  ^
НомОсСчета ^
ИмяОсСчета ^
ИмяРаздела ^
ИмяТекВал  ^
НомОсСуб   ^
ИмяОсСуб   ^
СимвНДЕ    ^
СимвБВ     ^
ИмяНДЕ     ^
ИмяБВ      ^
НомЛиста   ^
КолЛистов  ^
!Фильтры
.if OkFilDch
.{
c1f1 ^
.{
c2f1 ^
c2f2 ^
.}
.}
.end
! нумерация страниц
.{
Лист @np@
! Цикл по валютам
.begin
  // ПИР 102.53967
  // установим параметр в нужное значение непосредственно перед переводом страницы
  // (из-за чего и существует проблема) и восстановим сразу после.
  // т.к. могут прервать формирование отчета, и параметр может не восстановиться
  Compatibility := GetBooleanParameter('Forms', 'Compatibility', 0);
  SetBooleanParameter('Forms', 'Compatibility', 0, false);
end.
.{
.[h
СимвНДЕ_П ^
СимвБВ_П  ^
СимвНДЕ_Р ^
СимвБВ_Р  ^
.]h
.if KassaVhSaldoDay
ДатаВхСал ^
ВхСалНДЕ  ^
ВхСалВал  ^
ВхСалБВ   ^
БюджВхСалНДЕ ^
БюджВхСалВал ^
БюджВхСалБВ  ^
ПропущеноДней ^
ВалютаГруппир ^
КурсВалГруппир ^
.end
! Цикл по документам
.{
OborotNRec ^
НоДок     ^
СодОпер   ^
SchetKs   ^
КорСчет   ^
КорСуб    ^
ПлатПол   ^

KauKsTbl1 ^   KauKsNrec1 ^
KauKsTbl2 ^   KauKsNrec2 ^
KauKsTbl3 ^   KauKsNrec3 ^
KauKsTbl4 ^   KauKsNrec4 ^
KauKsTbl5 ^   KauKsNrec5 ^
KauKsTbl6 ^   KauKsNrec6 ^

! Бюджетный счет
.begin
#ifdef Atl51
  wKau[1] := KauKsTbl1;
  wKau[2] := KauKsTbl2;
  wKau[3] := KauKsTbl3;
  wKau[4] := KauKsTbl4;
  wKau[5] := KauKsTbl5;
  wKau[6] := KauKsTbl6;
  cKau[1] := KauKsNRec1;
  cKau[2] := KauKsNRec2;
  cKau[3] := KauKsNRec3;
  cKau[4] := KauKsNRec4;
  cKau[5] := KauKsNRec5;
  cKau[6] := KauKsNRec6;
  BudjSchet := iSchet26.ShowSchetBU(SchetKs, КорСуб, wKau, cKau);
#else
  BudjSchet := iSchet26.ShowSchetBU(SchetKs, КорСуб, KauKsTbl1,  KauKsTbl2,  KauKsTbl3,  KauKsTbl4,  KauKsTbl5,  KauKsTbl6,
                                                     KauKsNRec1, KauKsNRec2, KauKsNRec3, KauKsNRec4, KauKsNRec5, KauKsNRec6)
#endif
end.

ПрихНДЕ   ^
ПрихВал   ^
ПрихБВ    ^
РасхНДЕ   ^
РасхВал   ^
РасхБВ    ^
БюджПрихНДЕ ^
БюджПрихВал ^
БюджПрихБВ  ^
БюджРасхНДЕ ^
БюджРасхВал ^
БюджРасхБВ  ^
.}
-----------------------------------------------------------------
! итоговые суммы по ведомости
ИсхПрихНДЕ   ^
ИсхПрихВал   ^
ИсхПрихБВ    ^
ИсхРасхНДЕ   ^
ИсхРасхВал   ^
ИсхРасхБВ    ^
ИсхСалНДЕ    ^
ИсхСалВал    ^
ИсхСалБВ     ^

БюджИсхПрихНДЕ ^
БюджИсхПрихВал ^
БюджИсхПрихБВ  ^
БюджИсхРасхНДЕ ^
БюджИсхРасхВал ^
БюджИсхРасхБВ  ^
БюджИсхСалНДЕ  ^
БюджИсхСалВал  ^
БюджИсхСалБВ   ^

ЗарплНДЕ     ^
ЗарплВал     ^
ЗарплБВ      ^
БюджЗарплНДЕ ^
БюджЗарплВал ^
.if BreakPage
.end
.[f
  @np@
.]f
.}
.begin
  SetBooleanParameter('Forms', 'Compatibility', 0, Compatibility);
end.
! итого по страницам
КолДок_1     ^
КолДок_2     ^
КолДок_3     ^
КолДокПрих   ^
КолДокРасх   ^
ФИОКассира   ^
ГлавБух ^
РукПред ^
ДолжРук ^
.if duPrintPage
.end
! нумерация страниц
.}
.endform


Добавлено: 16 апр 2010, 17:38
Masygreen
оно ??

Добавлено: 16 апр 2010, 17:57
edward_K
это по F4
вообще скорей всего у вас рес соотв.не подключен.

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

.LinkForm 'KO4REPORT' Prototype is 'DAYUCHVED'
.Group 'kassarus_f1'
.NameInList 'Отчет кассира (форма КО-4)'
.p 80
.var
  СумСтрНДЕПрих:Double
  СумСтрНДЕРасх:Double
  СтраницМес:Integer
  СтраницГод:Integer
.endvar
.function PRINTSUMMA(Sum : double) : string;
begin
  case ShowDigit of
    0 : PrintSumma := DoubleToStr(Sum,'\0p[|-]3666''666''666''666''666');
    1 : PrintSumma := DoubleToStr(Sum,'\1p[|-]3666''666''666''666''666.8');
    2 : PrintSumma := DoubleToStr(Sum,'\2p[|-]3666''666''666''666''666.88');
    3 : PrintSumma := DoubleToStr(Sum,'\3p[|-]3666''666''666''666''666.888');
    4 : PrintSumma := DoubleToStr(Sum,'\4p[|-]3666''666''666''666''666.8888');
  end;
end.
.function PRINTSUMMAZERO(Sum : double) : string;
begin
  if Abs(Sum) > 0.005 then
    PrintSummaZero := PrintSumma(Sum);
  else
    PrintSummaZero := ' ';
end.
.fields
  c1f1
  c2f1
  c2f2
  ДатаКассы
  ВхСалНДЕ
  НоДок
  СодОпер
  КорСчет
  КорСуб
  ПрихНДЕ
  РасхНДЕ
  PrintSumma(СумСтрНДЕПрих)
  PrintSumma(СумСтрНДЕРасх)
  PrintSumma(ИсхПрихНДЕ)
  PrintSumma(ИсхРасхНДЕ)
  PrintSumma(ИсхСалНДЕ)
  ЗарплНДЕ
  'true':'s'
  if(МесяцДаты=12,
               'Листов за месяц: '+ UpCase(trim(NumToString(СтраницМес,''))) +'. Листов за год: ' + UpCase(trim(NumToString(СтраницГод,'')))+'.',
               'Листов за месяц: ' + UpCase(trim(NumToString(СтраницМес,'')))+'.'
  )
  ФИОКассира
  UpCase(КолДокПрих)
  UpCase(КолДокРасх)
  ГлавБух
.endfields

.if OKFILDCH
Применен фильтр...
.{
   ^
.{
      ^ ^
.}
.}
.else
.end
.begin
  СтраницГод := НомЛиста-1;
  СтраницМес := КолЛистов;
end.

                                                Отчет кассира за ^ г.

.{
.[H
                                                                                                       Лист  @np@
.]H
.{
.[H
.begin
  СумСтрНДЕПрих := 0;
  СумСтрНДЕРасх := 0;
end.
────────┬──────────────────────────────────────────────────────────────┬────────────┬─────────────────┬─────────────────
        │                                                              │ Номер кор- │                 │
 Номер  │                      От кого получено                        │ респонди-  │     Приход,     │    Расход,
докумен-│                      или кому выдано                         │  рующего   │     руб.коп     │    руб.коп
  та    │                                                              │   счета    │                 │
        │                                                              │  субсчета  │                 │
────────┼──────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────────────
   1    │                              2                               │     3      │        4        │       5
────────┼──────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────────────
.]H
.if KASSAVHSALDODAY
        │                                                    Остаток на начало дня  │&'&&&&&&&&&&&&&&&│       X
        ├──────────────────────────────────────────────────────────────┬────────────┼─────────────────┼─────────────────
.else
.end
.{
.begin
  СумСтрНДЕПрих := СумСтрНДЕПрих + ПрихНДЕ;
  СумСтрНДЕРасх := СумСтрНДЕРасх + РасхНДЕ;
end.
@@@@@@@@│ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@│ @@@@@ @@@@ │&#'&&&&&&&&&&&&&&│&#'&&&&&&&&&&&&&&
.[F
────────┴──────────────────────────────────────────────────────────────┴────────────┼─────────────────┼─────────────────
                                                                            Перенос │&'&&&&&&&&&&&&&&&│&'&&&&&&&&&&&&&&&
                                                                                    └─────────────────┴─────────────────
.begin
  СтраницГод := СтраницГод+1;
  СтраницМес := СтраницМес+1;
end.
.]F
.}
────────────────────────────────────────────────────────────────────────────────────┬─────────────────┬─────────────────
                                                                                    │                 │
                                                                      Итого за день │&'&&&&&&&&&&&&&&&│&'&&&&&&&&&&&&&&&
                                                                                    ├─────────────────┼─────────────────
                                                               Остаток на конец дня │&'&&&&&&&&&&&&&&&│        X
                                                                                    ├─────────────────┼─────────────────
                                           в том числе на заработную плату, выплаты │                 │
                                           социального характера и стипендии        │&'&&&&&&&&&&&&&&&│        X
                                                                                    └─────────────────┴─────────────────
.if BREAKPAGE
^
.else
.end
.}
.if DUPRINTPAGE
 ^

.else
.end

 Кассир     ___________________      ^
                  подпись              расшифровка подписи

 Записи  в  кассовой  книге  проверил  и  документы  в
 количестве @~@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ приходных и
            ------------------------------------------------------
 @~@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ расходных
 -----------------------------------------------------------------
 получил.

 Бухгалтер  ___________________      ^
                  подпись              расшифровка подписи
.}
.endform

Добавлено: 19 апр 2010, 10:54
Maverick
данный отчетец живет в f_buhrep.res
он подключен.
его атрибуты: размер 3 986 074 байт, от 29.03.10 17:21

Добавлено: 19 апр 2010, 11:27
KATZ
Стоит именно этот F_BUHREP, исходник от 2006 года был взят из старинного GalFrm.rar, всё нормально компилируется. Прототип либо совсем не менялся, либо изменения не затронули топологию. Ищите причину где-то еще (например, версию VIP.EXE посмотрите).

Добавлено: 19 апр 2010, 11:29
Maverick
edward_K писал(а):это по F4
вообще скорей всего у вас рес соотв.не подключен.
если бы соотв. ресурс не был подключен, ругань была бы аля "не найдена форма-прототип"...

приведенную выше форму компилил - она 1 в 1 как у меня... получал ту же ошибку - "не определен идентификатор".

Добавлено: 19 апр 2010, 13:43
Maverick
Видимо, все-таки я лошадь, но все равно непонятно...

опытным путем разобрался с проблемой... но все равно осталось легкое недоумение.
итак

изначально было так:

а) в одном файле имелось 2 линк-формы
б) в файле проекта было #make '\*.frm'

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

. linkform form1 prototype platdocs
...
.endform

....

.linkform form2 prototype DAYUCHVED
...
.endform
разнес линк-формы по разным файлам, в проекте явно прописал

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

#make '\1.frm'
#make '\2.frm'
скомпилировалось на ура...

похоже что для 1 исходника одновременно подключается только 1 ресурсник.. как-то так...