Нужна помощь с общим модулем

1. Jebick 23.08.24 17:21 Сейчас в теме
В Конфигурации есть 3 документа: Перемещение товаров, Реализация товаров, Списание товаров. Нужно програмно создать на форме документа Кнопку, при нажатии которой откроется обработка, в которой пользователь выбирает счета, после закрытия формы табличная часть "Товары" заполняется всеми имеющимися товарами по выбранным счетам. Но поскольку документов 3 - создание кнопки нужно организовать в общем модуле.
Так реализовано создание кнопки на форме документа.
	
       НоваяКоманда = Объект.Команды.Добавить("Подключаемый_ОстаткиТоваров1");
	НоваяКоманда.Действие = "Подключаемый_ОстаткиТоваров1";
	НоваяКоманда.Заголовок = "Остатки товаров";
	НоваяКоманда.ИзменяетСохраняемыеДанные = Ложь;
	НоваяКоманда.Отображение = ОтображениеКнопки.Авто;
	НоваяКоманда.Подсказка = "Остатки товаров"; 
	
	НовыйЭлемент = Объект.Элементы.Вставить("ТоварыОстаткиТоваров",Тип("КнопкаФормы"),Неопределено,Объект.Элементы.ГруппаСтраницы);
	НовыйЭлемент.Заголовок = "Все материалы";
	НовыйЭлемент.ИмяКоманды = "Подключаемый_ОстаткиТоваров1"; 
Показать


Так реализовано заполнение на форме
&НаСервере
Процедура ОстаткиТоваровНаСервере(АдресПодобранныхСчетовВХранилище)   
	
	Получка = ПолучитьИзВременногоХранилища(АдресПодобранныхСчетовВХранилище);
		
	Объект.Товары.Очистить();
	
	Запрос = Новый Запрос;	
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ХозрасчетныйОстатки.Счет КАК СчетУчета,
	|	ХозрасчетныйОстатки.Счет КАК НовыйСчетУчета,
	|	ХозрасчетныйОстатки.КоличествоОстаток КАК Количество,
	|	ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
	|	ХозрасчетныйОстатки.Субконто2 КАК Субконто2,
	|	ХозрасчетныйОстатки.Субконто3 КАК Субконто3
	|ИЗ
	|	РегистрБухгалтерии.Хозрасчетный.Остатки(
	|			&МоментВремени,
	|			Счет В ИЕРАРХИИ (&Счет),
	|			&МассивСубконто,
	|			Организация = &Организация
	|				И Субконто3 = &Субконто3) КАК ХозрасчетныйОстатки
	|
	|УПОРЯДОЧИТЬ ПО
	|	Счет";
	
	МассивСубконто = Новый Массив();
	МассивСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура);
	МассивСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Партии);
	МассивСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады);
	     
	Запрос.УстановитьПараметр("МассивСубконто", МассивСубконто);
	Запрос.УстановитьПараметр("МоментВремени", Объект.Ссылка.МоментВремени());   
	Запрос.УстановитьПараметр("Организация", Объект.Организация);
	Запрос.УстановитьПараметр("Субконто3", Объект.СкладОтправитель);
	Запрос.УстановитьПараметр("Счет", Получка);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	Выборка = РезультатЗапроса.Выбрать();
	
	СтруктураПараметров = Новый Структура("Номенклатура, Количество,
	|ТипСкладаОтправитель, ТипСкладаПолучатель, ТипЦенСкладОтправитель, ТипЦенСкладПолучатель,
	|РазделятьПоСтавкамНДС, Дата, Организация, УчетВПродажныхЦенах, СкладОтправитель, СкладПолучатель, СтранаВвоза, СтранаПроисхождения");
	
	ЗаполнитьЗначенияСвойств(СтруктураПараметров, ЭтаФорма);
	ЗаполнитьЗначенияСвойств(СтруктураПараметров, Объект);   
	
	Пока Выборка.Следующий() Цикл
		
		НоваяСтрока = Объект.Товары.Добавить(); 
		ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
		
		ЗаполнитьЗначенияСвойств(СтруктураПараметров, НоваяСтрока);

		ДанныеНоменклатуры = ПолучитьДанныеТоварыНоменклатураПриИзменении(СтруктураПараметров);
		// {{ Локализация_БухгалтерияДляБеларуси
		ЗаполнитьGTINНоменклатуры(НоваяСтрока.Номенклатура, ДанныеНоменклатуры);
		//  Локализация_БухгалтерияДляБеларуси }}
		ЗаполнитьЗначенияСвойств(НоваяСтрока, ДанныеНоменклатуры, , "СчетУчета, НовыйСчетУчета");
			
	КонецЦикла; 
	
КонецПроцедуры

&НаКлиенте
Процедура ОстаткиТоваров(Команда, Получка) 
	
	Оповещение = Новый ОписаниеОповещения("ВыполнитьВыбор", ЭтотОбъект);	
	ОткрытьФорму("Обработка.ПодборСчета.Форма.Форма",Получка ,
	ЭтаФорма, УникальныйИдентификатор,,,Оповещение);
	
КонецПроцедуры 

&НаКлиенте
Процедура ВыполнитьВыбор(АдресПодобранныхСчетовВХранилище, ДопПараметры) Экспорт
	
	Если НЕ ПолучитьИзВременногоХранилища(АдресПодобранныхСчетовВХранилище) = Неопределено Тогда
		
		ОстаткиТоваровНаСервере(АдресПодобранныхСчетовВХранилище);
		
	КонецЕсли; 
	
 КонецПроцедуры

Показать


Помогите пожалуйста реализовать это при помощи общего модуля.
По теме из базы знаний
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
Оставьте свое сообщение

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