Имя: Пароль:
1C
1С v8
Ввод на основании при соблюдении условий
0 AmateR
 
25.07.12
22:55
Если сумма документа больше 10000, то на основании этого документа должна создаваться заявка. У меня получилось следующее:

&НаКлиенте
Процедура СуммаДокументаПриИзменении(Элемент)
   Если Объект.СуммаДокумента > 10000 тогда
       
           НоваяЗаявка = СоздатьНовыйДокумент();
           
       КонецЕсли;
   КонецЕсли;
КонецПроцедуры

&НаСервере
Функция СоздатьНовыйДокумент()
   НовыйДокумент = Документы.Заявка.СоздатьДокумент();
   НовыйДокумент.Заполнить(Объект.Ссылка);
   
   ФормаДок = НовыйДокумент.ПолучитьФорму("ОсновнаяФорма");
   ФормаДок.ПараметрОснование = Объект.Ссылка;
   ФормаДок.Открыть();
           
КонецФункции;

Какие возникли проблемы:
1. Открывается форма, но почему то не основная форма документа, а созданная по умолчанию
2. Данная форма заполняется на основании верно, но редактирование запрещено, так же как и проведение документа.

В чем может быть загвоздка?
1 fimanich
 
25.07.12
23:35
(0) ФормаДок.ПараметрОснование - это предопределенное свойство формы, что ли?
Ты же программно создаешь, зачем тебе это свойство устанавливать? У тебя д.б. реквизит свой ДокОснование, его и заполняй.
У меня сейчас СП нет под рукой (украли), но надо не Документ.ПолучитьФорму(), а сразу ПолучитьФорму(), и вроде есть ОткрытьФорму(), а еще есть ОткрытьЗначение()
2 AmateR
 
26.07.12
00:01
Сделал немного по другому - воспользовался стандартной обработкой, но при создании документа на основании проверял сумму документа основания. Если не удовлетворяет условию выдаю сообщение и не создаю документ.
3 Armando
 
26.07.12
00:10
Да, это делается в обработке заполнения. Для отказа вызывается исключение.