Имя: Пароль:
1C
1С v8
Заполнение по кнопке из ФОРМЫ програмно
0 Tata_059
 
13.01.20
11:49
В  форме списка есть контрагенты с незаполненными реквизитами, только ИНН
Задача, по данным контрагентам заполнить реквизиты по ИНН, не заходя в контрагент.

Создана обработка, на форме обработки
-СП_Контрагенты =список значений на форме обработки
-Кнопка "ЗаполнитьПоИНН"

При нажатии на кнопке вызывается следующая процедура

&НаКлиенте
Процедура ЗаполнитьПоИНН(Команда)
    //ЗаполнитьПоИНННаСервере();
    для Каждого стр из СП_Контрагенты цикл
        //ФормаЭл=стр.Значение.ПолучитьФорму("ФормаЭлемента");
        
        //СпрФорма = Справочники.Контрагенты.ПолучитьФорму("Справочник.Контрагенты.Форма.ФормаЭлемента");
        ПараметрыФормы = Новый Структура("Ключ", стр.Значение);//СсылкаНаНоменклатуру);
        СпрФорма = ПолучитьФорму("Справочник.Контрагенты.Форма.ФормаЭлемента", ПараметрыФормы);
        Кнопка = СпрФорма.Элементы.КнопкаЗаполнитьРеквизитыПоИНН;
        СпрФорма.Открыть();
        СпрФорма.ЗаполнитьРеквизитыПоИНН(Неопределено);//процедура событие кнопки
        //СпрФорма.ЗаполнитьРеквизитыПоИНН(Кнопка);//процедура событие кнопки
        СпрФорма.Закрыть();
    КонецЦикла;
КонецПроцедуры


Ошибка выходит на строчке СпрФорма.ЗаполнитьРеквизитыПоИНН(Кнопка);
Подскажите как корректно написать, пожалуйста.
1 RomaH
 
naïve
13.01.20
11:55
корректнее скопипастить код из формы в обработку
2 vicof
 
13.01.20
11:55
Жестокий код.
Проще всего скопировать ЗаполнитьРеквизитыПоИНН в отдельную процедуру в обработке и не привязываться к форме.
3 Tata_059
 
13.01.20
11:56
(2) там слишком много копировать. внутри процедуры очень много процедур
4 yalex
 
13.01.20
11:57
(0)Форму зачем получать? Нужно получать объект каждого элемента и его изменять/записывать
5 Fish
 
13.01.20
11:57
(0) Не надо так делать.
6 DTX 4th
 
13.01.20
11:58
Если там не экспорт, то в очередной раз понять, что разрабы местами одноклеточные в 1с
7 ptiz
 
13.01.20
12:00
(6) В конфах на ОФ такой фигни не было!
8 RomaH
 
naïve
13.01.20
12:02
(3) ну так ... читать код надо научится

там вызов одной функции ОМ
и заполнение реквизитов контрагента из полученного результата

все остальное проверки и обертка асинхронная
9 Tata_059
 
13.01.20
12:55
Ну мне всеровно интересно на будущее как можно программно обработать кнопку с формы
Программист всегда исправляет последнюю ошибку.