бухгалтерия 8.1.15.14 копирование табличной части документа в только что созданный док
05.10.2010
10:24
#1
"Вообщем есть документ у него табличная часть (деятельность) при проведении этого документа должен создаться документ с такойже табличной частью как и у исходного вот код
НО = Документы.ЗадачаДействияAleX.СоздатьДокумент();
НО.Дата = ЭтотОбъект.ВремяЗвонка;
НО.Действие = Справочники.ДействияAleX.Звонок;
НО.Клиент = ЭтотОбъект.Клиент;
НО.Записать();
НОС = Документы.ЗадачаДействияAleX;
НОС = НО.Ссылка.ПолучитьОбъект();
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ЗадачаДействияAleXДеятельность.Вид,
| ЗадачаДействияAleXДеятельность.Вид.Наименование
|ИЗ
| Документ.ЗадачаДействияAleX.Деятельность КАК ЗадачаДействияAleXДеятельность
|ГДЕ
| ЗадачаДействияAleXДеятельность.Ссылка.Ссылка = &Док
|
|УПОРЯДОЧИТЬ ПО
| ЗадачаДействияAleXДеятельность.Ссылка.Номер";
Запрос.УстановитьПараметр("Док",ЭтотОбъект.Ссылка);
РезультатЗапроса = Запрос.Выполнить();
Строки = РезультатЗапроса.Выбрать();
Пока Строки.Следующий() Цикл
НС = НОС.Деятельность.Добавить();
НС.Вид = Строки.Вид.Наименование;
КонецЦикла;
вот вместо того чтобы создать записи в ТЧ нового документа создаёт два документа.скажите где ошибка?
"
НО = Документы.ЗадачаДействияAleX.СоздатьДокумент();
НО.Дата = ЭтотОбъект.ВремяЗвонка;
НО.Действие = Справочники.ДействияAleX.Звонок;
НО.Клиент = ЭтотОбъект.Клиент;
НО.Записать();
НОС = Документы.ЗадачаДействияAleX;
НОС = НО.Ссылка.ПолучитьОбъект();
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ЗадачаДействияAleXДеятельность.Вид,
| ЗадачаДействияAleXДеятельность.Вид.Наименование
|ИЗ
| Документ.ЗадачаДействияAleX.Деятельность КАК ЗадачаДействияAleXДеятельность
|ГДЕ
| ЗадачаДействияAleXДеятельность.Ссылка.Ссылка = &Док
|
|УПОРЯДОЧИТЬ ПО
| ЗадачаДействияAleXДеятельность.Ссылка.Номер";
Запрос.УстановитьПараметр("Док",ЭтотОбъект.Ссылка);
РезультатЗапроса = Запрос.Выполнить();
Строки = РезультатЗапроса.Выбрать();
Пока Строки.Следующий() Цикл
НС = НОС.Деятельность.Добавить();
НС.Вид = Строки.Вид.Наименование;
КонецЦикла;
вот вместо того чтобы создать записи в ТЧ нового документа создаёт два документа.скажите где ошибка?
"
05.10.2010
10:58
#2
"А зачем эти 2 строки:
> НОС = Документы.ЗадачаДействияAleX;
> НОС = НО.Ссылка.ПолучитьОбъект();
Достаточно написать так:
> Пока Строки.Следующий() Цикл
> НС = НО.Деятельность.Добавить();
> НС.Вид = Строки.Вид.Наименование;
> КонецЦикла;
И кстати в конце написать:
НО.Записать();"
> НОС = Документы.ЗадачаДействияAleX;
> НОС = НО.Ссылка.ПолучитьОбъект();
Достаточно написать так:
> Пока Строки.Следующий() Цикл
> НС = НО.Деятельность.Добавить();
> НС.Вид = Строки.Вид.Наименование;
> КонецЦикла;
И кстати в конце написать:
НО.Записать();"
05.10.2010
11:27
#3
"спасибо всё получилось но новая проблема мне в созданный документ в полу источник надо записать ссылку на проводимый документ
НОС = Документы.ЗадачаДействияAleX;
НОС = ЭтотОбъект;
НО = Документы.ЗадачаДействияAleX.СоздатьДокумент();
НО.Источник = НОС.Ссылка;
НО.Записать();
ничего не записывает туда почемуто"
НОС = Документы.ЗадачаДействияAleX;
НОС = ЭтотОбъект;
НО = Документы.ЗадачаДействияAleX.СоздатьДокумент();
НО.Источник = НОС.Ссылка;
НО.Записать();
ничего не записывает туда почемуто"
05.10.2010
11:40
#4
"Это у вас ДокументМенеджер:
> НОС = Документы.ЗадачаДействияAleX;
Теперь там Объект:
> НОС = ЭтотОбъект;
Зачем была первая строка? Запутать шпионов?
> НО = Документы.ЗадачаДействияAleX.СоздатьДокумент();
И ради чего создавался НОС? Ради вот этой строки:
> НО.Источник = НОС.Ссылка;
почему не написать просто НО.Источник = ЭтотОбъект.Ссылка;
>ничего не записывает туда почемуто
Возникает вопрос: Где (в какой процедуре, в какой момент) это делается?
Если ЭтотОбъект - это документ, да еще только созданный, а ваш код расположен (или вызывается) из ПередЗаписью, то ЭтотОбъект.Ссылка = ПустаяСсылка.
Поставьте точку прерывания и посмотрите, что и присваивается и что получилось.
Может НО.Источник не способен принять Ссылку Данного Типа."
> НОС = Документы.ЗадачаДействияAleX;
Теперь там Объект:
> НОС = ЭтотОбъект;
Зачем была первая строка? Запутать шпионов?
> НО = Документы.ЗадачаДействияAleX.СоздатьДокумент();
И ради чего создавался НОС? Ради вот этой строки:
> НО.Источник = НОС.Ссылка;
почему не написать просто НО.Источник = ЭтотОбъект.Ссылка;
>ничего не записывает туда почемуто
Возникает вопрос: Где (в какой процедуре, в какой момент) это делается?
Если ЭтотОбъект - это документ, да еще только созданный, а ваш код расположен (или вызывается) из ПередЗаписью, то ЭтотОбъект.Ссылка = ПустаяСсылка.
Поставьте точку прерывания и посмотрите, что и присваивается и что получилось.
Может НО.Источник не способен принять Ссылку Данного Типа."
05.10.2010
11:50
#5
первые две строки написаны так как перепбробовал много вариантов я вообще с++ программист вот осваиваю 8ку
происходит это при ПроведенииДокумента ЗадачаДействияAleX.остановил в этом месте НОС содержит то что надо а НО.Источник это реквизит документ.сслыка.ЗадачаДействияAleX.там в режиме предприятия легко выбираю объект
происходит это при ПроведенииДокумента ЗадачаДействияAleX.остановил в этом месте НОС содержит то что надо а НО.Источник это реквизит документ.сслыка.ЗадачаДействияAleX.там в режиме предприятия легко выбираю объект
05.10.2010
12:23
#6
"Если типы НО.Источник и ЭтотОбъект.Ссылка совпадают, то это строка должна нормально отработать:
НО.Источник = ЭтотОбъект.Ссылка;
Правда интересно у вас получается:
При проведении объекта ЗадачаДействияAleX создать объект ЗадачаДействияAleX. Хорошо хоть не при записи, а то получили бы рекурсию
.
"
НО.Источник = ЭтотОбъект.Ссылка;
Правда интересно у вас получается:
При проведении объекта ЗадачаДействияAleX создать объект ЗадачаДействияAleX. Хорошо хоть не при записи, а то получили бы рекурсию
"
Читают тему
(гостей: 1)