Разработка мобильного приложения. Запрещаем открытие просмотра строки табличной части в новом окне, редактирование табличной части из формы документов

02.11.17

Разработка - Мобильная разработка

Думаю, все, кто писал приложения на мобильной платформе, столкнулись с такой особенностью, что редактирование строк табличной части осуществляется в новом окне. Кто - то решил эту проблему, кто - то смирился. Выкладываю своё видение решения этой задачи.

Пример редактирования табличной части, зелёным выделены области нажатия на экран смартфона. По-моему, очень много действий. Давайте сократим их количество.

У таблицы и всех ее полей установим свойство ТолькоПросмотр в состояние - Истина.

Редактируемое поле подпишем на событие - НачалоВыбора, либо у списка на событие Выбор, см. код ниже. (При наличии обеих процедур, приоритет у ПоляВвода) Отклоним стандартное поведение. и напишем код для выбора значения и замены его у документа.

&НаКлиенте
Процедура ТоварыКДоставкеВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
	Если Поле <> Неопределено и Поле.Имя = "ТоварыКДоставкеАдресИсточник" Тогда
		ВЗнач	= Неопределено;
		Если ВвестиЗначение(ВЗнач, "Выберите магазин", Тип("СправочникСсылка.Склады")) Тогда
			ТД = Объект.ТоварыКДоставке[ВыбраннаяСтрока];
			ТД.АдресИсточник	= ВЗнач;
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры

В итоге сокращаем лишние действия, чем упрощаем взаимодействие пользователя с программой.

Правда, после всех манипуляций, мы сократили область нажатия размером поля Склада, но это решается привязкой процедуры выбора ко всем полям в строке. Только нужно ли это?

Спасибо за внимание.

31.03.2017. Ешё нашлось над чем поработать. Если пользоваться одной формой списка, которая по умолчанию и по первому значению фильтра открывает стандартную форму документа, а втором значении при клике открывает другую форму документа.

То при оттягивании строки документа в списке в лево, даже при включенных значениях свойства ТолкоПросомтр у списка и всех элементах списка. Во втором положении фильтра мы можем открыть стандартную форму документа, Доступна кнопка "Изменить". Много букв, один скриншот.

Отберём у пользователя эту возможность, снимет у списка в свойстве состав команд все галки.

Теперь можно наслаждаться полным (если такой возможен) контролем, над интерфейсом.

См. также

Мобильная разработка Мессенджеры и боты Платформа 1С v8.3 1С:Конвертация данных Платные (руб)

Теперь создать telegram-бота - элементарно. Достаточно просто нарисовать блок-схему телеграм-бота, и он сразу заработает. Это возможно при использовании Графического конструктора телеграм-ботов. Это единственный конструктор ботов для telegram, чье качество и функционал подтверждены фирмой 1С, есть сертификат 1С:Совместимо. Расширение в интерактивном режиме, с помощью блок-схем, позволяет с минимальными трудозатратами создать телеграм-ботов в любой конфигурации, работающей на платформе «1С:Предприятие 8.3».

13200 руб.

27.12.2021    38233    108    161    

201

Мобильная разработка Сканер штрих-кода Терминал сбора данных Управляемые формы Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Сбор заказов, инвентаризация, проверка ценников, просмотр полной информации об остатках и ценах со смартфона Онлайн - все это содержит в себе решение 1С "Штрихкод-информер" (штрих-код чекер). Отправка данных со смартфона выполняется либо напрямую в открытую форму документа, отсканировав QR-код, либо в общую корзину учетной системы, не подходя к компьютеру. Кассир или оператор сможет просмотреть список присланных данных и загрузить в любую форму, поддерживающую работу с ТСД. Для работы с мобильным приложением требуется опубликовать HTTP-сервис из поставляемого расширения.

3000 руб.

03.12.2018    59323    192    103    

172

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Программист Пользователь Платформа 1С v8.3 Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Простой мобильный ТСД (терминал сбора данных) сканер для 1С для смартфонов на iOS и Android, не требующий сложных настроек и установки дополнительных программ. Обмен между Вашей 1С и мобильным приложением осуществляется через облачный сервис и расширение конфигурации. Работает с конфигурациями УТ 11, ERP, КА2, Розница 2, Розница 3, УНФ 1.6, УНФ 3.0. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически.

2000 руб.

22.04.2019    97288    587    189    

321

Логистика, склад и ТМЦ Сканер штрих-кода Терминал сбора данных Мобильная разработка Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Вашему вниманию предлагается специализированное программное обеспечение для терминалов сбора данных со встроенным сканером штрихкода. Предназначено для цифровизации всех товароучетных операций на любых складах, в том числе с адресным хранением различной сложности. Позволяет ускорить и упростить работу кладовщиков, а также снизить вероятность ошибок при работе, обусловленных человеческим фактором.

3450 руб.

28.04.2023    9487    15    0    

9

Мобильная разработка Платформа 1С v8.3 Конфигурации 1cv8 Финансовые услуги, инвестиции Управленческий учет Платные (руб)

Мобильное приложение и конфигурация 1С для автоматической торговли на бирже через API Тинькофф банка. Достаточно задать настройки, нажать «Пуск», и робот сам торгует ежедневно.

7000 руб.

25.05.2022    4661    1    0    

6

Мобильная разработка WEB-интеграция Программист Мобильная платформа Абонемент ($m)

Экспериментальный релиз и простенький скрипт к нему закрывает потребности в любых видах синхронизации между устройствами Simple и между Simple и бек-системами (например 1С). По сути – это очень простой python-скрипт, который можно запустить на доступной машине, сервере или VPS и он будет связывать клиентские устройства между собой и с 1С или другими бек-системами. В самой платформе появилось для этого множество доработок для поддержки стабильного постоянного соединения, докачки больших файлов и работе в фоне. Дополнение к основной статье https://infostart.ru/1c/tools/1153616/

1 стартмани

23.08.2024    1224    6    informa1555    1    

13

Мобильная разработка Мобильная платформа Абонемент ($m)

В этом релизе собрано много нового из области интерфейса, связи, хранения и важные новые способы управления. Дополнение к основной статье https://infostart.ru/1c/tools/1153616/

1 стартмани

25.06.2024    2621    29    informa1555    0    

33
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. DENLSD 29.03.17 08:49 Сейчас в теме
Попробуйте свой метод еще в динамическом списке.
Точно не вспомню почему но у меня там так не вышло. Ловил в событии "ПриАктивизацииСтроки"
4. agent00mouse 256 29.03.17 09:42 Сейчас в теме
(1)Ок. На динамических списках не тестировалось, только на табличной части объекта.
2. kolya_tlt 88 29.03.17 09:27 Сейчас в теме
(0) еще один копипастер. в открытом доступе есть же книга
https://its.1c.ru/db/pubintromobile
что у вас за пример такой, что пользователь на планшете указывает адрес доставки?
CagoBHuK; +1 Ответить
3. agent00mouse 256 29.03.17 09:41 Сейчас в теме
(2)
еще один копипастер. в открытом доступе есть же книга

Уверяю тебя, не у всех есть доступ на сайт 1Ц, подписка имеет свойство оканчиваться. И пример в студию, прямо скриншот откуда было скопитырено.

(2)
что у вас за пример такой, что пользователь на планшете указывает адрес доставки?

Пример такой, что курье в процессе доставки может выбрать любой магазин из которого он хочет забрать товар в заказ клиенту, а не ехать в указанный магазин через весь город.

П.С, За ссылку спасибо.
5. kolya_tlt 88 29.03.17 09:49 Сейчас в теме
(3) да у вас логисты с функцией управление ассортимента магазинов, а не курьеры :) последний вопрос - как он решение принимает о том из какого магазина забрать товар, он уверен что он там вообще есть? а если есть, не находится ли он в резерве? :)

смешнее всего будет если подобных умника будет 2, а товар на складе будет 1 :)
6. agent00mouse 256 29.03.17 09:59 Сейчас в теме
(5)
да у вас логисты с функцией управление ассортимента магазинов, а не курьеры

Так и есть. 2 человека на доставке, город порезан соответственно на 2 зоны, инцидент может случиться только на пограничных магазинах.
Резервы бываю, но всё уточняется по телефону ещё при выезде.
7. agent00mouse 256 29.03.17 11:44 Сейчас в теме
(2)
еще один копипастер. в открытом доступе есть же книга
https://its.1c.ru/db/pubintromobile


Книгу полистал, полезного много, но вот такого кода увы там нет.
(доступ к содержанию на данный момент можно получить по е-мылу на 7 дней даром)
8. user718948 10.04.17 09:26 Сейчас в теме
Подскажите пожалуйста, можно ли обратиться из формы документа к этой форме редактирования строк табличной части. Мне нужно чтобы при выборе товара, отображалось разное количество реквизитов для заполнения..Тоесть у меня есть реквизит в табличной части характеристика и некоторый товар не имеет характеристики и в этом случае мне нужно запретить ввод характеристики..В общем как обратиться к этой форме редактирования строк
9. Nehc 22 19.04.17 12:50 Сейчас в теме
(8) Можно использовать свою форму для редактирования строки - мы решали именно такую проблему, т.к. в табличной части было много разноплановых реквизитов и типовая форма редактирования нас не устраивала от слова "совсем". Суть:создаешь форму в которой в реквизитах все те-же значения, что и в строке. Их на форме уже как хочешь обрабатываешь, затем в событии "Выбор" ТЧ на форме документа указываешь что-то вроде:
	СтандартнаяОбработка = Ложь; 
	СтрокаТЧ = ЭтаФорма.Элементы.Продукция.ТекущиеДанные;
	Форма = ОткрытьФорму("Документ.АктПередачи_м.Форма.ФормаСтроки",,ЭтаФорма,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
	ЗаполнитьЗначенияСвойств(Форма, СтрокаТЧ);

Ну и обработку выбора (для формы в целом) прописываешь:
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
	СтрокаТЧ = Объект.Продукция[ИсточникВыбора.НомерСтроки-1];
	ЗаполнитьЗначенияСвойств(СтрокаТЧ, ИсточникВыбора);
КонецПроцедуры

Как-то так... Там есть нюансы - хорошо бы в обработке выбора источник проверять и тп... Но это уже мелочи.
1serger; Artem-B; Mahon83; user1021675; Ora121; inf012; agent00mouse; +7 Ответить
10. agent00mouse 256 19.04.17 14:27 Сейчас в теме
(9)Таки да, имеет место быть такой простой и эффективный метод, только многовать писать. А в целом красиво получилось.
11. Nehc 22 19.04.17 17:54 Сейчас в теме
(10) Да не, у вас другая тема, на мой взгляд вполне востребованная. ;) я больше Александру отвечал-то, он спрашивал, можно ли к форме редактирования обратиться... Я, кстати, не исключаю, что можно! Была тут статья, про недокументированные возможности модификации стандартных форм. ;) Правда в мобильном приложении (где вся конфа по сути - xml-описание) это не так просто будет, но... Все может быть. Но мы через свою форму делали.
12. agent00mouse 256 20.04.17 06:42 Сейчас в теме
(11)Да, Я видел, что ответ был на предыдущий комментарий. И считаю, что ответ был очень даже в тему.
13. inf012 20.04.17 07:38 Сейчас в теме
Я просто в событии выбор писал СтандартнаяОбработка = Ложь и все,
разве этого не достаточно, чтобы форма редактирования строки не открылась?
zhernikov; +1 Ответить
14. agent00mouse 256 20.04.17 08:23 Сейчас в теме
(13) Всё правильно. Но хочется же ещё и дать пользователю возможность изменить значение в поле, открытие нового окна мы отменила и затем уже вызываем выбор нового значения. Сократили пользователю манипуляции на одно действие, плюс это ещё и уменьшается время для редактирования. Пользователь доволен! :-)
15. borrman 30.09.17 18:39 Сейчас в теме
Как вообще додумались до открытия новой формы для редактирования строки???
И отключить такое поведение никак нельзя

Кстати, вопрос
А как можно сделать горизонтальную прокрутку формы? Может кто-то делал?
16. agent00mouse 256 01.10.17 11:49 Сейчас в теме
(15) Интересный вопрос, нужно попробовать сделать большую форму, а вообще стараешься уместить всё на одном экране, для чего большая форма?
17. MaxStrelok 90 01.11.17 18:39 Сейчас в теме
Я решил проблему по другому. Программно сформировал табличную часть из реквизитов и полей ввода, при создании на формы на сервере. Получилось, что пользователь видит табличную часть, но в действительности это правильно программно расположенные на форме элементы формы - поля ввода. Программно, так как я в цикле перебираю таблицу и добавляю вниз по вертикали поля. Все быстро работает!
Прикрепленные файлы:
Baturskii; FaithNoMore; Ora121; Alien_job; +4 Ответить
18. agent00mouse 256 02.11.17 07:36 Сейчас в теме
Ты про это калькулятор, что на фото? Красиво, функционально. Просьба будет, научи пожалуйста. как сделать всплывающим окошком. У меня получалось сделать только с переходом к следующему экрану. Или запили статью под это дело..
19. user602678_maxipunchik 98 20.02.20 13:01 Сейчас в теме
А как быть с вводом числа? Чтобы калькулятор сразу выходил, а не окно ввода числа. Разобрались?
20. agent00mouse 256 21.02.20 09:57 Сейчас в теме
(19) думаю тут ни как. 1ц не даёт отловить событие получения фокуса элементом ввода.
22. Baturskii 17.11.23 16:03 Сейчас в теме
(19)НачатьРедактированиеЭлемента()
21. DERL 30.06.21 15:25 Сейчас в теме
в общем задача стоит в том, чтобы одну из полей таблицы показывать только на форме редактирования строки, а форме документа в ТЧ это поле скрыто.
на событии Выбор ставлю видимость этого поля, но не прорисовывает в форме редактирования
как решить проблему?
23. Niveol 31.01.24 15:27 Сейчас в теме
Добрый день! А можно вопрос. Вот у меня мобильная платформа открывает строку отдельной формой, и меня этот подход устраивает, но я хочу написать свою собственную форму строки, или как-то перехватить открытие этой строки. Не получается второй вариант. Событий нет. Свою форму строки написать конечно можно, но и тут есть проблемы. Я не имею достаточного опыта, чтобы подгружаемая аналитика к строке выстраивалась, как отдельный независимых реквизит поле в новой форме строки. В общем нужна помощь, какие-нибудь примеры, чтобы понять. Есть еще одна идея, сделать аналогию, как в мобильных приложениях сейчас у многих реализована табличная часть, в виде строки раскрывающейся по клику, как гиперссылка. Но это я тоже не особо пока понимаю, как сделано.
Оставьте свое сообщение