Всем доброго дня.
На форме есть ТаблицаЗначений, после редактирования данных в ячейке использую методы РеквизитФормыВЗначение и ЗначениеВРеквизитФормы, после чего у меня слетает активная ячейка. Вопрос как ее вернуть активность.
После выполнения ЗначениеВРеквизитФормы в Элементы.ТЗ.ТекущиеДанные=Неопределенно.
На форме есть ТаблицаЗначений, после редактирования данных в ячейке использую методы РеквизитФормыВЗначение и ЗначениеВРеквизитФормы, после чего у меня слетает активная ячейка. Вопрос как ее вернуть активность.
После выполнения ЗначениеВРеквизитФормы в Элементы.ТЗ.ТекущиеДанные=Неопределенно.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Ключ - это набор полей однозначно определяющих строку
например в ТЧ это может быть НомерСтроки,
в любой другой ТЗ смотрите на уникальность данных в разрезе колонок
например, условие уникальность по Номенклатуре, тогда поиск по полю Номенклатура
иногда используется Номенклатура + Характеристика, тогда поиск по эти двум полям
и т.д.
ну и по логике обработке,
Пользователь ввел все данные по строке, после этого вы все обновили, А зачем ему оставаться на этой-же строке?
ну или еще как вариант, меняйте данные только этой строки, без загрузки значений всей ТЗ
например в ТЧ это может быть НомерСтроки,
в любой другой ТЗ смотрите на уникальность данных в разрезе колонок
например, условие уникальность по Номенклатуре, тогда поиск по полю Номенклатура
иногда используется Номенклатура + Характеристика, тогда поиск по эти двум полям
и т.д.
ну и по логике обработке,
Пользователь ввел все данные по строке, после этого вы все обновили, А зачем ему оставаться на этой-же строке?
ну или еще как вариант, меняйте данные только этой строки, без загрузки значений всей ТЗ
ИмяОрганизацииБезЛишнихСимволов=УдалитьЛишниеСимволыИзНаименования(Объект.Организация);
ИмяКолонкиОСТАТОК="ОСТАТОК"+ИмяОрганизацииБезЛишнихСимволов;
ИмяКолонкиИТОГ="ИТОГ"+ИмяОрганизацииБезЛишнихСимволов;
ТЗрек=РеквизитФормыВЗначение("ТЗ");
//Обход строк
Для каждого Стр из ТЗрек цикл
//Обход колонок
//количество из заказов - заказано
Стр[ИмяКолонкиОСТАТОК]=Стр[ИмяОрганизацииБезЛишнихСимволов];
Стр[ИмяКолонкиИТОГ]= 0;;
Для Колонка=0 по ТЗрек.Колонки.Количество()-1 цикл
Если СтрНайти(ТЗрек.Колонки[Колонка].Имя,"СКЛАД_")<>0 тогда
Стр[ИмяКолонкиИТОГ]=Стр[ИмяКолонкиИТОГ]+Стр[Колонка];
Стр[ИмяКолонкиОСТАТОК]=Стр[ИмяКолонкиОСТАТОК]-Стр[Колонка];
КонецЕсли;
КонецЦикла;
КонецЦикла;
ЗначениеВРеквизитФормы(ТЗрек, "ТЗ");
ПоказатьЗаполняю колонки итоговых показателей расчет идет построчно, PS я хочу чтобы у меня фокус ввода текста перескакивал на ячейку ниже.
(10) В чем проблема хранить список колонок со складами в отдельном массиве?
Даже в этой процедуре можно получить его.
А потом заполняь данные сразу в таблице ТЗ.
Даже в этой процедуре можно получить его.
А потом заполняь данные сразу в таблице ТЗ.
ИмяОрганизацииБезЛишнихСимволов=УдалитьЛишниеСимволыИзНаименования(Объект.Организация);
ИмяКолонкиОСТАТОК="ОСТАТОК"+ИмяОрганизацииБезЛишнихСимволов;
ИмяКолонкиИТОГ="ИТОГ"+ИмяОрганизацииБезЛишнихСимволов;
ТЗрек=РеквизитФормыВЗначение("ТЗ");
МассивКолонокСоСкладами = Новый Массив;
Для Каждого ТекКолонка Из ТЗрек.Колонки цикл
Если СтрНайти(ТекКолонка.Имя,"СКЛАД_")<>0 тогда
МассивКолонокСоСкладами.Добавить(ТекКолонка.Имя);
КонецЕсли;
КонецЦикла;
//Обход строк
Для каждого Стр из ТЗ цикл
//Обход колонок
//количество из заказов - заказано
Стр[ИмяКолонкиОСТАТОК]=Стр[ИмяОрганизацииБезЛишнихСимволов];
Стр[ИмяКолонкиИТОГ]= 0;;
Для Каждого ТекКолонкаСклада Из МассивКолонокСоСкладами цикл
Стр[ИмяКолонкиИТОГ]=Стр[ИмяКолонкиИТОГ]+Стр[ТекКолонкаСклада];
Стр[ИмяКолонкиОСТАТОК]=Стр[ИмяКолонкиОСТАТОК]-Стр[ТекКолонкаСклада];
КонецЦикла;
КонецЦикла;
Показать
(18)
(18)
Я хочу реализовать переход на след строку при вводе значения в ячейку и вот уперся в переходы по форме
(18)
ИмяОрганизацииБезЛишнихСимволов=УдалитьЛишниеСимволыИзНаименования(Объект.Организация);
ИмяКолонкиОСТАТОК="ОСТАТОК"+ИмяОрганизацииБезЛишнихСимволов;
ИмяКолонкиИТОГ="ИТОГ"+ИмяОрганизацииБезЛишнихСимволов;
ТЗрек=РеквизитФормыВЗначение("ТЗ");
МассивКолонокСоСкладами = Новый Массив;
Для Каждого ТекКолонка Из ТЗрек.Колонки цикл
Если СтрНайти(ТекКолонка.Имя,"СКЛАД_")<>0 тогда
МассивКолонокСоСкладами.Добавить(ТекКолонка.Имя);
КонецЕсли;
КонецЦикла;
//Обход строк
Для каждого Стр из ТЗ цикл
//Обход колонок
//количество из заказов - заказано
Стр[ИмяКолонкиОСТАТОК]=Стр[ИмяОрганизацииБезЛишнихСимволов];
Стр[ИмяКолонкиИТОГ]= 0;;
Для Каждого ТекКолонкаСклада Из МассивКолонокСоСкладами цикл
Стр[ИмяКолонкиИТОГ]=Стр[ИмяКолонкиИТОГ]+Стр[ТекКолонкаСклада];
Стр[ИмяКолонкиОСТАТОК]=Стр[ИмяКолонкиОСТАТОК]-Стр[ТекКолонкаСклада];
КонецЦикла;
КонецЦикла;
ПоказатьИмяКолонкиОСТАТОК="ОСТАТОК"+ИмяОрганизацииБезЛишнихСимволов;
ИмяКолонкиИТОГ="ИТОГ"+ИмяОрганизацииБезЛишнихСимволов;
ТЗрек=РеквизитФормыВЗначение("ТЗ");
МассивКолонокСоСкладами = Новый Массив;
Для Каждого ТекКолонка Из ТЗрек.Колонки цикл
Если СтрНайти(ТекКолонка.Имя,"СКЛАД_")<>0 тогда
МассивКолонокСоСкладами.Добавить(ТекКолонка.Имя);
КонецЕсли;
КонецЦикла;
//Обход строк
Для каждого Стр из ТЗ цикл
//Обход колонок
//количество из заказов - заказано
Стр[ИмяКолонкиОСТАТОК]=Стр[ИмяОрганизацииБезЛишнихСимволов];
Стр[ИмяКолонкиИТОГ]= 0;;
Для Каждого ТекКолонкаСклада Из МассивКолонокСоСкладами цикл
Стр[ИмяКолонкиИТОГ]=Стр[ИмяКолонкиИТОГ]+Стр[ТекКолонкаСклада];
Стр[ИмяКолонкиОСТАТОК]=Стр[ИмяКолонкиОСТАТОК]-Стр[ТекКолонкаСклада];
КонецЦикла;
КонецЦикла;
Я хочу реализовать переход на след строку при вводе значения в ячейку и вот уперся в переходы по форме
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот