Управляемая форма списка с данными двух таблиц - иерархического справочника и регистра сведений для мобильной платформы

16.11.12

Разработка - Работа с интерфейсом

Суть проблемы в отсутствии возможности делать запросы на мобильной платформе 8.3 - дерево (иерархия если)/таблица значений, выборка справочника, срез регистра сведений. В остальных клиентах эта проблема легко решается динамическим списком со своим запросом, это не является предметом данной статьи.

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

Создаём форму списка для справочника (или общую форму), удаляем от туда Реквизит Список и добавляем Реквизит Дерево - с типом ДеревоЗначений. Добавляем необходимые колонки внутри реквизиты (в моём случае Ссылка и Цена) [для ссылки Заголовок указал - Товар].

Далее при создании на сервере описываем событие формы "ПриСозданииНаСервере"

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    ТолькоПросмотр =  Истина;
    
    ВидЦен = ПолучитьВидЦен();
    НачалоДня = НачалоДня(ТекущаяДата());
    
    ОбновитьСписок();
    
КонецПроцедуры

Ну и сопутствующие функции в этот же модуль формы:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    ТолькоПросмотр =  Истина;
    
    ВидЦен = ПолучитьВидЦен();
    НачалоДня = НачалоДня(ТекущаяДата());
    
    ОбновитьСписок();
    
КонецПроцедуры

&НаСервере
Процедура ОбновитьСписок()
    ТоварыВыборка = Справочники.Товары.ВыбратьИерархически(,,,"Наименование");
    Корень = Дерево.ПолучитьЭлементы();
    Корень.Очистить();
    
    ЦеныТоваров = РегистрыСведений.ЦеныТоваров;
    ЦеныТоваровОтбор = Новый Структура("Товар, ВидЦен");
    ЗаполнитьЗначенияСвойств(ЦеныТоваровОтбор, ЭтаФорма);
    //ЦеныТоваровОтбор.ВидЦен = ВидЦен;
    
    Пока ТоварыВыборка.Следующий() Цикл
//выходИзИерархии:
        текЭлемент = Корень.Добавить();
        ЗаполнитьЗначенияСвойств(текЭлемент, ТоварыВыборка);
        Если ТоварыВыборка.ЭтоГруппа Тогда
            Если ЗаполняемВеткуДерева(текЭлемент, ТоварыВыборка, ЦеныТоваровОтбор, ЦеныТоваров) Тогда
                Перейти ~выходИзИерархии;
            КонецЕсли;
            
            Возврат;
        Иначе
            ПодгружаемДополнительныеДанные(текЭлемент, ТоварыВыборка, ЦеныТоваровОтбор, ЦеныТоваров);
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры

&НаСервере
Функция ЗаполняемВеткуДерева(текКорень, ТоварыВыборка, ЦеныТоваровОтбор, ЦеныТоваров)
    Корень = текКорень.ПолучитьЭлементы();
    текСсылка = ТоварыВыборка.Ссылка;
    
    Пока ТоварыВыборка.Следующий() Цикл
//выходИзИерархии:
        Если ТоварыВыборка.Родитель <> текСсылка Тогда Возврат Истина; КонецЕсли;
        
        текЭлемент = Корень.Добавить();
        ЗаполнитьЗначенияСвойств(текЭлемент, ТоварыВыборка);
        Если ТоварыВыборка.ЭтоГруппа Тогда
            Если ЗаполняемВеткуДерева(текЭлемент, ТоварыВыборка, ЦеныТоваровОтбор, ЦеныТоваров) Тогда
                Перейти ~выходИзИерархии;
            КонецЕсли;
            
            Возврат Ложь;
        Иначе
            ПодгружаемДополнительныеДанные(текЭлемент, ТоварыВыборка, ЦеныТоваровОтбор, ЦеныТоваров);
        КонецЕсли;
    КонецЦикла;
    
    Возврат Ложь;
КонецФункции

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

&НаСервере
Функция ПолучитьВидЦен()
    выборкаВидыЦен = Справочники.ВидыЦен.Выбрать();
    выборкаВидыЦен.Следующий();
    Возврат выборкаВидыЦен.Ссылка;
КонецФункции

PS  в тестовом примере я работал с некоторой своей конфигурацией. ВидыЦен на этом этапе справочник, используется в измерении регистра сведений ЦеныТоваров, там всего одно значение, оно же прописано в записях самого регистра в реальных данных. ВидЦен и НачалоДня (Дата) - реквизиты формы в моём случае.

См. также

Работа с интерфейсом Анализ учета Мониторинг Платформа 1С v8.3 8.3.14 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Платные (руб)

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

14400 руб.

27.03.2025    2169    8    9    

12

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

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

3000 руб.

03.12.2018    62971    214    104    

182

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

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

13200 руб.

27.12.2021    42923    121    167    

216

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Программист Пользователь Платформа 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. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически.

3000 руб.

22.04.2019    103887    635    192    

342

Работа с интерфейсом Системный администратор Программист Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Платные (руб)

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

6000 руб.

14.01.2016    56915    19    25    

45

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

Программное обеспечение для автоматизации складских операций со встроенными функциями работы с маркированной продукцией. Предназначено для автоматизации всех товароучетных операций на складах, обычных и адресного хранения. «Склад 15 ВЕЩЕВОЙ» объединил в себе несколько товарных групп маркированного товара (ОБУВЬ, ОДЕЖДА, ШИНЫ, ПАРФЮМ, БАДы, ЮВЕЛИРНЫЕ ИЗДЕЛИЯ), которые чаще всего встречаются в складской логистике вместе.

38000 руб.

02.06.2023    3365    2    0    

1

Работа с интерфейсом Платформа 1С v8.3 Платные (руб)

Подсистема условного оформления элементов форм (далее подсистема) предназначена для настройки оформления элементов форм (видимость, доступность, цвет фона, цвет текста и прочее) в пользовательском режиме 1С. Также подсистему возможно использовать для ограничения доступа к реквизитам формы для определенных пользователей (или групп пользователей).

6000 руб.

18.01.2022    10868    2    2    

7

Работа с интерфейсом Программист Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    20834    30    6    

46
Оставьте свое сообщение