|
УФ. Заполнение и вывод документа из внешней обработки. | ☑ | ||
---|---|---|---|---|
0
Никулин Леонид
30.04.15
✎
16:07
|
Здравствуйте!
Необходимо создать, заполнить и вывести на форму документ (Поступление) в БП3.0 Все это происходит во внешнем отчете. Предвижу пожелания доброжелателей и добавлю, что такова задача. Формировать отчет и из данных создавать документы. Проблема в том, что перед открытием запускаются процедуры заполнения документа и я попадаю модуль объекта, где ЭтотОбъект (ДокументОбъект) оказывается пустой(( |
|||
1
Никулин Леонид
30.04.15
✎
16:09
|
&НаКлиенте
Процедура СформироватьПоступление(Команда) Форма = ПолучитьФорму("Документ.ПоступлениеТоваровУслуг.ФормаОбъекта"); ДанныеФормы = Форма.Объект; ЗаполнитьДокументНаСервере(ДанныеФормы); КопироватьДанныеФормы(ДанныеФормы, Форма.Объект); Форма.Открыть(); КонецПроцедуры &НаСервере Процедура ЗаполнитьДокументНаСервере(ДанныеФормы) ОбработкаОбъект = РеквизитФормыВЗначение("Отчет"); ДокументОбъект = ОбработкаОбъект.ФормированиеДокумента(); // Здесь ДокументОбъект заполнен. Все ок ЗначениеВДанныеФормы(ДокументОбъект,ДанныеФормы); КонецПроцедуры |
|||
2
Никулин Леонид
30.04.15
✎
16:16
|
up.
|
|||
3
Никулин Леонид
30.04.15
✎
16:18
|
или если кто знает где можно в БП3.0 подсмотеть при нажатии на кнопочку (не из контекста самого документа) формирование документа
|
|||
4
sapphire
30.04.15
✎
16:20
|
(0)
Сначала создаете документ, потом заполняете, потом уже открываете. |
|||
5
Никулин Леонид
30.04.15
✎
16:22
|
(4) спс!
|
|||
6
VikingKosmo
30.04.15
✎
16:26
|
За
Форма = ПолучитьФорму("Документ.ПоступлениеТоваровУслуг.ФормаОбъекта") и тому подобное в УФ принято отрубывать руки |
|||
7
Никулин Леонид
04.05.15
✎
17:44
|
Не выходит сделать. Ветка актуальна. Возможно кто-нибудь из талантливых будет проходить мимо? Заходим, комментируем))
|
|||
8
Любопытная
04.05.15
✎
17:46
|
(7) А что конкретно не выходит?
|
|||
9
Никулин Леонид
04.05.15
✎
17:47
|
Вот последняя редакция
&НаКлиенте Процедура тут(Команда) Форма = ПолучитьФорму("Документ.ПоступлениеТоваровУслуг.ФормаОбъекта"); ДанныеФормы = Форма.Объект; ДанныеФормы = Заполнить(ДанныеФормы); КопироватьДанныеФормы(ДанныеФормы, Форма.Объект); Форма.Открыть(); КонецПроцедуры &НаСервере Функция Заполнить(ДанныеФормы) ДанныеОбъекта = ДанныеФормыВЗначение(ДанныеФормы, Тип("ДокументОбъект.ПоступлениеТоваровУслуг")); ДанныеОбъекта.Склад = Справочники.Склады.НайтиПоКоду("00000001"); ЗначениеВДанныеФормы(ДанныеОбъекта, ДанныеФормы); Возврат ДанныеФормы; КонецФункции |
|||
10
Любопытная
04.05.15
✎
17:50
|
(9) Что-то вы не то делаете. Надо создать документ, заполнить его, а потом уже его открывать
|
|||
11
Никулин Леонид
04.05.15
✎
17:50
|
Открывается форма документа, но Склад не заполнен((. Если посмотреть на него отладчиком, то все ок. Но после моей обработки запускаются события при открытии. И в ОбработкеЗаполнения Склад у ЭтотОбъект уже пустой
|
|||
12
Никулин Леонид
04.05.15
✎
17:51
|
Крайне желательно не вносить в конфигурацию изменения.
|
|||
13
Любопытная
04.05.15
✎
17:53
|
Ну не вносите
|
|||
14
Никулин Леонид
04.05.15
✎
17:53
|
А как? Через Документы.ПоступлениеТоваровУслуг.СоздатьДокумент()
? |
|||
15
Никулин Леонид
04.05.15
✎
17:56
|
Ща напишу что получилось...
|
|||
16
Никулин Леонид
04.05.15
✎
18:02
|
&НаКлиенте
Процедура СоздатьДокумент(Команда) ОткрытьЗначение(СоздатьДокументНаСервере().Ссылка); КонецПроцедуры &НаСервере Функция СоздатьДокументНаСервере(); ДокументОбъект = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент(); ДокументОбъект.Склад = Справочники.Склады.НайтиПоКоду("00000001"); Возврат ДокументОбъект; КонецФункции |
|||
17
Никулин Леонид
04.05.15
✎
18:03
|
Так не работает. Подправьте, умные люди. Ну или подскажите куда подумать
|
|||
18
Никулин Леонид
04.05.15
✎
18:14
|
Так тоже фигня получается. Склад пустой. Да, кстати не сказал, что это БП3.0.38.54 интерфейс Такси
&НаКлиенте Процедура СоздатьДокумент(Команда) Форма = ПолучитьФорму("Документ.ПоступлениеТоваровУслуг.ФормаОбъекта"); ДанныеФормы = Форма.Объект; ДанныеФормы = СоздатьДокументНаСервере(ДанныеФормы); КопироватьДанныеФормы(ДанныеФормы, Форма.Объект); Форма.Открыть(); КонецПроцедуры &НаСервере Функция СоздатьДокументНаСервере(ДанныеФормы); ДокументОбъект = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент(); ДокументОбъект.Склад = Справочники.Склады.НайтиПоКоду("00000001"); ЗначениеВДанныеФормы(ДокументОбъект,ДанныеФормы); Возврат ДанныеФормы; КонецФункции |
|||
19
GROOVY
04.05.15
✎
18:18
|
Передавай склад как параметр заполнения в открываемую форму.
|
|||
20
Никулин Леонид
04.05.15
✎
18:24
|
GROOVY я об этом думал. Возможно что-то упустил. У документа ПоступлениеТоваровУслуг есть ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка), но она не Экспортная. Я до параметра ДанныеЗаполнения из внешней обработки не могу достучаться. Возможно это нужно делать как-то иначе?
Черканите строчечку кода. |
|||
21
Никулин Леонид
04.05.15
✎
18:31
|
up.
|
|||
22
Никулин Леонид
04.05.15
✎
18:53
|
up.up.
|
|||
23
GROOVY
04.05.15
✎
19:01
|
В метод ОткрытьФорму/ПолучитьФорму нужно передать коллекцию параметров, если не ошибаюсь вторым параметром.
|
|||
24
Никулин Леонид
04.05.15
✎
19:06
|
(23)спс! Да, ПолучитьФорму. Я нашел. Пробую. Пока безрезультатно))
|
|||
25
ИсчадиеADO
04.05.15
✎
19:10
|
(24) у мну твоим кодом все получилось из (18). В БП 3.0 единственное ты не ту форму берешь
|
|||
26
ИсчадиеADO
04.05.15
✎
19:11
|
т.е. в док-те Поступление товаров услуг, форма документа - это форма выбора вида операции тупо. там объекта нет
|
|||
27
ИсчадиеADO
04.05.15
✎
19:12
|
(19) а если ему ТЧ заполнить нужно, он тоже параметрами передавать будет?
|
|||
28
ИсчадиеADO
04.05.15
✎
19:16
|
(27) +на складе кстати не стоит флага "заполнять из данных заполнения"
|
|||
29
Никулин Леонид
04.05.15
✎
19:18
|
(25) минуту...
|
|||
34
Никулин Леонид
04.05.15
✎
19:23
|
Вам смешно, а меня разрывает. Если я скажу сколько я потратил времени на
Форма = ПолучитьФорму("Документ.ПоступлениеТоваровУслуг.Форма.ФормаДокументаТовары"); Вам станет еще смешнее. |
|||
36
ИсчадиеADO
04.05.15
✎
19:25
|
(34) получилось?
|
|||
38
Никулин Леонид
04.05.15
✎
19:27
|
Ув. участники ветки благодарю всех за участие. В особенности GROOVY и ИсчадиеADO за конструктивные комментарии. Да. Это было фееричное решение! Код заблестал красотой и изяществом
|
|||
39
ИсчадиеADO
04.05.15
✎
19:28
|
(38) странно что сам не заметил, у тебя ошибку должно было выдать, когда ты к Форма.Объект обращался... Ну пожалуйста
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |