• Ласкаво просимо на Спільнота для обміну досвідом між користувачами програм УкрБланк, УкрСклад, УкрЗарплата.
 

Использование скриптов С++

Автор roman787, Грудень 16, 2008, 18:39:35

Попередня тема - Наступна тема

0 Користувачі і 2 Гостей дивляться цю тему.

roman787

Ответьте пожалуйста как можно присвоить значение получившееся в скрипте, переменной в списке пременных.

Вот скрипт :
float НДС ;
{
  if((<Докум.Сумма>*20/100-Trunc(<Докум.Сумма>*20/100)) > 0)
   {
   НДС = Trunc(<Докум.Сумма>*20/100)+(Round(((<Докум.Сумма>*20/100-Trunc(<Докум.Сумма>*20/100))*100))/100);
   }
  else
  НДС = <Докум.Сумма>*20/100 ;
}
В списке "Мои переменные" создал переменную НДС. Но значение не присваивается НДС=0

Заранее Спасибо :)

admin

1. Не используйте общие названия для переменных, используйте например myNDS вместо НДС.
2. Не используйте русские буквы в переменных.
3. Для начала попробуйте простое вычисление, может по скрипту у Вас и получается 0, что-то вроде if (1==1) myNDS = 1; else myNDS = 0;
4. Какой переменной в отчете вы видите что НДС=0?

roman787

Спасибо за ответ.
Просто мне в договоре нужно указать не только сумму договора но и ПДВ и сумму без ПДВ.
Я делаю Акт выполненых работ а из него в договор. Переносится только Сумма с ПДВ.
Вот что у меня в договоре:

2.1. За роботи передбачені п.1.1 цього договору ЗАМОВНИК сплачує ВИКОНАВЦЮ [<Докум.Сумма>-<NDS>] грн. та [NDS] ПДВ грн., всього: [Докум.Сумма]грн. ([Докум.Сумма.Словами]) , відповідно до розцінок, затверджених наказом генерального директора.

В предыдущем сообщении скрипт которым я пытаюсь посчитать ПДВ и округлить до двух знаков после запятой если число имеет больше значений после запятой. Округление есть но если вставлять его в текст как функцию оно получается как картинка. Тоесть не отформатировано и перекрывается текстом. К сожалению я не знаю как увидеть значение полученное в результате выполнения скрипта. Чтобы увидеть его я в тексте договора пишу " та [NDS] ПДВ грн." Я записал переменную латинскими буквами но значение 0.

admin

Если получается 0, значит не корректно прописан скрипт, тем более что НДС вы считаете не правильно, а вообще вы слишком усложняете?

НДС выводите с форматированием:
[FORMATFLOAT("0.00",(<Докум.Сумма>/6))]
А сумму без НДС с форматированием:
[FORMATFLOAT("0.00",(<Докум.Сумма>-<Докум.Сумма>/6))]

roman787

Спасибо за подсказку все проще чем я намудрил. Все заработало !!! Спасибо !!!

mamon99

Я конечно не силён во всех  этих вопросах, но не могли бы вы более подробно описать где и куда вставить выражения "НДС выводите с форматированием:
[FORMATFLOAT("0.00",(<Докум.Сумма>/6))]
А сумму без НДС с форматированием:
[FORMATFLOAT("0.00",(<Докум.Сумма>-<Докум.Сумма>/6))]"
Что ни пробовал ничего не вышло - ошибка и всё. Бьюсь уже несколько дней. Заранее спасибо.

admin

Цитата: mamon99 від Березень 15, 2009, 22:39:53
Я конечно не силён во всех  этих вопросах, но не могли бы вы более подробно описать где и куда вставить выражения "НДС выводите с форматированием:
[FORMATFLOAT("0.00",(<Докум.Сумма>/6))]
А сумму без НДС с форматированием:
[FORMATFLOAT("0.00",(<Докум.Сумма>-<Докум.Сумма>/6))]"
Что ни пробовал ничего не вышло - ошибка и всё. Бьюсь уже несколько дней. Заранее спасибо.

Пару дней? Скажите что вы делаете и какая у Вас именно ошибка?

mamon99

Создаю отчёт для договора с заказчиком. Нужны в договоре такие позиции как  "в том числе НДС" и "сумма без НДС". Понял что нужно создать новую переменную. Сделал. Но при повторном открытии отчёта договора новой переменной не увидел и при просмотре отчёта выдаёт ошибку. Куда ставится позиция [FORMATFLOAT("0.00",(<Докум.Сумма>/6))] и куда[FORMATFLOAT("0.00",(<Докум.Сумма>-<Докум.Сумма>/6))]. Очень большая просьба - опишите для тех кто в танке как сделать и использовать переменные для "в том числе НДС" и "сумма без НДС". Не все же програмисты как вы. Некоторые сами пытаются разобраться....

admin

Цитата: mamon99 від Березень 17, 2009, 21:11:23
Понял что нужно создать новую переменную. Сделал.

Тут не понятно, где вы сделали переменную? Также вы писали что у вас ошибка, а какая так и не написали.  Ее не надо делать просто вставить текст по аналогии с другими переменными. Зайдите в Справочник шаблонов договоров, выберите нужный шаблон, нажмите Редактировать шаблон, потом в дизайнере 2 раза кликните на текстовку вставьте в любое место например [FORMATFLOAT("0.00",(<Докум.Сумма>-<Докум.Сумма>/6))], зеленую галочку, потом сохранить. После создайте договор и увидите вашу переменную.

mamon99

А не работает! Пробовал. Делаю вот так:

admin

1. Какая у вас версия программы?
2. В дизайнере переключитесь на вкладку Код и проверьте возможно у вас включен PascalScript, я формулу писал для C++ Script, поменяйте.

mamon99

1) Версия программы 4.59.
2) Спасибо всё прекрасно работает.
А так как заработало,  сразу возник вопрос: возможно ли как то прописать эту сумму НДС словами?

admin

Цитата: mamon99 від Березень 20, 2009, 09:51:10
А так как заработало,  сразу возник вопрос: возможно ли как то прописать эту сумму НДС словами?

[Suma2String(FORMATFLOAT("0.00",(<Докум.Сумма>-<Докум.Сумма>/6)),0)]
или
[Suma2String(FORMATFLOAT("0.00",(<Докум.Сумма>-<Докум.Сумма>/6)),1)]

mamon99


admin

Такой код:
[Suma2String((<Докум.Сумма>-<Докум.Сумма>/6),true)]
будет работать но только из архива, в след. версии исправим чтобы работал и из редактирования документа.