Собственная программа в бланке документа.

Собственная программа в бланке документа.

Сообщение dmitry » Чт дек 04, 2014 2:17 pm

Начиная с версии 4.2.26 в конструкторе бланков можно добавить логику, написать программу.
Например:
1. Чтобы в накладной печатался текст о задолженности покупателя.
2. Чтобы была ссылка на связанный документ ("По счету №...").
3. Чтобы при связи с оплатой был текст о сумме аванса.

Общие действия:
- В бланке добавить пустую рамку для текста, присвоить ей имя "Note".
- Нажать "Программа" и вставить текст, выбранный ниже.
- Закрыть (сохранив изменения) и снова нажать "Печать".

2.png
2.png (21.04 КБ) Просмотров: 2165

Варианты:

1. Долг покупателя:

Note.Text = ""
Dim Op As Predpr.Doc = Frm.Op
Dim Pokup As Predpr.Person = Op.DocPerson
If Pokup Is Nothing Then Exit Sub
Dim Sum as Decimal
Sum = Pokup.GetDebt("Db", Op)
If Sum>0 Then Note.Text = "Ваш долг без учета этой накладной: " & Sum.ToString("0.00")


2. Ссылка "По счету №...":

Note.Text = ""
Dim Op As Predpr.Doc = Frm.Op
Dim LinkOp as Predpr.Doc = Op.GetLinkDoc(3)
If LinkOp is nothing Then Exit Sub
Note.Text="За рахунком № " & LinkOp.DocNum & " вiд " & LinkOp.DocDate
'Note.Text="По счету № " & LinkOp.DocNum & " от " & LinkOp.DocDate


3. Про аванс или полную оплату:

Note.Text = ""
Dim Op As Predpr.Doc = Frm.Op
Dim LinkOp as Predpr.Doc
LinkOp = Op.GetLinkDoc(6)'Касса
'LinkOp = Op.GetLinkDoc(4)'Банк
If LinkOp is nothing Then Exit Sub
If LinkOp.DocSum < Op.DocSum Then
Note.Text = "Получен аванс " & LinkOp.DocSum.ToString("0.00")
end if
If LinkOp.DocSum >= Op.DocSum Then
Note.Text = "Оплачено " & LinkOp.DocSum.ToString("0.00")
end if



P.S. Если в тексте будет ошибка, то при нажатии "Печать" появится ее описание, и строка, вызвавшая сбой, будет отмечена красным. Можно ее просто закомментировать (апостроф в начале строки), сохранить и снова нажать "Печать".
dmitry
Разработчик
 
Сообщения: 2893
Зарегистрирован: Чт янв 27, 2011 3:43 pm

Re: Собственная программа в бланке документа.

Сообщение sanich42 » Сб янв 03, 2015 7:45 pm

Версию обновил, все вроде сделал, но в бланке нечего не изменилось
sanich42
 
Сообщения: 9
Зарегистрирован: Сб янв 03, 2015 7:40 pm

Re: Собственная программа в бланке документа.

Сообщение sanich42 » Сб янв 03, 2015 10:09 pm

Сумма аванса выходит на печать, а долг не получается
sanich42
 
Сообщения: 9
Зарегистрирован: Сб янв 03, 2015 7:40 pm

Re: Собственная программа в бланке документа.

Сообщение dmitry » Вс янв 04, 2015 2:30 pm

sanich42 писал(а):Сумма аванса выходит на печать, а долг не получается

Это по разным покупателям? Если по одному и тому же, то если он внес аванс (предоплату), то долга действительно нет (без учета текущей накладной, которая печатается).
dmitry
Разработчик
 
Сообщения: 2893
Зарегистрирован: Чт янв 27, 2011 3:43 pm

Re: Собственная программа в бланке документа.

Сообщение sanich42 » Вт янв 06, 2015 10:41 pm

Это по разным покупателям. Я внес в бланк функцию вывода суммы долга, все сохранил. Создал накладную, провел, вывел на печать, но надпись не появилась
sanich42
 
Сообщения: 9
Зарегистрирован: Сб янв 03, 2015 7:40 pm

Re: Собственная программа в бланке документа.

Сообщение dmitry » Ср янв 07, 2015 6:38 am

Долг без учета текущей накладной, которая выводится на печать. Иначе в большинстве случаев было бы: "Итого 1000 грн. Долг 1000 грн", что не имеет смысла.
dmitry
Разработчик
 
Сообщения: 2893
Зарегистрирован: Чт янв 27, 2011 3:43 pm

Re: Собственная программа в бланке документа.

Сообщение sanich42 » Ср янв 07, 2015 11:39 am

Ну НЕ выводится долг на печать. :( Может это связано с использованием нескольких валют?
sanich42
 
Сообщения: 9
Зарегистрирован: Сб янв 03, 2015 7:40 pm

Re: Собственная программа в бланке документа.

Сообщение vik » Ср янв 07, 2015 4:03 pm

sanich42 писал(а):Ну НЕ выводится долг на печать. :( Может это связано с использованием нескольких валют?

Во вложении бланк аванс и долг должно выводить
Вложения
Накладная аванс долг.rar
(2.44 КБ) Скачиваний: 65
vik
 
Сообщения: 565
Зарегистрирован: Пт мар 25, 2011 9:38 am

Re: Собственная программа в бланке документа.

Сообщение dmitry » Чт янв 08, 2015 7:07 am

sanich42 писал(а):Может это связано с использованием нескольких валют?

Таки да! Оказалось, что если в Справочники/Валюты отмечен $, то долг вычисляется в $, потом из него вычитается сумма текущей накладной в грн, и остается сумма <0. Исправлю в обновлении, которое выйдет сегодня-завтра.
dmitry
Разработчик
 
Сообщения: 2893
Зарегистрирован: Чт янв 27, 2011 3:43 pm

Re: Собственная программа в бланке документа.

Сообщение amg372 » Вт янв 30, 2018 9:16 am

А все три варианта в одном бланке как сделать?
amg372
 
Сообщения: 32
Зарегистрирован: Пн май 11, 2015 4:34 am

Re: Собственная программа в бланке документа.

Сообщение dmitry » Вт янв 30, 2018 1:38 pm

Одну рамку для текста назвать например Note, вторую - Note2 и изменить это в тексте.
dmitry
Разработчик
 
Сообщения: 2893
Зарегистрирован: Чт янв 27, 2011 3:43 pm

Re: Собственная программа в бланке документа.

Сообщение Василий » Пт фев 02, 2018 12:53 pm

В справочнике "Партнеры" добавили клиентов и добавили
произвольное свойство "Скидка на услугу" тип данных число
(у разных клиентов она своя).
В бланк "Акт выполненных работ" по клиентам мы добавляем вывод
на печать значения данной произвольной скидки
"Заголовок - Кому - Свойство(Скидка)"

Вопрос: можно ли помощи собственной программы в бланке документа
выполнить расчет, чтобы итоговая сумма "=Сумма_ВСЕГО" была уменьшена
на это значение скидки и при печати было видны обе суммы, а в учет
попадала сумма уменьшенная на значение скидки ?
Василий
 
Сообщения: 6
Зарегистрирован: Ср апр 26, 2017 7:23 pm

Re: Собственная программа в бланке документа.

Сообщение dmitry » Пт фев 02, 2018 3:21 pm

Зачем так сложно, если персональная скидка предусмотрена как стандартное свойство.

1.png
1.png (11.64 КБ) Просмотров: 860

Удалите созданное вами, чтобы не путаться. В бланке можно нарисовать рамку и указать данные "Скидка%" (в разделе Итоги/Текст).

2.png
2.png (21.55 КБ) Просмотров: 860

Главное - скидка будет применяться не при печати, а сразу при заполнении документа. При печати будет конечная сумма с учетом скидки. Можно наоборот добавить начальную без скидки, но нужно ли это, или клиенту достаточно видеть процент скидки и результат?
dmitry
Разработчик
 
Сообщения: 2893
Зарегистрирован: Чт янв 27, 2011 3:43 pm

Re: Собственная программа в бланке документа.

Сообщение Василий » Пт фев 02, 2018 4:43 pm

Спасибо за ответ!
Но при фиксированном проценте значение скидки меняется от стоимости услуги,
можно как-то сделать так, чтобы скидка была фиксированной суммой, не
зависела от стоимости услуги и была разной у разных партнеров
Василий
 
Сообщения: 6
Зарегистрирован: Ср апр 26, 2017 7:23 pm

Re: Собственная программа в бланке документа.

Сообщение dmitry » Сб фев 03, 2018 9:50 am

Понял: не процент, а сумма. Можно вписать такую подпрограмму, но не в бланке, а в шаблоне операции "Выполнены работы" (главное - вычисления, а в бланке добавим что угодно). Тогда действительно будет использоваться ваше свойство "Скидка на услугу".
Позвоните в понедельник, подключусь и сделаю.
dmitry
Разработчик
 
Сообщения: 2893
Зарегистрирован: Чт янв 27, 2011 3:43 pm

След.

Вернуться в Использование программы

Кто сейчас на конференции

Сейчас этот форум просматривают: Pljushevij, ruslabigboy и гости: 2