Имя: Пароль:
1C
1С v8
Установить заголовок в форме редактирования строки в мобильном приложении 1С
☑
0 ikea
 
11.11.26
✎
18:04
Пишу мобильное приложение на 1С. Есть документ, в нем в табличной части примерно 30 реквизитов. Когда в мобильном приложении редактируешь строку - открывается системное окно редактирования строки и если скролишь окно, то не видно какая услуга. Хочу добавить в заголовок формы  наименование услуги.
Вопрос как?
1 Федя Тяпкин
 
11.11.26
✎
18:29
DeepПсих говорит так:

Сделать это стандартным способом через свойство Заголовок у системного окна редактирования строки в мобильном приложении не получится. Это окно — системный механизм платформы, и оно не имеет свойства Заголовок, которое можно было бы изменить из кода.

Однако проблему можно решить, создав свою форму для редактирования строки. Это стандартная практика для мобильных приложений на 1С, когда стандартное окно не устраивает.

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

Вот пошаговый план:

1. Создайте новую форму
Создайте общую форму (например, ФормаРедактированияСтрокиУслуги). В её реквизиты добавьте те же поля, что и в строке табличной части вашего документа (Услуга, Количество, Цена и т.д.).

2. Настройте заголовок формы
В свойствах созданной формы найдите свойство АвтоЗаголовок и установите его в Ложь. Теперь вы можете управлять заголовком программно.
В модуле формы создайте процедуру ПриСозданииНаСервере, которая будет устанавливать заголовок:

1c
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // Объект.Услуга - это реквизит формы, в который вы передадите услугу
    Если ЗначениеЗаполнено(Объект.Услуга) Тогда
        Заголовок = "Редактирование: " + Объект.Услуга;
    КонецЕсли;
КонецПроцедуры
Свойство Заголовок доступно для мобильного приложения .

3. Перехватите открытие строки в форме документа
В модуле формы документа, в событии Выбор табличного поля, отключите стандартную обработку и откройте вашу новую форму:

1c
&НаКлиенте
Процедура УслугиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь; // Отключаем системное окно
    
    // Получаем текущую строку табличной части
    ТекущаяСтрока = Элементы.Услуги.ТекущиеДанные;
    
    // Открываем свою форму
    ПараметрыФормы = Новый Структура("Услуга, Количество, Цена", ТекущаяСтрока.Услуга, ТекущаяСтрока.Количество, ТекущаяСтрока.Цена);
    ОткрытьФорму("ОбщаяФорма.ФормаРедактированияСтрокиУслуги", ПараметрыФормы, ЭтаФорма);
КонецПроцедуры
Этот подход также позволяет решить другие проблемы, например, добавить кнопки «+/-» для количества прямо в форму редактирования, что в системном окне сделать нельзя .

4. Верните измененные данные обратно
В вашей форме редактирования добавьте команду «Сохранить». В её обработчике закройте форму и передайте измененные данные обратно в документ. Это можно сделать через оповещение (Оповестить) или просто записав значения в переданную структуру, если форма открыта не модально.

Этот путь потребует немного больше кода, но даст вам полный контроль над интерфейсом и решит проблему с неудобной прокруткой.