Обработка "Меню торгового представителя" для планшетов, писалась под конфигурацию 1С:Комплексная автоматизация, редакция 1.1 (1.1.36.1) с целью удаленной работы торговых представителей и оформлений накладных на отгрузку,так же просмотра остатков и дебиторки, для более удобного подбора товаров из списка с учетом остатков разработана кнопка "Подбор", тестировалась и работает на планшетах "7" Планшет Wexler.Tab 7t 8Gb 3G, 1280x800", может запускаться на других моделях.
Осуществил доработку в конфигурации по увеличению шрифта для пользователя при удаленном подключении к базе, с помощью объекта "Стили" конфигурации. Следующий код:
Процедура ПередНачаломРаботыСистемы(Отказ)
Если НЕ РольДоступна("Пользователь")
И (НЕ РольДоступна("ПолныеПрава")) Тогда
Предупреждение("Вам не назначена роль ""Пользователь"". Запуск конфигурации невозможен.");
Отказ = Истина;
Возврат;
КонецЕсли;
Отказ = НЕ УправлениеПользователями.ПользовательОпределен();
// ОбновлениеВерсииИБ
Отказ = Отказ ИЛИ НЕ ОбновлениеИнформационнойБазыКлиент.ВозможноВыполнитьОбновлениеИнформационнойБазы();
// Конец ОбновлениеВерсииИБ
//МНач
ГлавныйСтиль = БиблиотекаСтилей.Получить(ПолучитьНомерСтиляПользователя());
//МКон
КонецПроцедуры
Функция ПолучитьНомерСтиляПользователя()
Запрос = Новый Запрос;
Запрос.текст = "ВЫБРАТЬ
| СтилиПользователей.НомерСтиля
|ИЗ
| РегистрСведений.СтилиПользователей КАК СтилиПользователей
|ГДЕ
| СтилиПользователей.Пользователь = &Пользователь";
Запрос.УстановитьПараметр("Пользователь", ПараметрыСеанса.ТекущийПользователь);
Рез = Запрос.Выполнить().Выбрать();
Если рез.Следующий() Тогда
Возврат рез.НомерСтиля;
иначе
Возврат 0;
КонецЕсли;
КонецФункции
Осуществил автоматический запуск 1с и обработки при входе с планшета с помощью командной строки, в обработке работает механизм полного завершения работы пользователя над БД по кнопке "Выход", автоматическое удаление товара из списка при отсутствии его на остатках.
Сама обработка сохраняется во внешних обработках базы, для того чтобы она запускалась при открытии, создал роль "ТорговыйПредставитель", если пользователь входит с этой ролью срабатывает код:
Если РольДоступна("ТорговыйПредставитель") Тогда
ОбОбработки = Справочники.ВнешниеОбработки.НайтиПоНаименованию("Меню торгового представителя").ПолучитьОбъект();
ОбОбработки = ПолучитьСерверТО().ПолучитьВнешнююОбработку(ОбОбработки.Ссылка);
МенюТО = ОбОбработки.ПолучитьФорму("Форма");
МенюТО.ОткрытьМодально();
КонецЕсли;
В модуль объекта обработки ТОСервер прописываем:
//МНач
Функция ПолучитьВнешнююОбработку(Ссылка) Экспорт
Если НЕ ЗначениеЗаполнено(Ссылка) Тогда
Возврат Неопределено;
КонецЕсли;
Имя = СтрЗаменить(Строка(Ссылка.УникальныйИдентификатор()), "-", "");
ДвоичныеДанные = Ссылка.ХранилищеВнешнейОбработки.Получить();
Если ДвоичныеДанные = Неопределено Тогда
Общегоназначения.СообщитьОбОшибке("Не установлена обработка !");
Возврат Неопределено;
КонецЕсли;
ИмяФайла = ПолучитьИмяВременногоФайла();
Попытка
ДвоичныеДанные.Записать(ИмяФайла);
об = ВнешниеОбработки.Создать(ИмяФайла);
Исключение
Общегоназначения.СообщитьОбОшибке("Не удалось инициализировать обработку !
|Файл не является внешней обработкой.
|Либо, данная обработка не предназначена для
|запуска в этой конфигурации.");
УдалитьФайлы(ИмяФайла);
Возврат Неопределено;
КонецПопытки;
Попытка
Комментарий = Ссылка.КомментарийКФайлуИсточнику;
Начало = Найти(Комментарий,"изменен:")+8;
Комментарий = Сред(Комментарий,Начало);
Начало = Найти(Комментарий,";");
Если Начало>0 Тогда
об.ВерсияВнешнейОбработки = Лев(Комментарий,Начало-1);
КонецЕсли;
Исключение
КонецПопытки;
глЗначениеПеременнойУстановить("Обработка_" + Имя, об);
УдалитьФайлы(ИмяФайла);
Возврат об;
КонецФункции
//МКон
Почему решил сохранять обработку в базе, потому что не раз сталкивался с тем что админы могут перемещать или закрывать доступ к некоторым каталогам, либо могут возникнуть сбои системы, если бекапы базы настроены, то за все эти доработки можно особо не беспокоиться.