Имя: Пароль:
1C
1C 7.7
v7: Как создать и записать документ по образцу?
0 heap
 
07.10.11
10:32
Как создать и записать документ по образцу? Не хочется пореквизитно копировать заголовочную часть (много реквизитов). А вот конструкция:
   Док=СоздатьОбъект("Документ.РасходнаяНакладная");
   Док.Новый();
   Док=Образец;
   Док.Записать();
работать не желает, потому что видите ли "не выбран документ" ((
1 filh
 
07.10.11
10:33
и правильно!
2 filh
 
07.10.11
10:34
что есть Образец?
3 golden-pack
 
07.10.11
10:34
ЗаполнитьЗначенияСвойств
4 heap
 
07.10.11
10:34
Образец - это такой же (но другой) документ
5 Grusswelle
 
07.10.11
10:35
...но ход мыслей мне нравится...
6 filh
 
07.10.11
10:36
и есть в типовых:

//******************************************************************************
// глЗаполнитьШапкуНаОсн(Конт, ДокОсн,  ВидОперации = "")
//
// Параметры:
//    Конт - текущий контекст формы
//    ДокОсн - документ, на основании которого вводится новый документ
//  ВидОперации - необязаетельный, строка вида операции ("покупка" или "продажа"),
//                если не передан, то реквизиты, зависящие от вида операции, не заполняются
//
// Возвращаемое значение:
//    Нет
//
// Описание:
//    Процедура предназначена для заполнения общих реквизитов документов
//    Данная функция вызывается в предопределенных процедурах ВводНаОсновании() из
//    модулей форм всех документов. Процедура выполняет заполнение общих
//    реквизитов новых документов при вводе на основании.
//
7 filh
 
07.10.11
10:36
А в 8-ке это реализовано?
8 heap
 
07.10.11
10:37
(6) То есть просто так, как мне захотелось, не получится?
9 heap
 
07.10.11
10:40
Что интересно, так это то, что "Док" по образцу формируется так, как требуется (видно в отладчике), но дальше - абзац ((
10 Эльниньо
 
07.10.11
10:42
Для х = 1 По Метаданные.Документ(ВидДока).РеквизитШапки()  Цикл
   
КонецЦикла;
11 G-Re
 
07.10.11
10:46
(8) Получится вот так
   
   Док=СоздатьДокПоОбразцу(Образец);

Текст функции СоздатьДокПоОбразцу() может быть таким

Функция СоздатьДокПоОбразцу(пОбразец)
  ДР=СоздатьОбъект("Документ."+пОбразец.Вид());
  ДР.Новый();

Далее по метаданным - Общие реквизиты, реквизиты шапки, построчно реквизиты строки

  ДР.Записать();
  Возврат(ДР.ТекущийДокумент());
КонецФункции

Где-то так.
12 heap
 
07.10.11
10:52
Всем откликнувшимся спасибо за внимание!
13 heap
 
07.10.11
10:54
Если сегодня будет последним днем в моем жизни, буду ли я делать то, что запланировал на сегодня?

Так жить нельзя, сгорать - можно!
14 G-Re
 
07.10.11
10:57
(13) Самое смешное, что все, что происходит с нами, это и есть наша жизнь.
15 dk
 
07.10.11
10:58
с табличной частью попроще
Док1.ВыгрузитьТабличнуюЧасть(ВремТЗ);
Док2.ЗагрузитьТабличнуюЧасть(ВремТЗ);
А вообще в типовых должна быть процедурка для создания копии