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

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

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

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

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

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

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

Показать


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


тут я бы добавил лишний символ
как-то так
"ОСТАТОК<пробел>"+
15. tatoshka0403 108 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 108 25.11.21 14:42 Сейчас в теме
(18)
(18)
ИмяОрганизацииБезЛишнихСимволов=УдалитьЛишниеСимволыИзНаимен­ования(Объект.Организация);
ИмяКолонкиОСТАТОК="ОСТАТОК"+ИмяОрганизацииБезЛишнихСимволов;
ИмяКолонкиИТОГ="ИТОГ"+ИмяОрганизацииБезЛишнихСимволов;
ТЗрек=РеквизитФормыВЗначение("ТЗ");

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

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

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


Я хочу реализовать переход на след строку при вводе значения в ячейку и вот уперся в переходы по форме
Оставьте свое сообщение
Вакансии
1С-Программист (интегратор Битрикс24)
Санкт-Петербург
зарплата от 150 000 руб. до 250 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 100 000 руб.
Временный (на проект)

Разработчик 1С
Москва
зарплата от 150 000 руб.
Полный день

Программист
Санкт-Петербург
зарплата от 180 000 руб. до 240 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 150 000 руб. до 250 000 руб.
Полный день