Имя: Пароль:
1C
 
Показ сдачи моментально при наборе суммы
0 Гений 1С
 
гуру
31.07.26
20:06
Сделал клиенту расчет суммы сдачи с чека.
Все работает отлично, но клиент хочет, чтобы работало без нажатия Enter.
А это проблематично - если в событии что-то меняешь в форме, то фокус ввода теряется.
Как то можно решить проблему кроме создания клавиатуры с цифровыми кнопками?
1 PR
 
31.07.26
20:48
О, очередная генитальная головоломка
2 MWWRuza
 
гуру
31.07.26
21:18
Не знаю как в восьмерке, а в 7.7 у меня именно так поиск товаров работает:
https://cloud.mail.ru/public/YUnw/31ahLmatL
Это просто, толчек в некую сторону, может натолкнет на мысль, как решить эту задачу :-)
Думаю и для сдачи в восьмерке можно так-же сделать.
3 Tarlich
 
31.07.26
21:46
оно?
4 Tarlich
 
31.07.26
21:54
(2) Длинная борода что 8 сырая .....
аж интересно стало как реализовано ?
5 Кирпич
 
31.07.26
22:04
(3) ты нафига показал?! Теперь Геня свой изврат не покажет.
6 MWWRuza
 
гуру
31.07.26
23:29
(4) Вместо стандартного поля ввода 1с, АктивеИкс от движка акцесса, или есть отдельный, там у меня два варианта. В конфигураторе, это кнопка. В пользовательском режиме, как обычное поле ввода выглядит, только "живое".
Как-то так.
7 Web00001
 
01.08.26
06:20
(3) а теперь вынеси надпись на форму и попробуй у нее изменить заголовок)
8 Web00001
 
01.08.26
06:21
(5)Геня может показывать только свои намерения.
9 Anchorite
 
01.08.26
07:20
Все работает отлично, но клиент хочет, чтобы работало без нажатия Enter.


Надпомниело недавнюю тему про толстый клиент на Андроид: «все работает отлично, но бухгалтер жалуется, что ноутбук тяжёлый». Не могу даже представить себе, что тварица в головах тех людей, кого всерьёз беспокоят такие вопросы.
10 eddy_n
 
02.08.26
10:15
Обмельчали задачи. Страна скоро устанет ждать.
11 Irbis
 
02.08.26
12:28
Раньше продавцы сдачу в уме считали, а то и говорили сколько копеек нужно додать, чтобы из набора в кассе минимальным количеством размена обойтись. Теперь ждём когда на счётных палочках считать начнут, счёты с костяшками уже высшая математика будет.
12 AAA
 
02.08.26
15:29
Постановка задачи очень странная. Сдача это не поиск товара. Продавец должен ввести сумму и чем-то ее зафиксировать, будь то Enter или специальная кнопка. Какой смысл считать сдачу до окончания ввода? Тогда уж делай ввод голосом.
Согласен с (9), не могу даже представить клиента, который хочет такое, особенно сейчас.
13 timurhv
 
02.08.26
21:48
(0) ПолеHTML + скрипт на JS
14 Гений 1С
 
гуру
02.08.26
21:53
(7) ггг... обучаешь ньюбов, которым кажется, что они держат бога за бороду? ;-)
15 Гений 1С
 
гуру
02.08.26
21:53
(13) неплохая идея. и все же в 2026 году, когда космические коробли бороздят...
16 Гений 1С
 
гуру
02.08.26
22:03
(12) чтобы не давить лишние кнопки, человек - существо ленивое
17 timurhv
 
02.08.26
22:09
(15) я с подобным столкнулся как в (0) когда надо было плюс или минус выводить при наборе числа. Но ПолеHTML там так себе выглядит (надо больше места, а у меня его не было), но для кассира наверное пофик.
18 Web00001
 
03.08.26
09:31
(12)Нормальная постановка. Кассир сидит за кассой, подходит человек и протягивает деньги. Например 5к. Чек на 3500. Кассир набирает на цифровой клаве 5000. Он должен увидеть сдачу. Зачем ему еще что-то нажимать? Все ответы здесь не потому, что это бессмысленно. А потому, что нет быстрого ответа на вопрос. То есть ответы звучат так: "Мы не знаем как сделать, просто такую элементерную штуку, поэтому это вам не нужно". Позорно надо сказать. Но как есть.

Второй момент. Допустим чек 650руб. Чел дает одной купюрой 1к. Кассир вводит 1000, нажимает энтер. И видит сдачу 350. Потом чел такой, ой извините у меня мельче есть и дает 700р. Кассир вводит 700р и забывает нажать энтер. У него до сих написано сдача "350". Он может ее и сдать на автомате, если к вечеру уже устал.
19 maxab72
 
03.08.26
09:37
На обычных формах это делается элементарно...
20 ДенисСмирнов
 
03.08.26
10:17
(18) "Зачем ему еще что-то нажимать?"
нажать придется, документ-то надо записать. на мой взгляд тоже постановка кривая.
21 AAA
 
03.08.26
11:31
(18)Вам бы книжки писать. Насочинять можно что угодно, только к реальной жизни это имеет мало отношения. Высосано из пальца
22 AAA
 
03.08.26
11:33
Внесенная сумма - это данные и ввод данных должен быть завершен. Кто хочет извращаться, то ради бога
23 SleepyHead
 
гуру
03.08.26
11:40
Следующий вопрос - как проверить неправильно введенную сумму по сценарию - "клиент дал 1000, а продавец внес 100".
24 maxab72
 
03.08.26
11:43
(23) решается кардинально "Женщину вынули, автомат засунули" (Кин-дза-дза). Монето- и купюроприемник.
25 ДенисСмирнов
 
03.08.26
12:54
(24) разумеется, с онлайн-занесением суммы в открытый документ?
26 maxab72
 
03.08.26
12:59
(25) а почему бы и нет?
27 NorthWind
 
03.08.26
15:55
(22) а меня тоже удивляет. Я подобные вещи на дельфях делал еще лет 25 назад, все в динамике замечательно пересчитывалось сразу. Еще и дисплей электронных весов показывался, живой, на весы надавишь или что-то положишь - на форме цифры меняются. А спустя четверть века - пук-среньк, "сложна!"
28 NorthWind
 
03.08.26
16:01
(23) видел реализацию такого. К компу подключена машинка для счета денег с интерфейсом, кассир должен прогнать через нее всё до купюрки, и понятно, что всё это под камерами. Правда, не знаю, как с монетами вопрос решался.
29 maxab72
 
03.08.26
16:08
"как с монетами вопрос решался." в советское время медь взвешивали на весах - сколько по стограммов - столько и рублей. Для серебра был другой коэффициент.
30 CepeLLlka
 
03.08.26
16:10
(0)Подключи обработчик ожидания, пусть высчитывает сумму сдачи по кд
31 Fragster
 
гуру
03.08.26
16:54
(0) а шо ты там меняешь в форме? декорацию-надпись? ну используй вместо неё реквизит...
32 Fragster
 
гуру
03.08.26
16:56
почему миста гифки режет? https://makeagif.com/gif/genius-one-ass-qXe_yo
33 Fragster
 
гуру
03.08.26
16:57
(30) нафиг
34 Fragster
 
гуру
03.08.26
16:59
вот весь код:

&НаКлиенте
Процедура СтоимостьИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
    Сдача = Внесено - Число(Текст);
КонецПроцедуры

&НаКлиенте
Процедура ВнесеноИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
    Сдача = Число(Текст) - Стоимость;
КонецПроцедуры
35 CepeLLlka
 
03.08.26
17:03
(33)Можт и нафиг, хотелось написать тоже чё-нить
36 timurhv
 
03.08.26
17:09
(34) и работает как в (0) написано. Попробуйте не быстро ввести, а по-медленнее. У меня в поле внесено сбрасывается в 0
37 Fragster
 
гуру
03.08.26
17:12
(36) потому что в 1с для этого есть специальное свойство, существующее уже с десяток лет, странно, что (0) об этом не в курсе. называется "обновление текста редактирования"
38 SleepyHead
 
гуру
04.08.26
05:55
(37) Некогда же, надо делать убийцу 1с.
39 Fragster
 
гуру
04.08.26
11:30
(36) кстати, в (0) не про сброс текста редактирования в значение, а про уход фокуса (который бывает, например, при неявном серверном вызове при изменении заголовка, видимости и прочем, о чем я и пишу в (31))
40 Garykom
 
гуру
04.08.26
11:40
(39) А нехрен делать серверные вызовы в обработчиках событий элементов, если фокус жалко
Можно обойтись извращениями через временные хранилища и ПодключитьОбработчикОжидания (для реальных серверных вызовов)
41 Гена
 
гуру
04.08.26
11:41
Когда коту делать нечего...
42 Fish
 
гуру
04.08.26
11:45
(10) +100. Какой-то мелкой суетой занимается. Где былые "мой гений дарит ....":
43 mikecool
 
04.08.26
11:51
обмельчали Гении...
когда я не знаю - есть ли событие, что мне нужно - я создаю все обработчики и ловлю, понимая - что срабатывает и нужно ли это мне
а если не нахожу - иду на Мисту
но тут видимо (38)
44 maxab72
 
04.08.26
12:05
(11) "Раньше продавцы сдачу в уме считали, а то и говорили сколько копеек нужно додать" ага, недаром присказка была: "Двадцать да двадцать - рупь двадцать, еще тридцать - два тридцать. Спички берем? - Нет. - Тогда два пятьдесят, итого с синицы двугривенный сдачи."
45 CepeLLlka
 
04.08.26
13:21
(44)В смысле в уме? А как же счеты деревянные?
46 Fragster
 
гуру
04.08.26
13:27
(45) они нужны для отвлечения покупателя, пока считаешь в уме, чтобы покупатель быстрее и правильнее не посчитал
47 maxab72
 
04.08.26
13:37
(46) ага, типа шаманского бубна.
48 Irbis
 
04.08.26
13:51
(45) На них чаще откладывали итог после каждого счета в уме, чтобы конечную сумму назвать.
49 Tatitutu
 
04.08.26
14:17
(45)
[РЕТРО] Деревянные бухгалтерские счеты на 8.5
https://1clancer.ru/catalog/6130
50 Fragster
 
гуру
04.08.26
14:31
(49)  в настоящих было еще две костяшки для переноса разряда в отдельной секции
51 CepeLLlka
 
04.08.26
14:40
(49)Спасибо! Интересно будет посмотреть
52 Tatitutu
 
05.08.26
12:43
(0)
&НаКлиенте
Процедура МоеЧислоИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)

    

КонецПроцедуры
53 maxab72
 
05.08.26
12:50
(49) надо чтоб вместо стандартного калькулятора по кнопке […] выскакивало.
54 Tatitutu
 
05.08.26
13:14
(53) именно так и сделано в ТуТиТоГ
55 maxab72
 
05.08.26
13:30
(54) это хорошо. чтоб 1с-никик корни не забывали... и прочие радикалы с интегралами...
56 DrZombi
 
гуру
05.08.26
14:42
(49) 👍
57 Гений 1С
 
гуру
05.08.26
19:41
(54) Воспринимается как Тумба-Юмба. Нейминг у тебя гениальный, конечно.

Я пробовал и надписи и реквизиты, ничего не помогает, фокус с поля ввода сдачи теряется, если вернуть, то он будет не в конце ввода. Потому 1с и делала свою цифровую клавиатуру в РМК
58 Fragster
 
гуру
05.08.26
20:03
(57) ну я же тебе написал решение
59 Кирпич
 
06.08.26
15:55
Так вроде работает


&НаКлиенте
Перем пСуммаВвода, пТаймер;

&НаКлиенте
Асинх Процедура ПолученоИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
	пСуммаВвода = Число(Текст);  
	ПроцПроверки();
КонецПроцедуры

&НаКлиенте
Асинх Процедура ПроцПроверки()  
	Если пТаймер <> 0 Тогда
		Возврат;
	КонецЕсли;   
	пТаймер = ТекущаяУниверсальнаяДатаВМиллисекундах();
	п = ТекущаяУниверсальнаяДатаВМиллисекундах(); 
	Пока (п - пТаймер) > 500 Цикл 
		п = ТекущаяУниверсальнаяДатаВМиллисекундах(); 
	КонецЦикла;	
	пТаймер = 0;
	Получено = пСуммаВвода;
	Элементы.ДекорацияСдача.Заголовок = СтрШаблон("Сдача: %1",пСуммаВвода-Сумма);	
КонецПроцедуры

пТаймер = 0;
60 Fragster
 
гуру
06.08.26
11:49
(59) зачем так сложно?
61 Кирпич
 
06.08.26
11:53
(60) Для полноты картины
62 Сергиус
 
06.08.26
14:17
(0)Выдать счеты кассиру не предлагалось еще..Заодно и массажер хороший)
63 Кирпич
 
06.08.26
15:55
И вот так работает. Только почему то на форме должна быть декорация. Если про декорацию закоментить, то не работает.

&НаКлиенте
Процедура ВнесеноИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;  
	Внесено = Число(Текст); 
	Элементы.Декорация1.Заголовок = Внесено;
	Сдача = Внесено-Стоимость; 	
КонецПроцедуры

&НаКлиенте
Процедура СуммаИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;  
	Стоимость = Число(Текст); 
	Элементы.Декорация1.Заголовок = Стоимость;
	Сдача = Внесено-Стоимость; 	
КонецПроцедуры
64 Гена
 
гуру
06.08.26
15:31
(63) В начале каждого ввода будет отрицательное число показывать?
65 Fragster
 
гуру
06.08.26
15:37
(63) а стандартная обработка погашена зачем?
66 Fragster
 
гуру
06.08.26
15:39
и нафига ты реквизит обновляешь? он все равно при потере фокуса установится, а так у тебя может курсор съехать (в зависимости от "Обновления текста редактирования", конечно. если там "При изменении значения", то слетит)
67 Кирпич
 
06.08.26
15:55
(65) ну да. стандартная обработка не влияет.
68 Tatitutu
 
06.08.26
16:23
(54) Если бы в этом дело было
За пределами нашего желтого круга
- как только не хейтят
НОВЫЙ мобильный дизайн из 90х (стыдно показать),
а это САМОЕ НАИлучшее и Возможное из 8.5 вытянул
такие фишки, которые некоторым и не снились даже.
практически все оформление убрали и в конфигутароре - одна,
а на выходе "как это развитеть!
69 PLUT
 
гуру
06.08.26
18:23
(54) ЗдраТуТиТоГ
70 Tatitutu
 
06.08.26
18:32
(69) Что сказать то хотел ) ?

Тут = итог (с)

Вот в нашем желтом кругу в первую очередь

- стебуться над названиями

а за забором

- сначала над нами,
- потом над нашими возможностями
- потом в плане дизайна и практичности
- грамматические ошибки
...
...
и в самом конце над названием.
71 Волшебник
 
модератор
06.08.26
23:56
Я ещё тут...ю
72 Волшебник
 
07.08.26
00:20
Гений 1С смог вычесть суммы?

p.s. Простите, не следил за веткой.
73 Кирпич
 
07.08.26
11:44
(72) ну уж скопипастить догадался же наверное
74 Fragster
 
гуру
07.08.26
11:47
(73) ну там еще пару кликов мышой надо сделать, см (37)
75 Tatitutu
 
07.08.26
17:59
(73) Все бы по издеваться над гением...
он же написал голосовуху в своем блоге,
что клавиатуру и мышку забрали  в качестве долга за шаурму
и как ему скопипастить и сделать пару кликов, чем?
76 Волшебник
 
08.08.26
17:05
(75) Нет, я не верю. Чо, серьёзно?
Ошибка? Это не ошибка, это системная функция.