Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 мар 2024, 12:28

Здрвствуйте, изучаю запросы пытаюсь из регистра выгрузить в ТЗ не получается

Автор djonbox, 13 мар 2012, 11:49

0 Пользователей и 1 гость просматривают эту тему.

djonbox

Создал запрос который должен из оборотного регистра ОстаткиТоваровКомпанииОстатки выгружать в таблицу значений, но при выгрузке часть полей не попадает в таблицу: поля Код, Наименование, Артикул, Серия. Подскажите пожалуйста как выгрузить в таблицу значений данные из регистра. Выгрузить пробывал разными вариантами НовСтр=ТаблЧастьДокРезультат.Добавить(); и через прямое заполнение таблицы. Вот код:

Остатки=Новый Запрос;
Остатки.Текст=""
"ВЫБРАТЬ
| ОстаткиТоваровКомпанииОстатки.Номенклатура.Код,
| ОстаткиТоваровКомпанииОстатки.Номенклатура,Наименование,
| ОстаткиТоваровКомпанииОстатки.Номенклатура.Артикул,
| ОстаткиТоваровКомпанииОстатки.СкладКомпании,
| ОстаткиТоваровКомпанииОстатки.ХарактеристикаНоменклатуры.СерияПроизводителя,
| ОстаткиТоваровКомпанииОстатки.КоличествоОстаток,
| ОстаткиТоваровКомпанииОстатки.РезервОстаток,
| ОстаткиТоваровКомпанииОстатки.СуммаРознОстаток
|ИЗ
| РегистрНакопления.ОстаткиТоваровКомпании.Остатки КАК ОстаткиТоваровКомпанииОстатки
|{ГДЕ
| ОстаткиТоваровКомпанииОстатки.Номенклатура.Код КАК Код,
| ОстаткиТоваровКомпанииОстатки.Номенклатура.Наименование КАК Наименование,
| ОстаткиТоваровКомпанииОстатки.Номенклатура.Артикул КАК Артикул,
| ОстаткиТоваровКомпанииОстатки.СкладКомпании КАК Склад,
| ОстаткиТоваровКомпанииОстатки.ХарактеристикаНоменклатуры.СерияПроизводителя КАК СерияПроизводителя,
| ОстаткиТоваровКомпанииОстатки.КоличествоОстаток КАК Количество,
| ОстаткиТоваровКомпанииОстатки.РезервОстаток КАК Резерв,
| ОстаткиТоваровКомпанииОстатки.СуммаРознОстаток КАК СуммаРозн}";
Результат = Остатки.Выполнить();
ТзВрем = Результат.Выгрузить();
Для Каждого стр Из Тзврем Цикл
   // ТаблЧастьДокРезультат - Табличная часть на форме, создаем в ней новую строку
НовСтр=ТаблЧастьДокРезультат.Добавить();
// Заполняем значения новой строки значениями  результат запроса:
ЗаполнитьЗначенияСвойств(НовСтр, стр);
НовСтр.СкладКомпании=стр.СкладКомпании.Наименование;
НовСтр.СерияПроизводителя=стр.СерияПроизводителя;
НовСтр.КоличествоОстаток=стр.КоличествоОстаток;
НовСтр.РезервОстаток=стр.РезервОстаток;
НовСтр.СуммаРознОстаток=стр.СуммаРознОстаток;
КонецЦикла;   


cska-fanat-kz

Насторожила первая запятая...

ОстаткиТоваровКомпанииОстатки.Номенклатура,Наименование,

Не выгружаются в таблицу колонки запроса, имена которых не совпадают с именами колонок таблицы. На всякий случай используйте в запросе псевдонимы (КАК Наименование). И обходить результат запроса в цикле не обязательно, достаточно

ТаблицаКудаЗагружаем.Загрузить(Запрос.Выполнить().Выгрузить());
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Klyacksa

ТаблЧастьДокРезультат = Остатки.Выполнить().Выгрузить()

Заполнит все колонки, имена которых совпадают с именами полей запроса. Не совпадающие проигнорируются. Для сопоставления таких нужно либо переименовать поля запроса
|    ОстаткиТоваровКомпанииОстатки.Номенклатура.Код КАК Код,

либо переименовать колонки таблицы.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

djonbox

Спасибо, но меня как раз и интересует как получить данные из ОстаткиТоваровКомпанииОстатки.Номенклатура,Наименование, Где у нас есть в регистре элемент номенклатуры Наименование, Артикул Код. В запросе я их прописал псевдонимы (КАК Наименование) :
{ГДЕ
   |    ОстаткиТоваровКомпанииОстатки.Номенклатура.Код КАК Код,
   |    ОстаткиТоваровКомпанииОстатки.Номенклатура.Наименование КАК Наименование,
   |    ОстаткиТоваровКомпанииОстатки.Номенклатура.Артикул КАК Артикул,
   |    ОстаткиТоваровКомпанииОстатки.СкладКомпании КАК Склад,
*************************
Но они все равно не выгружаются.

djonbox


Klyacksa

Имена колонок надо не в ГДЕ указывать, а в первой части запроса.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

djonbox

Поля запроса изначально указал, В таблице ТаблЧастьДокРезультат колонки создал: Код, Наименование, Артикул,Склад СерияПроизводителя,Количество,Резерв,СуммаРозн. Табличка с полями создается тока результат не выгружается

Остатки=Новый Запрос;
Остатки.Текст=""
"ВЫБРАТЬ
| ОстаткиТоваровКомпанииОстатки.Номенклатура.Код,
| ОстаткиТоваровКомпанииОстатки.Номенклатура,
| ОстаткиТоваровКомпанииОстатки.Номенклатура.Артикул,
| ОстаткиТоваровКомпанииОстатки.СкладКомпании,
| ОстаткиТоваровКомпанииОстатки.ХарактеристикаНоменклатуры.СерияПроизводителя,
| ОстаткиТоваровКомпанииОстатки.КоличествоОстаток,
| ОстаткиТоваровКомпанииОстатки.РезервОстаток,
| ОстаткиТоваровКомпанииОстатки.СуммаРознОстаток
|ИЗ
| РегистрНакопления.ОстаткиТоваровКомпании.Остатки КАК ОстаткиТоваровКомпанииОстатки
|{ГДЕ
| ОстаткиТоваровКомпанииОстатки.Номенклатура.Код КАК Код,
| ОстаткиТоваровКомпанииОстатки.Номенклатура КАК Наименование,
| ОстаткиТоваровКомпанииОстатки.Номенклатура.Артикул КАК Артикул,
| ОстаткиТоваровКомпанииОстатки.СкладКомпании КАК Склад,
| ОстаткиТоваровКомпанииОстатки.ХарактеристикаНоменклатуры.СерияПроизводителя КАК СерияПроизводителя,
| ОстаткиТоваровКомпанииОстатки.КоличествоОстаток КАК Количество,
| ОстаткиТоваровКомпанииОстатки.РезервОстаток КАК Резерв,
| ОстаткиТоваровКомпанииОстатки.СуммаРознОстаток КАК СуммаРозн}";
ТаблЧастьДокРезультат = Остатки.Выполнить().Выгрузить();

djonbox

Изменил как было написанно
[quote author=Klyacksa link=topic=14081.msg53873#msg53873 date=1331626717]
[code]ТаблЧастьДокРезультат = Остатки.Выполнить().Выгрузить()


Заполнит все колонки, имена которых совпадают с именами полей запроса. Не совпадающие проигнорируются. Для сопоставления таких нужно либо переименовать поля запроса
|    ОстаткиТоваровКомпанииОстатки.Номенклатура.Код КАК Код,

либо переименовать колонки таблицы.
[/quote]
Но теперь появляется ошибка
Поле не найдено "ОстаткиТоваровКомпанииОстатки.Номенклатура.Код"
<<?>>ОстаткиТоваровКомпанииОстатки.Номенклатура.Код       КАК Код,
[/code]

Остатки=Новый Запрос;
Остатки.Текст=""
"ВЫБРАТЬ
| ОстаткиТоваровКомпанииОстатки.Номенклатура.Код       КАК Код,
| ОстаткиТоваровКомпанииОстатки.Номенклатура           КАК Наименование,
| ОстаткиТоваровКомпанииОстатки.Номенклатура.Артикул   КАК Артикул,
| ОстаткиТоваровКомпанииОстатки.СкладКомпании          КАК Склад,
| ОстаткиТоваровКомпанииОстатки.ХарактеристикаНоменклатуры.СерияПроизводителя КАК СерияПроизводителя,
| ОстаткиТоваровКомпанииОстатки.КоличествоОстаток      КАК Количество,
| ОстаткиТоваровКомпанииОстатки.РезервОстаток          КАК Резерв,
| ОстаткиТоваровКомпанииОстатки.СуммаРознОстаток       КАК СуммаРозн
|ИЗ
| РегистрНакопления.ОстаткиТоваровКомпании.Остатки КАК ОстаткиТоваровКомпании";
ТаблЧастьДокРезультат = Остатки.Выполнить().Выгрузить();

cska-fanat-kz

Псевдонимы надо указывать в секции ВЫБРАТЬ а не в секции ГДЕ!

Тем более в фигурных скобках!

У поля Номенклатура.Код псевдоним по умолчанию - НоменклатураКод, а не просто Код!
То же с Артикулом.
Наименование не выгружается, потому что имя поля - НОМЕНКЛАТУРА!
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

cska-fanat-kz

Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск