|
Перезаполнить табличную часть связанного документа. | ☑ | ||
---|---|---|---|---|
0
applesound
14.01.20
✎
12:35
|
Добрый день.
Перезаполняю табличную часть документа ТаможеннаяДекларацияИмпорт.Товары из документа ПоступлениеТоваровУслуг Далаю следующем образом, ошибок много. Если есть возможность направьте. Документ ПоступлениеТоваровУслуг в Модуле формы: &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТаможеннаяДекларацияИмпортТовары.НомерСтроки КАК НомерСтроки, | ТаможеннаяДекларацияИмпортТовары.Номенклатура КАК Номенклатура, | ТаможеннаяДекларацияИмпортТовары.Характеристика КАК Характеристика, | ТаможеннаяДекларацияИмпортТовары.Упаковка КАК Упаковка, | ТаможеннаяДекларацияИмпортТовары.КоличествоУпаковок КАК КоличествоУпаковок, | ТаможеннаяДекларацияИмпортТовары.Количество КАК Количество, | ТаможеннаяДекларацияИмпортТовары.СуммаНДС КАК СуммаНДС, | ТаможеннаяДекларацияИмпортТовары.СтранаПроисхождения КАК СтранаПроисхождения, | ТаможеннаяДекларацияИмпортТовары.НомерГТД КАК НомерГТД |ИЗ | Документ.ТаможеннаяДекларацияИмпорт.Товары КАК ТаможеннаяДекларацияИмпортТовары |ГДЕ | ТаможеннаяДекларацияИмпортТовары.Ссылка = &Ссылка | И ТаможеннаяДекларацияИмпортТовары.Ссылка.Проведен = ИСТИНА" Запрос.УстановитьПараметр("Ссылка",ТекущийОбъект.Ссылка); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Для каждого ТекСтрока ИЗ ВыборкаДетальныеЗаписи Цикл ТекСтрока.НомерСтроки = ВыборкаДетальныеЗаписи.НомерСтроки; ТекСтрока.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура; ТекСтрока.Характеристика = ВыборкаДетальныеЗаписи.Характеристика; ТекСтрока.Упаковка = ВыборкаДетальныеЗаписи.Упаковка; ТекСтрока.Количество = ВыборкаДетальныеЗаписи.Количество; ТекСтрока.СуммаНДС = ВыборкаДетальныеЗаписи.СуммаНДС; ТекСтрока.СтранаПроисхождения = ВыборкаДетальныеЗаписи.СтранаПроисхождения; ТекСтрока.НомерГТД = ВыборкаДетальныеЗаписи.НомерГТД; КонецЦикла; КонецПроцедуры |
|||
1
lodger
14.01.20
✎
12:37
|
а переменные и ссылки туда\сюда ты от балды натыкал?
|
|||
2
Очевидно
14.01.20
✎
12:41
|
мне кажется это не так работает :
"ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Для каждого ТекСтрока ИЗ ВыборкаДетальныеЗаписи Цикл" |
|||
3
GreenSCI
14.01.20
✎
12:44
|
Тебе нужно по ссылке на т. декл. получить объект. И уже ТЧ этого объекта заполнить нужным образом. А ты дичь полную написал.
(И если в чё Выборку обходят методом Следующий().) |
|||
4
Очевидно
14.01.20
✎
12:45
|
ну и в общем то :
"Перезаполняю табличную часть документа ТаможеннаяДекларацияИмпорт.Товары из документа ПоступлениеТоваровУслуг" а где у вас тут товары из документа поступления ? |
|||
5
Очевидно
14.01.20
✎
12:47
|
судя по коду вы всё-таки заполняете документ поступления, товарами из Таможенной декларации...
|
|||
6
Очевидно
14.01.20
✎
12:47
|
хотя стоп ) ...
Для каждого ТекСтрока ИЗ ВыборкаДетальныеЗаписи Цикл ...... ТекСтрока.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура; эээммм это тоже не так работает ... |
|||
7
Очевидно
14.01.20
✎
12:52
|
ок, ладно, признайтесь, это ваша первая попытка в конфигруаторе 1С ?
(здесь мне кажется всё нетак ... начиная с того , что вы пытаетесь найти таможенную декларацию по ссылке поступления, заканчивая что вы таки не добавили не одной строки в поступление ...) |
|||
8
applesound
14.01.20
✎
13:37
|
Пишу не так давно, даже очень недавно.
|
|||
9
applesound
14.01.20
✎
14:14
|
Нашёл ошибку.
Вместо |ГДЕ | ТаможеннаяДекларацияИмпортТовары.Ссылка = &Ссылка | И ТаможеннаяДекларацияИмпортТовары.Ссылка.Проведен = ИСТИНА" Нужно |ГДЕ | ТаможеннаяДекларацияИмпортТовары.Ссылка.Проведен = ИСТИНА | И ТаможеннаяДекларацияИмпортТовары.Ссылка.ПоступлениеТоваров = &ПоступлениеТоваров" |
|||
10
Очевидно
14.01.20
✎
14:15
|
тогда по порядку:
1. Найти связь между документами. (Каким образом нам подобрать нужную Таможенную декларацию ? если она указана в каком-либо реквизите на эту связь и стоит опираться) 2. По связи из п.1 получить ссылку таможенной декларации и добраться до табличной части товары. 3. Для каждой строки из таможенной декларации добавить строку в табличную часть "товары" документа поступления. 4. После добавления строки - заполнить необходимые поля в добавленной строке. Думаю как-то так. При выполнении пункта 2 можно использовать запрос, но без первого пункта ничего не получится. |
|||
11
Очевидно
14.01.20
✎
14:19
|
Вместо:
"ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Для каждого ТекСтрока ИЗ ВыборкаДетальныеЗаписи Цикл" => "ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл НоваяСтрокаПоступления = ТекущийОбъект.Товары.Добавить();" .... НоваяСтрокаПоступления.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |