Имя: Пароль:
1C
1С v8
v8.2: Как заполнить табличную часть документа результатом выполнения запроса
0 Ira_19
 
11.12.11
20:56
Здравствуйте. Многие уже сталкивались с аналогичной проблемой, но у меня всё равно не получается заполнить табличную часть документа данными из запроса.
Смысл такой: у меня есть запрос
НомерУзлаДетали=Объект.НомерУзлаДетали;
Запрос = Новый Запрос;
Запрос.Текст =
   "ВЫБРАТЬ
   |    НоменклатураТМЦ.Наименование,
   |    НоменклатураТМЦ.Код,
   |    ТехнологическийПроцесс.Код КАК Код1,
   |    ВидыОпераций.Наименование КАК Наименование1,
   |    ВидыОпераций.НормаВремени,
   |ИЗ
   |    Справочник.ВидыОпераций КАК ВидыОпераций
   |    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ТехнологическийПроцесс КАК ТехнологическийПроцесс
   |    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НоменклатураТМЦ КАК НоменклатураТМЦ
   |    ПО ТехнологическийПроцесс.Код1СТМЦ = НоменклатураТМЦ.Ссылка
   |    ПО ВидыОпераций.Код1СТехПроцесса = ТехнологическийПроцесс.Ссылка
   |ГДЕ
   |    НоменклатураТМЦ.Наименование = &НомерУзлаДетали";

Запрос.УстановитьПараметр("НомерУзлаДетали", НомерУзлаДетали);
Результат = Запрос.Выполнить();

Как теперь полученными данными заполнить соответствующие колонки табличной части документа (колонки в справочнике и в документе имеют одинаковые имена)?
1 kosts
 
11.12.11
20:59
(0)

Пока Выборка.Следующий() Цикл
   ЗаполнитьЗначенияСвойств(ТабличнаяЧасть.Добавить(), Выборка);
КонецЦикла;
2 байт
 
11.12.11
21:04
(0) можно в ТЗ выгрузить и загрузить попробовать при условии если имена колонок будут совпадать.
3 kosts
 
11.12.11
21:09
(0) что это за документ такой в котором коды и наименования, а не ссылки?..
4 Ira_19
 
11.12.11
21:13
Написала так:
ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
   ЗаполнитьЗначенияСвойств(Объект.НормыВремени.Добавить(),ВыборкаДетальныеЗаписи);
КонецЦикла;

Спасибо большое.
5 Wist
 
11.12.11
21:14
Я так делаю:
Док.ТабЧасть.Загрузить(Запрос.Выполнить().Выгрузить());
6 Ira_19
 
11.12.11
21:15
(2)
Это урезанный вариант запроса. На самом деле выбираю больше полей, просто для простоты написала так.
7 Ira_19
 
11.12.11
21:23
Только есть небольшая проблема. В справочнике ВидыОпераций есть стандартное поле Наименование. Оно не вставляется в поле табличной части Операции. Это из-за различия имён?
8 GROOVY
 
11.12.11
21:24
(7) Или типов значения.
9 vovus
 
11.12.11
21:25
Че-то я тоже не понял, а почему не рулит такой вариант:
Документ.ТабличнаяЧасть.Загрузить(Результат.Выгрузить());
10 Ira_19
 
11.12.11
21:26
Тип значений в документе в поле Операции - Строка (длина 50), длина поля Наименование в справочнике тоже 50.
11 Ira_19
 
11.12.11
21:27
(9) У меня получилось так Объект.ТабличнаяЧасть.Загрузить(Результат.Выгрузить());
12 Ira_19
 
11.12.11
21:32
Так как можно загрузить наименование из справочника в колонку ТЧ?
13 Ira_19
 
11.12.11
21:38
Нашла сама решение)))
Нужно в запросе написать было так:
Запрос.Текст =
"ВЫБРАТЬ
   | ВидыОпераций.Наименование КАК Операции,
       ...
где Операции - название колонки.
14 kosts
 
11.12.11
21:42
Может  оно null
Попробуй естьnull(наименование,"") как наименование
AdBlock убивает бесплатный контент. 1Сергей