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

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 Сейчас в теме
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)