Заполнение табличной части документы по данным выбора

1. Natalito 25.04.19 11:26 Сейчас в теме
Здравствуйте. Как в управляемом приложении 1с 8.3 реализовать следующее. Есть обработка заполнения табличной части документа, внешняя. При нажатии заполнить нужно открывать форму выбора и после выбора, получать ссыклу на данный документ. Прошу помочь знающих, спасибо!
adhocprog; +1 Ответить
По теме из базы знаний
Найденные решения
14. Pavel Rodinchenko 25.04.19 12:12 Сейчас в теме
(10)Например вот так

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


// новая процедура
&НаКлиенте
Процедура ВыборДокументаПТиУ(РезультатВыбора, ДополнительныеПараметры) Экспорт
//РезультатВыбора - выбранный документ
КонецПроцедуры
adhocprog; +1 Ответить
16. Natalito 25.04.19 12:23 Сейчас в теме
(14)спасибо. именно так и сделала.

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

&НаКлиенте
Процедура ВыборПоступленияЗавершение(Результат, Параметры) Экспорт
	Если Не Результат = Неопределено Тогда
		СсылкаНаПТиУ = 	Результат;
	КонецЕсли;
	
	ОбъектДляЗаполнения = ВладелецФормы.Объект;
	ОбъектДляЗаполнения = ВыполнитьЗаполнениеНаСервере(ОбъектДляЗаполнения,СсылкаНаПТиУ);
	КопироватьДанныеФормы(ОбъектДляЗаполнения, ВладелецФормы.Объект);
	
КонецПроцедуры
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
9. Pavel Rodinchenko 25.04.19 12:02 Сейчас в теме
(1)РезультатВыбора = ОткрытьФормуМодально("Документ.ПоступлениеТоваровУслуг.ФормаВыбора");
РезультатВыбора и будет ссылкой на выбранный документ
10. Natalito 25.04.19 12:07 Сейчас в теме
(9)
ОткрытьФормуМодально("Документ.ПоступлениеТоваровУслуг.ФормаВыбора")


Спасибо! Да, так работает, но возникает ошибка внизу на модальность. Как от нее избавиться?
11. Pavel Rodinchenko 25.04.19 12:08 Сейчас в теме
(10)Ну либо разрешить использовать модальные окна, либо другой вариант решения)
12. Natalito 25.04.19 12:11 Сейчас в теме
(11)ну конфа типовая, открывать ее не хочется. как еще можно тогда получить ссылку?
15. ksen 25.04.19 12:13 Сейчас в теме
(12)Можно разделить процедуру на 2 куска, погуглите ошибку модальности, в самой конфе если полазить можно легко найти пример(название функции, названиефункциипродолжение)
14. Pavel Rodinchenko 25.04.19 12:12 Сейчас в теме
(10)Например вот так

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


// новая процедура
&НаКлиенте
Процедура ВыборДокументаПТиУ(РезультатВыбора, ДополнительныеПараметры) Экспорт
//РезультатВыбора - выбранный документ
КонецПроцедуры
adhocprog; +1 Ответить
16. Natalito 25.04.19 12:23 Сейчас в теме
(14)спасибо. именно так и сделала.

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

&НаКлиенте
Процедура ВыборПоступленияЗавершение(Результат, Параметры) Экспорт
	Если Не Результат = Неопределено Тогда
		СсылкаНаПТиУ = 	Результат;
	КонецЕсли;
	
	ОбъектДляЗаполнения = ВладелецФормы.Объект;
	ОбъектДляЗаполнения = ВыполнитьЗаполнениеНаСервере(ОбъектДляЗаполнения,СсылкаНаПТиУ);
	КопироватьДанныеФормы(ОбъектДляЗаполнения, ВладелецФормы.Объект);
	
КонецПроцедуры
Показать
2. Natalito 25.04.19 11:27 Сейчас в теме
Вот код

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

Процедура ОбработкаВыбора(ВыбранноеЗначение)
	
КонецПроцедуры;

&НаСервере
Функция ВыполнитьЗаполнениеНаСервере(ОбъектЗаполнения,Док)
    ЗапросДанных    = Новый Запрос(
"ВЫБРАТЬ
|	ПриобретениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
|    &СтатьяКалькуляции КАК СтатьяКалькуляции,
|    &ДатаРасхода КАК ДатаРасхода,
|	ПриобретениеТоваровУслугТовары.Количество КАК Количество,
|	ПриобретениеТоваровУслугТовары.Количество КАК КоличествоУпаковок
|ИЗ
|	Документ.ПриобретениеТоваровУслуг.Товары КАК ПриобретениеТоваровУслугТовары
|ГДЕ
|	ПриобретениеТоваровУслугТовары.Ссылка = &Ссылка");
	
	ЗапросДанных.УстановитьПараметр("Ссылка",           Док);
    ЗапросДанных.УстановитьПараметр("СтатьяКалькуляции",Справочники.СтатьиКалькуляции.НайтиПоНаименованию("Материалы"));
    ЗапросДанных.УстановитьПараметр("ДатаРасхода",      КонецМесяца(ОбъектЗаполнения.Ссылка.Дата));
 
    ОбъектЗаполнения.РасходМатериаловИРабот.Загрузить(ЗапросДанных.Выполнить().Выгрузить());
     
    Возврат ОбъектЗаполнения;
КонецФункции
Показать
3. Natalito 25.04.19 11:28 Сейчас в теме
Насколько я поняла, надо действовать через ОбработкуВыбора. Но никак не пойму как применить.
4. ksen 25.04.19 11:39 Сейчас в теме
Не совсем уверен, но разве не просто ссылка=ВладелецФормы.Объект.Ссылка
5. Natalito 25.04.19 11:41 Сейчас в теме
(4)
ВладелецФормы.Объект.Ссылка


Так?
  СсылкаНаПТиУ = ФормаПТиУ.ВладелецФормы.Объект.Ссылка;
6. ksen 25.04.19 11:42 Сейчас в теме
(5)На что именно нужна ссылка? на выбранный документ из формы подбора?
7. Natalito 25.04.19 11:43 Сейчас в теме
(6) Да, на выбранный документ.
8. ksen 25.04.19 12:00 Сейчас в теме
(7)Попробуйте ссылка = ФормаПТиУ.Открыть();
13. Natalito 25.04.19 12:11 Сейчас в теме
(8)так пишет, что попытка использовать процедуру как функцию.
17. TrofimovOK 25.04.19 16:26 Сейчас в теме
(13) Такой пример использовался при модальном открытии окна.

Ниже пример кода для выбора в УФ без модальности.

&НаКлиенте
Процедура Выбрать(Команда)
	
	ОписаниеОповещенияОЗакрытии = Новый ОписаниеОповещения("ФормаВыбораОкончание", ЭтаФорма);
	
	ОткрытьФорму("Справочник.Контрагенты.ФормаВыбора", , ЭтаФорма, , , , ОписаниеОповещенияОЗакрытии, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
	
КонецПроцедуры

&НаКлиенте
Процедура ФормаВыбораОкончание(Результат, ДополнительныеПараметры) Экспорт 

	Если Результат = Неопределено Тогда
        Возврат;
    КонецЕсли;
	
	// Получаем выбранное значение. 
    Контрагент = Результат;		

КонецПроцедуры // ФормаВыбораОкончание()
Показать
Оставьте свое сообщение

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