бухгалтерия 8.1.15.14 копирование табличной части документа в только что созданный док

Новая тема
"Вообщем есть документ у него табличная часть (деятельность) при проведении этого документа должен создаться документ с такойже табличной частью как и у исходного вот код


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

НОС = Документы.ЗадачаДействияAleX;
НОС = НО.Ссылка.ПолучитьОбъект();


Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
 | ЗадачаДействияAleXДеятельность.Вид,
 | ЗадачаДействияAleXДеятельность.Вид.Наименование
 |ИЗ
 | Документ.ЗадачаДействияAleX.Деятельность КАК ЗадачаДействияAleXДеятельность
 |ГДЕ
 | ЗадачаДействияAleXДеятельность.Ссылка.Ссылка = &Док
 |
 |УПОРЯДОЧИТЬ ПО
 | ЗадачаДействияAleXДеятельность.Ссылка.Номер";
Запрос.УстановитьПараметр("Док",ЭтотОбъект.Ссылка);
РезультатЗапроса = Запрос.Выполнить();
Строки = РезультатЗапроса.Выбрать();

Пока Строки.Следующий() Цикл
НС = НОС.Деятельность.Добавить();

НС.Вид = Строки.Вид.Наименование;
   
КонецЦикла;

вот вместо того чтобы создать записи в ТЧ нового документа создаёт два документа.скажите где ошибка?  
"
"А зачем эти 2 строки:
> НОС = Документы.ЗадачаДействияAleX;
> НОС = НО.Ссылка.ПолучитьОбъект();

Достаточно написать так:
> Пока Строки.Следующий() Цикл
> НС = НО.Деятельность.Добавить();
> НС.Вид = Строки.Вид.Наименование;
> КонецЦикла;


И кстати в конце написать:
НО.Записать();"
"спасибо всё получилось но новая проблема мне в созданный документ в полу источник надо записать ссылку на проводимый документ

НОС = Документы.ЗадачаДействияAleX;
НОС = ЭтотОбъект;

НО = Документы.ЗадачаДействияAleX.СоздатьДокумент();
НО.Источник = НОС.Ссылка;
НО.Записать();

ничего не записывает туда почемуто"
"Это у вас ДокументМенеджер:
> НОС = Документы.ЗадачаДействияAleX;
Теперь там Объект:
> НОС = ЭтотОбъект;
Зачем была первая строка? Запутать шпионов? :)

> НО = Документы.ЗадачаДействияAleX.СоздатьДокумент();
И ради чего создавался НОС? Ради вот этой строки:
> НО.Источник = НОС.Ссылка;

почему не написать просто НО.Источник = ЭтотОбъект.Ссылка;

>ничего не записывает туда почемуто
Возникает вопрос: Где (в какой процедуре, в какой момент) это делается?
Если ЭтотОбъект - это документ, да еще только созданный, а ваш код расположен (или вызывается) из ПередЗаписью, то ЭтотОбъект.Ссылка = ПустаяСсылка.

Поставьте точку прерывания и посмотрите, что и присваивается и что получилось.
Может НО.Источник не способен принять Ссылку Данного Типа."
первые две строки написаны так как перепбробовал много  вариантов я вообще с++ программист вот осваиваю 8ку
происходит это при ПроведенииДокумента ЗадачаДействияAleX.остановил в этом месте НОС содержит  то что надо а НО.Источник это реквизит документ.сслыка.ЗадачаДействияAleX.там в режиме предприятия легко выбираю объект
"Если типы НО.Источник и ЭтотОбъект.Ссылка совпадают, то это строка должна нормально отработать:
НО.Источник = ЭтотОбъект.Ссылка;

Правда интересно у вас получается:
При проведении объекта ЗадачаДействияAleX создать объект ЗадачаДействияAleX. Хорошо хоть не при записи, а то получили бы рекурсию :).
"
ЗадачаДействияAleX при определённых условиях, которые опущены за ненадобностью, ЗадачаДействияAleX создаёт новую задачудля которой  является источником
заработало спс
Читают тему
(гостей: 1)

Быстрый переход