Подскажите С Решение Пары Вопросов В Программировании 1с

Dlopoel

New Member
02.06.2013
1
0
#1
Есть справочник "Клиент", в этом справочнике есть поля "Имя", "Фамилия", "Отчество" и автоматически создаваемое "Наименование". Нужно чтобы когда заносишь данные в первые 3 поля, в наименовании автоматически формировалось "ФИО".
Пример:
Имя: Иван
Фамилия: Иванов
Отчество: Андереев
Итого в Наименовании: Иванов И.А.



Вопрос 2:

Есть справочник "скидка", есть документ "продажа", сейчас я скидку каждому покупателю выбиваю сам, независимо не от чего, а надо, чтобы скидка автоматически вносилась в зависимости от суммы покупки, причем было 3 вычисляемых поля:

1: Сумма покупки

2: Процент скидки (причем если скидки нет, то поле было всегода = 0) (скидка будет 5% > 5000 руб. 10% > 10000 руб. 15% > 20000 руб.)

3: Сумма со скидкой

Заранее спасибо за помощь
 

lira89

Well-Known Member
12.03.2010
154
0
28
Гомель
#2
1) При записи элемента пишешь:

Код:
Процедура ПриЗаписи()
Стр = СокрЛП(Фамилия)+" "+СокрЛП(Имя)+" "+СокрЛП(Отчество);
Фам = Лев(Стр,Найти(Стр," "));	
ИО=СокрЛП(Прав(Стр, СтрДлина(Стр)-Найти(Стр," ")));
Имя = СокрЛП(Лев(ИО, Найти(ИО," ")));
ИмяЗагл = Лев(Имя,1);		
Отчество = СокрЛП(Прав(ИО, СтрДлина(ИО)-Найти(ИО," ")));
ОтчествоЗагл = Лев(Отчество,1);	
Наименование = Фам+" "+ ИмяЗагл+"."+ОтчествоЗагл+".";
КонецПроцедуры
Добавлено: 2) Не совсем понятно: вы пишете, что сами вносите сумму покупки, а как же она тогда должна быть вычисляемой??? Процент скидки высчитывается исходя из суммы покупки? Если да, то в справочник со скидками добавьте реквизиты диапазон сумм в которые попадает ваша скидка и просто выполните поиск в справочнике.
Ну а СуммаСоСкидкой = СуммаПокупки - ((СуммаПокупки*Скидка)/100);
 

Tomash

Active Member
16.01.2013
40
0
#3
Есть справочник "Клиент", в этом справочнике есть поля "Имя", "Фамилия", "Отчество" и автоматически создаваемое "Наименование". Нужно чтобы когда заносишь данные в первые 3 поля, в наименовании автоматически формировалось "ФИО".
Пример:
Имя: Иван
Фамилия: Иванов
Отчество: Андереев
Итого в Наименовании: Иванов И.А.
повесить на каждое поле общую обработку для наименования
что-то вроде
Код:
ПРоцедура ПриИзмененииПоля()
Наименование = СокрЛП(Фамилия) + " " + Лев(Имя,1) + ". " + Лев(Отчество,1) + ".";
КонецПроцедуры

Вопрос 2:

Есть справочник "скидка", есть документ "продажа", сейчас я скидку каждому покупателю выбиваю сам, независимо не от чего, а надо, чтобы скидка автоматически вносилась в зависимости от суммы покупки, причем было 3 вычисляемых поля:

1: Сумма покупки

2: Процент скидки (причем если скидки нет, то поле было всегода = 0) (скидка будет 5% > 5000 руб. 10% > 10000 руб. 15% > 20000 руб.)

3: Сумма со скидкой

Заранее спасибо за помощь
скидка зависит только от суммы разовой покупки?
тогда всё предельно просто
и поля наверное не нужны, можно обойтись текстом с формулой, например такой

Код:
СокрЛП(Формат(Итог("СуммаСНДС"),"Ч18.2-,"))
Скидку считать вариантов много, например, отдельной процедурой, в которой искать в какой диапазон из справочника попадает сумма текущая покупки

в зависимости от того, как вы формируете документ, можно использовать разные способы вызова этой процедуры, из моего опыта, удобно вешать её на поле Количество, после того, как вы выбрали товар и указали его количество - срабатывает пересчет.
 

vbs

Well-Known Member
18.02.2007
1 708
3
Санкт-Петербург
#4
Если речь идет о ТиС 1с7.7, тогда оба вопроса сводятся к изобретению двух новых (и не слишком качественных) двухколесных агрегатов