«1С:Деньги 8» – это программа домашнего назначения для учета, анализа и управления личными или семейными финансами.
Мы не требуем от наших пользователей знаний бухгалтерского учета или каких-то специальных методик. Предполагается, что всему этому они научатся в процессе использования программы. Поэтому к юзабилити и простоте освоения программы предъявляются особые требования.
И хотя у нас нет таких сложных форм, как в конфигурациях для регламентированного или производственного учета, иногда и над простой формой приходится потрудиться, чтобы она стала действительно простой.
В этой статье мы покажем пример разработки одной из таких форм – формы документа «Мы вернули долг».
Разработка конфигурации «1С:Деньги 8» ред. 2.0 ведется на платформе 8.3 в интерфейсе Такси.
Содержание
- Причины изменений
- Новая форма возврата долга
- Решение проблемы:
- Код события при «АктивизацииСтроки»
- Код события «Выбор»
Причины изменений
В редакции 1.0 был один документ для возврата частных долгов, он реализовывал простой сценарий – вернуть часть долга, без процентов, комиссий и пр.
Но пользователей это не устраивало, так как кроме простого сценария часто бывают и более сложные: одновременно с возвратом долга необходимо заплатить комиссию или почтовые сборы; иногда для частных долгов начисляются проценты. Для таких случаев приходилось вводить несколько разных документов.
Еще один случай возврата долга – это погашение банковского кредита. В 1-й редакции для этого существовал отдельный сложный механизм из нескольких документов, который вызывал много затруднений. Здесь мы его рассматривать не будем. Скажу лишь, что этот механизм полностью исключен, т.к. в новой реализации работы с долгами необходимость в нем отпала.
Новая форма возврата долга
В редакции 2.0 частные долги и банковские кредиты мы объединили в одну сущность. Ведь отличаются они только тем, что по частным долгам чаще всего (но не всегда) отсутствуют проценты, комиссии и график платежей.
Новый документ «Мы вернули долг» реализует следующие сценарии (по убыванию частотности):
- Погашение простого долга. Необходимо ввести контакт, иногда указать конкретный долг, из какого кошелька заплатили, и сумму погашения;
- Погашение долга с процентами, комиссией. Кроме суммы основного долга надо указать проценты и/или комиссию и статьи расходов для них;
- Учет дополнительных расходов, например, комиссии платежной системы, через которую проводится платеж. Необходимо заполнить табличную часть «Дополнительные расходы».
На первое юзабилити-тестирование форма была представлена в следующем виде:
Вид формы при погашении простого долга:
Вид формы при погашении кредита с доп. расходами:
Пользователи легко справлялись с простым сценарием, но для более сложных обнаружились следующие проблемы:
- Как бы мы не называли поле «Сумма основного долга» пользователи считают, что это общая сумма платежа. Вообще, пользователи обычно хотят ввести общую сумму платежа, а потом расшифровать ее: в том числе сумма основного долга, проценты и т.д.
- Для пользователей неочевидно, что, если взвести флаг «Проценты, комиссия», то появятся скрытые до этого поля ввода;
- Пользователи не догадываются перейти на вкладку «Дополнительные расходы» для ввода дополнительных комиссий и сборов, связанных с платежом. Вместо этого вводят дополнительные расходы с помощью других документов.
Чтобы решить эти проблемы, мы сделали следующее:
- Добавили поле «Сумма платежа»;
- Под суммой платежа разместили 3 свертываемые группы «В том числе». В заголовке групп отображается ключевая информация – суммы основного долга, процентов, комиссии, дополнительных расходов. Развернув группы, можно посмотреть или изменить суммы, статьи расходов, аналитику статей;
- Информацию об остатке долга также разместили в свертываемой группе. В свернутом состоянии выводится остаток долга после проведения документа. Если же группу развернуть, то можно увидеть остаток до и после операции, и списать остаток долга.
После этих изменений форма стала нагляднее и компактнее, а количество кликов не увеличилось.
Благодаря свертываемым группам, всю ключевую информацию можно охватить одним взглядом, ничего не переключая и не прокручивая, а при необходимости можно углубиться в детали.
Мы снова провели юзабилити-тестирование.
Теперь пользователи не ошибаются при вводе сумм, легко находят таблицу «Дополнительные расходы».
Не оправдались наши опасения, что могут возникнуть трудности со свертываемыми группами.
В ходе теста мы проверили два варианта: в виде картинок и в виде гиперссылок. И хотя пользователи легко справились с тем и с другим, по результатам опроса, проведенного по окончании теста, группы в виде гиперссылок были признаны более удачным решением.
Аналогично был изменен и похожий документ «Нам вернули долг». Новые формы документов включены в ознакомительную версию конфигурации 1С:Деньги 2.0.13.1.
На форме есть обычная группа с видом поведения «Свертываемая».
Есть галка «Свернута».
Хотелось при открытии формы, в зависимости от определенных условий, устанавливать соответствующий флаг «Свернута».
но среди свойств объекта нет ни свойств ни методов…
Оказывается «это сознательное решение».
это осознанное! РЕШЕНИЕ .
При разработке форм подборов и организации отборов для удобства работы может возникнуть задача по автоматическому раскрытию текущей группы.
- упростить работу пользователю, выполнять 1 клик вместо 2;
- явно дать понять ему, что есть вложенные группы.
В такой простой задаче может возникнуть стопор из-за особенностей динамического списка:
- в метод Развернуть() таблицы формы следует передать идентификатор текущей строки (численное значение, согласно описанию в синтаксис-помощнике);
- в динамическом списке, когда источник и основная таблица есть справочник, метод ТекущаяСтрока() возвращает ссылку этого справочника, к которому не применим метод ПолучитьИдентификатор().
Решение проблемы:
Первое что необходимо сделать: проверить или установить свойство «Отображение» у таблице в значение «Дерево»
Оказывается в метод Развернуть() в данном случае можно передавать эту ссылку, т.к. источник справочник, в котором нет дублей, следовательно система однозначно идентифицирует данную строку и сможет ее развернуть или свернуть. Аналогично работает и метод Развернут().
Код события при «АктивизацииСтроки»
тд = Элементы . Дерево . ТекущиеДанные ;
Если Не тд = Неопределено Тогда
Если Элементы . Дерево . Развернут ( Элементы . Дерево . ТекущаяСтрока ) = Ложь Тогда
Элементы . Дерево . Развернуть ( Элементы . Дерево . ТекущаяСтрока , Ложь ) ;
КонецЕсли ;
КонецЕсли ;
Для удобства пользователя добавим, авто раскрытие/сокрытие при выборе(двойном клике, по уже активной строке):
Код события «Выбор»
Процедура ДеревоВыбор ( Элемент , ВыбраннаяСтрока , Поле , СтандартнаяОбработка )
ТС = Элементы . Дерево . ТекущаяСтрока ;
Если Элементы . Дерево . Развернут ( ТС ) = Истина Тогда
Элементы . Дерево . Свернуть ( ТС ) ;
Иначе
Элементы . Дерево . Развернуть ( ТС , Ложь ) ;
КонецЕсли ;
Данная статья также применима к плану счетов, планам видов характеристик и расчетов (которые имеют иерархическую структуру).
Реклама — величайшее искусство XX века.
Источник: