Имя: Пароль:
1C
1С v8
Программный "Ввод на основании"
0 romanыч
 
26.01.14
18:50
Есть внешняя обработка, на основании ее данных нужно создать документ, заполнить табличную часть и открыть форму документа, не записывая его. Что-то наподобии ВВода на основании. Как такое реализовать, не меняя конфигурации?
1 ilyavorobyev
 
26.01.14
18:56
(0) поменяй обработку, включи туда создание документа через Документы.Блабла.СоздатьДокумент()
2 ilyavorobyev
 
26.01.14
18:56
(0) ну и в конце ТвойДокумент.ОткрытьФорму() вроде так
3 jsmith82
 
26.01.14
18:57
а в чём сложность?
4 jsmith82
 
26.01.14
18:58
вам (1) и (2) в голову приходило?
5 GROOVY
 
26.01.14
18:59
(1)(2) Не нужно учить людей делать криво.

(0) У объектов есть событие "Заполнение"
В метод глобального контекста ОткрытьФорму можно передать данные заполнения.
6 jsmith82
 
26.01.14
19:06
(5) помню.. только никогда этим не пользовался
7 jsmith82
 
26.01.14
19:07
(5) щас корешок на твоих курсах поднимается. говорит, ничего лучше не встречал )
8 GROOVY
 
26.01.14
19:10
(7) Спасибо.
9 romanыч
 
26.01.14
20:23
Забыл сказать что на управляемых формах.
(5) Что-то не получается. Делаю так:

Процедура ЗаполнитьЗаказ(Команда)
    ОткрытьФорму("Документ.ор_ЗаказПокупателя.Форма.ФормаДокумента", Новый Структура("ДанныеЗаполнения", Новый Структура("Контрагент", НайтиКонтрагента()) ));
КонецПроцедуры


&НаСервере
Функция  НайтиКонтрагента()
    Возврат Справочники.Контрагенты.НайтиПОНаименованию("Розничный покупатель");
КонецФункции

Открывается пустая форма. Не могли бы подсказать, что делаю не так?
10 romanыч
 
26.01.14
20:28
Для упрощения сделал так:
ОткрытьФорму("Документ.ор_ЗаказПокупателя.Форма.ФормаДокумента", Новый Структура("ДанныеЗаполнения", Новый Структура("Комментарий", "123") ));
Результат тот же.
11 Поpyчик-4
 
26.01.14
20:47
(10) Примеры программного ввода на основании
http://infostart.ru/public/83963/
http://infostart.ru/public/83248/
http://infostart.ru/public/141777/
12 Поpyчик-4
 
26.01.14
22:34
(10) Передача значений в реквизиты через ДанныеЗаполнения работает только в том случае, если у реквизита установлен соответствующий флаг или в обработке заполнения объекта предусмотрен алгоритм.
13 Поpyчик-4
 
26.01.14
22:39
ДанныеЗаполнения - ЗначенияЗаполнения
ПараметрыФормы = Новый Структура("ЗначенияЗаполнения",ЗначенияЗаполнения);
14 romanыч
 
27.01.14
16:27
(12) Спасибо за подсказку, действительно, флаг у реквизитов не  установлен, и процедурой заполнения не предусмотрено заполнение нужных мне реквизитов. Вашим способом получилось.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан