Доброго времени суток! Несколько дней не было интернета. За это время я решил проблему, способом описанным ниже. А пока отвечу на предыдущий пост.
Код
ЭлементыФормы.<ТабличноеПоле>.Значение
Содержит ссылку на Таблицу значений которая указана в
Код
ЭлементыФормы.<ТабличноеПоле>.Данные
В моем случае это:
СправочникТабличнаяЧасть.<МойСправочник>.<ТабличнаяЧастьСправочника>
И опять меня это не приблизило к желаемой ситуации:
Цитата
при активации любой ячейки в первом Табличном поле происходит выделение строки во втором Табличном поле, имеющей индекс равный индексу текущей строки в первом Табличном поле.
Заострю внимание на паре моментов:
- МояТаблицаЗначений - это Табличная часть справочника. Часть ее колонок выводится в верхнюю таблицу, а часть в нижнюю, поэтому я использую СправочникОбъект.МояТаблицаЗначений в обоих событиях и для нижнего и для верхнего Табличного поля. Однако возможно использование различных Табличных частей справочника, но в этом случае необходимо контролировать количество строк в обоих таблицах - они должны быть равны.
- Колонка "НомерСтроки" создается автоматически имеет имя "НомерСтроки" и синоним "N".
А решил я это следующим способом (без получения индекса строки):
Код
// Выделение строки по индексу.
Процедура табВерхняяПриАктивизацииСтроки(Элемент)
ТаблицаНижняя = ЭлементыФормы.табНижняя;
ТаблицаВерхняя = ЭлементыФормы.табВерхняя;
// Выделяем всегда по одной строке, а значит среди выделенных она под индексом ноль
ТекСтрока = ТаблицаВерхняя.ВыделенныеСтроки[0];
// В другом Табличном поле очистили выделение
ТаблицаНижняя.ВыделенныеСтроки.Очистить();
ТаблицаНижняя.ВыделенныеСтроки.Добавить(СправочникОбъект.МояТаблицаЗначений[Число(ТекСтрока["НомерСтроки"]) - 1]);
ТаблицаНижняя.ТекущаяСтрока = ТаблицаВерхняя.ВыделенныеСтроки[0];
КонецПроцедуры
Процедура табНижняяПриАктивизацииСтроки(Элемент)
ТаблицаНижняя = ЭлементыФормы.табНижняя;
ТаблицаВерхняя = ЭлементыФормы.табВерхняя;
// Выделяем всегда по одной строке, а значит среди выделенных она под индексом ноль
ТекСтрока = ТаблицаНижняя.ВыделенныеСтроки[0];
// В другом Табличном поле очистили выделение
ТаблицаВерхняя.ВыделенныеСтроки.Очистить();
ТаблицаВерхняя.ВыделенныеСтроки.Добавить(СправочникОбъект.МояТаблицаЗначений[Число(ТекСтрока["НомерСтроки"]) - 1]);
ТаблицаВерхняя.ТекущаяСтрока = ТаблицаНижняя.ВыделенныеСтроки[0];
КонецПроцедуры
Если что не понятно, спрашивайте.
P.S. К администраторам: может сделать менее размашистый шрифт во вставке кода, например
уменьшением меж символьного растояния, иначе текст сложно воспринимается.