Имя: Пароль:
1C
1С v8
Перенос из реквизитов формы в таб.часть.
,
0 progaoff
 
20.06.19
10:37
Добрый день, такой вопрос, нужно с дополнительно созданной формы документа, которая открывается нажатием кнопки, перенести заполненные на ней данные в реквизиты табличной части. Подскажите пожалуйста как реализовать.
1 catena
 
20.06.19
10:40
Какие формы: ОФ/УФ? В какой момент? Открыта ли вторая форма? Можно ли изменять код второй формы?
2 progaoff
 
20.06.19
13:37
(1) ОФ,да форма открыта, открывается из документа
3 progaoff
 
20.06.19
15:16
Пошел через обработку табличной части, сделал процедуру Инициализировать () экспорт, пытаюсь ее вызвать кнопкой на форме, пишет что процедура не определена
4 Nuobu
 
20.06.19
15:29
(3) Ну, показивай, что ты написал.
5 progaoff
 
20.06.19
15:32
Процедура Инициализировать(Объект, ИмяТабЧасть, СтрокаТабЧасть) Экспорт  
    ФормаВыбора = ПолучитьФорму("Форма");
    Если ФормаВыбора.ОткрытьМодально() <> Истина Тогда
        Возврат;
    КонецЕсли;
    ТабличнаяЧасть = Объект[ИмяТабЧасть];
    Для Каждого СтрокаТовары ИЗ Объект.Товары Цикл
        СтрокаТовары.ПроцентСкидкиВИнвойс = Сюда хочу загнать значение реквизита формы
    КонецЦикла;
6 progaoff
 
20.06.19
15:41
Процедура ОсновныеДействияФормыДействие(Кнопка)
        Инициализировать(Объект, ИмяТабЧасть, СтрокаТабЧасть);
КонецПроцедуры

Эт вызов
7 Euguln
 
20.06.19
15:44
Из формы надо получать данные для заполнения, а не реквизиты формы тянуть.
8 progaoff
 
20.06.19
15:45
(7) Пытаюсь сообразить как сделать(
9 RomanYS
 
20.06.19
15:48
(6) Эээ.. Вызов чего? Где расположено (5) и (6)?
Вообще Инициализировать() это для подключения внешних(!) обработок в старых конфах.
10 lxs
 
20.06.19
15:48
ЕМНИП, делается это так:

ДанныеДляЗаполнения = Форма.ОткрытьМодально();


А у формы сделать кнопку ЗакрытьФорму, где написать:

ДанныеДляЗаполнения = Новый Структура("балбла, блобло, блаблу", бла, бло, блу);
Закрыть(ДанныеДляЗаполнения);


Как-то так
11 progaoff
 
20.06.19
15:50
(9) Я и делаю ее как внешнюю обработку заполнения таб частей
12 RomanYS
 
20.06.19
15:54
(11) А что тогда в (6)? Подключай в справочник, Инициализировать будет вызвано "само"
13 Euguln
 
20.06.19
15:55
+(10)
Если нужна таблица, то во временное хранилище.
14 RomanYS
 
20.06.19
15:55
(13) ??? Зачем? Это ОФ
15 progaoff
 
20.06.19
15:59
(9) 5 - в модуле обработки 6 - на форме
16 lxs
 
20.06.19
16:00
(14) нельзя структуру передавать, точно.
17 lxs
 
20.06.19
16:01
+(16) но определённо эта тема работает
18 RomanYS
 
20.06.19
16:01
(15) на форме документа? Как тогда этот код должен догадаться о существовании обработки?
19 progaoff
 
20.06.19
16:03
(18) Неа на форме обработки. Блин че фигню делаю я уже понял) Вопрос, как с формы обработки перенести данные в таб.часть?
20 RomanYS
 
20.06.19
16:04
(16) Уточните откуда и куда нельзя передавать. И как это всё относится к теме ветки
21 lxs
 
20.06.19
16:04
В общем вот:

Процедура ЗаполнитьДокумент(Кнопка)
    
    Результат = ЭтотОбъект.ПолучитьФорму("ФормаРедактированияЦен").ОткрытьМодально();
    
    Структура = Результат.Получить();
    
    Для каждого ТекСтрока Из Товары Цикл
        ТекСтрока.Цена =Структура.Цена;
    КонецЦикла;
    
КонецПроцедуры



А в открываемой форме:



Процедура ЗакрытьФорму(Кнопка)
    
    Структура = Новый Структура;
    Структура.Вставить("Цена", Цена);
    
    Закрыть(Новый ХранилищеЗначения(Структура));
    
КонецПроцедуры
22 progaoff
 
20.06.19
16:05
(21) ЗакрытьФорму на форме а первое в модуле?
23 progaoff
 
20.06.19
16:06
(22) в структуру фигачить все что мне нужно с формы?
24 lxs
 
20.06.19
16:07
Да на оба вопроса
25 progaoff
 
20.06.19
16:08
(22) Процедура ЗаполнитьДокумент(Кнопка) - похоже на кнопку на форме документа)
26 lxs
 
20.06.19
16:09
(23) Только предусмотри варианты, когда форму не кнопкой закрывают, а, например, escape нажимают
27 lxs
 
20.06.19
16:12
(25) Ну у меня да, тебе надо заточить под внешнюю. У меня все базы на УФ. Спецом создал пустую на обычных. Но там же нет инициализации внешних обработок, так что извиняй.
28 progaoff
 
20.06.19
16:13
(27) вкурил
29 progaoff
 
20.06.19
16:16
Спасибо
30 lxs
 
20.06.19
16:24
(29)

    Структура = Новый Структура;
    
    Для Индекс = 0 По ЭтаФорма.ЭлементыФормы.Количество()-1 Цикл
        
        Элемент = ЭтаФорма.ЭлементыФормы.Получить(Индекс);
        Если ТипЗнч(Элемент) = Тип("ПолеВвода") Тогда
            Структура.Вставить(Элемент.Имя, Элемент.Значение);
        КонецЕсли;

    КонецЦикла;
    
    Закрыть(Новый ХранилищеЗначения(Структура));
31 RomanYS
 
20.06.19
16:27
(30) Хранилище?
32 lxs
 
20.06.19
16:28
(31) Поясни. Ты структуру не передашь. "Неверное значение параметра (1)" получишь.
33 RomanYS
 
20.06.19
16:29
(32) С чего вдруг?
34 RomanYS
 
20.06.19
16:30
+(33)
Синтаксис:
Закрыть(<ПараметрЗакрытия>)
Параметры:
<ПараметрЗакрытия> (необязательный)
Тип: Произвольный.
Параметр закрытия формы, открытой в модальном режиме. Это значение будет возвращено как результат метода, открывающего форму модально.
35 lxs
 
20.06.19
16:33
(33) Ну, ладно, не надо давить интеллектом, я видимо на скорую руку делал, косякнул.

Да, передал структуру без проблем
36 lxs
 
20.06.19
16:34
Процедура ЗакрытьФорму(Кнопка)
    
    Структура = Новый Структура;
    
    Для Индекс = 0 По ЭтаФорма.ЭлементыФормы.Количество()-1 Цикл
        
        Элемент = ЭтаФорма.ЭлементыФормы.Получить(Индекс);
        Если ТипЗнч(Элемент) = Тип("ПолеВвода") Тогда
            Структура.Вставить(Элемент.Имя, Элемент.Значение);
        КонецЕсли;

    КонецЦикла;
    
    Закрыть(Структура);
    
КонецПроцедуры



    Структура = ЭтотОбъект.ПолучитьФорму("ФормаРедактированияЦен").ОткрытьМодально();
    
    Для каждого ТекСтрока Из Товары Цикл
        ЗаполнитьЗначенияСвойств(ТекСтрока, Структура);
    КонецЦикла;
37 progaoff
 
20.06.19
16:47
(30) И с первым вариантов вышло норм
38 RomanYS
 
20.06.19
16:48
(36) Зачем вообще что-то передавать в такой ситуации и открывать модально. В данном случае (ОФ и две формы объекта) объект-документ у форм общий, его можно изменять из обоих форм. Без закрытия и передачи чего-либо.

Как я понимаю, ТС хочет это делать внешней обработкой.
39 lxs
 
20.06.19
16:59
(38) Дружище.. Я создал произвольную форму. Там нет основного реквизита.

Конечно же можно было сделать так, как ты предлагаешь.
Думать неохота, жара. Тем более, обычные формы.. так давно это было)
40 RomanYS
 
20.06.19
17:03
(39) В произвольную форму можно передать объект основной или саму форму параметром.

Ладно, раз у ТС что-то получилось... значит ты его лучше понял))
41 lxs
 
20.06.19
17:10
(40) На том и договоримся)
42 progaoff
 
20.06.19
17:24
(41) блин косяк, в полях процедура зарыта, в таб части. и нихрина не считает
43 RomanYS
 
20.06.19
17:24
(42) (41) ;)
44 progaoff
 
20.06.19
17:26
(42) Товары при изменении
45 hhhh
 
20.06.19
17:26
(42) зарыта в полях - это тогда вам лопата нужна.
46 progaoff
 
20.06.19
17:27
(45) Ну да)
47 progaoff
 
20.06.19
17:53
Как до нее достучатся из обработки ТоварыПриИзменении?
48 RomanYS
 
20.06.19
17:55
(47) До кого "до нее"&
49 progaoff
 
20.06.19
17:56
(47) ТоварыПриИзменении, без нее расчет не происходит блин
50 progaoff
 
20.06.19
17:59
все закрыт вопрос)
AdBlock убивает бесплатный контент. 1Сергей