8.х Обработки заполнения табличных частей

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Алексей777, 3 июн 2009.

  1. TopicStarter Overlay
    Алексей777
    Offline

    Алексей777

    Регистрация:
    6 июн 2008
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте !
    В модуле внешней обработки к табличной части следующий код:
    //
    Код:
    Процедура Инициализировать(Объект,Материалы,ТабличноеПолеОбъекта) Экспорт 
    
    ФормаНастройка = ПолучитьФорму("Форма");
    Если ФормаНастройка.ОткрытьМодально() = Истина Тогда
    Сформировать();
    КонецЕсли;
    
    
    КонецПроцедуры
    
    //
    Процедура Сформировать() Экспорт;
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |ТоварыВРезервеНаСкладахОстатки.Склад КАК Склад,
    |ТоварыВРезервеНаСкладахОстатки.Номенклатура КАК Номенклатура,
    |ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры КАК Характеристкика,
    |ТоварыВРезервеНаСкладахОстатки.ДокументРезерва КАК ДокументРез,
    |ТоварыВРезервеНаСкладахОстатки.СерияНоменклатуры КАК Серия,
    |ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК Остаток
    |ИЗ
    |РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Дата, ) КАК ТоварыВРезервеНаСкладахОстатки
    |ГДЕ
    |ТоварыВРезервеНаСкладахОстатки.ДокументРезерва = &Документ";
    
    Запрос.УстановитьПараметр("Документ", Документ);
    Запрос.УстановитьПараметр("Дата",Объект.Дата);
    
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() цикл
    СтрокаТЧ = Объект.Материалы.Добавить();
    СтрокаТЧ.Номенклатура = Выборка.Номенклатура;
    
    СтрокаТЧ.ХарактеристикаНоменклатуры = Выборка.Характеристкика;
    СтрокаТЧ.СерияНоменклатуры = Выборка.Серия;
    СтрокаТЧ.Заказ = Выборка.ДокументРез;
    СтрокаТЧ.ЗаказРезерв = Выборка.ДокументРез;
    СтрокаТЧ.Склад = Выборка.Склад;
    СтрокаТЧ.Качество    = Справочники.Качество.Новый;
    СтрокаТЧ.СтатьяЗатрат    = Справочники.СтатьиЗатрат.НайтиПоНаименованию("Материалы");
    СтрокаТЧ.Количество = Выборка.Остаток;
    
    КонецЦикла; 
    
    КонецПроцедуры
    
    
    При выполнении возникает ошибка: Значение не является значением объектного типа (Дата).
    PLZ скиньте ссылку на пример обработки
    Подскажите, что не так.

    Заранее благодарю.
  2. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    В процедуре "Сформировать" система не знает переменной Объект. Она есть только в процедуре "Инициализировать". Т.е. ее нужно туда передать.

    Примеры обработок ищите на форме. Недавно спрашивали о заполнении документа "Установка цен номенклатуры"
  3. TopicStarter Overlay
    Алексей777
    Offline

    Алексей777

    Регистрация:
    6 июн 2008
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Огромное СПАСИБО, друг, в этом и была ошибка, Спасибо !!!!
  4. TopicStarter Overlay
    Алексей777
    Offline

    Алексей777

    Регистрация:
    6 июн 2008
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Вроде как работает, Но, заполнение табличной части появляется после того, как закрываем обработку.
    При этом в том только случае, когда Сформировать (Объект) находиться в процедуре Инициализировать.

    Непонятно ...
  5. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Я вообще не понимаю зачем эта форма у тебя открывается. Тебе надо просто написать обработку заполнения и повесить ее как внешнюю.
  6. TopicStarter Overlay
    Алексей777
    Offline

    Алексей777

    Регистрация:
    6 июн 2008
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    В форме Выбираю документ, который является параметром для запроса
  7. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Я бы делал так:
    В процедуре Инициализировать
    1. открываем форму для выбора документа
    2. по кнопке ОК в этой форме возвращаемся в процедуру и начинаем заполнение.

    Просто наверное обновление формы идет при завершении процедуры
  8. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    используйте обработку для проверки в конфигураторе))

    Вложения:

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