Имя: Пароль:
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
все закрыт вопрос)
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший