|
Помогите пожалуйста с выгрузкой результата запроса в табличную часть документа. | ☑ | ||
---|---|---|---|---|
0
MihaSerb
14.02.13
✎
06:11
|
Есть запрос с полем себестоимость, необходимо что бы при проведении документа расходная накладная при добавлении соответствующей номенклатуры появлялась в колонке цена себестоимость товара.
Мои попытки реализовать. Запрос.УстановитьПараметр("Ссылка", Ссылка); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выгрузить(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ОбъектДок = Ссылка.Товары.ПолучитьОбъект(); СтрТабЧасти = ОбъектДок.Товары.Добавить(); СтрТабЧасти.Цена = ВыборкаДетальныеЗаписи.Себестоимость; КонецЦикла; |
|||
1
Godofsin
14.02.13
✎
06:20
|
Читайте СП
|
|||
2
Godofsin
14.02.13
✎
06:21
|
Табличная часть (Tabular section)
Загрузить (Load) Синтаксис: Загрузить(<Таблица>) Параметры: <Таблица> (обязательный) Тип: ТаблицаЗначений. Таблица значений, откуда загружается табличная часть. Колонки таблиц совмещаются по именам. Описание: Загружает табличную часть из таблицы значений. При этом все прежние строки табличной части удаляются. При загрузке значения в колонках табличной части заполняются значениями из колонок таблицы значений с совпадающими именами. Доступность: Сервер, толстый клиент, внешнее соединение. Примечание: Использование метода допустимо только в том случае, если табличная часть получена из свойства объекта. Если табличная часть получена из свойства ссылки (или выборки), то использование этого метода будет вызывать ошибку выполнения. Пример: Состав.Загрузить(ТаблицаСостава); |
|||
3
FoxFox
14.02.13
✎
06:22
|
Все смешалось.. Так при проведении документа или при выборе номенклатуры в тч?
Для ВыборкаДетальныеЗаписи.Следующий() не Выгрузить(), а Выбрать(). Ссылка.Товары.ПолучитьОбъект() - получить объект табличной части?.. |
|||
4
Godofsin
14.02.13
✎
06:22
|
поле "себестоимость" обозвать "цена"
|
|||
5
Godofsin
14.02.13
✎
06:26
|
ОбъектДок = Ссылка.ПолучитьОбъект()
|
|||
6
MihaSerb
14.02.13
✎
06:26
|
При выборе номенклатуры.
|
|||
7
Godofsin
14.02.13
✎
06:26
|
вариант (2) вам не подходит, сори
|
|||
8
kosts
14.02.13
✎
06:33
|
(6) Если при выборе номенклатуры, то похоже, что это в форме документа. Тогда не нужно получать объект (он уже есть).
|
|||
9
MihaSerb
14.02.13
✎
06:41
|
Что то у меня все равно не получается может у меня с запросом какие-то косяки.
Гляньте пожалуйста если не затруднит. Запрос.Текст = "ВЫБРАТЬ | РасходнаяНакладнаяТовары.Номенклатура, | СРЕДНЕЕ(ТоварыНаСкладеОстатки.СуммаОстаток / ТоварыНаСкладеОстатки.КоличествоОстаток) КАК Себестоимость, | СУММА(РасходнаяНакладнаяТовары.Сумма) КАК Сумма, | СУММА(РасходнаяНакладнаяТовары.Количество) КАК Количество, | РасходнаяНакладнаяТовары.Склад, | СУММА(ТоварыНаСкладеОстатки.КоличествоОстаток) КАК КоличествоОстаток, | СУММА(ТоварыНаСкладеОстатки.СуммаОстаток) КАК СуммаОстаток |ПОМЕСТИТЬ ДокТЧ |ИЗ | Документ.РасходнаяНакладная.Товары КАК РасходнаяНакладнаяТовары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладе.Остатки КАК ТоварыНаСкладеОстатки | ПО РасходнаяНакладнаяТовары.Номенклатура = ТоварыНаСкладеОстатки.Номенклатура |ГДЕ | РасходнаяНакладнаяТовары.Ссылка = &Ссылка | |СГРУППИРОВАТЬ ПО | РасходнаяНакладнаяТовары.Номенклатура, | РасходнаяНакладнаяТовары.Склад"; Запрос.УстановитьПараметр("Ссылка", Ссылка); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл СтрТабЧасти = Товары.Добавить(); СтрТабЧасти.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура; СтрТабЧасти.Цена = ВыборкаДетальныеЗаписи.Себестоимость; КонецЦикла; Мне необходимо посчитать цену(себестоимость) товара которая берется из ресурсов регистра накопления(Сумма, Количество) и при создании документа расходная накладная при добавлении номенклатуры автоматически выставлялась цена. |
|||
10
kosts
14.02.13
✎
06:47
|
(9) Есть группировка по складу, зачем? Мы получим номенклатуру и себестоимость по каждому складу.
Тут либо в запросе убрать склад, либо отбор в запросе по складу. Если есть соединение, то практически всегда есть возможность получить Null, а так же есть вероятность деления на 0 - это нужно специально обработать. |
|||
11
kosts
14.02.13
✎
06:48
|
Ну и не нужно тащить колонки в запросе которые не будут потом использованы. В запросе по факту можно оставить всего 2 колонки.
|
|||
12
kosts
14.02.13
✎
06:49
|
Возможно в документе есть склад, может быть "себестоимость" нужно именно по этому складу? Или по всем?
|
|||
13
kosts
14.02.13
✎
06:52
|
А вот рассмотрел РасходнаяНакладнаяТовары.Склад, возможно так тебе нужно:
Тогда склад в запросе может быть |
|||
14
kosts
14.02.13
✎
06:55
|
(9) В условие соединения еще тогда видимо нужно добавить и склад тоже.
|
|||
15
MihaSerb
14.02.13
✎
06:55
|
У меня склад в запросе для дальнейшего использования, я контроль остатков в процедуре позже осуществляю.
|
|||
16
Гефест
14.02.13
✎
06:57
|
Твой запрос ничего не выбирает, а помещает данные в ВТ
|
|||
17
kosts
14.02.13
✎
07:03
|
(16) Точнее выбирает, но не возвращает :), а я проглядел...
|
|||
18
MihaSerb
14.02.13
✎
07:08
|
Тоесть мне надо создать другой запрос к временной таблице и из него брать данные для выгрузки в табличную часть?
|
|||
19
kosts
14.02.13
✎
07:09
|
(18) Попробуй убери ПОМЕСТИТЬ ДокТЧ
|
|||
20
kosts
14.02.13
✎
07:11
|
Для удобства в консоле запросов создай правильный запрос, который возвращает, то что нужно, затем уже вставляй его в программу.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |