Имя: Пароль:
1C
1С v8
помогите с выгрузкой ут 8.2
0 korgallom
 
30.01.12
10:42
Процедура КоманднаяПанель1Заполнить(Кнопка)
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("Комплект1", Ссылка);

   Запрос.Текст = "ВЫБРАТЬ
                  |    РегКомплектующие.Комплектующая КАК Комплектующая,
                  |    РегКомплектующие.Количество КАК Количество,
                  |    РегКомплектующие.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
                  |    РегКомплектующие.Номенклатура КАК Комплект1
                  |ИЗ            
                  |    РегистрСведений.КомплектующиеНоменклатуры КАК РегКомплектующие
                  |ГДЕ
                  |    РегКомплектующие.Номенклатура = &Комплект1";

   ТЗКомплектующие = Запрос.Выполнить().Выгрузить();
//Комплекты.Очистить();    
//РегК = РегистрыСведений.КомплектующиеНоменклатуры;
//НаборЗаписей = РегК.СоздатьНаборЗаписей();
//НаборЗаписей.Отбор.Номенклатура.Значение = Комплект1;
//ТЗКомплектующие = НаборЗаписей.Выгрузить();

   Для Каждого ТекСтрокаКомплекты Из ТЗКомплектующие Цикл
           НоваяСтрока = Комплекты.Добавить();
           НоваяСтрока.Комплект = ТекСтрокаКомплекты.Комплектующая;
           НоваяСтрока.ЕдиницаИзмерения=ТекСтрокаКомплекты.ЕдиницаИзмерения;
           НоваяСтрока.Количество = ТекСтрокаКомплекты.Количество;
   КонецЦикла;    

КонецПроцедуры


проблема в следуюещм нужно просто выбрать комплектующие номенклатуры из комплекта и вставить в табличную часть документа, типовая конфа УТ 10.3,
1 korgallom
 
30.01.12
10:45
для каждой номенклатуры в регистре сведений храниться несколько комплектующих вот их собственно и нужно взять и вставить табличную часть
2 Rizhij_Nikitos
 
30.01.12
10:58
Ошибка в вашем запросе, берет не все или берет все что, даже не нужно?
3 korgallom
 
30.01.12
11:01
а цикл правильно сделан?
4 Rizhij_Nikitos
 
30.01.12
11:04
Запрос вот такой попробуйте, т.к номенклатура, тута как условие и его тащить не имеет смысла. Цикл вроде бы похож на правду, вы обходите каждую строчку ТЗ. Но все же в чем у вас ошибка мало или много комплектующих или есть лишнее? и в Табличную часть не добавляются?
Запрос.Текст = "ВЫБРАТЬ
                  |    РегКомплектующие.Комплектующая КАК Комплектующая,
                  |    РегКомплектующие.Количество КАК Количество,
                  |    РегКомплектующие.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
                                     |ИЗ            
                  |    РегистрСведений.КомплектующиеНоменклатуры КАК РегКомплектующие
                  |ГДЕ
                  |    РегКомплектующие.Номенклатура = &Комплект1";

   ТЗКомплектующие = Запрос.Выполнить().Выгрузить();
5 korgallom
 
30.01.12
11:17
да в табличную часть не добавляются,

   Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Комплект1", Ссылка);

Запрос.Текст = "ВЫБРАТЬ
                  |    РегКомплектующие.Комплектующая КАК Комплектующая,
                  |    РегКомплектующие.Количество КАК Количество,
                  |    РегКомплектующие.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
                  |ИЗ            
                  |    РегистрСведений.КомплектующиеНоменклатуры КАК РегКомплектующие
                  |ГДЕ
                  |    РегКомплектующие.Номенклатура = &Комплект1";

  ТЗКомплектующие = Запрос.Выполнить().Выгрузить();


   Для Каждого ТекСтрокаКомплекты Из ТЗКомплектующие Цикл
           НоваяСтрока = Комплекты.Добавить();
           НоваяСтрока.Комплект = ТекСтрокаКомплекты.Комплектующая;
           НоваяСтрока.ЕдиницаИзмерения=ТекСтрокаКомплекты.ЕдиницаИзмерения;
           НоваяСтрока.Количество = ТекСтрокаКомплекты.Количество;
   КонецЦикла;    


выдает:
{Документ.Спецификация.Форма.ФормаДокумента.Форма(15)}: Ошибка при вызове метода контекста (Выполнить)
  ТЗКомплектующие = Запрос.Выполнить().Выгрузить();
по причине:

по причине:
{(5, 1)}: Синтаксическая ошибка "ИЗ"
<<?>>ИЗ
6 aist
 
30.01.12
11:22
запятую после ЕдиницаИзмерения, убери.
7 korgallom
 
30.01.12
11:31
при отладке показывает
ТЗКомплектующие = ТаблицаЗначений
и сразу конец процедуры после запроса,
как будто в таблицезначений нет ничего
8 Rizhij_Nikitos
 
30.01.12
21:48
Напиши
Сообщить(ТЗКомплеткующие.Количество); - вот твое количество строк в таблица значений, на экране выдаст.
9 korgallom
 
31.01.12
10:54
показывает 0
10 korgallom
 
31.01.12
11:21
Процедура КоманднаяПанель1Заполнить(Кнопка)
   //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
   // Данный фрагмент построен конструктором.
   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
   Номенклатура=комплект1;
   Запрос = Новый Запрос;
   Запрос.Текст =
       "ВЫБРАТЬ
       |    КомплектующиеНоменклатуры.Номенклатура,
       |    КомплектующиеНоменклатуры.Комплектующая,
       |    КомплектующиеНоменклатуры.ЕдиницаИзмерения,
       |    КомплектующиеНоменклатуры.Количество
       |ИЗ
       |    РегистрСведений.КомплектующиеНоменклатуры КАК КомплектующиеНоменклатуры
       |ГДЕ
       |    КомплектующиеНоменклатуры.Номенклатура = &Номенклатура";

   Запрос.УстановитьПараметр("Номенклатура", Номенклатура);

   Результат = Запрос.Выполнить();

   ВыборкаДетальныеЗаписи = Результат.Выбрать();

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

       //НоваяСтрока.ЕдиницаИзмерения=
   КонецЦикла;

   //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
   
КонецПроцедуры



спасибо всем!!! разобрался вот так работает)
AdBlock убивает бесплатный контент. 1Сергей