Заполнение ТЧ обработки из ТЧ документа

1. user591603_neterpenie 16.08.17 18:05 Сейчас в теме
Добрый вечер,

небольшой вопрос.

Есть док-т "Лист" с ТЧ "Товары" и реквизитами "Номенклатура" и "Количество".

из этого док-та открывается по кнопке обработка "Перенос" с ТЧ "Товары" и реквизитами "Номенклатура" и "Количество".

Как сделать так, чтобы ТЧ обработки при открытии заполнялась строками и значениями из ТЧ документа?

Управляемые формы, 1С 8.3

Заранее спасибо.
По теме из базы знаний
Найденные решения
12. user591603_neterpenie 18.08.17 13:56 Сейчас в теме
(11)

Чуть изменил процедуру в обработке, теперь вроде все ок.)

	Если НЕ Параметры.Свойство("МассивСтрок") Тогда
		Отказ = Истина;
		Возврат;
	КонецЕсли;
	
	МассивСтрок = Параметры.МассивСтрок;
	
	Для каждого Элемент из МассивСтрок Цикл
		
		НоваяСтрока = Объект.Товары.Добавить();
		
		ЗаполнитьЗначенияСвойств(НоваяСтрока, Элемент);
		
		НоваяСтрока.КоличествоЦенников=Элемент.КоличествоУпаковок;
		
	КонецЦикла;
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user633533_encantado 11 16.08.17 18:10 Сейчас в теме
В форму обработки передай параметр с данными по табличной части. А при открытии формы обработки заполни ее по полученному параметру.
3. DAL 16.08.17 18:10 Сейчас в теме
Перед открытием обработки прописываем параметры:

ПараметрыОткрытия = Новый Структура;
ТаблицаДляПередачи = Объект.Товары.Выгрузить();
СтрокаТаблицаДляПередачи = ЗначениеВСтрокуВнутр(ТаблицаДляПередачи);
Параметры открытия.Вставить("Номенклатура", Объект.НашаНоменклатура);
Параметры открытия.Вставить("Количество", Объект.НашеКоличество);
Параметры открытия.Вставить("Таблица", СтрокаТаблицаДляПередачи );



В обработке ПередОткрытиемНаСервере проверяем наличие и заполненность параметров и заполняем реквизиты обработки.
4. user591603_neterpenie 17.08.17 17:20 Сейчас в теме
(3)

я делал вот как:

&НаКлиенте
//В док-те, из которого открывается обработка
Процедура ПечатьЭтикеток(Команда)
	
ТекСтрока = Элементы.Товары.ТекущиеДанные;
Если ТекСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
Параметр = Новый Структура;
ПараметрыПередаваемые = Новый Структура("Номенклатура,КоличествоУпаковок");
ЗаполнитьЗначенияСвойств(ПараметрыПередаваемые,ТекСтрока);

ОткрытьФорму("Обработка.ПечатьЭтикетокИЦенников.Форма.ФормаТовары",ПараметрыПередаваемые,ЭтаФорма,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);


КонецПроцедуры

//В обработке
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

Если Параметры.Свойство("Номенклатура")И Параметры.Свойство("КоличествоУпаковок") Тогда
		
НоваяСтрока = Объект.Товары.Добавить();
НоваяСтрока.Номенклатура = Параметры.Номенклатура;
НоваяСтрока.КоличествоЦенников = Параметры.КоличествоУпаковок;
		
КонецЕсли
Показать


Но так передается только текущая выделенная строка из док-та, а хочется передать все строки, которые есть в ТЧ док-та.)
8. DAL 17.08.17 18:52 Сейчас в теме
(4)Я вам написал вариант как передать всю табличную часть "Товары".

А так то Саша Вам самый нормальный вариант скинул)
5. user633533_encantado 11 17.08.17 17:37 Сейчас в теме

МассивСтрок = Новый Массив;

Для Каждого ТекСтрока из Объект.Товары Цикл


ПараметрыПередаваемые = Новый Структура("Номенклатура,КоличествоУпаковок");
    

ЗаполнитьЗначенияСвойств(ПараметрыПередаваемые,ТекСтрока);

МассивСтрок.Добавить(ПараметрыПередаваемые);

КонецЦикла;

ПараметрыФормы = Новый СТруктура;
ПараметрыФормы.Вставить(МассивСтрок);

ОткрытьФорму("Обработка.ПечатьЭтикетокИЦенников.Форма.ФормаТовары",ПараметрыФормы); 
Показать
6. user591603_neterpenie 17.08.17 17:47 Сейчас в теме
(5)
Спасибо, сейчас попробую
7. user591603_neterpenie 17.08.17 18:15 Сейчас в теме
(5)
А в модуле формы обработки оставлять мою старую процедуру?
9. DAL 17.08.17 18:57 Сейчас в теме
(7)

При передаче чуток переделайте:
ПараметрыФормы = Новый СТруктура;
ПараметрыФормы.Вставить("МассивСтрок", МассивСтрок);


В обработке:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если НЕ Параметры.Свойство("МассивСтрок") Тогда
        Отказ = Истина;
        Возврат;
КонецЕсли;
МассивСтрок = Параметры.МассивСтрок;
Для каждого Элемент из МассивСтрок Цикл
НоваяСтрока = Объект.Товары.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Элемент);
КонецЦикла;
КонецПроцедуры;
Показать
user591603_neterpenie; +1 Ответить
10. user591603_neterpenie 18.08.17 10:53 Сейчас в теме
Вот что написал:

в док-те:

&НаКлиенте
Процедура ПечатьЭтикеток(Команда)

МассивСтрок = Новый Массив;

Для Каждого ТекСтрока из Объект.Товары Цикл


ПараметрыПередаваемые = Новый Структура("Номенклатура,КоличествоУпаковок");
    

ЗаполнитьЗначенияСвойств(ПараметрыПередаваемые,ТекСтрока);

МассивСтрок.Добавить(ПараметрыПередаваемые);

КонецЦикла;

ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("МассивСтрок", МассивСтрок);

ОткрытьФорму("Обработка.ПечатьЭтикетокИЦенников.Форма.ФормаТовары",ПараметрыФормы); 

КонецПроцедуры
Показать


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

	
КонецПроцедуры

Показать


в итоге, строки ТЧ документа передаются в обработку, а кол-во номенклатуры - нет.

Это может быть из-за того, что в форме док-та у кол-ва имя "КоличествоУпаковок", а в обработке "КоличествоЦенников"?
11. EVKash 14 18.08.17 11:18 Сейчас в теме
А в самой обработке таблица
Обработка.ВладелецФормы.Объект.Товары
недоступна?
12. user591603_neterpenie 18.08.17 13:56 Сейчас в теме
(11)

Чуть изменил процедуру в обработке, теперь вроде все ок.)

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

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