Имя: Пароль:
1C
 
ВвестиЧисло(). Нужна помощь с решением
,
0 Varlant1n
 
19.02.21
17:18
Здравствуйте. Есть табличная часть формы. Там товары. Есть два столба таблицы КоличествоВЗаказе и КоличествоРеализации. У товаров есть штрихкод. При считывании штрихкода, программа находит строку с этим товаром и добавляет + 1 к КоличествоРелизации. Так вот для ситуации когда товаров слишком много, чтобы пользователю не пришлось вводить все сканером, хочу сделать кнопку для ввода числа к текущей строке, которую выбрал сканер. Написал следующий код, но не знаю рпавильный он или нет, потому что у меня в принципе уже не работает и дает ошибку.

Код:
&НаКлиенте
Процедура ДобавитьТовар(Команда)
    ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
    Если ТекущаяСтрока.КоличествоРеализации> 1 Тогда
        Если ВвестиЧисло(ТекущаяСтрока.КоличествоРеализации, "Введите количество для товара: " + ТекущаяСтрока.Номенклатура, 10,3) Тогда
            Если ТекущаяСтрока.КоличествоРеализации> ТекущаяСтрока.КоличествоВЗаказе Тогда
                 Предупреждение(Нстр("ru = 'Переданное количество превышает объем заказа!'"));
                 Возврат;
             Иначе
                 ТекущаяСтрока.Сумма = ТекущаяСтрока.КоличествоВЗаказе  * ТекущаяСтрока.Цена;
            КонецЕсли;
        КонецЕсли;        
    КонецЕсли;
КонецПроцедуры

Ошибка:
начение не является значением объектного типа (КоличествоРеализации)
    Если ТекущаяСтрока.КоличествоРеализации > 1 Тогда


Помогите, пожалуйста
1 Varlant1n
 
19.02.21
17:20
(0) "Так вот для ситуации когда товаров слишком много" Тут я имел в виду, когда количества товара слишком большое.
2 Kassern
 
19.02.21
17:23
(1) слишком большое это даже 2 судя по коду?))
3 Kassern
 
19.02.21
17:26
(0) зачем эта писюлька? ТекущаяСтрока.Сумма = ТекущаяСтрока.КоличествоВЗаказе  * ТекущаяСтрока.Цена;
Если у тебя в коде ни ТекущаяСтрока.КоличествоВЗаказе ни ТекущаяСтрока.Цена не изменились?
4 Varlant1n
 
19.02.21
17:27
(2) Типа уже больше 1 давать возможность ввода через клаву.
(3) Для пересчета суммы на форме
5 Kassern
 
19.02.21
17:28
(0) разреши им мышкой 2 раза кликнуть по полю и ввести количество, а при изменении поля проверяй с количеством в заказе
6 Varlant1n
 
19.02.21
17:28
Значение не является значением объектного типа (КоличествоРеализации)
    Если ТекущаяСтрока.КоличествоРеализации > 1 Тогда

Вот это я даже близко не понимаю как исправить.. Понимаю, что я на клиенте, но все же
7 Kassern
 
19.02.21
17:29
(6) Что отладчик говорит по поводу ТекущаяСтрока?
8 Kassern
 
19.02.21
17:29
(7) вот будет весело, если в текущей строке хранится индекс строки и не сама строка)
9 Злопчинский
 
19.02.21
17:32
Все-таки правильно что я на 8-ке не прогаю, прогать то что прогал лет 10 назад на 77 - повторять это на 8-ке...? ;-)
10 Varlant1n
 
19.02.21
17:33
(8) Я только щас чекунул, оказывается "Неопределенно"
11 Varlant1n
 
19.02.21
17:35
(10) А по идее он же должен ловить. Текущую строку. Потому что сканер выделяет текущую строку
12 Kassern
 
19.02.21
17:36
(10) А это о чем говорит? А о том что у тебя таблица пустая...
13 Kassern
 
19.02.21
17:36
(12) по крайней мере в момент вызова строчки Элементы.Товары.ТекущиеДанные
14 Varlant1n
 
19.02.21
17:37
(12) Она изначально уже заполнена, при открытии
15 Мимохожий Однако
 
19.02.21
17:40
Добавь проверку на Неопределено для текущих данных. И отладчик в руки+стёк вызовов и анализируй код
16 Kassern
 
19.02.21
17:41
Элементы.Товары.ТекущаяСтрока что возвращает?
17 Varlant1n
 
19.02.21
17:54
(16) Тоже неопределенно
18 Мимохожий Однако
 
19.02.21
17:59
(17) Значит смотри по стёку предыдущие шаги. Там ошибка
19 mikecool
 
19.02.21
21:43
(0) ошибка в том, что надо использовать показать ввод числа
20 Kassern
 
20.02.21
09:49
(19) он еще не дошел до этой строчки)) он строку нужную из ТЧ получить не может
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший