Слетает активность ячейки

1. tatoshka0403 112 25.11.21 10:27 Сейчас в теме
Всем доброго дня.
На форме есть ТаблицаЗначений, после редактирования данных в ячейке использую методы РеквизитФормыВЗначение и ЗначениеВРеквизитФормы, после чего у меня слетает активная ячейка. Вопрос как ее вернуть активность.
После выполнения ЗначениеВРеквизитФормы в Элементы.ТЗ.ТекущиеДанные=Неопределенно.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. soft_wind 25.11.21 10:38 Сейчас в теме
попробуйте изменить обработку на другие события,
ПриИзменении заменить на Завершение редактирования строки

ну и как вариант, запоминать Ключ строки и после обновления искать по нему нужную строку и делать ее текущей
3. tatoshka0403 112 25.11.21 10:49 Сейчас в теме
(2)Поменял обработчик на ОкончаниеВводаТекста не помогло, завершения редактирования у ячейки нету.
Элементы.ТЗ.ТекущиеДанные.Ключ - нету такого(
9. user1461477 25.11.21 12:03 Сейчас в теме
(3)
Элементы.ТЗ.
ТекущаяСтрока
11. tatoshka0403 112 25.11.21 12:10 Сейчас в теме
(9)в Элементы.ТЗ.ТекущаяСтрока содержится значение ячейки
12. user1461477 25.11.21 12:11 Сейчас в теме
(11) в текущей строке - значение ячейки?
эмс. сколько же я еще не знаю об этой вселенной
13. tatoshka0403 112 25.11.21 12:12 Сейчас в теме
(12)
Прикрепленные файлы:
16. user1461477 25.11.21 12:16 Сейчас в теме
(13) походу это значение и есть искомый "идентификатор строки"
не ячейки
4. soft_wind 25.11.21 11:04 Сейчас в теме
Ключ - это набор полей однозначно определяющих строку

например в ТЧ это может быть НомерСтроки,
в любой другой ТЗ смотрите на уникальность данных в разрезе колонок
например, условие уникальность по Номенклатуре, тогда поиск по полю Номенклатура
иногда используется Номенклатура + Характеристика, тогда поиск по эти двум полям
и т.д.

ну и по логике обработке,
Пользователь ввел все данные по строке, после этого вы все обновили, А зачем ему оставаться на этой-же строке?

ну или еще как вариант, меняйте данные только этой строки, без загрузки значений всей ТЗ
5. tatoshka0403 112 25.11.21 11:12 Сейчас в теме
(4) вообще необходимо делать переход на ячейку ниже, после ввода данных рассчитываются итоговые показатели поэтому и приходится перекидывать ТЗ туда сюда
6. antz 25.11.21 11:16 Сейчас в теме
(5) А без РеквизитФормыВЗначение совсем никак?
7. tatoshka0403 112 25.11.21 11:27 Сейчас в теме
8. antz 25.11.21 11:53 Сейчас в теме
(7) что-то мне все-таки подсказывает, что обойтись можно. Если кода не слишком много - показывайте.
10. tatoshka0403 112 25.11.21 12:07 Сейчас в теме
ИмяОрганизацииБезЛишнихСимволов=УдалитьЛишниеСимволыИзНаименования(Объект.Организация);
	ИмяКолонкиОСТАТОК="ОСТАТОК"+ИмяОрганизацииБезЛишнихСимволов;
	ИмяКолонкиИТОГ="ИТОГ"+ИмяОрганизацииБезЛишнихСимволов;
	ТЗрек=РеквизитФормыВЗначение("ТЗ");
	//Обход строк
	Для каждого Стр из ТЗрек цикл
		//Обход колонок
		//количество из заказов - заказано
		Стр[ИмяКолонкиОСТАТОК]=Стр[ИмяОрганизацииБезЛишнихСимволов];
		Стр[ИмяКолонкиИТОГ]= 0;;
		Для Колонка=0 по ТЗрек.Колонки.Количество()-1 цикл
			Если СтрНайти(ТЗрек.Колонки[Колонка].Имя,"СКЛАД_")<>0 тогда
	        	Стр[ИмяКолонкиИТОГ]=Стр[ИмяКолонкиИТОГ]+Стр[Колонка];
				Стр[ИмяКолонкиОСТАТОК]=Стр[ИмяКолонкиОСТАТОК]-Стр[Колонка];
			КонецЕсли;	
		КонецЦикла;
	КонецЦикла;

ЗначениеВРеквизитФормы(ТЗрек, "ТЗ");

Показать


Заполняю колонки итоговых показателей расчет идет построчно, PS я хочу чтобы у меня фокус ввода текста перескакивал на ячейку ниже.
14. user1461477 25.11.21 12:14 Сейчас в теме
(10)
"ОСТАТОК"+ИмяОрганизацииБезЛишнихСимволов


тут я бы добавил лишний символ
как-то так
"ОСТАТОК<пробел>"+
15. tatoshka0403 112 25.11.21 12:15 Сейчас в теме
(14)у меня колонки таблицы формируются динамически исходя из выборки запроса
17. user1461477 25.11.21 12:20 Сейчас в теме
(15) да не вопрос
Прикрепленные файлы:
18. Sashares 34 25.11.21 12:36 Сейчас в теме
(10) В чем проблема хранить список колонок со складами в отдельном массиве?
Даже в этой процедуре можно получить его.
А потом заполняь данные сразу в таблице ТЗ.

ИмяОрганизацииБезЛишнихСимволов=УдалитьЛишниеСимволыИзНаимен­ования(Объект.Организация);
    ИмяКолонкиОСТАТОК="ОСТАТОК"+ИмяОрганизацииБезЛишнихСимволов;
    ИмяКолонкиИТОГ="ИТОГ"+ИмяОрганизацииБезЛишнихСимволов;
    ТЗрек=РеквизитФормыВЗначение("ТЗ");
	
	МассивКолонокСоСкладами = Новый Массив;
	
	Для Каждого ТекКолонка Из ТЗрек.Колонки цикл
		Если СтрНайти(ТекКолонка.Имя,"СКЛАД_")<>0 тогда
			МассивКолонокСоСкладами.Добавить(ТекКолонка.Имя);
		КонецЕсли;    
	КонецЦикла;
	
    //Обход строк
    Для каждого Стр из ТЗ цикл
        //Обход колонок
        //количество из заказов - заказано
        Стр[ИмяКолонкиОСТАТОК]=Стр[ИмяОрганизацииБезЛишнихСимволов];
        Стр[ИмяКолонкиИТОГ]= 0;;
        Для Каждого ТекКолонкаСклада Из МассивКолонокСоСкладами цикл
            Стр[ИмяКолонкиИТОГ]=Стр[ИмяКолонкиИТОГ]+Стр[ТекКолонкаСклада];
            Стр[ИмяКолонкиОСТАТОК]=Стр[ИмяКолонкиОСТАТОК]-Стр[ТекКолонкаСклада];  
        КонецЦикла;
    КонецЦикла;

Показать
tatoshka0403; +1 Ответить
19. tatoshka0403 112 25.11.21 14:42 Сейчас в теме
(18)
(18)
ИмяОрганизацииБезЛишнихСимволов=УдалитьЛишниеСимволыИзНаимен­ования(Объект.Организация);
ИмяКолонкиОСТАТОК="ОСТАТОК"+ИмяОрганизацииБезЛишнихСимволов;
ИмяКолонкиИТОГ="ИТОГ"+ИмяОрганизацииБезЛишнихСимволов;
ТЗрек=РеквизитФормыВЗначение("ТЗ");

МассивКолонокСоСкладами = Новый Массив;

Для Каждого ТекКолонка Из ТЗрек.Колонки цикл
Если СтрНайти(ТекКолонка.Имя,"СКЛАД_")<>0 тогда
МассивКолонокСоСкладами.Добавить(ТекКолонка.Имя);
КонецЕсли;
КонецЦикла;

//Обход строк
Для каждого Стр из ТЗ цикл
//Обход колонок
//количество из заказов - заказано
Стр[ИмяКолонкиОСТАТОК]=Стр[ИмяОрганизацииБезЛишнихСимволов];
Стр[ИмяКолонкиИТОГ]= 0;;
Для Каждого ТекКолонкаСклада Из МассивКолонокСоСкладами цикл
Стр[ИмяКолонкиИТОГ]=Стр[ИмяКолонкиИТОГ]+Стр[ТекКолонкаСклада];
Стр[ИмяКолонкиОСТАТОК]=Стр[ИмяКолонкиОСТАТОК]-Стр[ТекКолонкаСклада];
КонецЦикла;
КонецЦикла;
Показать


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

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот