Имя: Пароль:
1C
1С v8
Сложение в строке.
0 NatashaShvan
 
17.12.12
15:24
Скажите пожалуйста, а как можно сделать вычисление по строке c итогом в подвале.

у меня есть справочник и в нем 2-е колонки (формула, итог)

Возможно ли сделать так чтоб в итоге считалось то что я забью в поле формула, например поле формула (2+2) а в поле итог 4. И после все это суммировалось в подвале, с подвалом я разобралась а как суммировать по строке я не пойму.
Извините если плохо объясняю.
Управляемое приложение 1C 8,2

Пример: http://s019.radikal.ru/i609/1212/e1/ed9aef208a6d.png

Простите еще раз, только учусь.
1 shuhard
 
17.12.12
15:24
(0) нет фотки - нет мультиков (с)
2 le_
 
17.12.12
15:25
А = Вычислить("500 + 500*20/100");
3 NatashaShvan
 
17.12.12
15:36
Эт я поняла! Спасибо ) А как в элементе справочника в строках так сделать, я могу 1,2,3, строки с математическим действием добавить но как им дать параметр вычислить не пойму.

Спасибо!
4 pessok
 
17.12.12
15:38
(3) вычислить(рекв1+рекв2+рекв3), не?
5 NatashaShvan
 
17.12.12
15:39
6 Wobland
 
17.12.12
15:39
про визуальное прелставление уже было?
7 Wobland
 
17.12.12
15:40
(5) да не про это!
8 pessok
 
17.12.12
15:41
(5) дама хочет считать в ПриИзменении чего она там навводила? как в экселе =5+7 сразу даст 12?
9 Rovan
 
гуру
17.12.12
15:44
(+4)  вычислить(ПеременнаяВКоторойКодВычисления)
10 NatashaShvan
 
17.12.12
16:15
Ой а можно, чтоб я поняла ) на примере... Спасибо всем )
11 Deon
 
17.12.12
16:17
(10) Можно.
12 Wobland
 
17.12.12
16:21
(10) привожу пример. я страшный, зелёный и с лампочкой. а ты?
13 pessok
 
17.12.12
16:22
(10) (12) как бэ намекаэ, что без слайдов не взлетит
14 Deon
 
17.12.12
16:22
(0) А что ты там ваще такое хитрое делаешь?
15 Deon
 
17.12.12
16:24
16 le_
 
17.12.12
16:26
(10) А можно задачу описать, чтобы мы поняли?
17 NatashaShvan
 
17.12.12
16:27
Делаю складывалку и считалку, а а сели честно то просто учусь, а вот встала интересная задачка как такое реализовать) Думаю где спросить, конечно у умных, а вы еще и шутить изволите ) а может всеж кто-то умеет помогать и даст примерчик ) ну мальчики!
18 pessok
 
17.12.12
16:28
(17) судя по скрину, складывалку у тебя и так работает. чего не хватает еще?
19 Deon
 
17.12.12
16:29
(17) Наташа, давай уже без соплей. Чё надо, по-русски? А то мы тут мальчики умные, но нифига не втыкаем.
20 NatashaShvan
 
17.12.12
16:30
Ну эт я как пример сделала! там работает только итог в подвале  , а вот по строке не считает (
21 Deon
 
17.12.12
16:30
А вообще, пора уже делать обязательным участие в Мисс/миссис бюст 2012 (отбор кандидаток) )
22 Reset
 
17.12.12
16:30
В событии при изменении э.у. "Формула" написать

ТекущаяСтрока=ЭлементыФормы.КакТамНазываетсяТП.ТекущаяСтрока;
Попытка
ТекущаяСтрока.Итог=Вычислить(ТекущаяСтрока.Формула);
Исключение
Сообщить("Ошибка в формуле"+ОписаниеОшибки());
КонецПопытки;
23 palpetrovich
 
17.12.12
16:32
первая колонка = Формула, вторая - результат
Где-нить в процедуре "приПолученииДанных" (к примеру) - результат = вычислить(Формула);
24 Reset
 
17.12.12
16:32
(22) Ааа увидел, там УФ
Не сработает так
25 pessok
 
17.12.12
16:33
(24) Вычислить() только на сервере? Лень в пофигуратор лезть
26 Reset
 
17.12.12
16:33
другой синтаксис
27 Reset
 
17.12.12
16:33
(25) не, вычислить везде, ЭлементыФормы нет
28 Wobland
 
17.12.12
16:34
(22) да не надо в элементы лезть, надо в реквизиты лезть
29 Reset
 
17.12.12
16:34
ну по аналогии как-то, элементарно наверняка.
30 Reset
 
17.12.12
16:35
(28) в обычной приходится лезть, чтобы узнать какая строка редактировалась (оправдываюсь)
31 Wobland
 
17.12.12
16:36
(30) при изменении? нуда. я не слежу за дискуссией ;)
32 pessok
 
17.12.12
16:37
(30) а в тощей уже не надо разве?) замолаживает, пола домой
33 Reset
 
17.12.12
16:39
так вот в УФ примерно

Элементы.ИмяТбалицыФормы.ТекущиеДанные.Итог=Вычислить(Элементы.ИмяТбалицыФормы.ТекущиеДанные.Формула);
34 Reset
 
17.12.12
16:40
(31) Это я предлагаю при изменении
35 Reset
 
17.12.12
16:41
+(34) Так как никакого другого ТЗ нам не предоставлено
36 Deon
 
17.12.12
16:43
(33) А чё через элементы-то, а не через реквизиты?
37 Reset
 
17.12.12
16:45
(36) Да что вы докопались то до меня.
В УФ можно по реквизитам узнать, которую строку редактирует пользователь? Ну покажите, я не знаю как. Я как добрый самаритянин авторше помогаю.
38 Deon
 
17.12.12
16:47
(37) А, не, всё правильно у тя. Это я тормоз )
39 Reset
 
17.12.12
16:49
Можно кнопку "пересчитать" добавить, там ясное дело обращение к элементам не нужно будет.
40 NatashaShvan
 
17.12.12
16:55
Т.З.
Есть справочник "Справочник" в нем создано два объекта табличной части (Формула и Итог) Задача вычислять и занести в поле "Итог" в каждой последующей добавленной строке, ту формулу которая будет использована в объекте "Формула"
41 NatashaShvan
 
17.12.12
16:57
Теперь понятнее написала )
42 pessok
 
17.12.12
16:58
(40) очешуеть... понятнее... теперь тут вообще густой лес
43 Deon
 
17.12.12
17:02
(40) Давай по-порядку. Не называй Справочники "Справочник".
2 объетка табличной части - это реквизиты.
Решение твоей задачи в (33). Это решение надо засунуть в событие ПриИзменении элемента формы "Формула"
44 NatashaShvan
 
17.12.12
17:04
Нет не реквизиты (Объекты табличной части)

http://s019.radikal.ru/i638/1212/76/0592e8a5da04.jpg
45 pessok
 
17.12.12
17:05
(44) это называется "колонка табличной части" или "реквизит табличной части". Объект - это вообще другое понятие из страшного ООП, которым желтый программист себе голову не забивает. Ну если только не начинает курить менеджер объекта )
46 Deon
 
17.12.12
17:08
(45) В её форме Объект - это элемент справочника
47 pessok
 
17.12.12
17:11
(46) а мне кажется, что это ТЧ одного элемента
48 Deon
 
17.12.12
17:16
(47) Ну да. Но я вот об этом Объекте:
http://s019.radikal.ru/i624/1212/56/ea358966782c.jpg
Это понятие 1С-нику близко и хорошо используется в форме
49 pessok
 
17.12.12
17:18
(48) а :) это понятие близко одинэснику, плотно подсевшему на УФ :)
50 NatashaShvan
 
17.12.12
17:22
Мальчики, может мне вам набросать конфигурацию тестовую? так вы меня поймете.
51 Deon
 
17.12.12
17:28
(50) Что не получается-то у тебя?
52 NatashaShvan
 
17.12.12
17:36
53 NatashaShvan
 
17.12.12
17:40
Вот в примере мне нужно чтоб я в поле (формула) забила функцию действие например 5+5 а в поле (Итог) получить результат
54 Cunni
 
17.12.12
17:59
Я так понимаю это тест при приеме на работу?
55 Reset
 
17.12.12
18:02
В дизайнере формы дважды кликнуть на поле КалькуляторФормула, в свойствах напротив ПриИзменении нажать на лупу, в тело открывшейся процедуры вписать

   ТекДанные=Элементы.Калькулятор.ТекущиеДанные;
   ТекДанные.Итог=Вычислить(ТекДанные.Формула);
   Объект.Итог = Объект.Калькулятор.Итог("Итог");
56 Reset
 
17.12.12
18:02
(55) к (52)
57 Reset
 
17.12.12
18:03
+Можно обрамить в попытку a-la (22)
58 palpetrovich
 
17.12.12
18:10
не здесь: КалькуляторПриИзменении(Элемент), а здесь:

&НаКлиенте
Процедура КалькуляторФормулаПриИзменении(Элемент)
   СтрокаТабличнойЧасти = Элементы.Калькулятор.ТекущиеДанные;
   СтрокаТабличнойЧасти.Итог = Вычислить(СтрокаТабличнойЧасти.Формула);
КонецПроцедуры
59 Cunni
 
17.12.12
18:14
(58) спорим не сработает?))
60 Reset
 
17.12.12
18:15
(58) первая часть претензии непонятна (здесь/не здесь). Написано ясно же - в обработчике "при изменении" поля формула.

вторая часть - приведенный код - делает вовсе не то что надо
61 Reset
 
17.12.12
18:17
хотя актуальность решения с уходом автора стремится к нулю
62 Reset
 
17.12.12
18:18
Автор(ша) вообще похоже писатель(ница) больше чем читатель
63 palpetrovich
 
17.12.12
19:38
(59) чего спорить, я проверил предварительно
(60) "первая часть" - про то, что в (52) не то событие выбрано, как следствие - маты
"вторая часть" - делает именно то, что в (0) ..и, кста, то-же что и (55) :)
64 NatashaShvan
 
18.12.12
09:35
Ура!!! Все работает ) спасибо!!!

ТекДанные=Элементы.Калькулятор.ТекущиеДанные;
ТекДанные.Итог=Вычислить(ТекДанные.Формула);
Объект.Итог = Объект.Калькулятор.Итог("Итог");
65 NatashaShvan
 
18.12.12
09:38
И второй вариант отлично работает )
AdBlock убивает бесплатный контент. 1Сергей