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

Программирование - Практика программирования

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

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

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

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

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

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

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

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

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

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

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

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

23

См. также

Специальные предложения

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

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

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

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

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

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

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


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

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

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

Кстати, вопрос
А как можно сделать горизонтальную прокрутку формы? Может кто-то делал?
16. agent00mouse 180 01.10.17 11:49 Сейчас в теме
(15) Интересный вопрос, нужно попробовать сделать большую форму, а вообще стараешься уместить всё на одном экране, для чего большая форма?
17. MaxStrelok 01.11.17 18:39 Сейчас в теме
Я решил проблему по другому. Программно сформировал табличную часть из реквизитов и полей ввода, при создании на формы на сервере. Получилось, что пользователь видит табличную часть, но в действительности это правильно программно расположенные на форме элементы формы - поля ввода. Программно, так как я в цикле перебираю таблицу и добавляю вниз по вертикали поля. Все быстро работает!
Прикрепленные файлы:
Alien_job; +1 Ответить
18. agent00mouse 180 02.11.17 07:36 Сейчас в теме
Ты про это калькулятор, что на фото? Красиво, функционально. Просьба будет, научи пожалуйста. как сделать всплывающим окошком. У меня получалось сделать только с переходом к следующему экрану. Или запили статью под это дело..
Оставьте свое сообщение