Имя: Пароль:
1C
1С v8
Внутреннее соединение
0 НАТалья Голубева
 
28.06.16
11:15
Добрый день...При запросе участвуют  регистр и документ... Надо чтобы в результате добавились в ТЧ весь список номенклатуры по документу а данные с регистра только цены в приделах списка номенклатуры. Однако у меня это не получается подскажите плизз...


Процедура ЗаполнитьПоЦенеЗакупкиМатериалы(Кнопка)

    
Запрос = Новый Запрос;
Запрос.Текст =

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

Запрос.УстановитьПараметр("Дата",    Дата);     //Дата
Запрос.УстановитьПараметр("ЭтотДокумент", ЭтотОбъект.Ссылка);


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

всематериалы.Очистить();

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


  КонецЦикла;

КонецПроцедуры
1 Ёпрст
 
28.06.16
11:18
(0)
для начала,

>>>РасчетСебестоимостивсематериалы.Материал.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура.Ссылка

выкинуть отсюда ссылка,
затем выкинуть это:
>>>И РасчетСебестоимостивсематериалы.Ссылка.Дата = &Дата";  


затем срез последних ограничить нужным типом цен
2 Ёпрст
 
28.06.16
11:19
или ходябы делать соединение еще по единицам измерения
3 Ёпрст
 
28.06.16
11:20
и везде, словы ссылка выкинь
4 НАТалья Голубева
 
28.06.16
11:21
ок час исправлю...
5 aleks_default
 
28.06.16
11:22
Смешались в кучу кони, люди...
1)
|    ЦеныНоменклатурыСрезПоследних.Номенклатура.Ссылка КАК Номенклатура,

это нахер убрать
2)
Стр.Материал=Выборка.Номенклатура;
   Если ЦенаЗакупки=Выборка.ТипЦен Тогда
         Стоим = Выборка.Цена;
      Иначе Стоим = "";
   КонецЕсли;

Это тоже заменить  на

Стр.Материал=Выборка.Материал;
6 aleks_default
 
28.06.16
11:24
.Ссылка
везде убрать нафиг. Оставить только здесь
|ГДЕ
|    РасчетСебестоимостивсематериалы.Ссылка = &ЭтотДокумент
7 НАТалья Голубева
 
28.06.16
12:32
Ок все получилось... Всем спасибо
8 Мимохожий Однако
 
28.06.16
12:33
(7)Сбрось что получилось в результате.
9 НАТалья Голубева
 
28.06.16
12:37
Правда до конца не проверила ..правильно ли формирует.. но в целом врод как так... буду чуть позже проверять..

Процедура ЗаполнитьПоЦенеЗакупкиМатериалы(Кнопка)

    
Запрос = Новый Запрос;
Запрос.Текст =

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

Запрос.УстановитьПараметр("Дата",    Дата);     //Дата
Запрос.УстановитьПараметр("ЭтотДокумент", ЭтотОбъект.Ссылка);


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

всематериалы.Очистить();

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


КонецЦикла;

таблвсехматериалов = всематериалы.Выгрузить();
таблвсехматериалов.Свернуть("материал,ЕдиницаИзмерения,ЦенаМатериалов, ГотоваяПродукция, Сумма, КолГП", "Количество");
всематериалы.Загрузить(таблвсехматериалов);

КонецПроцедуры
10 aleks_default
 
28.06.16
12:55
Скока советов надавали, а ты все проигнорировала.
11 AceVi
 
28.06.16
12:59
(9) Этот гулебева явно не в себе) пол указан мужской)
12 НАТалья Голубева
 
28.06.16
13:34
Ничего я не проигнорировала...
->>>РасчетСебестоимостивсематериалы.Материал.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура.Ссылка... убрала
->>>И РасчетСебестоимостивсематериалы.Ссылка.Дата = &Дата";  ... убрала

Правда Ссылка -слово не везде убрала... я чуть позже уберу..
13 Dark_Warrior
 
28.06.16
14:28
(12) >> Правда Ссылка -слово не везде убрала... я чуть позже уберу..
Обещаешь?