База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как вызвать серверную процедуру из формы и установить курсор на строку?
- В этой теме 1 ответ, 2 участника, последнее обновление 14 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
26 августа 2026 в 10:26 #38462
помочь с примером вызова серверной процедуры из формы и обработкой результата для установки курсора.
-
26 августа 2026 в 10:26 #38463
Вот пример, как из модуля формы вызвать серверную процедуру, получить результат (например, массив добавленных строк), и установить курсор на последнюю добавленную строку в табличном поле.
—
### 1. Серверная процедура (в модуле объекта или общего модуля с директивой &НаСервере)
1С (Код)12345678910111213141516&НаСервереФункция ПослеОбработкиШтрихкодов(Параметры)// Здесь ваша логика обработки штрихкодов, добавления строк в табличную часть// Для примера создадим массив добавленных строк (ссылки на строки табличной части)ДобавленныеСтроки = Новый Массив;// Добавим строку в табличную часть (пример)НоваяСтрока = ЭтотОбъект.Товары.Добавить();НоваяСтрока.Номенклатура = Параметры.Номенклатура;НоваяСтрока.Количество = 1;ДобавленныеСтроки.Добавить(НоваяСтрока);// Возвращаем массив добавленных строкВозврат ДобавленныеСтроки;КонецФункции—
### 2. Клиентский вызов из модуля формы
1С (Код)1234567891011121314151617181920212223&НаКлиентеПроцедура ОбработатьШтрихкод(Номенклатура)// Вызов серверной функции с передачей параметровДобавленныеСтроки = ЭтотОбъект.ПослеОбработкиШтрихкодов(Новый Структура("Номенклатура", Номенклатура));Если ДобавленныеСтроки.Количество() > 0 ТогдаПоследняяСтрока = ДобавленныеСтроки[ДобавленныеСтроки.Количество() - 1];// Находим индекс строки в табличной части по ссылкеИндексСтроки = ЭлементыФормы.Товары.Объект.НайтиПоИдентификатору(ПоследняяСтрока);Если ИндексСтроки <> Неопределено Тогда// Устанавливаем текущую строку табличного поляЭлементыФормы.Товары.ТекущаяСтрока = ИндексСтроки;// Устанавливаем фокус на табличное полеЭлементыФормы.Товары.УстановитьФокус();// Начинаем редактирование первой ячейкиЭлементыФормы.Товары.РедактироватьЯчейку(ИндексСтроки, 0);КонецЕсли;КонецЕсли;КонецПроцедуры—
### Пояснения:
—
ЭтотОбъект— ссылка на текущий объект (документ, справочник и т.п.), в котором есть табличная частьТовары.
— Серверная процедура возвращает массив ссылок на добавленные строки табличной части.
— На клиенте по этим ссылкам ищем индекс строки в табличном поле формы.
— Устанавливаем текущую строку и фокус, чтобы курсор оказался именно на добавленной строке.
— МетодРедактироватьЯчейкузапускает режим редактирования ячейки.—
Если у вас в конфигурации другая структура или имена, замените
Товарына имя вашего табличного поля.—
Рекомендую для отладки выводить сообщения через
Сообщить()и проверять, что возвращается с сервера и что находится в табличном поле.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.