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