|
Как выбрать ТЧ из документа, параметр которого устанавливается в запросе | ☑ | ||
---|---|---|---|---|
0
yavasya
17.07.14
✎
16:30
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | ПриходнаяНакладная.СтавкаНДС, | СУММА(ПриходнаяНакладная.СуммаНДС) КАК СуммаНДС, | СУММА(ПриходнаяНакладная.Сумма) КАК Сумма, | СУММА(АктПереоценки.Цена * ПриходнаяНакладная.Количество) КАК СуммаВРознице, | СУММА(ПриходнаяНакладная.Количество) КАК Количество |ИЗ | Документ.ПриходнаяНакладная.Товары КАК ПриходнаяНакладная | ЛЕВОЕ СОЕДИНЕНИЕ Документ.АктПереоценки.Товары КАК АктПереоценки | ПО ПриходнаяНакладная.Номенклатура = АктПереоценки.Номенклатура |ГДЕ |ПриходнаяНакладная.Ссылка.Дата МЕЖДУ &НачДата И &КонДата |И АктПереоценки.Ссылка.ДокументОснование = &Источник |И ПриходнаяНакладная.Ссылка = &Источник |И ПриходнаяНакладная.Ссылка.Проведен |СГРУППИРОВАТЬ ПО |ПриходнаяНакладная.СтавкаНДС"; Запрос.УстановитьПараметр("Источник",Источник); Запрос.УстановитьПараметр("НачДата", НачалоДня(ДатаНачала)); Запрос.УстановитьПараметр("КонДата", КонецДня(ДатаОкончания)); КоллекцияОбъектов=Запрос.Выполнить().Выгрузить(); |
|||
1
yavasya
17.07.14
✎
16:32
|
Здесь приходная накладная, но вместо неё в зависимости от регистратора, может быть другой документ , например, остатки по товарам документ
|
|||
2
yavasya
17.07.14
✎
16:34
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | &Источник.СтавкаНДС, | СУММА(&Источник.СуммаНДС) КАК СуммаНДС, | СУММА(&Источник.Сумма) КАК Сумма, | СУММА(АктПереоценки.Цена * &Источник.Количество) КАК СуммаВРознице, | СУММА(&Источник.Количество) КАК Количество |ИЗ | Документ.ПриходнаяНакладная.Товары КАК ПриходнаяНакладная | ЛЕВОЕ СОЕДИНЕНИЕ Документ.АктПереоценки.Товары КАК АктПереоценки | ПО &Источник.Номенклатура = АктПереоценки.Номенклатура |ГДЕ |&Источник.Ссылка.Дата МЕЖДУ &НачДата И &КонДата |И АктПереоценки.Ссылка.ДокументОснование = &Источник |И &Источник.Ссылка.Проведен |СГРУППИРОВАТЬ ПО |&Источник.СтавкаНДС"; Запрос.УстановитьПараметр("Источник",Источник); Запрос.УстановитьПараметр("НачДата", НачалоДня(ДатаНачала)); Запрос.УстановитьПараметр("КонДата", КонецДня(ДатаОкончания)); КоллекцияОбъектов=Запрос.Выполнить().Выгрузить(); |
|||
3
yavasya
17.07.14
✎
16:34
|
хотелось бы так
|
|||
4
Принцип работы синхр
17.07.14
✎
16:35
|
Запрос.текст = ?(Источник= ДокостаткиПоТоварам,СтрЗаменить(Запрос.Текст,"ПриходнаяНакладная.Товары","ДокостаткиПоТоварам.Остатки"),Запрос.текст)
|
|||
5
Принцип работы синхр
17.07.14
✎
16:35
|
как-то так
|
|||
6
Ymryn
17.07.14
✎
16:35
|
(2) почти угадал. Только |&Источник.Ссылка.Дата МЕЖДУ &НачДата И &КонДата Замени на |"+Источник+".Ссылка.Дата Между ...
И так везде. А в качестве источника передавай строчку с наименованием. А еще лучше выгружай все в табличную часть, а уже табличную часть передавай как параметр. |
|||
7
Ymryn
17.07.14
✎
16:36
|
(4) кстати, да. Вариант лучше. Не подумал в этом направлении )
|
|||
8
yavasya
17.07.14
✎
16:37
|
(4) не врубаюсь что то
|
|||
9
Ymryn
17.07.14
✎
16:38
|
(8) через СтрЗаменить везде меняешь текст параметра на нужный, согласно значению параметра.
|
|||
10
Ymryn
17.07.14
✎
16:39
|
(9) *параметризуемый кусок запроса (блин, не могу найти нужное слово) :(
|
|||
11
РенеДекарт
17.07.14
✎
17:10
|
ВЫБОР КОГДА ДокостаткиПоТоварам ССЫЛКА Документ.ПриходнаяНакладная ТОГДА
ИНАЧЕ ... |
|||
12
yavasya
17.07.14
✎
17:27
|
условиеНаДокумент=ВыборкаДетальныеЗаписи.Регистратор;
ВыборкаДетальныеЗаписи.Регистратор; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | "+УсловиеНаДокумент+".СтавкаНДС, | СУММА(&Источник.СуммаНДС) КАК СуммаНДС, | СУММА(&Источник.Сумма) КАК Сумма, | СУММА(АктПереоценки.Цена * &Источник.Количество) КАК СуммаВРознице, | СУММА(&Источник.Количество) КАК Количество |ИЗ | Документ.ПриходнаяНакладная.Товары КАК ПриходнаяНакладная | ЛЕВОЕ СОЕДИНЕНИЕ Документ.АктПереоценки.Товары КАК АктПереоценки | ПО &Источник.Номенклатура = АктПереоценки.Номенклатура |ГДЕ |&Источник.Ссылка.Дата МЕЖДУ &НачДата И &КонДата |И АктПереоценки.Ссылка.ДокументОснование = &Источник |И &Источник.Ссылка.Проведен |СГРУППИРОВАТЬ ПО |&Источник.СтавкаНДС"; Запрос.УстановитьПараметр("Источник",Источник); Запрос.УстановитьПараметр("НачДата", НачалоДня(ДатаНачала)); Запрос.УстановитьПараметр("КонДата", КонецДня(ДатаОкончания)); КоллекцияОбъектов=Запрос.Выполнить().Выгрузить(); |
|||
13
yavasya
17.07.14
✎
17:28
|
(6) напомнил
|
|||
14
Крошка Ру
17.07.14
✎
17:32
|
(12) Это как?
| Документ.ПриходнаяНакладная.Товары КАК ПриходнаяНакладная | ЛЕВОЕ СОЕДИНЕНИЕ Документ.АктПереоценки.Товары КАК АктПереоценки | ПО &Источник.Номенклатура = АктПереоценки.Номенклатура |
|||
15
Крошка Ру
17.07.14
✎
17:36
|
(12) А данные тебе конечно нужны для печатной формы?
|
|||
16
yavasya
17.07.14
✎
17:36
|
Крошка))) (14) затормозил, у меня всё равно он берется параметром, ничего не надо изменять
|
|||
17
yavasya
17.07.14
✎
17:36
|
внешнего отчета
|
|||
18
yavasya
17.07.14
✎
17:36
|
надеюсь сработает
|
|||
19
yavasya
17.07.14
✎
17:41
|
условиеНаДокумент=ВыборкаДетальныеЗаписи.Регистратор.Ссылка;
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СУММА(АктПереоценки.Цена * ПриходнаяНакладная.Количество) КАК СуммаВРознице |ИЗ | "+условиеНаДокумент+".Товары КАК ПриходнаяНакладная | ЛЕВОЕ СОЕДИНЕНИЕ Документ.АктПереоценки.Товары КАК АктПереоценки | ПО ПриходнаяНакладная.Номенклатура = АктПереоценки.Номенклатура |ГДЕ | АктПереоценки.Ссылка.ДокументОснование = &Источник | И ПриходнаяНакладная.Ссылка = &Источник Запрос.УстановитьПараметр("Источник",условиеНаДокумент); |
|||
20
Крошка Ру
17.07.14
✎
17:45
|
Делай из регистров, тогда и с документами такой заморочки не будет
|
|||
21
Крошка Ру
17.07.14
✎
17:47
|
(19) И судя по
условиеНаДокумент=ВыборкаДетальныеЗаписи.Регистратор.Ссылка; у тебя ещё и запрос в цикле. |
|||
22
yavasya
17.07.14
✎
17:48
|
вот именно )))(19)
|
|||
23
yavasya
17.07.14
✎
17:52
|
переоценка , она присваивается партии, из за этого не получается по регитсрам
|
|||
24
yavasya
17.07.14
✎
17:53
|
в регистре сведений ЦеныНоменклатуры нет измерения "Партии"
|
|||
25
Крошка Ру
17.07.14
✎
17:58
|
(24) То есть ты хочешь меня убедить, что в регистрах нет учетной информации, которая есть в документах?
|
|||
26
yavasya
17.07.14
✎
18:24
|
условиеНаДокумент=ВыборкаДетальныеЗаписи.Регистратор.Метаданные().Имя;
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СУММА(АктПереоценки.Цена * ПриходнаяНакладная.Количество) КАК СуммаВРознице |ИЗ | Документ."+условиеНаДокумент+".Товары КАК ПриходнаяНакладная | ЛЕВОЕ СОЕДИНЕНИЕ Документ.АктПереоценки.Товары КАК АктПереоценки | ПО ПриходнаяНакладная.Номенклатура = АктПереоценки.Номенклатура |ГДЕ | АктПереоценки.Ссылка.ДокументОснование = &Источник | И ПриходнаяНакладная.Ссылка = &Источник "; Запрос.УстановитьПараметр("Источник",ВыборкаДетальныеЗаписи.Регистратор.Ссылка); |
|||
27
yavasya
17.07.14
✎
18:25
|
другой запрос прийдётся делать , всё равно по регистратору, то же самое(25) .Так взлетело
|
|||
28
yavasya
17.07.14
✎
21:12
|
интересно в копии базы отчет работает, а в рабочей базе выдает
ошибку : регистратор.Контрагент необнаружен Сделал чек.дбфл ненашел ошибку , пробую ТИИ. Найти того контрагента и грохнуть ? |
|||
29
yavasya
17.07.14
✎
21:13
|
Писал в рабочей базе никогда бы ошибку не нашел
|
|||
30
yavasya
17.07.14
✎
21:14
|
или как перескочить эту ошибку ?
|
|||
31
pessok
17.07.14
✎
23:15
|
ВЫБРАТЬ Источник.НужноеПоле КАК Поле
ИЗ &Источник КАК Источник ПОМЕСТИТЬ ВТДанныеИсточника ; ВЫБРАТЬ * ИЗ ВТИсточник Запрос.УстановитьПараметр("Источник", Источник); |
|||
32
pessok
17.07.14
✎
23:16
|
ВЫБРАТЬ Источник.НужноеПоле КАК Поле
ИЗ &Источник КАК Источник ПОМЕСТИТЬ ВТДанныеИсточника ; ВЫБРАТЬ * ИЗ ВТДанныеИсточника |
|||
33
pessok
17.07.14
✎
23:17
|
обшибся...
общий смысл - поместить все в виртуальную таблицу из источника, где таблица данных для виртуальной таблицы - параметр. а потом уже выбирать из виртуальной таблицы |
|||
34
pessok
17.07.14
✎
23:20
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Источник.СтавкаНДС, Источник.СуммаНДС, Источник.Сумма, Источник.Цена * Источник.Количество КАК СуммаВРознице, Источник.Количество ПОМЕСТИТЬ ВТДанныеИсточника ИЗ &Источник КАК Источник ; ВЫБРАТЬ | ВТДанныеИсточника.СтавкаНДС, | СУММА(ВТДанныеИсточника.СуммаНДС) КАК СуммаНДС, | СУММА(ВТДанныеИсточника.Сумма) КАК Сумма, | СУММА(АктПереоценки.Цена * ПриходнаяНакладная.Количество) КАК СуммаВРознице, | СУММА(ВТДанныеИсточника.Количество) КАК Количество |ИЗ | ВТДанныеИсточника КАК ВТДанныеИсточника | ЛЕВОЕ СОЕДИНЕНИЕ Документ.АктПереоценки.Товары КАК АктПереоценки | ПО ПриходнаяНакладная.Номенклатура = АктПереоценки.Номенклатура |ГДЕ |ПриходнаяНакладная.Ссылка.Дата МЕЖДУ &НачДата И &КонДата |И АктПереоценки.Ссылка.ДокументОснование = &Источник |И ПриходнаяНакладная.Ссылка = &Источник |И ПриходнаяНакладная.Ссылка.Проведен |СГРУППИРОВАТЬ ПО |ПриходнаяНакладная.СтавкаНДС"; |
|||
35
alle68
18.07.14
✎
02:24
|
(28) Как можно найти то, чего нет? И не видно в запросе этого таинственного "регистратор.Контрагент".
(26) Ссылка через ссылку - это сильно! "ВыборкаДетальныеЗаписи.Регистратор.Ссылка". Коль так, то можно и советом (33) воспользоваться с временной (не виртуальной) таблицей. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |