Имя: Пароль:
1C
1С v8
Текущая строка в мобильной платформе
,
0 codexa
 
19.03.18
16:23
Доброго времени суток! Суть проблемы проста - пользователь на ТСД штрихкодирует товар и в обработке оповещения этот товар ищется в таблице на форме. Товар удачно находится и таблице на форме устанавливается текущая строка (если после выполнения кода спросить у таблицы текущую строку, то возвращается правильное значение). Но при этом на форме не происходит позиционирования курсора на текущей строке, т.е. пользователь не видит, что в 27 строке изменилось количество, так как 27 строка просто не влезла в экран и надо пару страниц вниз пролистнуть. Получается, что все значения устанавливаются правильно, но форма сама не "пролистывает" вниз до нужной строки. Есть ли какой-то способ заставить форму "пролистнуть" вниз до текущей строки? Третий час голову ломаю, помогите, знающие люди...
1 arsik
 
гуру
19.03.18
16:49
(0) Может просто косяк в платформе. Попробуй обновить
2 arsik
 
гуру
19.03.18
16:50
(0) У вас какой аппарат? К теме не относится, интересно просто.
3 Малыш Джон
 
19.03.18
16:58
(1) а почему косяк? по-моему, штатное поведение
(0) были бы обычные формы - предложил бы через WShell нажатие кнопки вверх или вниз сгенерировать (фокусирует экран на текущей строке), а так - хз
4 codexa
 
19.03.18
20:16
Urovo i6300 и Urovo V5100. Я тоже склоняюсь к штатному поведению, вот и подумалось, что должен быть какой-то метод принудительного позиционирования. Но пока поиски безуспешны.
5 Малыш Джон
 
19.03.18
22:26
(4) пускай пользователь на слово верит, что в 27 строке изменилось количество. ну или звук пусть какой издает.
6 Малыш Джон
 
19.03.18
22:26
+(5) в смысле - ТСД какой-нибудь звук издает, не пользователь
7 Малыш Джон
 
19.03.18
22:37
а вообще, подойди к делу нетривиально: разбей таблицу на части, помещающиеся на экран без прокрутки; на экран помести панель, на панели  - под каждую часть таблицы - своя страница панели. И переключай панель при нахождении текущей строки на ту страницу, где эта строка находится.
8 e053nk
 
20.03.18
00:14
В качестве бреда предлагаю:
Вариант 1.
1.Ввести в еще одно поле "УпорядочитПО" =Число.
2.При сканировании изначально ( каждый раз) заполнять это поле =0;
3. При установке на текущую строку (не отображаемую) -присваивать УпорядочитПО=1.
4. Упорядочить таблицу по полю "УпорядочитПО" в порядке убывания.

После этого текущая строка всегда будет верхней-всегда видимой (но это -очень примерно, и работать будет наверно долго)

Вариант 2
На форме над таблицей ввести поле (строку) вкоторой отражать информацию текущей строки в произвольном формате:

Например " Встроке №5 товар " +Наименованиетовара+"изменил кол-во на "_СосканированноеКоличество"+" "+единицаизмерния+" .Итого кол-во="+ КолСтроки"
9 PR
 
20.03.18
00:24
(0) Думаю, сработает такое
ТекущийРежимВводаСтрокТаблицы = Элементы.ТЧ.РежимВводаСтрок;
Элементы.ТЧ.РежимВводаСтрок = РежимВводаСтрокТаблицы.ПередТекущейСтрокой;
Элементы.ТЧ.ДобавитьСтроку();
Элементы.ТЧ.ЗакончитьРедактированиеСтроки(Истина);
Элементы.ТЧ.РежимВводаСтрок = РежимВводаСтрокТаблицы.ПослеТекущейСтроки;
Элементы.ТЧ.ДобавитьСтроку();
Элементы.ТЧ.ЗакончитьРедактированиеСтроки(Истина);
Элементы.ТЧ.РежимВводаСтрок = ТекущийРежимВводаСтрокТаблицы;

Ну или такое :))
Элементы.ТЧ.ИзменитьСтроку();
Элементы.ТЧ.ЗакончитьРедактированиеСтроки(Истина);
10 Cyberhawk
 
20.03.18
01:19
Поставь отбор по номеру строки и сними
11 arsik
 
гуру
20.03.18
08:21
(4) Сканер как настроен? Как клавиатура или через nativeapi и вызывает событие ОбработкаОповещения?
12 codexa
 
20.03.18
10:47
(7) интересный вариант. Единственный минус - каждый раз при создании формы опрашивать параметры экрана и подсчитывать, сколько строк на текущем аппарате умещается на страничку.

(8) отображение текущей строки в произвольном формате в отдельном поле - запасной вариант у меня, если не получится со строкой)

(9) по первой части не очень поняла задумку - мне строки добавлять не нужно, в тч они уже есть. По второй части - неа, не реагирует)

(10) отбор устанавливается, в этот момент в форме остается одна видимая строка. При снятии отбора все возвращается в исходное положение - строка уходит за границу экрана. То есть при установке отбора и последующем снятии в форме как бы не происходит ничего , заметное глазу.

(11) nativeapi и ОбработкаОповещения
13 arsik
 
гуру
20.03.18
10:51
(12) У таблицы на форме какой тип?
14 codexa
 
20.03.18
12:58
(13) Элемент- Таблица формы, реквизит - ДанныеФормыКоллекция
15 Остап Сулейманович
 
20.03.18
13:05
(0) Нет в мобильной платформе ТекущаяСтрока.
Нужно переделывать форму.
Отказаться от работы в таблице. Сделать отдельную форму с данными только текущей строки. И в ней показывать.
16 Shrek_yar
 
20.03.18
13:24
(15) Лучше вообще сразу делать на С, отказать от разработки на 1с и делать в нормальной среде разработки, потом уже совмещать с базой 1с
17 codexa
 
20.03.18
14:07
(15) У меня есть отдельная форма для данных текущей строки, она вызывается интерактивным выбором строки в форме, "тыком" проще говоря). А вот при сканировании 200 упаковок каждый раз открывать форму строки неудобно.

В общем, надпись над таблицей с информацией по текущей строке видится мне в этой ситуации оптимальным решением.
18 Малыш Джон
 
20.03.18
18:28
(17)>>В общем, надпись над таблицей с информацией по текущей строке видится мне в этой ситуации оптимальным решением.

Если размер экрана позволяет - то, безусловно, это самое приемлемое решение
19 Cyberhawk
 
20.03.18
19:08
"Если размер экрана позволяет" // В заголовок формы можно для экономии места )