Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
14 Дек 2017, 16:25
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Подскажите с решение пары вопросов в программировании 1С  (Прочитано 6167 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Dlopoel

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-06-02
  • Сайт: 
  • Профессия: Ученик 1С
Вопрос 1:

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

 

Вопрос 2:

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

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

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

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

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


Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
1.
Наименование = Фамилия+" "+Лев(Имя,1)+". "+Лев(Отчество,1)+".";
2.
Перем ПроцентСкидки;
Если Сумма < 5000 Тогда
   ПроцентСкидки = 0;
ИначеЕсли Сумма >= 5000 и Сумма < 10000 Тогда
   ПроцентСкидки = 5;
ИначеЕсли Сумма >= 10000 и Сумма < 20000 Тогда
   ПроцентСкидки = 10;
Иначе
   ПроцентСкидки = 15;
КонецЕсли;
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Dlopoel

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-06-02
  • Сайт: 
  • Профессия: Ученик 1С
Все получилось, спасибо большое!
А еще можно как-то в строке скидки, после числа поставить знак "%" Например: Скидка: 10 %
Попробовал так:
ПроцентСкидки = 0+"%";
Соответственно не получилось, тогда программа перестает считать итог

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Конечно, "%" это строка и по ней не получиться считать итог (И вообще что либо посчитать)
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Это у вас в табличной части? Или реквизит на форме?
Обычные формы или Управляемые?
Добавлено: 02 Июн 2013, 18:56

Примерно так у вас должно получиться
ПроцентСкидки = 15;
ПредставлениеСкидки = ""+ПроцентСкидки+"%";
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Besart

  • *****
  • Сообщений: 678
  • РЕПУТАЦИЯ: 142
  • КПД: 21%
  • Регистрация: 2012-12-10
    • Skype: artfa.a
  • Компания: Фрилансер
  • Профессия: Программист 8.1
если форма управляемая то
&НаКлиенте
Процедура ОтчествоПриИзменении(Элемент)
Объект.Составной = "";
Объект.Составной = Объект.Фамилия + "." +Лев(Объект.Имя,1) + Лев(Объект.Отчество,1);
КонецПроцедуры

&НаКлиенте
Процедура ИмяПриИзменении(Элемент)
Объект.Составной = "";
Объект.Составной = Объект.Фамилия + "." +Лев(Объект.Имя,1) + Лев(Объект.Отчество,1);
КонецПроцедуры

&НаКлиенте
Процедура ФамилияПриИзменении(Элемент)
Объект.Составной = "";
Объект.Составной = Объект.Фамилия + "." +Лев(Объект.Имя,1) + Лев(Объект.Отчество,1);
КонецПроцедуры


Оффлайн Codokopatel

  • *
  • Сообщений: 24
  • РЕПУТАЦИЯ: 9
  • КПД: 38%
  • Регистрация: 2013-05-02
  • Сайт: 
  • Профессия: Программист 1С
Можно попробовать вариант полной автоматизации с контролем на заполненность поля "Фамилия"

// В данном примере код исполняется в режиме "Управляемое приложение" 1С8.2
// В обычном будет попроще (без вызова сервера), но алгоритм одинаков
// для обоих режимов

// 1-ый БЛОК
// В этом блоке Происходит автоматическое заполнение поля "Наименование"
// при внесении или изменении значения в соответствующем поле ФИО.
// Если поле "Фамилия" не заполнено, то нет смысла заполнять поле
//"Наименование", поэтому вызов процедуры автозаполнения
// поля "Наименование" происходит только при заполненном поле "Фамилия"
&НаКлиенте
Процедура ИмяПриИзменении(Элемент)
Если СокрЛП(Объект.Фамилия) <> "" Тогда
ЗаполнениеНаименования();
КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ФамилияПриИзменении(Элемент)
Если СокрЛП(Объект.Фамилия) <> "" Тогда
ЗаполнениеНаименования();
КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ОтчествоПриИзменении(Элемент)
Если СокрЛП(Объект.Фамилия) <> "" Тогда
ЗаполнениеНаименования();
КонецЕсли;
КонецПроцедуры

// 2-ой БЛОК
// Так как данная процедура запускается только при условии заполнения поля
// "Фамилия", то осталось заполнить поле "Наименование" с учетом значений
// в полях "Имя " и "Отчество"
// Может быть четыре варианта заполнения:
// 1-ый - заполнено только поле "Фамилия", соответственно в поле "Наименование"
// будет внесено только значение поля "Фамилия"
// 2-ой - кроме поля "Фамилия" заполнено поле "Имя"
// соответственно в поле "Наименование" будут внесены только значения поля "Фамилия"
// и поля "Имя"
// 3-ий - кроме поля "Фамилия" заполнено поле "Отчество"
// соответственно в поле "Наименование" будут внесены только значения поля "Фамилия"
// и поля "Отчество"
// 3-ий - заполнены все три поля
// соответственно в поле "Наименование" будут внесены значения всех трех полей
&НаСервере
Процедура ЗаполнениеНаименования()
// СокращенноеИмя и СокращенноеОтчество это переменные
СокращенноеИмя = Лев(СокрЛП(Объект.Имя),1);
СокращенноеОтчество = Лев(СокрЛП(Объект.Отчество),1);

// подготовка значения поля "Имя" для записи в поле "Наименование"
Если СокращенноеИмя <> "" Тогда
СокращенноеИмя = СокращенноеИмя + ". " ;
Иначе
СокращенноеИмя = "";
КонецЕсли;

// подготовка значения поля "Отчество" для записи в поле "Наименование"
Если СокращенноеОтчество <> "" Тогда
СокращенноеОтчество = СокращенноеОтчество + "." ;
Иначе
СокращенноеОтчество = "" ;
КонецЕсли;

Объект.Наименование = СокрЛП(Объект.Фамилия) +" "+ СокращенноеИмя +" "+ СокращенноеОтчество;

КонецПроцедуры // ЗаполнениеНаименования()

Оффлайн Dlopoel

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-06-02
  • Сайт: 
  • Профессия: Ученик 1С
Это у вас в табличной части? Или реквизит на форме?
Обычные формы или Управляемые?
Добавлено: 02 Июн 2013, 18:56

Примерно так у вас должно получиться
ПроцентСкидки = 15;
ПредставлениеСкидки = ""+ПроцентСкидки+"%";

Это реквизит на форме, форма я так понимаю обычная.
Так у меня не получилось, форма не выдала ошибок, но и знак "%" не поставила

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Покажите скрин вашей формы в "Пофигураторе"
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Codokopatel

  • *
  • Сообщений: 24
  • РЕПУТАЦИЯ: 9
  • КПД: 38%
  • Регистрация: 2013-05-02
  • Сайт: 
  • Профессия: Программист 1С
Если у Вас реквизит ПредставлениеСкидки имеет тип СТРОКА, то проблем с вышеприведенным кодом от Dethmontt быть не должно.


Теги:  8.1 помощь 
 

Не формируется штрих код.Пишет ошибочный штрих код в тексте кода и подставляет стандартный штрих код.Подскажите как сформировать штрих код состоящий из букв и цифр?

Автор ZSSРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 674
Последний ответ 31 Янв 2017, 14:02
от Kironten
Подскажите в документе "РасходнаяНакладная"

Автор n24nРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 2281
Последний ответ 05 Мар 2011, 20:55
от n24n
Подскажите как реализовать "планинг"?

Автор cannabis_86Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 2148
Последний ответ 20 Июн 2011, 10:29
от cska-fanat-kz
Добрый вечер! Прошу помочь, кто знает, подскажите пож. В счете не выводит грузоотправителя и грузополучаетля. Куда их внести ? Как сделать что бы выводило ? У меня 1с 8.3 редакция 11.1 управление торговлей Спасибо!

Автор Farid GasimliРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 1970
Последний ответ 07 Фев 2016, 14:34
от pavl_vs
1 страница - портрет, 2 страница - ландшафт Подскажите как сделать?

Автор YaposhaРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 4563
Последний ответ 05 Апр 2012, 11:37
от Yaposha

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
184 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
40 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
29 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 697
  • Точка Скрытых: 0
  • Точка Пользователей: 6
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal