Имя: Пароль:
1C
1С v8
Табличная часть в УП
0 MaiorovYury
 
07.04.14
10:53
Добрый день,
задам наверное совершенно нубский вопрос, но с управляемым приложением раньше ни разу не работал.
Надо переписать обработки с ОП на УП.
При попытке обратиться к табличной части моей обработки просто по ее названию, вылетает ошибка, причем как для сервера, так и для клиента
{Форма.Форма1.Форма(303,2)}: Переменная не определена (Отгрузки)
    <<?>>Отгрузки.Очистить(); (Проверка: Сервер)
{Форма.Форма1.Форма(42,17)}: Переменная не определена (Отгрузки)
        НоваяСтрока = <<?>>Отгрузки.Добавить(); (Проверка: Тонкий клиент)

Как обращаться к табличным частям моей обработки внутри управляемой формы?
1 Wobland
 
07.04.14
10:54
внутри сервера. преобразовать реквизит формы в значение (объект)
2 MaiorovYury
 
07.04.14
10:55
Эти ошибки вылетают при попытке сохранить внешнюю обработку
1С:Предприятие 8.3 (8.3.4.437)
3 MaiorovYury
 
07.04.14
10:56
(1) то есть ЭтаФорма.ЭлементыФормы.Отгрузки
А дальше? :)
4 Wobland
 
07.04.14
10:59
ещё один считает, что данные - это то, чтоон видит

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    об=РеквизитФормыВЗначение("Объект");
5 Wobland
 
07.04.14
11:00
на тебе более информативный кусок

&НаКлиенте
Процедура ЗаполнитьСлучайно(Команда)
    Если Вопрос("Табличная часть будет очищена. Продолжить?", РежимДиалогаВопрос.ДаНет)=КодВозвратаДиалога.Да Тогда
        СлучайноЗаполнить();
    КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура СлучайноЗаполнить()
    док=РеквизитФормыВЗначение("Объект");
    СерверныйМодуль.ЗаполнитьСлучайно(док);
    ЗначениеВРеквизитФормы(док, "Объект");
КонецПроцедуры
6 vvp91
 
07.04.14
11:11
>> (1), (4), (5) преобразовать реквизит формы в значение (объект)
Так делать не надо.

>> (0) Как обращаться к табличным частям моей обработки внутри управляемой формы?
Внутри УФ есть основной реквизит формы, называется (как правило) - Объект. Если у обработки есть табчасти, то основной реквизит формы будет с типом ДанныеФормыСтруктураСКоллекцией, читай про этот тип в справке.

// Обращаться внутри УФ тривиально как на клиенте, так и на сервере:
Объект.Отгрузки.Очистить();
СтрокаОтгрузки = Объект.Отгрузки.Добавить();
СтрокаОтгрузки.ДатаОтгрузки = ТекущаяДата();

Если обращение идет на клиенте (в методах с директивой &НаКлиенте), то платформа сама обеспечивает передачу данных формы на сервер. Если обращение идет на сервере (в методах с директивой &НаСервере), то платформа обеспечивает передачу нужных измененных данных для отображения на клиенте.
7 MaiorovYury
 
07.04.14
11:15
(6) О, спасибо!
Уже думал, что беда с этими преобразованиями