Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
18 апр 2024, 23:37

Взять значение из колонки по её названию

Автор Grumax, 28 апр 2010, 13:51

0 Пользователей и 1 гость просматривают эту тему.

Grumax

Есть табличная часть, подразумевается что столбцу "А" соответствует столбец "сА"(формула) и "бА"(булево). Идея такая в столбце "А" храниться значение, в столбце "сА" формула, по которой это значение вычисляется, в столбце "бА" маячок, чтобы при сылке на данную ячейку, не пересчитывать формулу повторно...

Пока делаю инетрфейс, смысл как в Excel'е, перемещаясь по ячейкам видеть строку формулы.
Процедура ТабНормКартаПриАктивизацииЯчейки(Элемент)
      // Создаю переменные
      Перем сИмя, Строка, НайденнаяСтрока, ТекущийСтолбецФормулы ;
      // Создаю таблицу значений соответствия одной колонки другой
      табСоответствие = Новый ТаблицаЗначений ;
      табСоответствие.Колонки.Добавить("Мама", ОписаниеТиповС, "Мама") ;
      табСоответствие.Колонки.Добавить("Доча", ОписаниеТиповС, "Доча") ;
      // Заполняю таблицу данными
      Строка = табСоответствие.Добавить() ;
      Строка.Мама = "А" ;
      Строка.Доча = "сА" ;
      Строка = табСоответствие.Добавить() ;
      Строка.Мама = "Б" ;
      Строка.Доча = "сБ" ;
      Строка = табСоответствие.Добавить() ;
      Строка.Мама = "Г" ;
      Строка.Доча = "сГ" ;
      Строка = табСоответствие.Добавить() ;
      Строка.Мама = "Д" ;
      Строка.Доча = "сД" ;
      Строка = табСоответствие.Добавить() ;
      Строка.Мама = "Е" ;
      Строка.Доча = "сЕ" ;
      Строка = табСоответствие.Добавить() ;
      Строка.Мама = "Ж" ;
      Строка.Доча = "сЖ" ;
      Строка = табСоответствие.Добавить() ;
      Строка.Мама = "З" ;
      Строка.Доча = "сЗ" ;
      Строка = табСоответствие.Добавить() ;
      Строка.Мама = "И" ;
      Строка.Доча = "сИ" ;
      Строка = табСоответствие.Добавить() ;
      Строка.Мама = "К" ;
      Строка.Доча = "сК" ;
      Строка = табСоответствие.Добавить() ;
      Строка.Мама = "Л" ;
      Строка.Доча = "сЛ" ;
      // Запоминаем имя текущего столбца
      сИмя = ЭтаФорма.ЭлементыФормы.ТабНормКарта.ТекущаяКолонка.Имя ;
      // Ищем имя текущего столбца в нашей таблице
      НайденнаяСтрока = табСоответствие.Найти(сИмя, "Мама") ;
      Если НайденнаяСтрока = Неопределено Тогда
            Предупреждение("Столбец не найден!") ;     
      Иначе
            // Нашли название столбца в котором храниться формула для текущего
            ТекущийСтолбецФормулы = НайденаяСтрока.Доча ;
            // Выводим значение из найденого столбца в Поле Редактирования
            // ТУТ ЗАТЫК!!!!!
      КонецЕсли ;
     
КонецПроцедуры

Вроде как название столбца определил, на строке стою, как вывести значение в "Поле ввода" ума не хватает. Спасибо!

Slin

Просто присваиваешь значение полю....
Или свойству Значение

Grumax


Slin

Примерно так:
Процедура ТоварыПриАктивизацииЯчейки(Элемент)

Строка = ЭлементыФормы.Товары.ТекущаяСтрока;
Колонка = ЭлементыФормы.Товары.ТекущаяКолонка;
Если Колонка.Имя = "Номенклатура" Тогда
Строка[Колонка.Имя] = Справочники.Номенклатура.ПустаяСсылка();
КонецЕсли;

КонецПроцедуры

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск