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

Запрещённая команда

Добавлено: 27 ноя 2008, 18:04
Pomuk
Добрый день. Решил переделать стандартную форму расчётного листка из бизнес текста в rtf. Вроде, всё перенёс 1 к 1. Проверял несколько раз, однако прикомпиляции, выдаёт ошибку :

Ошибка: запрещенная команда
.end

То есть, ругается на последний .end
Что в нём запрещённого - ума не приложу.:???:
Может кто сталкивался с такой проблемой?
Ниже текст исходника

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

.linkform 'raslistr_01' prototype is 'raslistr'
.group 'fullone'
.nameinlist'Полная  форма  расчетного  листка'
.var
  PeriodStr : string;
.endvar
.fields
CommonFormHeader
.endfields
^
.fields
 NPred
! Mes God
 PeriodStr
 Podr Tabn FIO
 ПодраздРаботника
 N1 Okl
 Msro Koldn Kolch Kod Nopl Summaop
 Nachisl Neobl
 FondDn FondCh
 FaktDn FaktCh
 PlanDn PlanCh
 PaidDn PaidCh
 Msru Kodud Nudr Summaud
 Uder
 str_Dolg1 Dolg1
 str_Dolg2 Dolg2
 Msrn Kodn Nudn Summan
 Nenach
 FOT_NALCODE  FOT_NALNAME   FOT_NALSUM
 str4 доход str1 Годовой_доход str2 Налог
 str6 Дополнит_налог str5 Дополнит_доход
 str7 Пенс_Фонд  str8 Пенс_Фонд_Район
 ДоходИмЛьготу Вычеты
 str9 Мат_Пом  str10 Скид_МатПом
 str_alter1 Сум_Подарки str_alter2 Сум_ПодаркиЛгот
 pmCodeDoh pmSumDoh pmCodeVych pmSumVych
 str_Необлагаемая_сумма
 str11 НА_Себя str12 НА_Детей str13 Скидки
 str14 ПРедМестоРАб
 ESN_NAME  ESN_SUMVIPL ESN_SUMNAL
 Описание Код Дни Часы Дата_с Дата_по
.endfields

 Предприятие :^
.{ RListMainLoop CheckEnter
.if cc0r
.begin
  if(PDO_PeriodEnding = Date(Last_Day(PDO_PeriodEnding), month(PDO_PeriodEnding), year(PDO_PeriodEnding)))
    PeriodStr :='за '+Mes+' месяц '+String(God)+' г.'
  else
    PeriodStr :='за период с '+String(PDO_PeriodBeginning)+' по '+String(PDO_PeriodEnding)
end.
Подразд	Таб.номер	Фамилия И.О.
^	^	^ ^
Подразделение сотрудника :^
^	Тарифная ставка/Оклад &'#&&&&&&&&&&&&&&&&&
М-ц	Кол.дн	Часов	Код	Наименование вида оплат(удержаний)	СУММА
.{ RListNachLoop CheckEnter
^	^	^ 	^	^	^
.}
				НАЧИСЛЕНО....	^
				СУММА, НЕ ОБЛАГАЕМАЯ НАЛОГОМ....	^
				ФОНД ВРЕМЕНИ....	&&.&дн. &&&.&&ч.
				ФАКТИЧЕСКИ ОТРАБОТАНО ВРЕМЕНИ....	&&.&дн. &&&.&&ч.
.if CRPLANDAYS
				ПЛАНОВОЕ ВРЕМЯ....	&&.&дн. &&&.&&ч.
.end
.if CRPAIDDAYS
				ОПЛАЧИВАЕМОЕ ВРЕМЯ....	&&.&дн. &&&.&&ч.
.end
.{ RListUderLoop CheckEnter
^			^	^	^
.}
				УДЕРЖАНО....	^
				^	^
				^	^
.{ RListNeNachLoop CheckEnter
^			^	^	^
.}
.if NENER
				НЕНАЧИСЛЯЕМЫЙ ДОХОД...	^
.end
.if CNALOGFOT

Номер налога	Наименование налога	Сумма Налога
.{ FOTLoop CheckEnter
^	^	^
.}
.end
^	^	^	^	^	^
^	^	^	^
.if FIELDSPENS
^	^	^	^
.end
.if PRINTMATPODAR 
= Виды доходов имеющие налоговые вычеты.Доход	^	Вычеты ^=
 .if PRINTMAT
^	^	^	^
.end
.if PRINTPODAR
^	^	^	^
.end
.{ TabHelpLoop CheckEnter
Доход 	^	^	Вычет	^	^
.}
.end
.if PRINTSUMNEOBLAG
^
^	^	^	^
^	^	^	^
.end
!.}
.if PRINTESN
============================= Е С Н ================================
Название фонда	Налоговая база	Сумма налога
.{ ESNLoop CheckEnter
^	^	^
.}
.end
.if CC4R
=========================== Неявки ===============================
.{ nejav CheckEnter
^(@@@@@)&&&&дн.	&&&&&&&.&&ч.	C ^	По ^
.} 
.end 
.end 
.} 
 
.endform 


Добавлено: 27 ноя 2008, 18:13
edward_K
в конце наверное один .end
лишний. А вообще смотрите все .if (и чтоб там пробелов не было) и к ним .end. Номер строки в ошибке вам точно должен показать :)

Добавлено: 27 ноя 2008, 18:18
Pomuk
дык всё перепроверял 3 раза. и все if c end
если с последним end что-то сделать, то сразу ругается на несовпадение с прототипом.
а по поводу указания на строку с ошибкой. То указывает как раз на конец 127 строки этого примера. Это и есть последний .end

Добавлено: 27 ноя 2008, 18:39
edward_K
начинает ругаться потому как наверное прототип поменялся 8)
сверте с формой полученной из галки по F4. или прототипы из frm\galfrm и последнего патча.

Добавлено: 27 ноя 2008, 19:02
Polimer
Если речь о 8.1, то у вас старый прототип.

.{ YearTotals CheckEnter
.if FieldsPens
.end
.if PrintMatPodar
.if PrintMat
.end
.if PrintPodar
.end
.{ TabHelpLoop CheckEnter
.}
.end
.if PrintSumNeoblag
.end
.}

Добавлено: 28 ноя 2008, 11:43
Pomuk
Нет, речь шла о 7,12 :(

Добавлено: 28 ноя 2008, 11:58
KATZ
edward_K насчет пробелов правильно написал. Обратите внимание на строчку

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

 .if PRINTMAT

Добавлено: 28 ноя 2008, 17:23
Pomuk
А что в ней не так?

Добавлено: 28 ноя 2008, 17:25
Pomuk
помаялся сегодня и уже на другую проблему наткнулся. Отчёт компилируется, подключается, и даже выполняется! :smile:
Только после выгрузки данных сам отчёт не открывается. То есть, в out он появляется, а вот на экран word не открывается с отчётом.

Добавлено: 28 ноя 2008, 18:06
edward_K
сделайте ярлык на файл в out 8)
а вообще форма должна называться
.LinkForm 'RASLISTR_01_RTF' Prototype is 'RasListr'
ну или slk в конце. Там просто еще обработка в dll вызывается и файлы открываются уже оттуда.

Добавлено: 28 ноя 2008, 18:24
Polimer
edward_K писал(а):вообще форма должна называться
.LinkForm 'RASLISTR_01_RTF' Prototype is 'RasListr'
ну или slk в конце. Там просто еще обработка в dll вызывается и файлы открываются уже оттуда.
Странно, а у меня работает без RTF и SLK.

Добавлено: 28 ноя 2008, 18:28
edward_K
и формы небось текстовые? а версия?

Добавлено: 28 ноя 2008, 18:34
Pomuk
У меня и с
LinkForm 'RASLISTR_01_RTF' Prototype is 'RasListr'
не открывается.
А по поводу ярлычка, то это конечно так-то оно так.. Только вот пользователям, привыкшим что "жмёшь кнопочку и в конце концов должен открыться отчёт" сказать, что вот знаете, "тут не играйте, тут рыба лежала", а вот этот отчётик не открывается, его надо открывать вот через этот ярлык, а для этого надо ещё и свернуть галактику, а потом опять развернуть.... и т.д.:???: как то не особо язык поворачивается (зная какая последует реакция :) )Да и вообще, мы ж с вами понимаем, что "по хорошему" отчёт должен сам открыться.
:-(
Polimer писал(а):Странно, а у меня работает без RTF и SLK.

а можно исходничек rtf формочки?
:razz:

Добавлено: 28 ноя 2008, 19:41
edward_K
.LinkForm 'RASLISTR_01_RTF' Prototype is 'RasListr'
.group 'user'
.NameInList 'Расчётный листок (в формате Word)'
еще наверное дело в группе.

Добавлено: 01 дек 2008, 07:14
jornand
Было подобная трабла, когда саму форму .rtf создавал в MS Word 2007 появлялась подобная ошибка. Потом тупо открывал MS Word 2003, вставлял туда текст той же самой формы и компиляция проходила без ошибок. Не знаю почему так, но лекарство к ошибке было у меня такое.