Имя: Пароль:
1C
1С v8
Вопрос по программированию в 1С: как рассчитать сумму и цену.
0 АнтонМ
 
04.06.18
23:31
Имеется информационная база с документами. Нужно в общем модуле создать функцию, с помощью которой автоматически будет рассчитываться сумма и цена. При этом нужно, чтобы сумма вычислялась с помощью произведения количества и цены, а цена вычислялась с помощью деления суммы и количества. При этом в пользовательском режиме нужно, чтобы цена вычислялась с помощью изменения значения суммы. Как сделать?
1 Сергиус
 
04.06.18
23:36
(0)В какой момент должны происходить данные вычисления?
2 Cyberhawk
 
04.06.18
23:43
На работу устраиваешься или в универе такое задают?
3 АнтонМ
 
04.06.18
23:58
(1) Перед проведением документа.
5 Красный рассвет
 
05.06.18
01:21
(3) Эт-та вряд ли (с)
6 Franchiser
 
гуру
05.06.18
01:53
Сделать функцию в событии приизменении()
7 fgaabbb
 
05.06.18
04:33
взять книгу Радченко "Практическое пособие для разработчика" - там такой пример подробно разбирается. Скачай учебную версию 1С, там в архиве она есть + много еще чего.
9 0xFFFFFF
 
05.06.18
08:08
(8) Убивец мисты? :)))
10 impulse9
 
05.06.18
08:22
(9) жалкая пародия
11 Leon01
 
05.06.18
08:34
Что значит убивец?
12 Dotoshin
 
05.06.18
08:37
(11) Конкурент...
13 Leon01
 
05.06.18
08:45
Этот форум? Там с десяток почитателей сидят!
14 АнтонМ
 
05.06.18
09:46
(7) В книге Радченко такой пример как раз не разбирается. Там разбирается с процедурой, а это я и так знаю как сделать. А мне нужно именно с функцией, чтобы функция сама выбирала, что ей рассчитывать сумму или цену.
15 bolder
 
05.06.18
09:50
(14) Милейший ,так напишите.Что,кстати собрались функцией возвращать,цену или сумму?)))
16 АнтонМ
 
05.06.18
11:03
В том то и дело, что функция должна знать что нужно ей возвращать цену или сумму. Т. е. в зависимости от того элемента формы, к которому обращаемся, функция должна решать, что ей возвращать.
17 Малыш Джон
 
05.06.18
11:07
(16) если ты реально думаешь, что это функция должна что-то знать, то ты не тем занимаешься.

Ты сам сначала реши, что в каком случае возвращать, а уже потом реализуй эту логику в функции.
18 Timon1405
 
05.06.18
11:08
"сама выбирала", каким-то ИИ попахивает уже
19 Cyberhawk
 
05.06.18
11:09
"функция должна знать" // Остановить моторику!
20 Малыш Джон
 
05.06.18
11:15
А ведь так подумать, декларативный подход был бы оочень популярен в учете вообще, и в 1С в частности)
21 АнтонМ
 
05.06.18
11:17
В задании было написано так: в зависимости от того, откуда функцию поманили, она должна возвращать либо Сумму, либо Цену!!!
22 Малыш Джон
 
05.06.18
11:18
(21) а в голове какие мысли по этому поводу? Суть зависимости вырисовывается? Или это ты тоже на бедную функцию спихнешь?)
23 АнтонМ
 
05.06.18
11:24
(22) Во первых я не на какую функцию не спихивал!!! Во вторых я прекрасно понимаю, что в функции нужно прописать условие, что если обращаемся к одному элементу формы, то рассчитывает цену, если к другому, то сумму. Только как в ней обратиться к этим элементам формы?
24 Mankubus
 
05.06.18
11:26
(23) у функции есть параметры. туда можно что-то передать
25 FIXXXL
 
05.06.18
11:27
(23) "в ней" не надо
передавай параметром при вызове функции данные и вариант расчета
26 LeoKeyn
 
05.06.18
11:31
(21) Параметр на возврат поставь, а в функции по Если делай две ветки вычислений
27 АнтонМ
 
05.06.18
11:38
Т. е. в зависимости от того, к какому параметру обратились и нужно вывести либо сумму, либо цену?
28 igorPetrov
 
05.06.18
11:41
(27) Ты там хто?
29 hhhh
 
05.06.18
12:06
(27) как-то так пробуй

Процедура СуммаПриИзменении()

      Цена = РассчитатьЦенуИлиСумму("Цена");

КонецПроцедуры


Процедура ЦенаПриИзменении()

      Сумма = РассчитатьЦенуИлиСумму("Сумма");

КонецПроцедуры


Функция РассчитатьЦенуИлиСумму(ЧтоРассчитываем)

   Если ЧтоРассчитываем = "Цена" Тогда
       Возврат Сумма / Количество;
   ИначеЕсли ЧтоРассчитываем = "Сумма" Тогда
       Возврат Цена * Количество;
   Иначе
       Возврат 0;
   КонецЕсли;
КонецФункции
30 LeoKeyn
 
05.06.18
12:07
(29) собственно это и имел ввиду))) вот тебе и думающая функция:-)
31 koks16v
 
05.06.18
12:14
(2) да по ходу скорей в школе
32 Dotoshin
 
05.06.18
12:48
(16) Ну сделай тогда функцию с тремя параметрами - цена, сумма и количество.
Дальше проверяй если сумма не нулевая, значит надо посчитать и вернуть цену, если цена не нулевая, значит надо вернуть сумму. Как-то так...
33 fgaabbb
 
06.06.18
05:31
гы. а что, прямо-таки огроменная разница между функцией и процедурой? ТС, ви-таки в ВУЗ ходили или хотя бы ЦПШ? Если сейчас пришел выяснять на мисту.... в Радченко прекрасный пример, как надо делать. Если этого примера не хватает - программирование не твое, займись чем-нибудь попроще.
34 Адинэснег
 
06.06.18
07:08
начался июнь, система образования очередной изрыгнуло погромистов...
учись-учись студент, а то выдавит в консультанты, будешь по мистам хабропосты ползать пиарить...
35 Серёжа_
программист
 
06.06.18
07:29
Хотя бы Радченко для начала читали бы да, а если читать  сложно то видеокурсы Чистова "Быстрый старт"
36 Segate
 
06.06.18
08:36
(29) Наркоманство.

Функция РассчитатьЦенуИлиСумму( Количество, сумма= неопределено, Цена=неопределено)

   Если ЗначениеЗаполнено(Сумма) Тогда //Считаем цену
       Возврат Сумма / Количество;
   ИначеЕсли ЗначениеЗаполнено(Цена) Тогда //Считаем количество
       Возврат Цена * Количество;
   Иначе //ничего не считаем
       Возврат 0;
   КонецЕсли;
КонецФункции