Имя: Пароль:
1C
1С v8
ПараметрОснование при создании документа
0 Дядя Вова
 
02.12.11
11:58
Такой вопрос: создаю внешней обработкой новый документ, все бы хорошо, но у этого документа в ПриОткрытии() есть строчка:
Если НЕ ЗначениеЗаполнено(ПараметрОснование) Тогда
бла-бла-бла
...
Что это блин за ПараметрОснование? В реквизитах его нету. Главное при ручном вводе на основании - он равен документу-основанию, а при программном - пустой! У документа есть реквизит Сделка - он и заполняется ссылкой на основание - его я передаю.
Возможно ли как то обойти условие с "бла-бла-бла" без внесения изменений в саму конфу?
Да, УТ 8.1.
1 Джинн
 
02.12.11
12:01
Вероятно имелось в виду Параметр.Основание :)

Это в параметрах, передаваемых в форму при открытии.
2 Дядя Вова
 
02.12.11
12:01
Забыл. Вопрос решается если перед открытием - записать документ. Но если пользователь закроет документ без проведения - он так и останется болтатся в базе.
Это не подходит
3 Джинн
 
02.12.11
12:04
Как ты передаешь параметр Сделка? Кусок кода можно?
4 Дядя Вова
 
02.12.11
12:06
(3)
НовыйДокументПоступления=Документы.ПоступлениеТоваровУслуг.СоздатьДокумент;
...
НовыйДокументПоступления.Сделка = ЗаказПоставщику; где ЗаказПоставщику это ссылка на док основания
...
ФормаДокумента = НовыйДокументПоступления.ПолучитьФорму();
ФормаДокумента.Открыть();
5 Джинн
 
02.12.11
12:09
Вот почти живой кусок кода:

ПараметрыФормы = Новый Структура();
ПараметрыФормы.Вставить("Основание", ТипоСсылкаНаОснование);
Форма = ПолучитьФорму("Документ.БлаБлаБла.ФормаОбъекта", ПараметрыФормы);
Форма.ОткрытьМодально();


Дальше все отрабатывает штатно - переход в ОбработкаЗаполнения объекта.
6 Джинн
 
02.12.11
12:10
Само по себе присвоение реквизиту значения вы вызывает ОбработкуЗаполнения.  А вот передача в форму параметра "Основание" вызывает ее аналогично вводу на основании.
7 Джинн
 
02.12.11
12:11
(6) Млин, читать "не вызывает". Хреново с температурой работать :(
8 Дядя Вова
 
02.12.11
12:13
Спасибо, всё заработало!
2 + 2 = 3.9999999999999999999999999999999...