Имя: Пароль:
1C
1С v8
Заполнение ВладелецФормы из обработки заполнения табличной части
0 егаис
 
27.04.18
10:33
Внешняя обработка заполнения с открытием формы
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
    
    МассивНачислений = ВыполнитьРасчетНаСервере();
    Для Каждого ЭлементМассива Из МассивНачислений Цикл
        НоваяСтрока = ВладелецФормы.Объект.Корректировки.Добавить();
        ЗаполнитьЗначенияСвойств(НоваяСтрока, ЭлементМассива);
    КонецЦикла;    
    ВладелецФормы.Модифицированность = Истина;
    
    ЭтаФорма.Закрыть();
КонецПроцедуры    

&НаСервере
Функция ВыполнитьРасчетНаСервере()

    //некие действия с запросом
    
    Возврат МассивДанных;

КонецФункции    


Не заполняется табличная часть владельцаФормы. Не пойму принцип заполнения.
1 егаис
 
27.04.18
11:17
ап
2 Buster007
 
27.04.18
12:05
а вот здесь "ОбъектыНазначенияМассив" что лежит?
3 Buster007
 
27.04.18
12:05
+(2) подозреваю, что не так надо работать с внешними обработками заполнения ТЧ
4 егаис
 
27.04.18
12:26
(2) ничего, это команда из формы обработки
Не врубаюсь, как заставить заполнить документ.
Если использовать ВыполнитьКоманду в модуле обработки, то как до ее добраться с указанием массиваобъектов
5 SSSSS_AAAAA
 
27.04.18
12:35
(0) Если это обработка заполнения ТАБЛИЧНОЙ ЧАСТИ, то какого хрена она лезет к владельцу этой табличной части?
6 егаис
 
27.04.18
12:44
(5) киньте примером, не соображу
Задача, открыть форму внешней обработки, заполнить некие реквизиты на форме, получить на выходе таблицу значений и заполнить табличную часть документа на основании этой тз.
7 егаис
 
27.04.18
12:46
вызывается без каких-либо заморочек

&НаСервере
Функция СведенияОВнешнейОбработке() Экспорт

    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.КорректировкаНачислений");

    ПараметрыРегистрации.Вставить("Вид", "ЗаполнениеОбъекта");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "Корректировка за период");
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
    ПараметрыРегистрации.Вставить("Информация",
        "Заполнение корректировки");
  
    ТаблицаКоманд = ПолучитьТаблицуКоманд();

    ДобавитьКоманду(ТаблицаКоманд,
        "Корректировка за период",
        "0",
        "ОткрытиеФормы",
        Истина
    );

    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

    Возврат ПараметрыРегистрации;
КонецФункции

Функция ПолучитьТаблицуКоманд()
  Команды = Новый ТаблицаЗначений;
  Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
  Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
  Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
  Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
  Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
  Возврат Команды;
КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
  НоваяКоманда = ТаблицаКоманд.Добавить();
  НоваяКоманда.Представление = "Корректировка за период";
  НоваяКоманда.Идентификатор = "Корректировка";
  НоваяКоманда.Использование = Использование;
  НоваяКоманда.ПоказыватьОповещение = Истина;
  НоваяКоманда.Модификатор = "";
КонецПроцедуры
8 SSSSS_AAAAA
 
27.04.18
12:59
(6) Каким примером кинуть? Какой пример может быть на заданный мной вопрос?
У вас каша в голове, соответственно, и в коде. И путаница в понятиях и терминах.
Пишете про обработку заполнения ТАБЛИЧНЫХ ЧАСТЕЙ, а в коде - ЗаполнениеОбъекта.
9 DrShad
 
27.04.18
13:02
(8) на УФ это одно и то же
10 егаис
 
27.04.18
17:25
не выходит каменный цветок ((
(9) +1
11 егаис
 
28.04.18
07:15
подниму
Программист всегда исправляет последнюю ошибку.