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

Тема в разделе "1C и всё что с ней связано", создана пользователем Dlopoel, 2 июн 2013.

  1. Dlopoel

    Dlopoel New Member

    Регистрация:
    2 июн 2013
    Сообщения:
    1
    Симпатии:
    0
    Есть справочник "Клиент", в этом справочнике есть поля "Имя", "Фамилия", "Отчество" и автоматически создаваемое "Наименование". Нужно чтобы когда заносишь данные в первые 3 поля, в наименовании автоматически формировалось "ФИО".
    Пример:
    Имя: Иван
    Фамилия: Иванов
    Отчество: Андереев
    Итого в Наименовании: Иванов И.А.



    Вопрос 2:

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

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

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

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

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

    lira89 Well-Known Member

    Регистрация:
    12 мар 2010
    Сообщения:
    159
    Симпатии:
    0
    1) При записи элемента пишешь:

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

    Tomash Active Member

    Регистрация:
    16 янв 2013
    Сообщения:
    40
    Симпатии:
    0
    повесить на каждое поле общую обработку для наименования
    что-то вроде
    Код ( (Unknown Language)):
    ПРоцедура ПриИзмененииПоля()
    Наименование = СокрЛП(Фамилия) + " " + Лев(Имя,1) + ". " + Лев(Отчество,1) + ".";
    КонецПроцедуры

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

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

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

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Если речь идет о ТиС 1с7.7, тогда оба вопроса сводятся к изобретению двух новых (и не слишком качественных) двухколесных агрегатов
     
Загрузка...

Поделиться этой страницей