8.х Ввод строки табличной части после удаления всех

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Катюфка, 9 дек 2014.

  1. TopicStarter Overlay
    Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    412
    Симпатии:
    72
    Баллы:
    54
    Здравствуйте.
    Ломаю голову над такой ситуацией:
    Есть табличная часть управляемой формы, назовем ее ТЧ.
    Я ввожу значение и в процедуре ЗначениеПриИзменении(Элемент) добавляю новую строку:
    НоваяСтрока = Объект.ТЧ.Добавить();
    НоваяСтрока.НомерУчастника = Объект.Значение;
    Элементы.ТЧ.ТекущаяСтрока = Объект.ТЧ.Количество() - 1;
    ЗаполнитьДанные();
    ...

    Если я открываю новый документ и начинаю вводить значения, то процедура ЗаполнитьДанные() отрабатывает корректно. Там идет обращение к текущей строке ТЧ.
    Если же я сначала удаляю все строки ТЧ и начинаю вводить их заново, то появляется ошибка. В отладчике видно, что значение текущей строки становится Неопределено. Почему так происходит? В отладчике количество строк после добавления становится 1, но это значение не присваивается.
  2. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.175
    Симпатии:
    13
    Баллы:
    29
    попробуй так
    Если Объект.ТЧ.Количество()>0 Тогда
    Элементы.ТЧ.ТекущаяСтрока = Объект.ТЧ[Объект.ТЧ.Количество() - 1];
    ЗаполнитьДанные();
    КонецЕсли;
  3. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    Элементы.ТЧ.ТекущаяСтрока = Объект.ТЧ.Количество() - 1; - присвоение какое-то странное - слева строка табполя, справа число...
  4. TopicStarter Overlay
    Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    412
    Симпатии:
    72
    Баллы:
    54
    Предложенный вариант с индексом также возвращает Неопределено.
    А как еще можно спозиционировать фокус на нужной строке? Мне так советовали сделать ранее, и оно работало, пока мне не понадобилось очищать таблицу.
  5. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    попробуйте строку не в ТЧ объекта доавлять, а в ТЧ на форме... возможно в УФ данные не сразу на форму уходят (не знаю как правильно мысль выразить)
  6. TopicStarter Overlay
    Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    412
    Симпатии:
    72
    Баллы:
    54
    А как это сделать? После 7.7 я с трудом понимаю логику работы восьмерки.
  7. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.949
    Симпатии:
    149
    Баллы:
    104
    Совсем недавно в какой-то теме обсуждались индексы строк и идентификаторы строк.
    Это слегка разные вещи )
    Свойство таблицы "ТекущаяСтрока" возвращает как раз-таки идентификатор строки. Поэтому Вам нужно присвоить этому свойству идентификатор созданной новой строки, получив его соответствующим методом.
    Код:
    Элементы.ТЧ.ТекущаяСтрока = НоваяСтрока.ПолучитьИдентификатор();
    Катюфка и Ланс 96 нравится это.
  8. TopicStarter Overlay
    Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    412
    Симпатии:
    72
    Баллы:
    54
    Большое спасибо. Все замечательно работает. )

Поделиться этой страницей