Мобильное приложение размещено на Google Play.
Подобного рода приложения в основном осуществляют подсчет калорий, белков, жиров и углеводов. Есть и с подсчетом витаминов и микроэлементов - но их число обычно ограничивается справочником Скурихина - их там около 12-ти. В одном месте видел и более подробные, но там же прямым текстом предупреждается, что состав приведённых элементов по каждому продукту не обеспечивается по общему набору, что делает неактуальной попытку посчитать питательную ценность всей диеты.
В данном приложении используется переведённая и обработанная таблица данных USDA National Nutrient Database for Standard Reference, Release 28. В результате используется таблица из более чем трёх тысяч продуктов, для каждого из которых имеется содержание 38 нутриентов.
В программе осуществлена возможность занесения собственных блюд по рецептам, их питательная ценность рассчитывается исходя из питательной ценности ингредиентов, имеющихся в базе данных.
Здесь выкладывается файл конфигурации с открытым кодом, как пример создания приложения на мобильной платформе 1С. Само приложение бесплатно на Google Play.
Там же, в магазине по ссылке, есть более полное описание и видео с демонстрацией, здесь приводить ссылку на него не буду.
-------------------------------------------------------------------------------------
На настоящий момент хочу констатировать, что мобильная платформа 1С - мощный продукт, оптимальный для работы с базой данных на мобильном устройстве так же, как и на ПК. Именно поэтому возникла мысль реализовать приведённое приложение, ибо его суть и есть предопределённая база данных, расширяемая в пользовательском режиме, с возможностью строить по ней отчёты.
Для разработчиков хочу предложить для внимания две проблемы, решенные в данном приложении.
Первая
Узким местом 1С, в том числе на ПК, считаются интерфейсные возможности. Именно поэтому коммерческие образцы приложений на платформе 1С часто используют фрагменты HTML для создания интерфейсов.
Моё приложение создано исключительно с помощью встроенного языка 1С. Для обеспечения приемлемого юзабилити использовались два следующих подхода.
1. При создании объектов конфигурации у всех отключено использование стандартных команд (равно как и не создавалось подсистем). У командных меню форм и контекстных меню отключено Автозаполнение. Весь командный интерфейс создаётся вручную - чтобы кнопки были там, где надо и какие надо.
2. Сильным и одновременно слабым местом в платформе является отображение таблиц. Сильным - потому что там всё уже сделано, и делать ничего больше не надо (кроме настройки их свойств в палитре), слабым - потому что для редактирования строки открывается новое окно, всё выглядит утилитарно и требует лишних "тыков". Кстати, сильным местом реализации таблиц хочу отметить КонтекстноеМеню - это выглядит непривычно для обычных пользователей, однако, при длительном нажатии на строку таблицы всплывает симпатичное контекстное меню (в котором Автозаполнение тоже лучше отключать), которым разработчик может управлять по своему управлению - добавляя в него нужные команды. Для мобильных устройств с их жутким недостатком экранного места - это решение очень удачное.
В приложении в общей форме "Меню" для таблицы формы "ПродуктыКПриему" для каждой строки реализовано программное создание группы элементов формы, управление данными строки через эти элементы и удаление строки через команду в этой группе. Управляемая форма в мобильном приложении работает достаточно хорошо, чтобы результат выглядел удовлетворительно. Во всяком случае, при таком подходе у меня ни разу не возникло желание что-то заменить на HTML-интерфейс.
Вторая
Как известно, поставка приложения 1С включает в себя конфигурацию, но не данные. В том случае, когда надо заполнить создаваемую базу начальными данными, необходимо придумывать, как это сделать.
В данном решении это сделано через макеты. Начальные данные были выгружены из базы в XML (сериализованы), и загружены в конфигурацию как двоичные данные, используя сжатие. При запуске в модуле приложения отрабатывает Процедура ПередНачаломРаботыСистемы, которая запускает код в общем модуле. Если это первый запуск (хранится в константе), то отрабатывает заполнение базы из макетов. Там же проверяется версия конфигурации, в зависимости от результатов проверки можно с данными что-то сделать - это можно использовать для изменения ранее загруженных объектов, не меняя те данные, которые пользователем вносятся вручную.
----------------------------------------------------------------
Приложение не использует интернет и не требует специальных разрешений.
Версия мобильной платформы - 8.3.17.67
Тестировалось под Андроид 9 и 10.