|
Заполнение документа на основании другого документа через внешние обработки | ☑ | ||
---|---|---|---|---|
0
sbabay
24.10.14
✎
10:58
|
Как правильно делать заполнение открытого документа на основании другого ,выбираемого интерактивно, документа? Конфигурация "Бухгалтерия 3.0".
Как я понял, если в ф-ии "СведенияОВнешнейОбработке" использование команды поставить ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыЗаполнениеФормы(); то вызывается код, расположенный в модуле внешней обработки ("ВыполнитьКоманду"), т.е. не будет возможности выбрать документ-основание. Открывать форму внешней обработки, где будет один реквизит с документом-основанием и кнопкой "заполнить" - тоже не хочется. Остается один вариант: поставить "использование" = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовКлиентскогоМетода() и уже в модуле формы обработки на клиенте писать все в "ВыполнитьКоманду". Так? Или я не до конца понял механизмы БСП? |
|||
1
sbabay
24.10.14
✎
11:53
|
Неужели никто такое не делал?
|
|||
2
sbabay
24.10.14
✎
15:14
|
эх
|
|||
3
ssh2QQ6
24.10.14
✎
15:16
|
Метод Заполнить(Основание) есть
|
|||
4
sbabay
24.10.14
✎
15:32
|
Я встраиваюсь через механизм внешних отчетов и обработок.
Для пользователя все выглядит примерно так: 1. Жмакает "Заполнить" и там выбирает нужный пункт 2. Далее открывается форма выбора документа-основания. Выбирает 3. Заполняется тч приемника по тч основания. Желательно без сохранения результата. Почему сделано так, а не через обработку заполнения - не спрашивайте |
|||
5
sbabay
24.10.14
✎
15:35
|
Я вообще хочу понять как надо заполнять форму. Передавать ее с сервера на клиент нельзя. Но выбрать источник мне надо до заполнения, поэтому вызов методов модуля обработки сразу из документа-приемника не катит.
|
|||
6
Жан Пердежон
24.10.14
✎
15:37
|
надо "Открывать форму внешней обработки"
и в ПриОткрытии() писать код |
|||
7
sbabay
24.10.14
✎
15:38
|
Но реквизиты источника мне доступны только на сервере, поэтому его надо будет вызывать, но туда я уже не передам форму владельца (форму документа)
|
|||
8
sbabay
24.10.14
✎
15:39
|
(6) ну и как бы писать в ПриОткрытии не надо. Надо в "ВыполнитьКоманду"
|
|||
9
Жан Пердежон
24.10.14
✎
15:41
|
(8) да, по сути тоже самое
|
|||
10
sbabay
24.10.14
✎
15:48
|
(9) по БСП не тоже самое.
Ну и самое главное - не прокатит |
|||
11
sbabay
24.10.14
✎
16:27
|
В общем нашел способ, который мне кажется должен называться "через одно место", но как сделать по-ругому я пока не знаю. Оставлю здесь для потомков. А вдруг и гуру какие прибегут и поправят
В модуле формы обработки пишем так: &НаКлиенте Процедура ВыполнитьКоманду(ИмяКоманды, ОбъектыНазначения) Экспорт ВыбранныйДокументОснование = ОткрытьФормуМодально("Документ.ПередачаОС.ФормаВыбора",,ЭтаФорма); Если не ЗначениеЗаполнено(ВыбранныйДокументОснование) Тогда Возврат; КонецЕсли; ОбъектВладельца = ВладелецФормы.Объект; ЗаполнитьТЧ(ОбъектВладельца, ВыбранныйДокументОснование); Для каждого СтрокаОбъекта Из ОбъектВладельца.ТабЧасть Цикл НоваяСтрока = ВладелецФормы.Объект.ТабЧасть.добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаОбъекта); КонецЦикла; ВладелецФормы.Модифицированность = Истина; КонецПроцедуры &НаСервере Функция ЗаполнитьТЧОС(ПриемникДанныеФормы, ИсточникСсылка) Основание = ИсточникСсылка; Для Каждого СтрокаОснования Из Основание.ОС Цикл НоваяСтрока = ПриемникДанныеФормы.ТабЧасть.добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаОснования); КонецЦикла; КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |