Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Программирование. Передача значений из формы.

Программирование. Передача значений из формы.
Я
   kachesov
 
25.10.16 - 18:48
Добрый вечер!

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует