8.х Заполнение данных в табличное поле

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

  1. TopicStarter Overlay
    UrAn24
    Offline

    UrAn24

    Регистрация:
    15 фев 2009
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Пытаюсь вывести данные из регистра накоплений на Табличное Поле, при открытии формы. Только это у меня не получается. Если добавить кнопку и назначить ей событие то тот же самый код срабатывает.
    Код:
    Процедура ПриОткрытии()
    Запрос = Новый Запрос("ВЫБРАТЬ
    |	ОстаткиТоваровОстатки.Товар КАК Товар,
    |	ОстаткиТоваровОстатки.КоличествоОстаток
    |ИЗ
    |	РегистрНакопления.ОстаткиТоваров.Остатки КАК ОстаткиТоваровОстатки
    |ГДЕ
    |	ОстаткиТоваровОстатки.КоличествоОстаток > 0");
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    Пока Выборка.Следующий() Цикл
    ЭлементыФормы.ТаблицаПодбора.ДобавитьСтроку();
    Строка = ЭлементыФормы.ТаблицаПодбора.ТекущаяСтрока;
    Строка.Товар = Выборка.Товар; 
    [color=#FF0000]Ошибка: Значение не является значением объектного типа (Товар)
    Строка.Количество = Выборка.КоличествоОстаток;
    КонецЦикла
    
    КонецПроцедуры
    
  2. lazy
    Offline

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

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Вот тут косяк:
    Код:
    Строка = ЭлементыФормы.ТаблицаПодбора.ТекущаяСтрока;
    
    Потому, что в момент, когда вызывается ПриОткрытии() у табличного поля не определена текущая строка. А когда тот же код вызывается кнопкой из уже открытой формы, то естественно работает, т.к. последняя добавленная строка выбрана...
  3. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    хм.... есть же метод результата запроса "выгрузить"...
  4. TopicStarter Overlay
    UrAn24
    Offline

    UrAn24

    Регистрация:
    15 фев 2009
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Я новичок, по-этому не знал как оптимально выгрузить из регистра накоплений данные в таблицу значений. Спасибо!

    Как же вставлять тогда данные в первую строку при открытии?
  5. Ugrumi
    Offline

    Ugrumi Опытный в 1С

    Регистрация:
    8 окт 2007
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    Нужно только название таблчных полей совпадало с колонками таблицы из запроса и совпадали типы и все будет хорошо.
  6. TopicStarter Overlay
    UrAn24
    Offline

    UrAn24

    Регистрация:
    15 фев 2009
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Все совпадает, но в процедуре при окрытии не работает. Кстати, при передачи данных в поцедуру другой формы тоже не работает. "Таже ошибка Значение не является значением объектного типа (Товар)", хотя форма уже открыта.
  7. Ugrumi
    Offline

    Ugrumi Опытный в 1С

    Регистрация:
    8 окт 2007
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    У тебя скорее всего тип товара в табличном поле справосникобъект.Номенклатура, а нужно справочникссылка.номенклатура.
  8. Ugrumi
    Offline

    Ugrumi Опытный в 1С

    Регистрация:
    8 окт 2007
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    я ошибся попробуй тип табличных полей строка. У меня вроде сразу заработало.
  9. TopicStarter Overlay
    UrAn24
    Offline

    UrAn24

    Регистрация:
    15 фев 2009
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Тип Табличного Поля должен быть - справочникссылка.номенклатура т.к при выделении информация должна передаваться в основную форму и при желании изменяться.
    Решил свою проблему спомощю дерева значений.

    Только теперь не заполняется табличная часть в основной форме:

    Код:
    Процедура ОбработкаПодбораПродажиТовара(Товар, Количество) Экспорт
    СтрокаТабличнойЧасти = ПереченьТоваров.Добавить();
    СтрокаТабличнойЧасти.Товар = Товар;
    СтрокаТабличнойЧасти.Количество = Количество;
    
    
    
    
    Строка не добавляется

    Разобрался Сам. При передаче просто инициализировал основную форму. А надо передавать в уже существующую(открытую)

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