Вход | Регистрация

1С:Предприятие ::

Метки: документы

Подчиненные документы

Я
   Андрюха
23.05.04 - 18:49
Мне нужно заполнить подчиненный документ (т.е. на первом документе нажимаю на кнопку, выходит второй документ, где некоторые поля заполняются с первого документа). На форумах прочитал, что есть предопределенная процедура ВводНаОсновании(...), например:

Процедура ВводНаОсновании(Докум)
    ДокОснование = Докум;
КонецПроцедуры


Вопрос: а как и где определяется переменная "Докум"?
 
  Рекламное место пустует
   skunk
 
1 - 23.05.04 - 19:06
ЖКК трудно полистать

Процедура ВводНаОсновании(<?>)
КонецПроцедуры
Procedure InputCausedBy(<?>)
EndProcedure
Синтаксис:
ВводНаОсновании(<ДокументОснование>)
Назначение:
Предопределенная процедура при интерактивном вводе нового документа на основании.
Параметры:
<ДокументОснование> - значение типа Документ.
Замечание:
Данная процедура может располагаться только в модуле формы документа.
Подробнее см. в документации, глава 'Системные предопределенные процедуры'
   mszsuz
 
2 - 23.05.04 - 19:31
Документ-основание передается третьим параметром в ОткрытьФорму(), н-р:
ОткрытьФорму("Документ.ПлатежноеПоручение",,ТекущийДокумент())
(понятно, что в этом случае док.-основание должен быть уже записан)
или
автоматически передается при нажатии кнопки "Ввод на основании" в Журналах.
   Андрюха
3 - 23.05.04 - 20:07
Я так и передаю через 
ОткрытьФорму("Документ.ПлатежноеПоручение",,ТекущийДокумент()),
но в поле куда должна записываться информация из первого документа, ничё автоматически не заносится. Тип поля Документ и именно тот с которого я хочу получить данные.
   Волшебник
 
5 - 23.05.04 - 20:47
Видимо документ-основание все-таки не записан.
   Андрюха
6 - 23.05.04 - 22:04
Я в 1С только начинаю писать... И мне не совсем понятно, что значит "документ-основание не записан". Он где-то должен программно записаться перед вызовом ВводНаОсновании()?
   SnarkHunter
 
7 - 23.05.04 - 22:13
Нет... Перед вызовом ОткрытьФорму...
   Андрюха
8 - 23.05.04 - 22:46
Перез вызовом ОткрытьФорму у меня идет следующих код:

ДокТест = СоздатьОбъект("Документ");   
ДокТест.ВыбратьПодчиненныеДокументы(,, ТекущийДокумент());
Если ДокТест.ПолучитьДокумент() = 1 Тогда
    НовыйДок = ДокТест.ТекущийДокумент();
    ОткрытьФорму(НовыйДок);
иначе
    ОткрытьФорму("Документ.Новый", ТекущийДокумент());
КонецЕсли;

...но всё равно в поля подчиненного документа ничё не пишется...
   SnarkHunter
 
9 - 23.05.04 - 22:59
Ты перед вызовом ОткрытьФорму() проверь записан ли текущий документ... Тебе  об этом все уши прожужжали... Напиши:
Если Выбран()=1 Тогда
  ...
 // Тут можешь свой кусок поместить

Иначе
  Сообщить("Меня зовут Ручник Тормозович...");
КонецЕсли;
   Волшебник
 
10 - 23.05.04 - 23:05
Если бы речь шла про восьмерку, я бы сказал, что в 8.0 есть процедура ОбработкаЗаполнения, которая должна располагаться в модуле объекта (справочника, документа). Не путайте с модулем формы.

Эта процедура срабатывает при вводе на основании.

Ввод на основании можно также вызвать программно методом Заполнить объекта типа СправочникОбъект и ДокументОбъект.
 
  Рекламное место пустует
   GrayT
 
11 - 23.05.04 - 23:54
+9 И еще одну запятую напиши. Впрочем об этом уже писали в 2, но в коде 8 ее нет


Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует