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

Публикация № 161456

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

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

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

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

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

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

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

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

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

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

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

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

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

2

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

Избранное Подписка Сортировка: Древо
В этой теме еще нет сообщений.
Оставьте свое сообщение

См. также

Создание асинхронных виджетов 72

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

Описание нескольких способов создания асинхронных виджетов для 1С:Предприятия. Рассматриваются способы с использованием HTTP-сервисов и фоновых заданий.

16.10.2019    1678    YPermitin    14       

Формы. Трудности программной работы 70

Статья Программист Нет файла v8 v8::УФ 1cv8.cf Бесплатно (free) Работа с интерфейсом

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

06.10.2019    3439    YPermitin    21       

Лайфхаки 1С (часть 1). Настройки отчетов и печатных форм 1С 34

Статья Программист Пользователь Стажер Нет файла v8 1cv8.cf Россия Бесплатно (free) Работа с интерфейсом

Статья рассчитана на пользователей или программистов, которые только начинают работать с 1С, для максимально быстрого ознакомления с интерфейсом программы. В статье приведены лайфхаки, которые позволят вам быстро и эффективно научиться настраивать отчёты и печатные в среде программных продуктов 1С. Полученные знания значительно упростят взаимодействие с интерфейсом 1С и повысят продуктивность работы оператора.

02.10.2019    4046    VachKirp    8       

Добавляем виджет "Задачи от меня" в Документооборот 2.1 22

Статья Программист Нет файла v8 v8::Бизнес-процессы ДО Россия Бесплатно (free) Практика программирования Работа с интерфейсом

Небольшая доработка Документооборота 2.1 для возможности добавления виджета "Задачи от меня" в обработку Текущие дела.

25.09.2019    1556    Sergey_Borisovi4    2       

[Механизм интерфейса] Часы 54

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом Практика программирования Разработка

Добавляем цифровые часы на форму, как бонус рассмотрим вариант и с аналоговыми.

26.08.2019    3113    rpgshnik    33       

Оффлайн-режимы в Simple WMS: полностью автономные приложения, отложенная отправка, гибридный режим 18

Статья Программист Нет файла v8 Бесплатно (free) Мобильная разработка

Теперь Simple WMS имеет базу данных и можно создавать конфигурации для полностью автономных приложений, не зависящий от веб-сервера на стороне учетной системы, в выполнением логики на устройстве а не на стороне веб сервера. А также можно реализовывать другие гибридные режимы работы с использованием хранилища устройства. Тестировалось на платформе 1С 8.3.13.1865.

15.08.2019    1811    informa1555    3       

Произвольная начальная страница через расширение (программно) 41

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

Установка своей формы произвольному пользователю на начальную страницу.

14.08.2019    2547    nagaitseff    11       

Подходы, методы и инструменты UX/UI для разработки эффективных интерфейсов на 1С 31

Статья Программист Нет файла v8 Бесплатно (free) Работа с интерфейсом

Интерфейсам в 1С обычно уделяют мало внимания. Это в итоге снижает востребованность платформы, делает ее неконкурентной, лишает большой доли рынка. Как не потерять старых клиентов и привлекать новых с помощью интерфейсов, а главное – как сделать «правильный» интерфейс, рассказал участникам конференции Infostart Event 2018 Education управляющий партнер и основатель консалтинговой группы WiseAdvice Иван Тягунов.

07.08.2019    4528    IvanAT1981    14       

Пользовательские настройки системы компоновки данных 86

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Работа с интерфейсом

Работа с отчетами в пользовательском режиме, формы отчетов. Понятие пользовательских настроек в отчетах на СКД. Определение состава пользовательских настроек для разделов в целом и для отдельных элементов, для всего отчета и для отдельных группировок. Видимость функциональных опций в отчетах на СКД.

09.07.2019    6310    ids79    0       

Подсистема "Варианты отчетов". Используете ли Вы ее правильно? 210

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом БСП (Библиотека стандартных подсистем)

Небольшая история про использование подсистемы "Варианты отчетов" из БСП. Используете ли Вы ее правильно?

04.06.2019    14332    YPermitin    49       

Сжатие данных в мобильном приложении 1С:Предприятие 42

Статья Программист Нет файла v8 v8::Mobile 1cv8.cf УУ Розничная торговля Бесплатно (free) Мобильная разработка

Эту небольшую статью я планировал опубликовать у себя на сайте, чтобы такие любители мобильного приложения от 1С:Предприятие, как я, могли использовать её без дополнительно потраченных двух дней на поиски вариантов написания алгоритма. Во-первых, хотел сказать, что я небольшой разработчик, который начинал делать свои первые шаги ещё на заре правления "Семерки". Новая платформа версии 8 была как глоток свежего воздуха - бодрящий и легко воспринимаемый организмом. Я был очень удивлен, да что сказать, до сих пор удивляюсь как элементарные вещи можно делать на 1С, и как это стремно делается на других языках программирования. Во-вторых, обилие разнообразных интерпретаций платформы позволяет развернуться на все 360 градусов, захватив своими проектами, наверное, любые ветки бизнеса. Так вот, о небольшом нюансе работы с новой мобильной платформой я и хотел рассказать... Сам додумался, так сказать.

27.05.2019    7626    yarsort    27       

Расшифровка отчета на СКД с детализацией по выбранному полю на основе БСП 91

Статья Программист Нет файла v8 v8::УФ v8::СКД 1cv8.cf Россия Бесплатно (free) Практика программирования Работа с интерфейсом Разработка

В данной статье рассмотрим механизм работы с расшифровкой отчета, созданного при помощи системы компоновки данных, в управляемом приложении. Показывать буду на примере реальной задачи. Условие: использовать имеющиеся в конфигурации механизмы БСП, с минимальными и "правильными" изменениями. Расшифровка должны быть двух видов на каждом поле: 1. Открывать ссылочный объект 2. Открывать новую форму с детализацией табличной части документа. Собственно ради второго пункта и писалась статья, в основном для себя, чтобы не забыть.

14.05.2019    7403    Viktor_Ermakov    6       

Свой макет оформления отчета 33

Статья Программист Нет файла v8 v8::СКД Россия Windows Бесплатно (free) Работа с интерфейсом

Пример создания и оформления и применения своего (пользовательского ) макета оформления для СКД.

24.04.2019    4530    olegpkc    5       

Динамический вывод таблицы значений на форму 35

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

Вывести на форму таблицу значений, а потом на её место другую, третью, четвёртую? Не вопрос.

11.01.2019    5679    Vlad1917    26       

Прикладной пример переработки стандартной формы РМК - Розница 74

Статья Программист Нет файла v8 Розница УУ Кассовые операции Розничная торговля Бесплатно (free) Работа с интерфейсом

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

04.10.2018    10842    asdfgcom    56       

Cправочная информация. Картинки. 16

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

Справочную информацию мало кто любит писать, но вот захотелось. И что с этим делать?

06.06.2018    6407    aspirator23    2       

Итоги в динамическом списке 47

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

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

28.05.2018    8996    CXY    16       

Программное управление обычными формами документов и справочников в УПП/КА 32

Статья Программист Нет файла v8 v8::УФ КА1 УПП1 Россия Бесплатно (free) Работа с интерфейсом

Если с программным изменением управляемых форм 1С все более или менее понятно, то с программированием обычных форм примеров не так уж много в сети. А уж примеров готовых решений совсем не видно. В данной статье я покажу, как можно реализовать аналог "управляемых" форм в своих конфигурациях с обычными формами и забыть о сложностях обновлений форм.

09.05.2018    8426    dima_home    7       

Решение проблемы отображения интерфейса Такси на экранах с маленьким разрешением 26

Статья Программист Нет файла v8 v8::УФ Беларусь Windows Бесплатно (free) Работа с интерфейсом

Решение возникшей проблемы при переходе с интерфейса 8.2 на интерфейс Такси на экранах с маленьким разрешением.

06.04.2018    9787    Drak87    18       

Красивые графики. Пошаговая инструкция (Highstock) 122

Статья Программист Нет файла v8 Бесплатно (free) Работа с интерфейсом

Данный подход опробован на библиотеках: Нighcharts и Highstock. Для работы будет необходима 1С и браузер Google Chrome. Чукча не писатель (первая публикация).

22.11.2017    14208    Degrement    20       

Создание мобильного клиента 1С на Android с использованием HTTP-сервисов 144

Статья Программист Нет файла v8 v8::Mobile Android Бесплатно (free) Внешние источники данных Мобильная разработка

Краткий курс по созданию мобильного приложения на Android, который связывается с сервером 1С через HTTP-сервис. Публикация рассчитана на тех, кто хорошо знаком с программированием на платформе 1С и владеет основами программирования на платформе Android (умеет создавать Activity и знает, как устроена структура проекта).

03.11.2017    26244    cdiamond    15       

Меняем стандартную форму выбора для реквизита формы на свою форму с запросом 51

Статья Программист Нет файла v8 Россия Бесплатно (free) Практика программирования Работа с интерфейсом

Алгоритм действий для смены стандартной формы выбора для реквизита формы на свою форму со своей выборкой данных и возвратом нескольких параметров в вызывающую форму

30.09.2017    15796    ah7777777    24       

"Мигаем" интерфейсом, или цепочки асинхронных вызовов 71

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Работа с интерфейсом

Как, не блокируя интерфейс, привлечь внимание пользователя к интерфейсным элементам. Или, попросту говоря, "мигнуть" чем-то.

06.09.2017    12629    Chrizt    13       

"Восстановить положение окна" - не помогает. Как я решил проблему. 28

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

Как получилось решить проблему глюков отображения формы документа.

28.05.2017    46647    niko11s    44       

Как добавить/убрать кота в отчет? 78

Статья Программист Нет файла v8 БП3.0 Бесплатно (free) Работа с интерфейсом

Кот в отчете: кому-то нравится, кого-то жутко бесит. Как избавиться, заменить, оставить (нужное подчеркнуть)?

12.05.2017    23122    starik-2005    16       

Итоги в динамическом списке 46

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Работа с интерфейсом

Как быстро посчитать итоги в динамическом списке

03.04.2017    20974    Восьмой    34       

Как "перемотать" динамический список в начало при открытии? (или некоторые нюансы получения данных динамического списка) 57

Статья Программист Нет файла v8 Бесплатно (free) Работа с интерфейсом

В современных интерфейсах (новостях, социальных сетях и прочим) принято размещать новые данные сверху, более старые - внизу. К сожалению, в 1C сделано несколько по-другому - по умолчанию списки документов отсортированы по возрастанию даты и далее возможно два варианта: либо список при открытии проматывается в конец, либо список может запоминать "последнюю" текущую строку.

03.11.2016    19081    Fragster    25       

Публикация конфигурации мобильного приложения на стороннем web-сервере 21

Статья Программист Нет файла v8 v8::Mobile Россия Бесплатно (free) Мобильная разработка

Как разработчику вручную опубликовать конфигурацию мобильного приложения на веб-сервере в Интернете.

26.10.2016    15531    alexander.v.kozhukhov    5       

Программное создание графических схем (v.2): API для ГрафическойСхемы 73

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Работа с интерфейсом Универсальные функции

Пример динамического создания графических схем, добавления элементов любых видов. Любые схемы без бизнес-процессов. Программная работа со схемой. Отличие от существующей статьи в том, что здесь используется объектная модель. Исправил и упростил некоторые моменты - результат соответствует схеме, созданной руками. Добавил возможность рисования произвольных форм для существующих фигур.

27.09.2016    16909    serg_infostart    15       

Отладка конфигураций на мобильной платформе 107

Статья Программист Нет файла v8 Бесплатно (free) Мобильная разработка

Настройка и подключение отладчика для отладки конфигураций на мобильной платформе.

25.09.2016    35049    spezc    44       

Автоматическое добавление новых реквизитов на форму (УФ) 38

Статья Программист Нет файла v8 v8::УФ Бесплатно (free) Работа с интерфейсом Универсальные функции

Идея такая: Программист добавил реквизит в объект. В комментарии этого реквизита прописал некое спец. слово (можно не матерное). На форму объекта новый реквизит далее попадает автоматом в спец. группу "Дополнительно".

03.08.2016    16247    Патриот    23       

Управляемые формы: Поле HTML Документа и веб-клиент 57

Статья Программист Нет файла v8 Россия Бесплатно (free) Практика программирования Работа с интерфейсом

Взаимодействие javascript и интерфейса 1С дает огромные возможности для реализации нестандартных функций. Раньше можно было напрямую вызывать функции JavaScript через DOM объект document Поля HTML документа. В современных браузерах эта возможность ушла. Более того, в веб-клиенте появляется тип ВнешнийОбъект, который вообще нигде не описан. На Инфостарте были предложения вызывать JavaScript через fireEvent, но это очень неудобно. Предлагаю свой вариант решения.

18.07.2016    24206    compguru    10       

Включение обновления мобильных конфигураций via http 37

Статья Программист Нет файла v8 Android Бесплатно (free) Мобильная разработка

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

10.05.2016    14556    SirStefan    11       

Арифметический тренажер 16

Инструменты и обработки no Конфигурация (md, cf) v8 Россия Android Бесплатно (free) Мобильная разработка

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

1 стартмани

08.05.2016    11299    van_za    3       

Фитнес – твой личный тренер в зале и дома 57

Статья no Нет файла v8 Развлечения, искусство, спорт Бесплатно (free) Пользователю системы Мобильная разработка

Хочешь быть здоровым, прекрасно выглядеть и неустанно стремишься к совершенству? Фитнес поможет достигнуть реальных результатов на пути к идеальной фигуре и здоровому телу.

15.04.2016    31357    Baksheev-Nikita    54       

Как вывести динамическое представление для пустого значения (в таблице)? 23

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Работа с интерфейсом

Есть таблица. Часть полей в ней заполняется автоматически, а часть - должен заполнить пользователь. Нужно подсказать пользователю, что именно в какую ячейку вводить - для этого выведем серым текст подсказки внутри каждой незаполненной ячейки. На поиски решения этой задачки я потратил половину субботы. Надеюсь, моя небольшая заметка поможет кому то провести выходные более продуктивно)

29.03.2016    9739    weissfeuer    9       

Отображение рекламы в мобильном приложении 1С 54

Статья Программист Нет файла v8 Windows Бесплатно (free) Мобильная разработка

Краткий how-to по настройке новой "фичи" мобильной платформы

05.03.2016    9769    vano-ekt    0       

Выделение документов в динамическом списке 20

Статья Программист Нет файла v8 Бесплатно (free) Работа с интерфейсом

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

01.02.2016    15803    Sardukar    7       

Работа с ftp из мобильного приложения 1С 53

Статья Программист Нет файла v8 Android Бесплатно (free) Мобильная разработка

Работа с ftp из мобильного приложения 1С с использованием сторонней программы

05.11.2015    20315    NekoZver    22       

Три приёма, позволяющие сделать интерфейс конфигураций 1С на управляемых формах удобнее при большом шрифте 52

Статья Программист Нет файла v8 УНФ ERP2 БП3.0 Windows Бесплатно (free) Работа с интерфейсом Универсальные функции

С появлением управляемых форм вообще и БП 3.0 в частности пользователи, которые не хотят портить своё зрение рассматриванием мелкого шрифта, оказались в невыгодном положении. Многих элементов на экране в "тяжёлых" документах вообще оказалось не видно. Все попытки решить вопрос штатными средствами настройки предприятия оказались неэффективны. Вот несколько приёмов, которые буквально в два щелчка мышкой и парой строк кода помогут решить проблему.

05.11.2015    15033    H-Labs    11       

Как скрыть "пустые группы" в списке выбора справочника при отборе 46

Статья Программист Нет файла v8 Бесплатно (free) Работа с интерфейсом

Когда требуется открыть список справочника с отбором, например, по определённой группе, видны также все остальные группы с пустым содержимым. Мой способ избавления от ненужных групп ниже.

29.10.2015    25626    shevelyov    25       

Открытие форм нескольких новых документов в тонком и толстом клиенте, УФ 23

Статья Программист Нет файла v8 v8::УФ 1cv8.cf Windows Бесплатно (free) Работа с интерфейсом

Если Вам необходимо создать несколько документов, а затем открыть их формы для пользователя.

1 стартмани

29.09.2015    18058    Wezoowy    13       

Параметры сеанса. 47

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Работа с интерфейсом

Параметры сеанса - это объекты метаданных конфигурации. Поговорим об их назначении и принципах работы с ними.

06.09.2015    55491    niko11s    8       

Шкала в строке состояния 51

Статья Программист Нет файла v8 Windows Бесплатно (free) Работа с интерфейсом

Простая шкала, не требующая дополнительных форм и элементов управления

31.08.2015    13479    Ivon    26