8.х Перебор строк табличного поля

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

  1. TopicStarter Overlay
    Amber
    Offline

    Amber Опытный в 1С

    Регистрация:
    16 ноя 2007
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    У меня в форму элемента справочника карты вставлено ТабличноеПоле1 с типом значения- РегистрСведенийСписок.Карты. В табличном поле установлен отбор по Контраагенту. при отрытии формы в табличном поле появляются соответствующие строки. Как организовать перебор строк? Мне нужно обработать каждую строку..
    Метод "Для Каждого ТекСтрока из ТабличноеПоле1 Цикл"не помогает так как выдается ошибка-
    Заранее спасибо!
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Проще всего обратиться к источнику данных ТП
  3. TopicStarter Overlay
    Amber
    Offline

    Amber Опытный в 1С

    Регистрация:
    16 ноя 2007
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    Сообственно так уже и сделал:
    Код:
    Контрагент=Справочники.Клиенты.НайтиПоНаименованию(Наименование);
    Запрос= Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    |	Карты.НомерКарты как Номеркарты,
    |	Карты.Контрагент Как Контрагент
    |ИЗ
    |	РегистрСведений.Карты КАК Карты
    |ГДЕ
    |	Карты.Контрагент = &Контрагент";
    Запрос.УстановитьПараметр("Контрагент", Контрагент);
    Выборка = Запрос.Выполнить().Выбрать();
    <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/пока')">Пока Выборка.Следующий() Цикл;</span>
    обСправ=Справочники.Карты.НайтиПоНаименованию(Выборка.Номеркарты);
    ОбСправ.Контагент=Выборка.Контрагент;
    обСправ.Записать();
    КонецЦикла; 
    
    
    И вот тут ошибка-
    .
    Поле "контагент"справочника Клиенты имеет тип "Строка". В чем может быть проблема?...
    Причем код
    Код:
    Выборка1 = Запрос.Выполнить().Выбрать();
    Выборка1.Следующий();
    обСправ.Контагент= Выборка1.Контрагент;
    обСправ.Записать();
    
    
    Прекрасно работал..
  4. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    возможно тебы одно из полей строка, а другое справочникссылка.Контрагенты, но тогда ругался бы иначе

    Кстати КОНТАГЕНТ или КОНТРАГЕНТ?

    И еще проверь обСправ=Справочники.Карты.НайтиПоНаименованию(Выборка.Номеркарты); Скорее всего не находит такого...
  5. TopicStarter Overlay
    Amber
    Offline

    Amber Опытный в 1С

    Регистрация:
    16 ноя 2007
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    Ошибку нашел.
    отсутствовала строка
    Код:
    обСправ=Справочники.Карты.НайтиПоНаименованию(СокрЛП(Выборка.Номеркарты)).ПолучитьОбъект();
    
    
    Всем спасибо!

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