|   |   | 
| 
 | Помогите пожалуйста с выгрузкой результата запроса в табличную часть документа. | ☑ | ||
|---|---|---|---|---|
| 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 | 
        Для удобства в консоле запросов создай правильный запрос, который возвращает, то что нужно, затем уже вставляй его в программу.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |