Имя: Пароль:
1C
1C 7.7
v7: Создание документа из формы
,
0 namazi74
 
12.11.13
11:41
Есть необходимость создавать ПКО из формы Доверенности, с данными из доверенности. Пишу в модуле Доверенности:
Процедура ПКО()
    Док = СоздатьОбъект("Документ.ПриходныйОрдерТБ");
    Док.Новый();
    Док.Сумма = Сумма;
        Док.Фирма = Фирма;
    Док.ТипУчета = Общ;
    Док.НомерДок = НомерДок;
    Док.Записать();
    ОткрытьФорму(Док.ТекущийДокумент());
КонецПроцедуры

Всё заполняет, открывает, записывает. Но, при заполнении таких данных, как Контрагент, Торговый представитель, Договор и т.д. (те, которые берутся из справочников) поля на форме Доверенности остаются пустыми. Каким методом их заполнять?
Заполнять пытался вот так:
Док.ТорговыйПредставитель = ТорговыйПредставитель;
Док.Клиент = Клиент;

Даже, когда пишу Док.Клиент = "Тест"; поле остаётся пустым
1 zak555
 
12.11.13
11:43
1. не надо записать до того, как пользователь не подтвердит
2. в доверенности есть реквизиты ТорговыйПредставитель, Клиент ?
2 бомболюк
 
12.11.13
11:43
а там часом сначала тип значения не надо установить?
3 namazi74
 
12.11.13
11:45
(1) 1. Не провожу ведь
2. Естественно. Он и обычный текст "Тест" не записывает в поля
4 namazi74
 
12.11.13
11:46
(2) о каком типе идёт речь? поясните, пожалуйста
5 Ёпрст
 
12.11.13
11:46
(0) так, для начала

Процедура ПКО()
   // Док = СоздатьОбъект("Документ.ПриходныйОрдерТБ");
   // Док.Новый();
   // Док.Сумма = Сумма;
   //     Док.Фирма = Фирма;
   // Док.ТипУчета = Общ;
   // Док.НомерДок = НомерДок;
   // Док.Записать();
   Конт=""; ОткрытьФорму("Документ.ПриходныйОрдерТБ",Конт,ТекущийДокумент());
КонецПроцедуры
6 1dvd
 
12.11.13
11:47
(5) А потом смотреть процедуру ВводНаОсновании?
7 бомболюк
 
12.11.13
11:48
(4) не очень то я помню 7-ку, но там вроде, если реквизит типа "Справочник", например, надо устанавливать тип реквизита формы. Команду не помню, но это, еще раз, только если вид реквизита не определен.
8 Chum
 
12.11.13
11:48
(0) а тип данных там случайно не неопределенный? или, например, справочник, но неопределенного вида?
Если так, тогда нужно поле типизировать, потом присваивать значение.
9 zak555
 
12.11.13
11:49
(5) это при условии, что пко записан
10 Ёпрст
 
12.11.13
11:52
(6) ну , наверняка она у него есть
11 Ёпрст
 
12.11.13
11:53
(9) разумеется, там еще можно кучу условий понапихать
12 Гефест
 
12.11.13
11:56
Судя по Док.Клиент = "Тест" он еще с типами данных не разобрался, ваши советы преждевременны
13 namazi74
 
21.11.13
07:34
UP

Процедура ПКО()
Конт="";
ОткрытьФорму("Документ.ПриходныйОрдерТБ",Конт,ТекущийДокумент());
Конт.Основание = "Доверенность №" + СокрЛП(НомерДок)+" от"+Строка(ДатаДок);
Конт.Форма.Обновить();
КонецПроцедуры

После заполнения полей доверенности и её записи, нажимаю на кнопку и выдает сообщение: Документ "ПКО" нельзя проводить на основании документа "Доверенность".

Что необходимо прописать в ПКО или как по другому можно заполнять ПКО?
14 KRV
 
21.11.13
07:40
поставить одну галочку - про ввод на основании
15 namazi74
 
21.11.13
07:43
(14) Подскажите пожалуйста. В конфигураторе, через Мастер ввода на основании, документ Доверенность не показывается.
16 1dvd
 
21.11.13
07:47
(15) нажми на зеленый карандаш возле вводится на основании
17 1dvd
 
21.11.13
07:48
(16) сторно. Думал снеговик
18 Mikeware
 
21.11.13
08:12
а что, программиста у вас нет?
19 namazi74
 
21.11.13
09:03
спасибо за помощь и за критику. Нашёл где проставлять галочку - в конфигураторе на форме документа кнопка Ввод на оснвоании. Код с модуля ПКО:
Процедура ВводНаОсновании(ДокОснование)
Если ДокВид = "Доверенность" Тогда
Валюта= Рубли;
ВидОплаты = Перечисление.ВидыОплаты.Оплата;
Сумма = ДокОснование.Сумма;
ТипУчета = Общ;
НомерДок = ДокОснование.НомерДок;
Договор = Клиент.ОсновнойДоговорТорг;
20 big
 
21.11.13
10:01
Адепты снеговика, не надо гадить в мозг автора, если уже не помните чего и как в клюшках делается )))
Основная теорема систематики: Новые системы плодят новые проблемы.