- В этой теме 1 ответ, 2 участника, последнее обновление 1 месяц, 2 недели назад сделано .
Просмотр 1 ветки ответов
Просмотр 1 ветки ответов
- Для ответа в этой теме необходимо авторизоваться.
Программирование и администрирование в 1С
База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как после добавления строк в табличную часть включить редактирование ячейки?
помогите с полным кодом
Вот полный пример процедуры с отложенным выполнением, которая после добавления строк в табличную часть устанавливает текущую строку, фокус и начинает редактирование ячейки:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
&НаКлиенте &ИзменениеИКонтроль("Подключаемый_ПослеОбработкиШтрихкодов") Процедура VDP_Подключаемый_ПослеОбработкиШтрихкодов(РезультатОбработкиШтрихкода, ДополнительныеПараметры) Экспорт Если РезультатОбработкиШтрихкода.ТребуетсяОбработкаШтрихкода Тогда // Вызов основной обработки ШтрихкодированиеИСКлиентПереопределяемый.ПослеОбработкиШтрихкодов( ЭтотОбъект, ДанныеДляОбработки, КэшированныеЗначения); // Проверяем, есть ли добавленные строки Если РезультатОбработкиШтрихкода.ДобавленныеСтроки <> Неопределено И РезультатОбработкиШтрихкода.ДобавленныеСтроки.Количество() > 0 Тогда ПоследняяСтрока = РезультатОбработкиШтрихкода.ДобавленныеСтроки[РезультатОбработкиШтрихкода.ДобавленныеСтроки.Количество() - 1]; ИндексСтроки = Элементы.Товары.Объект.НайтиПоИдентификатору(ПоследняяСтрока); Если ИндексСтроки <> Неопределено Тогда ОтложитьВыполнение( Новый ОписаниеПроцедуры( Процедура() Элементы.Товары.УстановитьФокус(); Элементы.Товары.ТекущаяСтрока = ИндексСтроки; Элементы.Товары.РедактироватьЯчейку(ИндексСтроки, 0); КонецПроцедуры ) ); КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры |
Объяснение:
— ОтложитьВыполнение откладывает выполнение вложенной процедуры на следующий цикл обработки событий, что позволяет форме обновить табличную часть и отобразить новые строки.
— Внутри отложенной процедуры сначала устанавливается фокус на табличную часть, затем выбирается нужная строка и запускается редактирование ячейки.
— Убедитесь, что имя табличной части — "Товары". Если другое, замените в коде.
Такой подход решает проблему с тем, что фокус и редактирование не срабатывают сразу после добавления строк.