Обычно перенос между формами происходит небольшого количества данных (Дата Документа, Контрагент), но
иногда необходимо перенести целую ТЧ(Табличную часть(Таблицу Значений))
Пример приведен на обработке "Печать этикеток и ценников":
Первая форма:
//Производим перенос данных ТЧ в другую форму
&НаКлиенте
Процедура Сохранить(Команда)
СписокПараметров = Новый Структура;
СписокПараметров.Вставить("ПараметрыСравнениеЦен", Истина);
СписокПараметров.Вставить("ЦеликомТЧ", Объект.ЦеныНоменклатуры);
//ОткрытьФорму
ФормаВыбора = ПолучитьФорму ("Обработка.ПечатьЭтикетокИЦенников.Форма.ФормаТовары", СписокПараметров);
ФормаВыбора.Открыть();
КонецПроцедуры
Вторая Форма:
//Получаем данные из другой формы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
...
// Получаем параметры из другой формы "ФормаСравнениеЦен"
// через параметр "ПараметрыСравнениеЦен"
Если Параметры.Свойство("ПараметрыСравнениеЦен") Тогда // Если данный параметр возвращает "Истина", Тогда производим получение данных по ТЧ
ПолучаемТЧ = Параметры.ЦеликомТЧ;
Если ПолучаемТЧ.Количество() <> 0 Тогда
Для Индекс = 0 По ПолучаемТЧ.Количество() - 1 Цикл
ПолучаемТЧИзМассива = ПолучаемТЧ[Индекс];
Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",ПолучаемТЧИзМассива.Артикул);
СтараяЦена = ПолучаемТЧИзМассива.СтараяЦена;
//Заполняем ТЧ из Массива
ПозицииВТЧ = Объект.Товары.Добавить();
ПозицииВТЧ.Номенклатура = Номенклатура;
ПозицииВТЧ.Штрихкод = ПолучитьНомерШтрихКода(Номенклатура);
ПозицииВТЧ.Цена = СтараяЦена;
ПозицииВТЧ.ОстатокНаСкладе = ПолучитьКоличествоОстатокНаСкладе(Номенклатура);
ПозицииВТЧ.ШаблонЦенника = Справочники.ШаблоныЭтикетокИЦенников.НайтиПоНаименованию("Бирка 30х42");
ПозицииВТЧ.КоличествоЦенников = 1;
ПозицииВТЧ.Выбран = Истина;
КонецЦикла;
КонецЕсли;
КонецЕсли
КонецПроцедуры
иногда необходимо перенести целую ТЧ(Табличную часть(Таблицу Значений))
Пример приведен на обработке "Печать этикеток и ценников":
Первая форма:
//Производим перенос данных ТЧ в другую форму
&НаКлиенте
Процедура Сохранить(Команда)
СписокПараметров = Новый Структура;
СписокПараметров.Вставить("ПараметрыСравнениеЦен", Истина);
СписокПараметров.Вставить("ЦеликомТЧ", Объект.ЦеныНоменклатуры);
//ОткрытьФорму
ФормаВыбора = ПолучитьФорму ("Обработка.ПечатьЭтикетокИЦенников.Форма.ФормаТовары", СписокПараметров);
ФормаВыбора.Открыть();
КонецПроцедуры
Вторая Форма:
//Получаем данные из другой формы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
...
// Получаем параметры из другой формы "ФормаСравнениеЦен"
// через параметр "ПараметрыСравнениеЦен"
Если Параметры.Свойство("ПараметрыСравнениеЦен") Тогда // Если данный параметр возвращает "Истина", Тогда производим получение данных по ТЧ
ПолучаемТЧ = Параметры.ЦеликомТЧ;
Если ПолучаемТЧ.Количество() <> 0 Тогда
Для Индекс = 0 По ПолучаемТЧ.Количество() - 1 Цикл
ПолучаемТЧИзМассива = ПолучаемТЧ[Индекс];
Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",ПолучаемТЧИзМассива.Артикул);
СтараяЦена = ПолучаемТЧИзМассива.СтараяЦена;
//Заполняем ТЧ из Массива
ПозицииВТЧ = Объект.Товары.Добавить();
ПозицииВТЧ.Номенклатура = Номенклатура;
ПозицииВТЧ.Штрихкод = ПолучитьНомерШтрихКода(Номенклатура);
ПозицииВТЧ.Цена = СтараяЦена;
ПозицииВТЧ.ОстатокНаСкладе = ПолучитьКоличествоОстатокНаСкладе(Номенклатура);
ПозицииВТЧ.ШаблонЦенника = Справочники.ШаблоныЭтикетокИЦенников.НайтиПоНаименованию("Бирка 30х42");
ПозицииВТЧ.КоличествоЦенников = 1;
ПозицииВТЧ.Выбран = Истина;
КонецЦикла;
КонецЕсли;
КонецЕсли
КонецПроцедуры

