|
v7: Проблема с запросом | ☑ | ||
---|---|---|---|---|
0
crisalis
13.06.13
✎
12:25
|
Доброе время суток уважаемые гуру !
Подскажите пожалуйста что не так с запросом: "//{{ЗАПРОС(Сформировать) |Период с НачДата по КонДата; |Обрабатывать НеПомеченныеНаУдаление; |Документы = Документ.НалоговаяНакладная.ТекущийДокумент, Документ.РасходнаяНакладная.ТекущийДокумент; |Клиент = Документ.НалоговаяНакладная.Клиент, Документ.РасходнаяНакладная.Клиент; |Товар = Документ.НалоговаяНакладная.Товар, Документ.РасходнаяНакладная.Товар; |КоличествоТов = Документ.НалоговаяНакладная.Количество, Документ.РасходнаяНакладная.Количество; |Функция Количество = Минимум(КоличествоТов); |Группировка Клиент; |Группировка Товар Без Групп; |Условие (Клиент В ВыбКонтр); |Условие (Товар В СписокЭлементов); |"//}}ЗАПРОС ВыбКонтр задается на форме. СписокЭлементов (только элементы) перебирается программно чтобы отсеять группы. Хочу получить табличку типа: Контрагент|Товар|Количество Контр1 |Тов1 |5 Контр1 |Тов2 |0 Контр1 |Тов3 |0 Контр1 |Тов4 |5 Контр1 |Тов5 |1 А получаю только что есть в ТЧ документов. Что требуется дописать чтобы были видны и элементы которых нет в ТЧ документе но передаются как параметр (Условие (Товар В СписокЭлементов)) ? Заранее благодарен. |
|||
1
ale-sarin
13.06.13
✎
12:26
|
Запрос семерочный, а в теме 8-ка. Как так
|
|||
2
crisalis
13.06.13
✎
12:27
|
Я вроде указывал что это тема по 7
|
|||
3
Wobland
13.06.13
✎
12:27
|
а так хочется левое соединение
|
|||
4
crisalis
13.06.13
✎
12:27
|
А как исправить ???
|
|||
5
crisalis
13.06.13
✎
12:29
|
3 - хочется но это ж 1с7.7
|
|||
6
Wobland
13.06.13
✎
12:30
|
(5) left join там возможен
|
|||
7
crisalis
13.06.13
✎
12:33
|
(6) а можно по подробней и как это реализовать со СЗ
|
|||
8
Wobland
13.06.13
✎
12:36
|
(7) это отдельная песня. что-то я вот так делал:
Запрос=СоздатьОбъект("ToyQuery"); Запрос.Вернуть1С=1; Temp=Запрос.CreateTemp(); Если (УпорядочиваниеПоИерархииНоменклатуры=1) Тогда Если Temp.CreateHierarchy("#ИерархияНоменклатуры","Номенклатура",)=0 Тогда Предупреждение("Не удалось добавить иерархию"); Сообщить(Temp.Ошибка); Возврат; КонецЕсли; КонецЕсли; ТабДок=СоздатьОбъект("Таблица"); Результат=СоздатьОбъект("ТаблицаЗначений"); ТекстЗапроса=СформироватьКошерныйТекстЗапроса(); Если ГоворитьЗапрос=1 Тогда Сообщить(ТекстЗапроса); КонецЕсли; Если Запрос.MetaQuery(ТекстЗапроса)=0 Тогда Сообщить(ТекстЗапроса); Сообщить("Ошибка при выполнении запроса:"); Сообщить(Запрос.Error); КонецЕсли; Запрос.Выгрузить(Результат); |
|||
9
crisalis
13.06.13
✎
12:39
|
(8) У меня платформа чистая, без приблуд.
СоздатьОбъект("ToyQuery"); Temp.CreateHierarchy |
|||
10
1Сергей
13.06.13
✎
12:44
|
(9) поясни, зачем тебе минимальное количество?
|
|||
11
1Сергей
13.06.13
✎
12:45
|
а так,
|Группировка Товар Без Групп Все; |
|||
12
1Сергей
13.06.13
✎
12:45
|
и условие со списком убери нахрен
|
|||
13
crisalis
13.06.13
✎
12:55
|
(10) вместо мин у меня была сумма, я подумал что если записи группируются при суммировании кол. с 0 позиций отбрасываются. Но это конечно же бред.
Нет функ. |Функция Количество = Сумма(КоличествоТов); Нет количества :/ (12) почему убрать мне же строго по конкретному СЗ (конкретный товар) все нужно получить ? |
|||
14
1Сергей
13.06.13
✎
13:03
|
>>Нет функ. |Функция Количество = Сумма(КоличествоТов);
С чего это нет? >>мне же строго по конкретному СЗ (конкретный товар) все нужно получить Тогда я не совсем понял, чего ты там говорил про группы |
|||
15
КапЛей
13.06.13
✎
13:08
|
а в чем сложность результаты запроса выгрузить в ТЗ и дописать в неё строки с товаром из списка и нулевым количеством?
|
|||
16
Mikeware
13.06.13
✎
13:11
|
(15) это же пейсать надо...
|
|||
17
КонецЦикла
13.06.13
✎
13:14
|
>>чтобы были видны и элементы которых нет в ТЧ
А откуда их брать тогда и что выводить? Список товаров можно загнать в ТЗ, убрать из условия и при обходе ТЗ использовать Запрос.Получить() |
|||
18
crisalis
13.06.13
✎
13:16
|
(14) Если убрать |Функция Количество = Сумма(КоличествоТов); при выборке (обходе) рез. запроса Запрос.Количество = пустое.
Про группы я говорил что перебираю СЗ Товаров (на форме) и получаю СЗ только с элементами так как польз. на форме может добавлять в СЗ Товаров (на форме) и группы и элементы из спр ТМЦ. (15) Тоже вариант, но хотелось все в запросе реализовать. Ребят а может у вас что то такое есть как Планировщик (это наши продажники так называют). По сути это отчет для контроля наличия ассортимента в торговой точке. Контрагенты | Тов1 | Тов2 | Тов3 | Тов4 | Тов5 | Контр1 | 1 | 0 | 0 | 0 | 1 | Контр2 | 1 | 1 | 0 | 1 | 0 | и т.д 1 - Была отгрузка 0 - Нет |
|||
19
Mikeware
13.06.13
✎
13:27
|
(18) не совсем правильно считать ассортимент про отгрузке...
НО нечто такое есть. Правда, завязанное на кучу своих справочников |
|||
20
crisalis
13.06.13
✎
13:30
|
(16) Я напишу не проблема , просто в 8 этот запрос делается за 3 сек. в консоли а в 7 немного трудновато так как консоли нормальной для 7 я не нашел.
(17) из параметра СписокЭлементов с 0. |
|||
21
crisalis
13.06.13
✎
13:32
|
(19) у нас именно эти два документа в проведенном признаке регистрируют факт отгрузки.
|
|||
22
КонецЦикла
13.06.13
✎
13:37
|
(18) Был такой планировщик
Обсчитывалось и складывалось в свою таблицу SQL Дни фактических продаж и еще несколько параметров по объектам и товарам |
|||
23
viktor_vv
13.06.13
✎
13:37
|
Попробуй так
|Товар = Справочник.ТМЦ.ТекущийЭлемент,Документ.НалоговаяНакладная.Товар, Документ.РасходнаяНакладная.Товар; |Группировка Товар Без Групп Все; |
|||
24
Безработный 1Сник
13.06.13
✎
13:37
|
Группировка Документ
Группировка СтрокаДокумента |
|||
25
crisalis
13.06.13
✎
13:41
|
(23) ок
(24) а зачем групп. по докам и по стр.документов??? |
|||
26
crisalis
13.06.13
✎
13:45
|
(22) Обсчитывалось и складывалось в свою таблицу SQL для вывода на сайт ???
|
|||
27
pvase
13.06.13
✎
13:46
|
Вот так можно:
ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с НачДата по КонДата; |Обрабатывать НеПомеченныеНаУдаление; |Клиент = Документ.НалоговаяНакладная.Клиент, Документ.РасходнаяНакладная.Клиент; |Товар = Документ.НалоговаяНакладная.Товар, Документ.РасходнаяНакладная.Товар, Справочник.Номенклатура.ТекущийЭлемент; |КоличествоТов = Документ.НалоговаяНакладная.Количество, Документ.РасходнаяНакладная.Количество; |Функция Количество = Минимум(КоличествоТов); |Группировка Клиент; |Группировка Товар Без Групп; |Условие (Клиент В ВыбКонтр); |Условие (Товар В СписокЭлементов); |"//}}ЗАПРОС ТЗ = СоздатьОбъект("ТаблицаЗначений"); Запрос = СоздатьОбъект(Запрос); Запрос.Выполнить(ТекстЗапроса); Запрос.Выгрузить(ТЗ); В итоге в ТЗ будет необходимая структура. |
|||
28
crisalis
13.06.13
✎
13:49
|
(23) и (11) вроде работает но пробовал без Справочник.ТМЦ.ТекущийЭлемент
(27) Спасибо попробую |
|||
29
crisalis
13.06.13
✎
13:57
|
Вот так заработало:
"//{{ЗАПРОС(Сформировать) |Период с НачДата по КонДата; |Обрабатывать НеПомеченныеНаУдаление; |Документы = Документ.НалоговаяНакладная.ТекущийДокумент, Документ.РасходнаяНакладная.ТекущийДокумент; |Клиент = Документ.НалоговаяНакладная.Клиент, Документ.РасходнаяНакладная.Клиент; |Товар = Документ.НалоговаяНакладная.Товар, Документ.РасходнаяНакладная.Товар, Справочник.ТМЦ.ТекущийЭлемент; |КоличествоТов = Документ.НалоговаяНакладная.Количество, Документ.РасходнаяНакладная.Количество; |Функция Количество = Сумма(КоличествоТов); |Группировка Клиент; |Группировка Товар Без Групп Все; |Условие (Клиент В ВыбКонтр); |"//}}ЗАПРОС ; Спасибо всем за советы и за человечность ! |
|||
30
crisalis
13.06.13
✎
13:59
|
одно условие не дописал:
|Условие (Товар В СписокЭлементов); :) еще раз спасибо всем |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |