Дублирование данных из одной формы в другую

1. user1008893 07.12.18 10:32 Сейчас в теме +1 $m
Есть данные которые уже переносятся,но не могу понять где? из справочника ШаблоныУпаковок в справочник Упаковки.
Переносится номенклатура и тч составляющие,мне надо переносить длину,высоту и тд.
Помогите пожалуйста разобраться...
ERP дописаная
Перем мфИД Экспорт; // идентификатор формы для настройки доступов к элементам формы

//==================== ВСПОМОГАТЕЛЬНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ ==============================

// Предопределенный обработчик интерфейса подключаемых обработок (экспорт нужен для проверки существования)
//
Процедура ВнешняяОбработкаОбъекта(Кнопка) Экспорт  // Подключение данной процедуры-обработчика выполняется из кода конфигурации
	
	глВнешняяОбработкаОбъекта(ЭтаФорма, Кнопка.Имя);
	
КонецПроцедуры


//==================== ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ ========================================

// Обработчик события формы ПередОткрытием.
//
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
	
	Если НЕ глСправочники_ПередОткрытием(ЭтаФорма, Отказ, СтандартнаяОбработка) Тогда
		Возврат;
	КонецЕсли;
	
	Если Отказ Тогда
		Возврат;
	КонецЕсли;
	
	//--------------------------------------------------------------------------------------
	
	//--------------------------------------------------------------------------------------
	
	Кастомизация.ВыполнитьПроцедуруФункцию("ПС_ПередОткрытием", ЭтаФорма, Отказ, СтандартнаяОбработка);
	
КонецПроцедуры

// Обработчик события формы ПриОткрытии.
//
Процедура ПриОткрытии()
		
	//--------------------------------------------------------------------------------------
	
	Кастомизация.ВыполнитьПроцедуруФункцию("ПС_ПриОткрытии", ЭтаФорма);
	
КонецПроцедуры

// Обработчик события формы ОбновлениеОтображения.
//
Процедура ОбновлениеОтображения()
	
	ПроверитьЗависимыеРеквизиты();
	
	//--------------------------------------------------------------------------------------
	
	НоменклатураШаблонаСхемы = Владелец.Владелец;
	
	//--------------------------------------------------------------------------------------
	
	ДоступыКФормам.ОбновлениеОтображения(ЭтаФорма);
	Кастомизация.ВыполнитьПроцедуруФункцию("ПС_ОбновлениеОтображения", ЭтаФорма);
	
КонецПроцедуры

// Обработчик события формы ОбработкаОповещения.
//
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
	
	Кастомизация.ВыполнитьПроцедуруФункцию("ПС_ОбработкаОповещения", ЭтаФорма, ИмяСобытия, Параметр, Источник);
	
КонецПроцедуры


//==================== ОСНОВНЫЕ ДЕЙСТВИЯ ФОРМЫ ==========================================


//==================== ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ФОРМЫ ==============================


//==================== ИНИЦИАЛИЗАЦИЯ ====================================================

мфИД = "Справочники.ШаблоныУпаковок.ФормаЭлемента";


Показать
-модуль формы шаблоны упаковок


Перем мфИД Экспорт; // идентификатор формы для настройки доступов к элементам формы

//==================== ВСПОМОГАТЕЛЬНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ ==============================

// Предопределенный обработчик интерфейса подключаемых обработок (экспорт нужен для проверки существования)
//
Процедура ВнешняяОбработкаОбъекта(Кнопка) Экспорт  // Подключение данной процедуры-обработчика выполняется из кода конфигурации
	
	глВнешняяОбработкаОбъекта(ЭтаФорма, Кнопка.Имя);
	
КонецПроцедуры


//==================== ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ ========================================

// Обработчик события формы ПередОткрытием.
//
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
	
	Если НЕ глСправочники_ПередОткрытием(ЭтаФорма, Отказ, СтандартнаяОбработка) Тогда
		Возврат;
	КонецЕсли;
	
	Если Отказ Тогда
		Возврат;
	КонецЕсли;
	
	//--------------------------------------------------------------------------------------
	
	//--------------------------------------------------------------------------------------
	
	Кастомизация.ВыполнитьПроцедуруФункцию("ПС_ПередОткрытием", ЭтаФорма, Отказ, СтандартнаяОбработка);
	
КонецПроцедуры

// Обработчик события формы ПриОткрытии.
//
Процедура ПриОткрытии()
		
	//--------------------------------------------------------------------------------------
	
	Кастомизация.ВыполнитьПроцедуруФункцию("ПС_ПриОткрытии", ЭтаФорма);
	
КонецПроцедуры

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

// Обработчик события формы ОбработкаОповещения.
//
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
	
	Кастомизация.ВыполнитьПроцедуруФункцию("ПС_ОбработкаОповещения", ЭтаФорма, ИмяСобытия, Параметр, Источник);
	
КонецПроцедуры


//==================== ОСНОВНЫЕ ДЕЙСТВИЯ ФОРМЫ ==========================================

// Устанавливает флаг активности спецификации.
//
Процедура ДействияФормыКнАктивность(Кнопка)
	
	Активность = НЕ Активность;
	Если ТолькоПросмотр Тогда
		ЭтотОбъект.Записать();
	КонецЕсли;
	
КонецПроцедуры


//==================== ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ФОРМЫ ==============================


//==================== ИНИЦИАЛИЗАЦИЯ ====================================================

мфИД = "Справочники.Упаковки.ФормаЭлемента";



Показать
-модуль формы справочника Упаковки

Функция НужноВызватьИсключение(ВхИмяМетода, ВхКонтекст, ВхОписаниеОшибки)
	
	Если Найти(ВхОписаниеОшибки, "ОбщийМодуль.Кастомизация.Модуль(") > 0 
		И (	Найти(ВхОписаниеОшибки, "Метод объекта не обнаружен (" + ВхИмяМетода + ")") > 0
			ИЛИ Найти(ВхОписаниеОшибки, "Object method not found (" + ВхИмяМетода + ")") > 0
			ИЛИ Найти(ВхОписаниеОшибки, "Метод об`єкту не виявлено (" + ВхИмяМетода + ")") > 0
		   ) Тогда
		
		//Это не ошибка - просто не потребовался обработчик по кастомизации
		Возврат Ложь;
		
	Иначе// все остальное - ошибки, возникшие в самом обработчике кастомизации 
		
		глСообщить(ВхКонтекст, ВхОписаниеОшибки, СтатусСообщения.Внимание, "Ошибка выполнения " + ВхИмяМетода + "()");
		Возврат Истина;
		
	КонецЕсли;
	
КонецФункции

Функция ВыполнитьПроцедуруФункцию(	ВхИмяПроцедурыФункции, ВхКонтекст, 
										ВхПарам1 = Неопределено, 
										ВхПарам2 = Неопределено,  
										ВхПарам3 = Неопределено,  
										ВхПарам4 = Неопределено,  
										ВхПарам5 = Неопределено,  
										ВхПарам6 = Неопределено,
										ВхПарам7 = Неопределено) Экспорт
	
	Попытка

		// ======== КОНТЕКСТ: ФОРМА =======================================
		
		Если ВхИмяПроцедурыФункции = "ПС_ПередОткрытием" Тогда
			
			ВхКонтекст.ПС_ПередОткрытием(ВхПарам1, ВхПарам2);
			
		ИначеЕсли ВхИмяПроцедурыФункции = "ПС_ПриОткрытии" Тогда
			
			ВхКонтекст.ПС_ПриОткрытии();
			
		ИначеЕсли ВхИмяПроцедурыФункции = "ПС_ОбновлениеОтображения" Тогда
			
			ВхКонтекст.ПС_ОбновлениеОтображения();
			
		ИначеЕсли ВхИмяПроцедурыФункции = "ПС_ОбработкаВыбора" Тогда
			
			//ВхПарам1 - ЗначениеВыбора
			//ВхПарам2 - Источник
			ВхКонтекст.ПС_ОбработкаВыбора(ВхПарам1, ВхПарам2);
			
		ИначеЕсли ВхИмяПроцедурыФункции = "ПС_ОбработкаОповещения" Тогда
			
			//ВхПарам1 - ИмяСобытия
			//ВхПарам2 - Параметр
			//ВхПарам3 - Источник
			ВхКонтекст.ПС_ОбработкаОповещения(ВхПарам1, ВхПарам2, ВхПарам3);
			
		// ======== КОНТЕКСТ: ОБЪЕКТ ======================================
			
		ИначеЕсли ВхИмяПроцедурыФункции = "ПС_ПроверитьЗависимыеРеквизиты" Тогда
			
			ВхКонтекст.ПС_ПроверитьЗависимыеРеквизиты();
			
		ИначеЕсли ВхИмяПроцедурыФункции = "ПС_ПроверитьОбъект" Тогда
			
			Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(ВхКонтекст.Ссылка)) Тогда
				
				Попытка
					_флОК = ВхКонтекст.ПС_ПроверитьОбъект();
					Возврат _флОК;
				Исключение
					Возврат Истина;
				КонецПопытки;
				
			ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(ВхКонтекст.Ссылка)) Тогда
				
				//ВхПарам1 - стру_ДанныеДокумента
				Попытка
					_флОК = ВхКонтекст.ПС_ПроверитьОбъект(ВхПарам1);
					Возврат _флОК;
				Исключение
					Возврат Истина;
				КонецПопытки;
				
			КонецЕсли;
			
		ИначеЕсли ВхИмяПроцедурыФункции = "ПС_ПередЗаписьюДвиженийСПроверкой" Тогда
			
			//ВхПарам1 - стру_ДанныеДокумента
			//ВхПарам2 - Отказ. Состояние флага отказа
			//ВхПарам3 - Режим. Режим проведения
			ВхКонтекст.ПС_ПередЗаписьюДвиженийСПроверкой(ВхПарам1, ВхПарам2, ВхПарам3);
			
		ИначеЕсли ВхИмяПроцедурыФункции = "ПС_ОбработкаЗаполнения_ПередЗаполнениемДанными" Тогда
			
			//ВхПарам1 - ДанныеЗаполнения
			//ВхПарам2 - СтандартнаяОбработка
			//ВхПарам3 - ПродолжитьТиповоеЗаполнение.
			ВхКонтекст.ПС_ОбработкаЗаполнения_ПередЗаполнениемДанными(ВхПарам1, ВхПарам2, ВхПарам3);
			
			
		Иначе
			ВызватьИсключение("Неподдерживаемая пользовательская процедура/функция <" + ВхИмяПроцедурыФункции + ">");
		КонецЕсли;
		
		
	Исключение
		
		_ОписаниеОшибки = ОписаниеОшибки();
		Если НужноВызватьИсключение(ВхИмяПроцедурыФункции, ВхКонтекст, _ОписаниеОшибки) Тогда
			ВызватьИсключение(ИнформацияОбОшибке().Описание);
		КонецЕсли;
		
	КонецПопытки;
	
КонецФункции
Показать
-общий модуль кастомизация
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Kovekh 07.12.18 10:48 Сейчас в теме
(1)
А в модуле менеджера смотрели ОбработкаПолученияФормы и ОбработкаПолученияДанныхВыбора?
3. user1008893 07.12.18 10:59 Сейчас в теме
(2)Сейчас мне объяснили как это работает.
В справочнике СхемаПакования Нажимаешь на кнопку Заполнить по шаблону и тогда все переносится.
Вот
Процедура ДействияФормыЗаполнитьПоШаблону(Кнопка)

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


//==================== ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ФОРМЫ ==============================

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

куда мне надо прописать мои данные?
4. Kovekh 07.12.18 11:08 Сейчас в теме
(3)
Процедуру Заполнить посмотрите, которая вызывается последней в ДействияФормыЗаполнитьПоШаблону(Команда)
5. user1008893 07.12.18 11:15 Сейчас в теме
(4)это же просто заполнение переменной
6. user1008893 07.12.18 11:25 Сейчас в теме
(4)
Вот,с помощью отладки нашла куда уходит заполнить
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
	
	ДополнительныеСвойства.Вставить("ЕстьОшибкиПриОбработкеЗаполнения", Ложь);
	
	
	////////////////////////////////////////////////////////////­//////////////////
	// Заполнение значениями по умолчанию
	
	Автонаименование = Истина;
	
	////////////////////////////////////////////////////////////­//////////////////
	// Очистка табличных частей
	
	ТЧСостав.Очистить();
	
	////////////////////////////////////////////////////////////­//////////////////
	//Заполнение переданными данными
	
	ПродолжитьТиповоеЗаполнение = Истина;
	Кастомизация.ВыполнитьПроцедуруФункцию("ПС_ОбработкаЗаполнения_ПередЗаполнениемДанными", ЭтотОбъект, ДанныеЗаполнения, СтандартнаяОбработка, ПродолжитьТиповоеЗаполнение);
	Если НЕ ПродолжитьТиповоеЗаполнение Тогда
		Возврат;
	КонецЕсли;
	
	Если ДанныеЗаполнения = Неопределено Тогда
		ДанныеЗаполнения = Новый Структура;
	КонецЕсли;
	
	Тип_ДанныеЗаполнения = ТипЗнч(ДанныеЗаполнения);
	
	Если Тип_ДанныеЗаполнения = Тип("Структура") Тогда //значение отборов(на равенство) из списков или создана вручную
		
		ЗаполнитьЗначенияСвойств(ЭтотОбъект, ДанныеЗаполнения);
				
	ИначеЕсли Тип_ДанныеЗаполнения = Тип("СправочникСсылка.ШаблоныСхемПакования") Тогда 
		
		//ВНИМАНИЕ. НОВЫЙ ОБЪЕКТ ГАРАНТИРОВАННО БУДЕТ ЗАПИСАН (нужна ссылка для упаковок)
		
		Если ЭтоНовый() Тогда
			
			Если глПустоеЗначение(Код) Тогда
				УстановитьНовыйКод();
			КонецЕсли;
			
			_ОбменДаннымиЗагрузка = ОбменДанными.Загрузка;
			ОбменДанными.Загрузка = Истина;
			Записать();
			ОбменДанными.Загрузка = _ОбменДаннымиЗагрузка;
			
		КонецЕсли;
		
		Для Каждого строка_ШаблонТЧСостав Из ДанныеЗаполнения.ТЧСостав Цикл
			
			_ШаблонНаименованияУпаковки = "%] " + строка_ШаблонТЧСостав.ШаблонУпаковки.Наименование + "";
						
			Запрос = Новый Запрос;
			Запрос.Текст =
			"ВЫБРАТЬ
			|	Упаковки.Ссылка
			|ИЗ
			|	Справочник.Упаковки КАК Упаковки
			|ГДЕ
			|	Упаковки.Владелец = &Владелец
			|	И Упаковки.Наименование Подобно &ШаблонНаименованияУпаковки
			|	И Упаковки.ПометкаУдаления = ЛОЖЬ"
			;
			
			Запрос.УстановитьПараметр("Владелец", Ссылка);
			Запрос.УстановитьПараметр("ШаблонНаименованияУпаковки", _ШаблонНаименованияУпаковки);
			
			Выборка = Запрос.Выполнить().Выбрать();
			
			_Упаковка = ?(Выборка.Следующий(), Выборка.Ссылка, Неопределено);
			
			Если глПустоеЗначение(_Упаковка) Тогда
				
				_Упаковка = Справочники.Упаковки.СоздатьЭлемент();
				_Упаковка.Владелец = Ссылка;
				
				ДанныеЗаполнения_Упаковка = Новый Структура;
				ДанныеЗаполнения_Упаковка.Вставить("Владелец", 		Ссылка);

				_Упаковка.Заполнить(ДанныеЗаполнения_Упаковка);
				
				_Упаковка.Наименование = "[" + глПолучитьКод_ИерархияВладельцев (_Упаковка) + "] " + строка_ШаблонТЧСостав.ШаблонУпаковки.Наименование;
				_Упаковка.Комментарий = строка_ШаблонТЧСостав.ШаблонУпаковки.Комментарий;
				
				//ПС_СоколВВ 20180220
				_Упаковка.ПС_ВидДопЭтикетки = строка_ШаблонТЧСостав.ШаблонУпаковки.ПС_ВидДопЭтикетки;
				
				//ПС__ 2018-05-16 Помогайленко С.В.
				Для Каждого строка_ШаблонУпаковкиТЧСоставляющие Из строка_ШаблонТЧСостав.ШаблонУпаковки.ПС_ТЧСоставляющие Цикл
					_строка_ТЧСоставляющие = _Упаковка.ПС_ТЧСоставляющие.Добавить();
					ЗаполнитьЗначенияСвойств(_строка_ТЧСоставляющие, строка_ШаблонУпаковкиТЧСоставляющие);
				КонецЦикла;
				//__ПС 2018-05-16 Помогайленко С.В.
				
				_Упаковка.Записать();
				
				_Упаковка = _Упаковка.Ссылка;
				
			КонецЕсли;
			
			строка_ТЧСостав = ТЧСостав.Добавить();
			строка_ТЧСостав.Упаковка 	= _Упаковка;
			строка_ТЧСостав.Кол 		= строка_ШаблонТЧСостав.Кол;
			
		КонецЦикла;
		
		
	ИначеЕсли Тип_ДанныеЗаполнения = Тип("СправочникСсылка.ВариантыИсполнения") Тогда 
		
		//ВНИМАНИЕ. НОВЫЙ ОБЪЕКТ ГАРАНТИРОВАННО БУДЕТ ЗАПИСАН (нужна ссылка для упаковок)
		
		Если ЭтоНовый() Тогда
			
			Если глПустоеЗначение(Код) Тогда
				УстановитьНовыйКод();
			КонецЕсли;
			
			_ОбменДаннымиЗагрузка = ОбменДанными.Загрузка;
			ОбменДанными.Загрузка = Истина;
			Записать();
			ОбменДанными.Загрузка = _ОбменДаннымиЗагрузка;
			
		КонецЕсли;
		
		_Упаковка = Справочники.Упаковки.СоздатьЭлемент();
		_Упаковка.Владелец = Ссылка;
		
		ДанныеЗаполнения_Упаковка = Новый Структура;
		ДанныеЗаполнения_Упаковка.Вставить("Владелец", 		Ссылка);

		_Упаковка.Заполнить(ДанныеЗаполнения_Упаковка);
		
		_Упаковка.Наименование = "[" + глПолучитьКод_ИерархияВладельцев (_Упаковка) + "] 1к1 ВИ <" + ДанныеЗаполнения.Наименование + ">";
		_Упаковка.Записать();
		
		_Упаковка = _Упаковка.Ссылка;
		
		строка_ТЧСостав = ТЧСостав.Добавить();
		строка_ТЧСостав.Упаковка 	= _Упаковка;
		строка_ТЧСостав.Кол 		= 1;
		
	Иначе
		
		глСообщить(ЭтотОбъект, "ЗаполнениеНаОсновании: неподдерживаемый тип данных заполнения - <" + Тип_ДанныеЗаполнения + ">.", СтатусСообщения.Важное);
		ДополнительныеСвойства.Вставить("ЕстьОшибкиПриОбработкеЗаполнения", Истина);
		
	КонецЕсли;
	
	
	////////////////////////////////////////////////////////////­//////////////////
	//Обработка реквизитов
		
	Если глПустоеЗначение(Код) Тогда
		УстановитьНовыйКод();
	КонецЕсли;
		
	ПроверитьЗависимыеРеквизиты();
	
КонецПроцедуры
Показать
7. user1008893 07.12.18 12:00 Сейчас в теме
Оставьте свое сообщение

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