Список значений в запросе

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. progaoff 10.07.15 12:59 Сейчас в теме
Запрос = Новый Запрос;
	Запрос.Текст =
	"|ВЫБРАТЬ
     |  НАЧАЛОПЕРИОДА(Акции.ДатаАкции, ДЕНЬ) КАК ДатаАкции
	 |		ИЗ
     |  РегистрСведений.Акции КАК Акции
	 |	ГДЕ
     |  Акции.ДатаАкции >= &НачПериода
     |  И Акции.БесплатныеМатериалы
     |  И Акции.Акция = &Акция
     |  И Акции.ДатаАкции <= &КонПериода
     |  И Акции.Организации = &Организация";
	
	Запрос.УстановитьПараметр("ДатаНач", ДатаНач);
	Запрос.УстановитьПараметр("ДатаКон", ДатаКон);
	Запрос.УстановитьПараметр("Акция", Акция);
	Запрос.УстановитьПараметр("Организация", Организация);
	СписокДат=Новый СписокЗначений;
    СписокДат.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("ДатаАкции"));
	
	
	Запрос = Новый Запрос;
	Запрос.Текст ="ВЫБРАТЬ
	              |	СУММА(ДанныеДляНачисленияЗП.МатериалКоличество) * ЦеныНоменклатурыСрезПоследних.Цена КАК СуммаПродажи,
	              |	ЦеныНоменклатурыСрезПоследних.Цена,
	              |	ДанныеДляНачисленияЗП.Материал,
	              |	НАЧАЛОПЕРИОДА(ДанныеДляНачисленияЗП.Период, ДЕНЬ) КАК Период
	              |ИЗ
	              |	РегистрНакопления.ДанныеДляНачисленияЗП КАК ДанныеДляНачисленияЗП
	              |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.МатериалыДляАкции КАК МатериалыДляАкции
	              |		ПО ДанныеДляНачисленияЗП.Материал = МатериалыДляАкции.Номенклатура
	              |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
	              |		ПО ДанныеДляНачисленияЗП.Материал = ЦеныНоменклатурыСрезПоследних.Номенклатура
	              |ГДЕ
	              |	ДанныеДляНачисленияЗП.Период МЕЖДУ &ДатаНач И &ДатаКон
	              |	И ДанныеДляНачисленияЗП.Организация = &Организация
	              | 
	              |СГРУППИРОВАТЬ ПО
	              |	ЦеныНоменклатурыСрезПоследних.Цена,
	              |	ДанныеДляНачисленияЗП.Материал,
	              |	
				  | ДанныеДляНачисленияЗП.Период";

   Запрос.УстановитьПараметр("ДатаКон", ДатаКон);
   Запрос.УстановитьПараметр("ДатаНач", ДатаНач);
   Запрос.УстановитьПараметр("Организация", Организация);
Показать

Есть такая конструкция. первый запрос выбирает все даты по которым были акции, и передает их в список значений, второй запрос должен по этим датам по считать стоимость материалов которые были потрачены по этим датам. НЕ СЧИТАЕТ!!! Что не так делаю? Считает он все материалы которые продавались за этот период. И еще в таблицу он мне выводит две единицы измерения нужно считать только по одной. Вопрос как сделать так что бы расчет был только по тем датам которые в первом запросе?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. deniseek77 86 10.07.15 13:09 Сейчас в теме
(1) progaoff, Параметры дат во 2 запросе как связаны с 1 запросом? Ну получил ты список значений и что? СписокДат.СортироватьПоПредставлению(); ДатаНач=СписокДат[0], например так
17. progr-2008 118 10.07.15 21:31 Сейчас в теме
(1) progaoff, а две ВТ пробовали?
3. progaoff 10.07.15 13:10 Сейчас в теме
извините забыл уточнить, нужно еще и как то связать этих два запроса.
4. darksoul 10.07.15 14:05 Сейчас в теме
Во втором запросе через параметр передать список значений
Выбрать
СписокДат.ДатаАкции
ИЗ &СписокДат как Список Дат


Вопрос в том, ЧТО ОБЩЕГО У ПЕРВОГО ЗАПРОСА И ВТОРОГО? Как их объединить? По товару? Почему тогда не сделать все это в одном запросе?

Вы передаете СписокЗначений через функцию?
5. progaoff 10.07.15 14:08 Сейчас в теме
можно и в одном, главное что бы корректно считал. вот тут я уже и запарился, что бы их соединить в один
6. progaoff 10.07.15 14:50 Сейчас в теме
Смысл в том что бы отобрать товары по акции и по считать их стоимость. Акцию устанавливает документ, в этом доке есть реквизит с названием акции...вот нужно по определенной акции и сделать отбор и по считать стоимость.
7. axelerleo 339 10.07.15 14:52 Сейчас в теме
первый запрос помещаешь во временную таблицу, второй запрос левым соединением к временной таблице по ДатаАкции = период.

А еще лучше - открыть консоль запросов, и тестировать, тестировать, тестировать, пока не получится нужный результат. Подавляющее большинство задач можно решить одним запросом. Не все - но большинство. ;)
8. progaoff 10.07.15 15:15 Сейчас в теме
ВЫБРАТЬ
	НАЧАЛОПЕРИОДА(Акции.ДатаАкции, ДЕНЬ) КАК ДатаАкции
ПОМЕСТИТЬ ТабДаты
ИЗ
	РегистрСведений.Акции КАК Акции
ГДЕ
	Акции.ДатаАкции >= &НачПериода
	И Акции.БесплатныеМатериалы
	И Акции.Акция = &Акция
	И Акции.ДатаАкции <= &КонПериода
	И Акции.Организации = &Организация
;

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

СГРУППИРОВАТЬ ПО
	ЦеныНоменклатурыСрезПоследних.Цена,
	ДанныеДляНачисленияЗП.Материал
Показать

Дату отбирает а вот в таблице с материалами пусто.
9. StBender 10.07.15 15:20 Сейчас в теме
(8) progaoff, ну скорее всего у вас по датам соединение не идёт. Посмотрите что выходит в дате во временной таблице и в самом запросе.
10. progaoff 10.07.15 15:25 Сейчас в теме
Временная таблица выдает дату. Из заданного интервала выдает дату акции
11. StBender 10.07.15 15:27 Сейчас в теме
(10) progaoff, читайте внимательнее. Я знаю, что во временной таблице у вас ДАТА на выходе. Но вопрос какая. Может вы сравниваете 01.07.2015 00:00:00 и 01.07.2015 08:00:15
12. progaoff 10.07.15 15:30 Сейчас в теме
Диапазон дат ставлю месяц, что бы о любому попало
13. Xershi 1484 10.07.15 15:42 Сейчас в теме
(12) progaoff, какой диапазон?

У вас четкое сравнение
ТабДаты.ДатаАкции = ДанныеДляНачисленияЗП.Период

Естественно пустой запрос. Вам уже советовали тестировать в консоле, пора бы уже самому находить ошибку.
14. KrivosheevEV 10.07.15 15:42 Сейчас в теме
Для получения результата советую упростить второй запрос до одной связи. Если результат будет получен, то наращивать выборку до нужной сложности.
15. progaoff 10.07.15 15:43 Сейчас в теме
16. StBender 10.07.15 17:59 Сейчас в теме
(15) progaoff, выведите отдельно два запроса, не соединяя друг с другом и посмотрите какие значения у Дат.
18. progaoff 13.07.15 09:10 Сейчас в теме
(16) StBender, первый запрос выдает дату в которой у меня событие происходит
19. ZergKRSK 129 13.07.15 10:16 Сейчас в теме
(18) progaoff, второй запрос что выдает?
20. progaoff 13.07.15 10:21 Сейчас в теме
(19) ZergKRSK, Считает сумму материала но считает его и в тот день когда события не было...а нужно только по событию считать
21. ZergKRSK 129 13.07.15 10:23 Сейчас в теме
(20) progaoff, сравни дату в первом и втором запросе. Есть совпадения до секунды включительно?
22. progaoff 13.07.15 10:24 Сейчас в теме
23. ZergKRSK 129 13.07.15 10:33 Сейчас в теме
(22) progaoff, покажи отдельно оба запроса
24. progaoff 13.07.15 10:35 Сейчас в теме
ВЫБРАТЬ
		Акции.ДатаАкции КАК ДатаАкции,
		Акции.БесплатныеМатериалы,
		Акции.Акция
ПОМЕСТИТЬ ТабДата		
	ИЗ
		РегистрСведений.Акции КАК Акции
	ГДЕ
		Акции.ДатаАкции МЕЖДУ &ДатаНач И &ДатаКон
		И Акции.Акция = &Акция
Показать

1-й
ВЫБРАТЬ
		СУММА(ДанныеДляНачисленияЗП.МатериалКоличество) * ЦеныНоменклатурыСрезПоследних.Цена КАК СуммаПродажи,
		ЦеныНоменклатурыСрезПоследних.Цена,
		ДанныеДляНачисленияЗП.Материал
		ИЗ
	РегистрНакопления.ДанныеДляНачисленияЗП КАК ДанныеДляНачисленияЗП
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.МатериалыДляАкции КАК МатериалыДляАкции
		ПО ДанныеДляНачисленияЗП.Материал = МатериалыДляАкции.Номенклатура
		ПРАВОЕ  СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
		ПО ДанныеДляНачисленияЗП.Материал = ЦеныНоменклатурыСрезПоследних.Номенклатура
			ГДЕ
		ДанныеДляНачисленияЗП.Период МЕЖДУ &ДатаНач И &ДатаКон
		И ДанныеДляНачисленияЗП.Организация = &Организация 
	СГРУППИРОВАТЬ ПО
	ЦеныНоменклатурыСрезПоследних.Цена,
	ДанныеДляНачисленияЗП.Материал
Показать

2-й
25. Kedis 13.07.15 10:49 Сейчас в теме
(24) progaoff, Что-то у вас всё запутано в запросах.
Как я понял есть акции и их даты.
Есть данные по начисленияЗП и надо ко всем материалам подобрать цену действующую в день день акции, так?
Если так то первый запрос верный, а второй сделайте просто связь данныхпоЗП левую с регистром цен по материалу, а регистр цен левую связь с датами акций по материалу и дате акций.

P.S. Нет конфы под руками.
26. progaoff 13.07.15 10:55 Сейчас в теме
(25) Kedis, Регистр ДанныеДляНачисленияЗП имеет полную инфу по продажам и используемым материалам. Для проверки результата я сделал документ с товарами по акции в дату акции и без акции. Он мне выдает товары с двух этих документов.
28. ZergKRSK 129 13.07.15 10:58 Сейчас в теме
(24) progaoff, не вижу во втором запросе даты
30. Kedis 13.07.15 11:01 Сейчас в теме
(28) ZergKRSK, Сделай тогда левую связь Акции.Дата = Регистр.Дата
И потом Регистр.Материал = Цена.Материал и Регистр.дата = Цена.Дата
Получишь отбор всех материалов по дата и цены для этих материалов на дату документа.
Должно сработать, везде левое соединения.
27. progaoff 13.07.15 10:57 Сейчас в теме
Даты этих событий могут быть разные, у меня есть необходимость посчитать только по датам акций эти товары, так как они бесплатные.
29. progaoff 13.07.15 10:59 Сейчас в теме
ДанныеДляНачисленияЗП.Период МЕЖДУ &ДатаНач И &ДатаКон
31. ZergKRSK 129 13.07.15 11:02 Сейчас в теме
(29) progaoff, ну и что, самого поля нет. Сделай его во втором запросе, поместив в ВТ а затем соедини с первой ВТ левым по дате.
32. progaoff 13.07.15 11:05 Сейчас в теме
ВЫБРАТЬ
	Акции.ДатаАкции КАК ДатаАкции,
	Акции.БесплатныеМатериалы,
	Акции.Акция
ПОМЕСТИТЬ ТабДата
ИЗ
	РегистрСведений.Акции КАК Акции
ГДЕ
	Акции.ДатаАкции МЕЖДУ &ДатаНач И &ДатаКон
	И Акции.Акция = &Акция
;

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

СГРУППИРОВАТЬ ПО
	ЦеныНоменклатурыСрезПоследних.Цена,
	ДанныеДляНачисленияЗП.Материал,
	ТабДата.ДатаАкции
Показать
ПУСТО.
33. Kedis 13.07.15 11:08 Сейчас в теме
???? ПО ДанныеДляНачисленияЗП.Материал = ЦеныНоменклатурыСрезПоследних.Цена
Может
ПО ДанныеДляНачисленияЗП.Период = ЦеныНоменклатурыСрезПоследних.Дата
34. Kedis 13.07.15 11:10 Сейчас в теме
Убери пока все условия
ГДЕ
ДанныеДляНачисленияЗП.Период МЕЖДУ &ДатаНач И &ДатаКон
И ДанныеДляНачисленияЗП.Организация = &Организация
progaoff; +1 Ответить
35. progaoff 13.07.15 11:15 Сейчас в теме
ПО ДанныеДляНачисленияЗП.Период = ЦеныНоменклатурыСрезПоследних.Дата
Теперь хоть NULL
36. Kedis 13.07.15 11:22 Сейчас в теме
(35) progaoff, NUll в стоимости или где?
И группировки пока убери, покажи запрос
progaoff; +1 Ответить
37. progaoff 13.07.15 11:26 Сейчас в теме
ВЫБРАТЬ
	Акции.ДатаАкции КАК ДатаАкции,
	Акции.БесплатныеМатериалы,
	Акции.Акция
ПОМЕСТИТЬ ТабДата
ИЗ
	РегистрСведений.Акции КАК Акции
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	СУММА(ДанныеДляНачисленияЗП.МатериалКоличество) * ЦеныНоменклатурыСрезПоследних.Цена КАК СуммаПродажи,
	ЦеныНоменклатурыСрезПоследних.Цена,
	ДанныеДляНачисленияЗП.Материал,
	ТабДата.ДатаАкции
ИЗ
	ТабДата КАК ТабДата
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДанныеДляНачисленияЗП КАК ДанныеДляНачисленияЗП
			ЛЕВОЕ СОЕДИНЕНИЕ Справочник.МатериалыДляАкции КАК МатериалыДляАкции
			ПО ДанныеДляНачисленияЗП.Материал = МатериалыДляАкции.Номенклатура
			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
			ПО ДанныеДляНачисленияЗП.Период = ЦеныНоменклатурыСрезПоследних.Период
		ПО ТабДата.ДатаАкции = ДанныеДляНачисленияЗП.Период
Показать
NULL во всех строках
38. karpik666 3776 13.07.15 11:41 Сейчас в теме
Попробуй этот запрос:
ВЫБРАТЬ Различные
	Началопериода(Акции.ДатаАкции, День) КАК ДатаАкции
ПОМЕСТИТЬ ВтДатыАкции
	ИЗ
	РегистрСведений.Акции КАК Акции
ГДЕ
	Акции.ДатаАкции МЕЖДУ &ДатаНач И &ДатаКон
	И Акции.Акция = &Акция;

ВЫБРАТЬ
	СУММА(ДанныеДляНачисленияЗП.МатериалКоличество)  КАК КолвоМатериала,
	ДанныеДляНачисленияЗП.Материал,
	НачалоПериода(ДанныеДляНачисленияЗП.Период, День) КАК ДеньАкции
Поместить ВтДанныеЗП
	ИЗ
РегистрНакопления.ДанныеДляНачисленияЗП КАК ДанныеДляНачисленияЗП
	ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.МатериалыДляАкции КАК МатериалыДляАкции
		ПО ДанныеДляНачисленияЗП.Материал = МатериалыДляАкции.Номенклатура
	ГДЕ
	НачалоПериода(ДанныеДляНачисленияЗП.Период, День) В (Выбрать ВтДатыАкции.ДатаАкции ИЗ ВтДатыАкции)
	И ДанныеДляНачисленияЗП.Организация = &Организация
СГРУППИРОВАТЬ ПО
	НачалоПериода(ДанныеДляНачисленияЗП.Период, День),
	ДанныеДляНачисленияЗП.Материал;  
	
Выбрать 
	ВтДанныеЗП.КолвоМатериала * isnull(ЦеныНоменклатурыСрезПоследних.Цена,0) КАК СтоимостьМатериала,
	ВтДанныеЗП.Материал,
	isnull(ЦеныНоменклатурыСрезПоследних.Цена,0) КАК Цена
ИЗ ВтДанныеЗП КАК ВтДанныеЗП    
	ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
ПО ВтДанныеЗП.Материал = ЦеныНоменклатурыСрезПоследних.Номенклатура И
	НачалоПериода(ЦеныНоменклатурыСрезПоследних.Период, День) =  ВтДанныеЗП.ДеньАкции
   
Показать
39. progaoff 13.07.15 11:45 Сейчас в теме
(38) karpik666, {Форма.Форма.Форма(1531)}: Ошибка при вызове метода контекста (НайтиПараметры): {(5, 5)}: Неверное присоединение
<<?>>НачалоПериода(РегистрСведений.Акции, День) КАК Акции
40. karpik666 3776 13.07.15 11:45 Сейчас в теме
(39) progaoff, я переправил запрос, посмотри внимательнее.
41. progaoff 13.07.15 11:47 Сейчас в теме
Обалдеть, только сумму не считает...и цена пустая
42. karpik666 3776 13.07.15 11:48 Сейчас в теме
(41) progaoff, значит на дату акции нет цен. Хотя я могу и ошибаться со связью, тут лучше брать данные не из среза последних а из максимума на каждую дату
43. karpik666 3776 13.07.15 11:49 Сейчас в теме
Убери условие

НачалоПериода(ЦеныНоменклатурыСрезПоследних.Период, День) = ВтДанныеЗП.ДеньАкции"
из последней таблицы
progaoff; +1 Ответить
44. progaoff 13.07.15 11:50 Сейчас в теме
Есть 100% у меня считало только не было разграничения между акионным днем и обычным
47. karpik666 3776 13.07.15 11:53 Сейчас в теме
(44) progaoff, чтобы правильно считалась сумма тебе нужно получить цену на материал на дату акции, а для этого срез последних по цене не подходит так как получает самую последнюю цену на текущую дату.
Здесь нужно брать физическую таблицу цены и накладывать на нее условие по дате и по номенклатуре. В общем, чтобы было все нормально запрос должен быть еще раза в 2 больше
45. пользователь 13.07.15 11:51
Сообщение было скрыто модератором.
...
46. progaoff 13.07.15 11:52 Сейчас в теме
В регистре хранится цена за две единицы измерения, и результат выдает две единицы, как убрать одну из них не подскажешь?
48. karpik666 3776 13.07.15 11:54 Сейчас в теме
(46) progaoff, тут непонятно, можешь пример выводимых данных на скриншоте. и что нужно убрать.
49. progaoff 13.07.15 11:58 Сейчас в теме
Здесь цена за штуку, а ниже за мл. вот нужна за мл.
Прикрепленные файлы:
50. karpik666 3776 13.07.15 12:00 Сейчас в теме
(49) progaoff, а Понял, а в регистре Цены, какие измерения есть?
53. progaoff 13.07.15 12:03 Сейчас в теме
(50) karpik666, Номеклатура, Организация, ЕдИзм
54. karpik666 3776 13.07.15 12:07 Сейчас в теме
(53) progaoff,

ВЫБРАТЬ Различные
    Началопериода(Акции.ДатаАкции, День) КАК ДатаАкции
ПОМЕСТИТЬ ВтДатыАкции
    ИЗ
    РегистрСведений.Акции КАК Акции
ГДЕ
    Акции.ДатаАкции МЕЖДУ &ДатаНач И &ДатаКон
    И Акции.Акция = &Акция;

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

Выбрать
НачалоПериода(ЦеныНоменклатуры.Период, День) КАК ДатаЦены,
ЦеныНоменклатуры.Номенклатура,
ЦеныНоменклатуры.Цена
Поместить ВтЦеныНоменклатурыСрезПоследних
ИЗ
 РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ГДЕ 
ЦеныНоменклатуры.Активность И 
ЦеныНоменклатуры.Организация = &Организация  
И ЦеныНоменклатуры.Номенклатура В (Выбрать Различные ВтДанныеЗП.Материал ИЗ ВтДанныеЗП)
   И НачалоПериода(ЦеныНоменклатуры.Период, День) В (Выбрать ВтДатыАкции.ДатаАкции ИЗ ВтДатыАкции)
   И ЦеныНоменклатуры.ЕдИзм = &ЕдиницаИзмерения;
   
Выбрать 
    ВтДанныеЗП.КолвоМатериала * isnull(ЦеныНоменклатурыСрезПоследних.Цена,0) КАК СтоимостьМатериала,
    ВтДанныеЗП.Материал,
    isnull(ЦеныНоменклатурыСрезПоследних.Цена,0) КАК Цена
ИЗ ВтДанныеЗП КАК ВтДанныеЗП    
    ЛЕВОЕ СОЕДИНЕНИЕ ВтЦеныНоменклатурыСрезПоследних КАК ЦеныНоменклатурыСрезПоследних
ПО ВтДанныеЗП.Материал = ЦеныНоменклатурыСрезПоследних.Номенклатура И
   ЦеныНоменклатурыСрезПоследних.ДатаЦены =  ВтДанныеЗП.ДеньАкции
Показать

Попробуй этот и в параметрах проставь единицы измерения.
Хотя можно задать связь, если в записях про акции хранятся единицы измерения
52. Kedis 13.07.15 12:03 Сейчас в теме
(49) progaoff, как я писал только в 3 запрос допиши нужное условие.
51. Kedis 13.07.15 12:00 Сейчас в теме
Не намного больше, делай следующее, увы не в консоле пишу, но смысл ты поймёшь:
1. Запрос на даты акции, сворачивает по датам в ТЗ. (Поле дата). Получаем все даты акций для расчета цены.
2. запрос по материалам акций в ТЗ, сворачиваешь по материалу (Материал). Получаем материалы для расчеты цены
3. Запрос по левым связям с Регистром цен по материалу и дате в ТЗ. (Материал, цена, дата) Получаем материалы и цены на все даты
4. Запрос по данным акциям связь с ТЗ 3. (Поля Акция, материал, цена, дата) (отбираем нужные акции, материала по ним и цены на даты акций.
5. Запрос по Данным ЗП - ну тут как и было только цены у нас уже есть
55. progaoff 13.07.15 12:14 Сейчас в теме
опять все строки пустые кроме товара, и единицу как то бы проставить автоматом, что бы юзверь не трогал этот параметр.
57. karpik666 3776 13.07.15 12:24 Сейчас в теме
(55) progaoff, чтобы ставить единицу измерения автоматом ее нужно откуда-то взять, у тебя данные для расчета зп хранят единицу измерения номенклатуры?
58. progaoff 13.07.15 12:27 Сейчас в теме
(57) karpik666, нет не хранит к сожалению.
60. karpik666 3776 13.07.15 12:28 Сейчас в теме
(58) progaoff, тогда нужно добавлять, я так понимаю это все равно доработанный регистр, и немного допилить обработку проведения документа, который в него данные пишет
56. progaoff 13.07.15 12:22 Сейчас в теме
Установил параметр с единицей измерения, и все равно выдает и шт и мл.
59. karpik666 3776 13.07.15 12:27 Сейчас в теме
(56) progaoff, не может быть условие явно задано. Добавь в последний запрос еще выборку на датуАкции "ВтДанныеЗП.ДеньАкции", скорее всего 2 акции было
61. karpik666 3776 13.07.15 12:31 Сейчас в теме
пришли структуру регистров РегистрСведений.Акции И РегистрНакопления.ДанныеДляНачисленияЗП
62. progaoff 13.07.15 12:33 Сейчас в теме
Вот скрин, да сделал еще один акционный документ что бы проверить на даты...и получил вот это, но даже если я убираю второй то остаются две еденицы
Прикрепленные файлы:
63. karpik666 3776 13.07.15 12:35 Сейчас в теме
(62) progaoff, даже на скриншоте видно, что ты не последний мой запрос используешь, так как должно быть 3 временных таблицы
67. progaoff 13.07.15 12:41 Сейчас в теме
(63) karpik666, По последнему запросу, опять пустая таблица....
69. karpik666 3776 13.07.15 12:44 Сейчас в теме
(67) progaoff, вот, теперь работаем именно с ним, в параметрах стоит Единица измерения?
71. karpik666 3776 13.07.15 12:45 Сейчас в теме
(67) progaoff, "пустая" это значит цена не стоит или вообще записей нет?
64. progaoff 13.07.15 12:36 Сейчас в теме
ДанныеДляНачисленияЗП
Прикрепленные файлы:
66. karpik666 3776 13.07.15 12:38 Сейчас в теме
(64) progaoff, идеальным было бы добавить измерение "ЕдиницаИзмерения" в регистр ДанныеДляНачисленияЗП, как сделано в ценах, и по нему вычислять уже цену.
65. progaoff 13.07.15 12:37 Сейчас в теме
Акции
Прикрепленные файлы:
68. progaoff 13.07.15 12:43 Сейчас в теме
А если взять справочник МатериалыДляАкции???
70. karpik666 3776 13.07.15 12:45 Сейчас в теме
(68) progaoff, а в нем есть основная единица измерения?
72. progaoff 13.07.15 12:48 Сейчас в теме
В запросе, изменил только единицы измерения, взял по клласификатору, так как у каждого товара своя еденица а искать ее в этом справочнике полное г.... Справочник материалы имеет только реквизит номенклатура. Этот реквизит ссылаетс на справочник Номенклатура
73. karpik666 3776 13.07.15 12:50 Сейчас в теме
(72) progaoff, а в справочнике номенклатура Есть "Основная единица измерения".
Тогда убери вообще условие в цена на единицу измерения, тогда заработает.
75. progaoff 13.07.15 12:53 Сейчас в теме
(73) karpik666, не понял какое условие поменять? в 3м запросе?
77. karpik666 3776 13.07.15 12:54 Сейчас в теме
(75) progaoff, да, убрать строку И ЦеныНоменклатуры.ЕдИзм = &ЕдиницаИзмерени
74. progaoff 13.07.15 12:52 Сейчас в теме
76. karpik666 3776 13.07.15 12:53 Сейчас в теме
(74) progaoff, тогда можно получить единицу измерения так ВтДанныеЗП.Материал.Номенклатура.ОсновнаяЕденицаИзмерения.
В цене получить в выборке единицу измерения, а в последнем запросе из связать, по равенству единиц
78. karpik666 3776 13.07.15 12:58 Сейчас в теме
Приблизительно так:
ВЫБРАТЬ Различные
    Началопериода(Акции.ДатаАкции, День) КАК ДатаАкции
ПОМЕСТИТЬ ВтДатыАкции
    ИЗ
    РегистрСведений.Акции КАК Акции
ГДЕ
    Акции.ДатаАкции МЕЖДУ &ДатаНач И &ДатаКон
    И Акции.Акция = &Акция;

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

Выбрать
НачалоПериода(ЦеныНоменклатуры.Период, День) КАК ДатаЦены,
ЦеныНоменклатуры.Номенклатура,
ЦеныНоменклатуры.Цена,
ЦеныНоменклатуры.ЕдИзм КАК ЕдиницаИзмерения
Поместить ВтЦеныНоменклатурыСрезПоследних
ИЗ
 РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ГДЕ 
ЦеныНоменклатуры.Активность И 
ЦеныНоменклатуры.Организация = &Организация  
И ЦеныНоменклатуры.Номенклатура В (Выбрать Различные ВтДанныеЗП.Материал ИЗ ВтДанныеЗП)
   И НачалоПериода(ЦеныНоменклатуры.Период, День) В (Выбрать ВтДатыАкции.ДатаАкции ИЗ ВтДатыАкции)
   
Выбрать 
    ВтДанныеЗП.КолвоМатериала * isnull(ЦеныНоменклатурыСрезПоследних.Цена,0) КАК СтоимостьМатериала,
    ВтДанныеЗП.Материал,
    isnull(ЦеныНоменклатурыСрезПоследних.Цена,0) КАК Цена
ИЗ ВтДанныеЗП КАК ВтДанныеЗП    
    ЛЕВОЕ СОЕДИНЕНИЕ ВтЦеныНоменклатурыСрезПоследних КАК ЦеныНоменклатурыСрезПоследних
ПО ВтДанныеЗП.Материал = ЦеныНоменклатурыСрезПоследних.Номенклатура И
ВтДанныеЗП.ЕдиницаИзмерения = ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения И
   ЦеныНоменклатурыСрезПоследних.ДатаЦены =  ВтДанныеЗП.ДеньАкции
Показать

Только ОсновнаяЕдиницаИзмерения заменить на имя твоего реквизита в номенклатуре
79. progaoff 13.07.15 12:59 Сейчас в теме
Вот что получается
Прикрепленные файлы:
80. karpik666 3776 13.07.15 13:02 Сейчас в теме
(79) progaoff, проверь последний запрос
81. progaoff 13.07.15 13:05 Сейчас в теме
Поле не найдено.....Ставлю свое поле как в справочнике номенклатура....тоже поле не найдено
82. karpik666 3776 13.07.15 13:06 Сейчас в теме
(81) progaoff, обрати внимание, что это же поле еще и в группировке находится, может ругается еще на нее
83. progaoff 13.07.15 13:13 Сейчас в теме
(82) karpik666, Беру данные из справочника по единицам, и все равно пусто,
ДанныеДляНачисленияЗП.Материал.Номенклатура.ОсновнаяЕдиницаИзмерения
на Справочник.Номенклатура.ОсновнаяЕденицаИзмерения, и пустая таблица
84. karpik666 3776 13.07.15 13:16 Сейчас в теме
(83) progaoff, пришли теперь полностью свой запрос и скрин параметров
85. progaoff 13.07.15 13:27 Сейчас в теме
ВЫБРАТЬ Различные
    Началопериода(Акции.ДатаАкции, День) КАК ДатаАкции
ПОМЕСТИТЬ ВтДатыАкции
    ИЗ
    РегистрСведений.Акции КАК Акции
ГДЕ
    Акции.ДатаАкции МЕЖДУ &ДатаНач И &ДатаКон
    И Акции.Акция = &Акция;

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

Выбрать
НачалоПериода(ЦеныНоменклатуры.Период, День) КАК ДатаЦены,
ЦеныНоменклатуры.Номенклатура,
ЦеныНоменклатуры.Цена,
ЦеныНоменклатуры.ЕдИзм КАК ЕдиницаИзмерения
Поместить ВтЦеныНоменклатурыСрезПоследних
ИЗ
 РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ГДЕ 
ЦеныНоменклатуры.Активность И 
ЦеныНоменклатуры.Организация = &Организация  
И ЦеныНоменклатуры.Номенклатура В (Выбрать Различные ВтДанныеЗП.Материал ИЗ ВтДанныеЗП)
   И НачалоПериода(ЦеныНоменклатуры.Период, День) В (Выбрать ВтДатыАкции.ДатаАкции ИЗ ВтДатыАкции);
   
Выбрать 
    ВтДанныеЗП.КолвоМатериала * isnull(ЦеныНоменклатурыСрезПоследних.Цена,0) КАК СтоимостьМатериала,
    ВтДанныеЗП.Материал,
    isnull(ЦеныНоменклатурыСрезПоследних.Цена,0) КАК Цена
ИЗ ВтДанныеЗП КАК ВтДанныеЗП    
    ЛЕВОЕ СОЕДИНЕНИЕ ВтЦеныНоменклатурыСрезПоследних КАК ЦеныНоменклатурыСрезПоследних
ПО ВтДанныеЗП.Материал = ЦеныНоменклатурыСрезПоследних.Номенклатура И
ВтДанныеЗП.ЕдиницаИзмерения = ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения И
   ЦеныНоменклатурыСрезПоследних.ДатаЦены =  ВтДанныеЗП.ДеньАкции
Показать
86. karpik666 3776 13.07.15 13:32 Сейчас в теме
(85) progaoff, кто просил менять так мой запрос?
ВЫБРАТЬ
    СУММА(ДанныеДляНачисленияЗП.МатериалКоличество)  КАК КолвоМатериала,
    ДанныеДляНачисленияЗП.Материал,
    Номенклатура.ОсновнаяЕдиницаИзмерения КАК ЕдиницаИзмерения,
    НачалоПериода(ДанныеДляНачисленияЗП.Период, День) КАК ДеньАкции
Поместить ВтДанныеЗП
    ИЗ
Справочник.Номенклатура.ОсновнаяЕденицаИзмерения,    
РегистрНакопления.ДанныеДляНачисленияЗП КАК ДанныеДляНачисленияЗП
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.МатериалыДляАкции КАК МатериалыДляАкции
        ПО ДанныеДляНачисленияЗП.Материал = МатериалыДляАкции.Номенклатура
    ГДЕ
    НачалоПериода(ДанныеДляНачисленияЗП.Период, День) В (Выбрать ВтДатыАкции.ДатаАкции ИЗ ВтДатыАкции)
    И ДанныеДляНачисленияЗП.Организация = &Организация
СГРУППИРОВАТЬ ПО
    НачалоПериода(ДанныеДляНачисленияЗП.Период, День),
    ДанныеДляНачисленияЗП.Материал,
    Справочник.Номенклатура.ОсновнаяЕдиницаИзмерения;  
Показать
этот запрос неправильный, сделай как у меня только поменяй "ОсновнаяЕдиницаИзмерения" на "ОсновнаяЕденицаИзмерения"
87. progaoff 13.07.15 13:41 Сейчас в теме
Вернул твой запрос
{Форма.Форма.Форма(773)}: Ошибка при вызове метода контекста (Выполнить): {(4, 36)}: Поле не найдено "ДанныеДляНачисленияЗП.Материал.Номенклатура.ОсновнаяЕдиницаИзмерения"
ДанныеДляНачисленияЗП.Материал.<<?>>Номенклатура.ОсновнаяЕдиницаИзмерения КАК ЕдиницаИзмерения,
88. karpik666 3776 13.07.15 14:09 Сейчас в теме
Тогда будет вот так:
ВЫБРАТЬ Различные
    Началопериода(Акции.ДатаАкции, День) КАК ДатаАкции
ПОМЕСТИТЬ ВтДатыАкции
    ИЗ
    РегистрСведений.Акции КАК Акции
ГДЕ
    Акции.ДатаАкции МЕЖДУ &ДатаНач И &ДатаКон
    И Акции.Акция = &Акция;

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

Выбрать
НачалоПериода(ЦеныНоменклатуры.Период, День) КАК ДатаЦены,
ЦеныНоменклатуры.Номенклатура,
ЦеныНоменклатуры.Цена,
ЦеныНоменклатуры.ЕдИзм КАК ЕдиницаИзмерения
Поместить ВтЦеныНоменклатурыСрезПоследних
ИЗ
 РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ГДЕ 
ЦеныНоменклатуры.Активность И 
ЦеныНоменклатуры.Организация = &Организация  
И ЦеныНоменклатуры.Номенклатура В (Выбрать Различные ВтДанныеЗП.Материал ИЗ ВтДанныеЗП)
   И НачалоПериода(ЦеныНоменклатуры.Период, День) В (Выбрать ВтДатыАкции.ДатаАкции ИЗ ВтДатыАкции)
   
Выбрать 
    ВтДанныеЗП.КолвоМатериала * isnull(ЦеныНоменклатурыСрезПоследних.Цена,0) КАК СтоимостьМатериала,
    ВтДанныеЗП.Материал,
    isnull(ЦеныНоменклатурыСрезПоследних.Цена,0) КАК Цена
ИЗ ВтДанныеЗП КАК ВтДанныеЗП    
    ЛЕВОЕ СОЕДИНЕНИЕ ВтЦеныНоменклатурыСрезПоследних КАК ЦеныНоменклатурыСрезПоследних
ПО ВтДанныеЗП.Материал = ЦеныНоменклатурыСрезПоследних.Номенклатура И
ВтДанныеЗП.ЕдиницаИзмерения = ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения И
   ЦеныНоменклатурыСрезПоследних.ДатаЦены =  ВтДанныеЗП.ДеньАкции
Показать
89. progaoff 13.07.15 14:14 Сейчас в теме
{Форма.Форма.Форма(1531)}: Ошибка при вызове метода контекста (НайтиПараметры): {(13, 36)}: Поле не найдено "ДанныеДляНачисленияЗП.Материал.ОсновнаяЕденицаИзмерения"
ДанныеДляНачисленияЗП.Материал.<<?>>ОсновнаяЕденицаИзмерения КАК ЕдиницаИзмерения,капец
90. progaoff 13.07.15 14:16 Сейчас в теме
Вот скрин с параметрами
Прикрепленные файлы:
91. progaoff 13.07.15 14:18 Сейчас в теме
Вот результат
Прикрепленные файлы:
92. karpik666 3776 13.07.15 14:24 Сейчас в теме
Тьфу ты, букву "е" исправь на "и" в слове едЕница. Я то запрос пишу вручную без подсказки
93. progaoff 13.07.15 14:28 Сейчас в теме
вот результат после исправления)
94. karpik666 3776 13.07.15 14:34 Сейчас в теме
Запрос в принципе верный, теперь нужно отладить временные таблицы, посмотри что хранится в втЦеныНоменклатуры
95. progaoff 13.07.15 14:36 Сейчас в теме
Два документа но сумм нет, якобы не видит цену скорее всего, потому как третья таблица пустая
96. progaoff 13.07.15 14:36 Сейчас в теме
может срез последних???
97. karpik666 3776 13.07.15 15:41 Сейчас в теме
(96) progaoff, если будешь брать срез то данные в дальнейшем могут быть не верными, у вас несколько организаций?
98. progaoff 13.07.15 15:44 Сейчас в теме
да, несколько, просто все выполняется, кроме цены...таблица там где должны быть цены она пустая
99. progaoff 13.07.15 15:49 Сейчас в теме
ВЫБРАТЬ Различные
    Началопериода(Акции.ДатаАкции, День) КАК ДатаАкции
ПОМЕСТИТЬ ВтДатыАкции
    ИЗ
    РегистрСведений.Акции КАК Акции
ГДЕ
    Акции.ДатаАкции МЕЖДУ &ДатаНач И &ДатаКон
    И Акции.Акция = &Акция;

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

Выбрать 
НачалоПериода(ЦеныНоменклатуры.Период, День) КАК ДатаЦены,
ЦеныНоменклатуры.Номенклатура,
ЦеныНоменклатуры.Цена,
ЦеныНоменклатуры.ЕдИзм КАК ЕдиницаИзмерения
Поместить ВтЦеныНоменклатурыСрезПоследних
ИЗ
 РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры

//ГДЕ 
//ЦеныНоменклатуры.Активность  
//ЦеныНоменклатуры.Организация = &Организация  
//И ЦеныНоменклатуры.Номенклатура В (Выбрать Различные ВтДанныеЗП.Материал ИЗ ВтДанныеЗП)
//И НачалоПериода(ЦеныНоменклатуры.Период, День) В (Выбрать ВтДатыАкции.ДатаАкции ИЗ ВтДатыАкции);
 ;  
Выбрать 
    ВтДанныеЗП.КолвоМатериала * isnull (ЦеныНоменклатурыСрезПоследних.Цена,0) КАК СтоимостьМатериала,
    ВтДанныеЗП.Материал,
    isnull(ЦеныНоменклатурыСрезПоследних.Цена,0) КАК Цена
ИЗ ВтДанныеЗП КАК ВтДанныеЗП    
    ЛЕВОЕ СОЕДИНЕНИЕ ВтЦеныНоменклатурыСрезПоследних КАК ЦеныНоменклатурыСрезПоследних
ПО ВтДанныеЗП.Материал = ЦеныНоменклатурыСрезПоследних.Номенклатура И
ВтДанныеЗП.ЕдиницаИзмерения = ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения 
//И ЦеныНоменклатурыСрезПоследних.ДатаЦены =  ВтДанныеЗП.ДеньАкции
Показать

Результат в скриншоте
Прикрепленные файлы:
100. progaoff 13.07.15 15:49 Сейчас в теме
ВЫБРАТЬ Различные
    Началопериода(Акции.ДатаАкции, День) КАК ДатаАкции
ПОМЕСТИТЬ ВтДатыАкции
    ИЗ
    РегистрСведений.Акции КАК Акции
ГДЕ
    Акции.ДатаАкции МЕЖДУ &ДатаНач И &ДатаКон
    И Акции.Акция = &Акция;

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

Выбрать 
НачалоПериода(ЦеныНоменклатуры.Период, День) КАК ДатаЦены,
ЦеныНоменклатуры.Номенклатура,
ЦеныНоменклатуры.Цена,
ЦеныНоменклатуры.ЕдИзм КАК ЕдиницаИзмерения
Поместить ВтЦеныНоменклатурыСрезПоследних
ИЗ
 РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры

//ГДЕ 
//ЦеныНоменклатуры.Активность  
//ЦеныНоменклатуры.Организация = &Организация  
//И ЦеныНоменклатуры.Номенклатура В (Выбрать Различные ВтДанныеЗП.Материал ИЗ ВтДанныеЗП)
//И НачалоПериода(ЦеныНоменклатуры.Период, День) В (Выбрать ВтДатыАкции.ДатаАкции ИЗ ВтДатыАкции);
 ;  
Выбрать 
    ВтДанныеЗП.КолвоМатериала * isnull (ЦеныНоменклатурыСрезПоследних.Цена,0) КАК СтоимостьМатериала,
    ВтДанныеЗП.Материал,
    isnull(ЦеныНоменклатурыСрезПоследних.Цена,0) КАК Цена
ИЗ ВтДанныеЗП КАК ВтДанныеЗП    
    ЛЕВОЕ СОЕДИНЕНИЕ ВтЦеныНоменклатурыСрезПоследних КАК ЦеныНоменклатурыСрезПоследних
ПО ВтДанныеЗП.Материал = ЦеныНоменклатурыСрезПоследних.Номенклатура И
ВтДанныеЗП.ЕдиницаИзмерения = ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения 
//И ЦеныНоменклатурыСрезПоследних.ДатаЦены =  ВтДанныеЗП.ДеньАкции
Показать

Результат в скриншоте
Прикрепленные файлы:
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот