|
КД ВыгрузитьПоПравилу получить узел | ☑ | ||
---|---|---|---|---|
0
Скромный программер
04.02.21
✎
12:39
|
Всем доброго дня.
Есть результат запроса в источнике из которого нужно в приемнике создать два документа, причем один из них является значением реквизита другого. Делаю так: СтруктураПартии= Новый Структура("ТипПервичногоДокумента, Организация, СуммаРегл, СуммаДокумента, Дата, Контрагент, Комментарий","ПриобретениеУПоставщика",Организация,899,899,'20200101',, "раз111"); Партия=ВыгрузитьПоПравилу(СтруктураПартии,,,, "ПервичныйДокумент"); СтруктураВводаОстатков = Новый Структура("ТипОперации,Дата,Склад,Организация,Партия,Комментарий", "ОстаткиСобственныхТоваров", '20191231',Склад,Организация, Партия, "просто комментарий"); ВыгрузитьПоПравилу(СтруктураВводаОстатков, , , , "ВводОстатков"); По идее должен получиться один ВводОстатков и один ПервичныйДокумент, который является значение реквизита Партия документа ВводОстатков. Но создается три документа ПервичныйДокумент, причем только один из них с нужным набором данных, второй только с номером и датой, а третий содержит только дату - даже номера нет. Причем ссылка на этот третий и содержится в реквизите документа ВводОстатков. |
|||
1
SamHinkie
04.02.21
✎
12:43
|
удобнее сделать через таблицу значений.
|
|||
2
SamHinkie
04.02.21
✎
12:44
|
ТЗ = новый ТаблицаЗначений;
Тз.Колонки.Добавить("Дата"); Тз.Колонки.Добавить("Номер"); Тз.Колонки.Добавить("Организация"); Тз.Колонки.Добавить("Склад"); Тз.Колонки.Добавить("Товары"); заполнение строки ТЗ Товары = НоваяСтрока.Товары; Товары.Колонки.Добавить("Номенклатура"); Товары.Колонки.Добавить("Количество"); Товары.Колонки.Добавить("КоличествоУпаковок"); Пока Выборка.Следующий() Цикл НоваяСтрокаТМЦ=Товары.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрокаТМЦ,Выборка); НоваяСтрокаТМЦ.СуммаРегл=НоваяСтрокаТМЦ.Сумма; НоваяСтрокаТМЦ.КоличествоУпаковок=НоваяСтрокаТМЦ.Количество; НоваяСтрокаТМЦ.Цена=?(НоваяСтрокаТМЦ.Количество=0,0,НоваяСтрокаТМЦ.сумма/НоваяСтрокаТМЦ.Количество); НоваяСтрокаТМЦ.Сумма = НоваяСтрокаТМЦ.Сумма; НоваяСтрокаТМЦ.СуммаБезНДС = НоваяСтрокаТМЦ.Сумма; НоваяСтрокаТМЦ.СуммаНДС = НоваяСтрокаТМЦ.Сумма * 0.2; НоваяСтрокаТМЦ.НДСРегл = НоваяСтрокаТМЦ.Сумма * 0.2; НоваяСтрокаТМЦ.СуммаСНДС = НоваяСтрокаТМЦ.Сумма + НоваяСтрокаТМЦ.СуммаНДС; НоваяСтрокаТМЦ.СтавкаНДС = Новый Структура("Наименование", "20%") КонецЦикла; ВыборкаДанных= ТЗ; |
|||
3
SamHinkie
04.02.21
✎
12:46
|
тебе же потом в документах ввода остатков по сути нужно будет получить много строк, к каждой из этих строк будет относится первичный документ
|
|||
4
Скромный программер
04.02.21
✎
13:43
|
У меня вопрос в другом, сейчас пока речи не идет о табличной части.
|
|||
5
SamHinkie
04.02.21
✎
14:15
|
ну на этот вопрос нельзя просто ответить. нужно фото ПКО ввода остатков и первичного документа. ну и что там в ПВД стоит
|
|||
6
hhhh
04.02.21
✎
14:34
|
(4) вот это что за бред?
Партия=ВыгрузитьПоПравилу(СтруктураПартии,,,, "ПервичныйДокумент"); почему переменной Партия присваиваешь какую то непонятную хренотень? |
|||
7
Скромный программер
05.02.21
✎
05:03
|
(5) Давайте не будем усложнять. Пусть у документа Ввод остатков есть только реквизиты Номер, Дата и Партия, а у документа ПервичныйДокумент только номер и дата. Как в этом случае следует сделать?
(6) Я не прошу поставить мне пятерку за мой код, я описал суть задачи и прошу помощи в ее решении. В переменную Партия я пытаюсь получить ссылку на узел документа ПевричныйДокумент, чтобы при загрузке создались оба документа, а ссылка на ПервичныйДокумент была в реквизите Партия документа ВводОстатков. |
|||
8
hhhh
05.02.21
✎
05:09
|
(7) Ну возьмите например реквизит Номенклатура. Или контрагент. Посмотрите как их выгружаете. И точно также выгружайте партию. Зачем придумывать какие-то узлы.
|
|||
9
Скромный программер
05.02.21
✎
05:16
|
(8) Потому что в исходной базе нет исходных объектов-аналогов - все создается в базе-приемнике на основании передаваемого набора данных.
|
|||
10
Йохохо
05.02.21
✎
05:35
|
(7) "В переменную Партия я пытаюсь получить ссылку на узел документа" это надо переписать ВыгрузитьПоПравилу и способ записи иксемельки, т.е. своё кд с узлами и гениальностью
(9) в исходной базе есть ТЗ, в структуре есть ТЗ, в ТЗ есть ТЗ, в (2) есть ТЗ, возьмите ТЗ |
|||
11
Скромный программер
05.02.21
✎
05:45
|
(10) Я не понял, о чем вы говорите. В (7) я описал максимально упрощенный пример данных. Как такой простой пример сделать?
|
|||
12
Йохохо
05.02.21
✎
06:50
|
(11) научиться на примерах из типовых, например
|
|||
13
SamHinkie
05.02.21
✎
13:34
|
(7)
ПВД - перед обработкой ДокументВводаОстатков = Новый Структура("Номер, Дата, Партия"); ДокументВводаОстатков.Вставить("Номер", "1"); ДокументВводаОстатков.Вставить("Дата", Дата(2020,12,31)); Партия = Новый Структура("Номер, Дата"); Партия.Вставить("Номер", "1"); Партия.Вставить("Дата"); ДокументВводаОстатков.Вставить("Партия", Партия); ВыгрузитьПоПравилу(ДокументВводаОстатков,,,,"ВводОстатковТМЦ"); Отказ = Истина; |
|||
14
Скромный программер
08.02.21
✎
06:38
|
(13) Это то, что надо. Спасибо за помощь.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |