Имя: Пароль:
1C
1С v8
Программирование. Передача значений из формы.
,
0 kachesov
 
25.10.16
18:48
Добрый вечер!

Имеется ВПФ с формой.
В форме подтягивается табличная часть документа "реализация" и имеется возможность дописать литраж и плотность.
Далее мне надо эти данные записать (в модуле формы), и прочитать в модуле объекта.

Варианта было два:

    Для каждого ТекСтрока из Объект.Товары Цикл
        СтрокаДок = Объект.СсылкаНаОбъект.Товары[ТекСтрока.НомерСтроки-1];
        Если СтрокаДок = Неопределено Тогда
        ИначеЕсли ТекСтрока.Плотность = 0 Тогда
            ТекСтрока.Литраж = 0;
        Иначе
            ТекСтрока.Литраж = СтрокаДок.Количество/ТекСтрока.Плотность*1000;
        КонецЕсли;
    КонецЦикла;

Записать в табличную часть обработочки (с записью всё нормально), и считывать из модуля объекта:

        ТекСтрока = Товары[СтрокаДокумента.НомерСтроки-1];
        Если ТекСтрока = Неопределено Тогда
            СтрокаДокумента.Плотность = 0;
            СтрокаДокумента.Литраж = 0;
        Иначе
            СтрокаДокумента.Плотность = ТекСтрока.Литраж;
            СтрокаДокумента.Литраж = ТекСтрока.Плотность;
        КонецЕсли;
        
        Если НЕ ЗначениеЗаполнено(СтрокаДокумента.СтавкаНДС) Тогда
            ОбластьМакета.Параметры.СтавкаНДС = "--";
            Если СтрокаДокумента.СуммаНДС = 0 Тогда
                ОбластьМакета.Параметры.СуммаНДС = "--";
            КонецЕсли;
        КонецЕсли;

Но считать не удается. Товары[0] - индекс выходит за границы.
Я сделал вывод, что не могу из модуля объекта обращаться к табличной части. Или она не записывается.


Далее моя вторая попытка.
Я создал реквизит "Переменная" и решил туда ввести все значения.
Хотел использовать массив
    Объект.Переменная = Новый Массив;
но нельзя использовать массивы в модуле формы..

Подскажите пожалуйста, как можно в переменную засунуть множество значений?
1 iceman2112
 
25.10.16
18:51
РеквизитФормыВЗначение()
2 Господин ПЖ
 
25.10.16
18:51
>но нельзя использовать массивы в модуле формы..

каждый день новые открытия
3 iceman2112
 
25.10.16
18:53
(2) А это как вам?

"Я СДЕЛАЛ ВЫВОД, что не могу из модуля объекта обращаться к табличной части. Или она не записывается."
4 kachesov
 
25.10.16
19:05
(2) {ВнешняяОбработка.УПД_литры.Форма.Форма.Форма(75)}: Ошибка при установке значения атрибута контекста (Переменная)
    Объект.Переменная = Новый Массив;
по причине:
Тип "Массив" не может использоваться в данных формы
5 kachesov
 
25.10.16
19:08
(1) а можно чуть подробнее? прочитал описание, но не понял как использовать..
6 iceman2112
 
25.10.16
19:11
гугл расскажет подробнее
7 kachesov
 
25.10.16
19:14
(3) а это не так? я просто где-то косячу?
8 kachesov
 
25.10.16
19:53
1) В модуле формы:

    Объект.Переменная = 10;

В модуле объекта:

    ОбластьМакета.Параметры.Плотность = ДопПараметры.Переменная;

Всё работает..

2) В модуле формы:

    Переменная = Новый Массив;
    Переменная[0] = 10;
    Объект.Переменная = Переменная;

В модуле объекта:

    ОбластьМакета.Параметры.Плотность = ДопПараметры.Переменная[0];

Ошибка:
{ВнешняяОбработка.УПД_литры.МодульОбъекта(622)}: Получение элемента по индексу для значения не определено
        ОбластьМакета.Параметры.Плотность = ДопПараметры.Переменная[0];

Но это же массив(
9 experimentator76
 
25.10.16
20:47
скока платют ?
10 Мимохожий Однако
 
25.10.16
20:55
(0)"мне надо эти данные записать (в модуле формы)"- это с какого бодуна?
11 kachesov
 
26.10.16
11:19
(10) как-то же надо их в макет вставить. вводятся они в модуле формы
12 Господин ПЖ
 
26.10.16
11:22
(4) модуль формы и данные формы - это 4 разных человека

купи радченко и не дрочи мозг людям
13 Господин ПЖ
 
26.10.16
11:25
(3) теплород примерно так же открывали
14 kachesov
 
26.10.16
11:41
И всё-таки хотелось бы записать как-то в модуле формы несколько значений в переменную и считать их из модуля объекта.. Не подскажете как?
С одним значением всё выходит, а вот с несколькими беда..
15 DDwe
 
26.10.16
11:43
(14) Ничего нет невозможного для человека с интеллектом.
16 kachesov
 
26.10.16
11:48
(15) хорошо сказал! жаль не по делу..
17 DDwe
 
26.10.16
11:51
(16) Как раз по делу, советов уже надавали, включай мозг и вперед.
18 kachesov
 
26.10.16
13:41
(17) Советов надавали? Только один (1). Остальное стёб, троллинг и восхищение моими "знаниями"..
19 Cyberhawk
 
26.10.16
13:43
С учетом (5) что еще можно сказать?