Как из внешней обработки заполнения табличной части передать значения элементов формы в вызвавшую?

1. cheiser1982 221 10.05.19 19:57 Сейчас в теме
Всем доброго времени суток!
Столкнулся со следующей проблемой:
Необходимо скорректировать данные табличной части документа. Причем на форме документа используется Кросс таблица, где поля формируются в зависимости от определенных условий. Используется внешняя обработка заполнения табличной части. Все операции на внешней обработке проделаны успешно - таблица сформирована, данные из исходной формы перенесены, функционал корректировки реализован. Однако возникла проблема передачи данных обратно на исходную форму после их обработки (именно на форму - владельца а не в объект). Нужно обойтись без использования расширения и тем более без снятия с поддержки.
Очень нужна помощь знающих.
Заранее спасибо.
Найденные решения
4. cheiser1982 221 10.05.19 21:00 Сейчас в теме
Спасибо за советы.
Разобрался - нужно было корректировать данные табличной части Владельца формы на клиенте, а я пытался на сервере его ловить.

Рабочий код переноса:

&НаКлиенте
Процедура ПеренестиВДокумент(Команда)
	
	ТаблицаВладельцаТоварыПоПериодам = ВладелецФормы.ТоварыПоПериодам;
	
	Для Каждого СтрокаТаблицы Из ТоварыПоПериодам Цикл
		СтруктураОтбора = Новый Структура("Номенклатура, Характеристика, Артикул");
		ЗаполнитьЗначенияСвойств(СтруктураОтбора, СтрокаТаблицы);
		НайденныеСтроки = ТаблицаВладельцаТоварыПоПериодам.НайтиСтроки(СтруктураОтбора);
		Если НайденныеСтроки.Количество() = 0 Тогда
			Продолжить;
		КонецЕсли;
		ЗаполнитьЗначенияСвойств(НайденныеСтроки[0], СтрокаТаблицы);
		Сообщить(НайденныеСтроки[0].Количество);
	КонецЦикла;
	
	ЭтаФорма.Закрыть(Неопределено);
КонецПроцедуры
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. independ 1528 10.05.19 20:19 Сейчас в теме
(1) вариантов несколько, например
ВладелецФормы.Объект.Реквизит1=123;
Для каждого стр из ВладелецФормы.Объект.ИмяТЧ
стр.Реквизит1=321;
КонецЦикла;
//ит.д.

2. Получить объект, например
Док=ВладелецФормы.Объект.ПолучитьОбъект;
Док.Реквизит1=123;
Для каждого стр из Док.ИмяТЧ Цикл
стр.Реквизит1=321;
КонецЦикла;
//ит.д.
Далее
сохраняем 
Док.Записать();
Показать
и для обновления формы владельцы
ВладелецФормы.Прочитать();
2. tusv 212 10.05.19 20:13 Сейчас в теме
Если Таблицы идентичны, можно на Клиенте
КопироватьДанныеФормы(<ИмяТаблицыОбработки>,ВладелецФормы.<ИмяТаблицыДокумента>);
4. cheiser1982 221 10.05.19 21:00 Сейчас в теме
Спасибо за советы.
Разобрался - нужно было корректировать данные табличной части Владельца формы на клиенте, а я пытался на сервере его ловить.

Рабочий код переноса:

&НаКлиенте
Процедура ПеренестиВДокумент(Команда)
	
	ТаблицаВладельцаТоварыПоПериодам = ВладелецФормы.ТоварыПоПериодам;
	
	Для Каждого СтрокаТаблицы Из ТоварыПоПериодам Цикл
		СтруктураОтбора = Новый Структура("Номенклатура, Характеристика, Артикул");
		ЗаполнитьЗначенияСвойств(СтруктураОтбора, СтрокаТаблицы);
		НайденныеСтроки = ТаблицаВладельцаТоварыПоПериодам.НайтиСтроки(СтруктураОтбора);
		Если НайденныеСтроки.Количество() = 0 Тогда
			Продолжить;
		КонецЕсли;
		ЗаполнитьЗначенияСвойств(НайденныеСтроки[0], СтрокаТаблицы);
		Сообщить(НайденныеСтроки[0].Количество);
	КонецЦикла;
	
	ЭтаФорма.Закрыть(Неопределено);
КонецПроцедуры
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот