|
Помогите сформировать запрос | ☑ | ||
---|---|---|---|---|
0
KuJIT
29.01.14
✎
14:22
|
Такие дела: Есть документ "Медицинский документ", у него есть реквизит1, реквизит2 и дата. У меня есть параметр, которому должен быть равен реквизит1, при этом мне нужны только документы с различными Реквизитами2 (из тех, что с одинаковым Реквизитом2 выбираю тот, у которого дата позже). Можно такой запрос сделать? И как?
|
|||
1
vicof
29.01.14
✎
14:24
|
Можно, 5000 р.
|
|||
2
Beduin
29.01.14
✎
14:24
|
Группируй по дате относительно реквизит2. Короче тупая задача по валюте. Смотри как у Гилева.
|
|||
3
Ненавижу 1С
гуру
29.01.14
✎
14:24
|
можно, 4900
|
|||
4
butterbean
29.01.14
✎
14:25
|
МАКСИМУМ(Дата) + СГРУППИРОВАТЬ ПО Реквизит2
|
|||
5
Enders
29.01.14
✎
14:25
|
Можно, 700 грн
|
|||
6
Classic
29.01.14
✎
14:26
|
300$
|
|||
7
salvator
29.01.14
✎
14:26
|
Да, 1000 евро
|
|||
8
Beduin
29.01.14
✎
14:26
|
Где то есть сайт, там автор за самый лучший ответ деньги пересылает.
|
|||
9
KuJIT
29.01.14
✎
14:35
|
(8) Лол. Это явно не он)
|
|||
10
KuJIT
29.01.14
✎
14:42
|
(4) Не очень понятно. Как модифицировать
Запрос.Текст = "ВЫБРАТЬ | МедицинскийДокумент.ТелоМедицинскогоДокумента, | МедицинскийДокумент.Дата |ИЗ | Документ.МедицинскийДокумент КАК МедицинскийДокумент |ГДЕ | МедицинскийДокумент.МедицинскаяКарта.Ссылка = &МКСсылка" |
|||
11
salvator
29.01.14
✎
14:44
|
(10)
Открой конструктор и сгруппируй по ТелоМедицинскогоДокумента, с максимум по дате |
|||
12
Ненавижу 1С
гуру
29.01.14
✎
14:48
|
пример:
ВЫБРАТЬ ЗаказПокупателя.СкладГруппа, МАКСИМУМ(ЗаказПокупателя.Дата) КАК Дата ПОМЕСТИТЬ Временная ИЗ Документ.ЗаказПокупателя КАК ЗаказПокупателя ГДЕ ЗаказПокупателя.Контрагент = &Контрагент СГРУППИРОВАТЬ ПО ЗаказПокупателя.СкладГруппа ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЗаказПокупателя.Ссылка, Временная.СкладГруппа, Временная.Дата ИЗ Временная КАК Временная ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя ПО Временная.СкладГруппа = ЗаказПокупателя.СкладГруппа И Временная.Дата = ЗаказПокупателя.Дата ГДЕ ЗаказПокупателя.Контрагент = &Контрагент |
|||
13
WildSery
29.01.14
✎
14:54
|
(12) Задача решена неверно, не выполнено условие "при этом мне нужны только документы с различными Реквизитами2"
Необходимо добавить ИМЕЮЩИЕ НЕ МАКСИМУМ(ЗаказПокупателя.Дата) = МИНИМУМ(ЗаказПокупателя.Дата) |
|||
14
WildSery
29.01.14
✎
14:55
|
И группировать, разумеется, не по складу, а по заказу.
|
|||
15
Ненавижу 1С
гуру
29.01.14
✎
14:57
|
(13) не тупи
я думаю, я правиьно понял автора |
|||
16
KuJIT
29.01.14
✎
14:58
|
Запрос.Текст = "ВЫБРАТЬ
| МедицинскийДокумент.ТелоМедицинскогоДокумента, | МАКСИМУМ(МедицинскийДокумент.Дата) КАК Дата |ИЗ | Документ.МедицинскийДокумент КАК МедицинскийДокумент |ГДЕ | МедицинскийДокумент.МедицинскаяКарта.Ссылка = &МКСсылка | |СГРУППИРОВАТЬ ПО | МедицинскийДокумент.ТелоМедицинскогоДокумента" ; Так? Так ругается, что "Недопустимое поле для групировки" |
|||
17
Ненавижу 1С
гуру
29.01.14
✎
15:01
|
(16) чукча писатель?
|
|||
18
WildSery
29.01.14
✎
15:02
|
(15) Я не вижу признаков, что правильно.
|
|||
19
Ёпрст
29.01.14
✎
15:03
|
(18) огласите первичные признаки "правильности"
|
|||
20
WildSery
29.01.14
✎
15:05
|
(19) Описание задачи автором плюс обоснованные умозаключения.
|
|||
21
Ёпрст
29.01.14
✎
15:06
|
(20) огласите обоснованные умозаключения
|
|||
22
WildSery
29.01.14
✎
15:12
|
(21) В данной теме я умозаключений не делал.
(15) Пожалуй, соглашусь, что туплю. Простая группировка скорее всего именно то, что нужно автору. |
|||
23
Simbad
29.01.14
✎
15:15
|
750 руб
|
|||
24
Ненавижу 1С
гуру
29.01.14
✎
15:16
|
(23) согласен, высылай
|
|||
25
Simbad
29.01.14
✎
15:17
|
(24) деньги вперед
|
|||
26
Зойч
29.01.14
✎
15:18
|
Так это же срез последних )))
|
|||
27
KuJIT
29.01.14
✎
15:21
|
Так срез последних не в регистрах только?
|
|||
28
KuJIT
29.01.14
✎
15:22
|
(17) Что это значит? В чем косяк?
|
|||
29
Ненавижу 1С
гуру
29.01.14
✎
15:31
|
(28) см (12)
|
|||
30
Simbad
29.01.14
✎
15:36
|
Ладно шутка шуткой, стандартная задача на списание по партиям плюс Максимальный док по дате уже нужно выбрать в запросе а не просто отсортировать
code+ ВЫБРАТЬ ИсполнительныйЛист.Получатель КАК Получатель, МАКСИМУМ(ИсполнительныйЛист.Дата) КАК Дата ПОМЕСТИТЬ ВТ ИЗ Документ.ИсполнительныйЛист КАК ИсполнительныйЛист ГДЕ ИсполнительныйЛист.Физлицо = &ФЛ СГРУППИРОВАТЬ ПО ИсполнительныйЛист.Получатель ИНДЕКСИРОВАТЬ ПО Получатель, Дата ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ.Получатель КАК Получатель, ВТ.Дата, ИсполнительныйЛист.Ссылка ИЗ Документ.ИсполнительныйЛист КАК ИсполнительныйЛист ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ КАК ВТ ПО ИсполнительныйЛист.Получатель = ВТ.Получатель И ИсполнительныйЛист.Дата = ВТ.Дата УПОРЯДОЧИТЬ ПО Получатель code- |
|||
31
Simbad
29.01.14
✎
15:40
|
(16) ns jn,bhfto ljrevtyn f yt rfrjqnnj htrdbpbn gj eckjdb. ns abkmnh yfrkflsdfti yf ytrbq htrdbpbn
|
|||
32
Simbad
29.01.14
✎
15:41
|
(31) Извините, по условию ты накладываешь фильтр на реквизит а в запросе это сам документ
|
|||
33
KuJIT
29.01.14
✎
16:31
|
(32) Не понял =/ Если не затруднит, не могли бы Вы изменить мой запрос, чтобы он выполнял поставленную задачу? Бо примеры типа (30) Слишком страшные. =)
|
|||
34
WildSery
29.01.14
✎
16:32
|
(33) Вы слишком пугливы, пример можно сказать азбучный.
|
|||
35
13_Mult
29.01.14
✎
16:40
|
(33) Ёпрст, тебе готовый запрос дали. Подставь туда свой док и всё.
|
|||
36
KuJIT
29.01.14
✎
16:46
|
(35) Окау
|
|||
37
hhhh
29.01.14
✎
17:18
|
похоже ТелоМедицинскогоДокумента - не группируется
|
|||
38
KuJIT
30.01.14
✎
08:48
|
(37) И что в таком случае делать?
|
|||
39
KuJIT
30.01.14
✎
09:04
|
И вообще
{ВнешняяОбработка.МедкнижкаПечать.МодульОбъекта(166,6)}: Ожидается ключевое слово 'КонецФункции' ('EndFunction') <<?>>|СГРУППИРОВАТЬ ПО (Проверка: Сервер) |
|||
40
KuJIT
30.01.14
✎
09:05
|
Если закомментить
//|СГРУППИРОВАТЬ ПО //| МедицинскийДокумент.Ссылка //|ИНДЕКСИРОВАТЬ ПО //| Ссылка, //| Дата" Тогда нет ошибки. |
|||
41
Ёпрст
30.01.14
✎
09:21
|
(35) никто мне ничего не давал
|
|||
42
KuJIT
30.01.14
✎
09:21
|
(12) Я создаю запрос1 с текстом первым, задаю параметр, делаю выборку?
Как вообще с временными таблицами работать? |
|||
43
Ёпрст
30.01.14
✎
09:22
|
(42) а в чем проблема работы с временными таблицами ?
|
|||
44
KuJIT
30.01.14
✎
09:24
|
(43) В том, что я чайник.
|
|||
45
Ёпрст
30.01.14
✎
09:26
|
(44) дык почитай книжки, стань не чайником..
|
|||
46
KuJIT
30.01.14
✎
09:26
|
Пишк текст первого запроса, устанавливаю параметр, выполняю - таблица сформирована. Создаю 2й запрос, устанавливаю текст, параметр, делаю выборку - профит. Так?
|
|||
47
Wobland
30.01.14
✎
09:26
|
(42) на 414й странице букваря вижу использование ВТ
|
|||
48
KuJIT
30.01.14
✎
09:27
|
(47) Букваря?
|
|||
49
Wobland
30.01.14
✎
09:28
|
(48) Радченко М.Г., Хрусталева Е.Ю. 1С Предприятие 8.2. Практическое пособие разработчика (2009)
|
|||
50
Ёпрст
30.01.14
✎
09:29
|
(46) пишешь пакетный запрос, например, первый запрос выгребает что-то во временную табличку, второй, третий,..n-ый запрос может выгребать данные из этой таблички.. всё собственно.
|
|||
51
KuJIT
30.01.14
✎
09:32
|
В любом случае, не группируется по нужному мне полю =/
|
|||
52
KuJIT
30.01.14
✎
09:38
|
"Недопустимое поле для групировки"
|
|||
53
salvator
30.01.14
✎
09:39
|
Запрос скинь полностью.
|
|||
54
KuJIT
30.01.14
✎
09:43
|
Запрос.Текст = "ВЫБРАТЬ
| МедицинскийДокумент.ТелоМедицинскогоДокумента, | МАКСИМУМ(МедицинскийДокумент.Дата) КАК Дата |ПОМЕСТИТЬ Временная |ИЗ | Документ.МедицинскийДокумент КАК МедицинскийДокумент |ГДЕ | МедицинскийДокумент.МедицинскаяКарта = &МедицинскаяКарта |СГРУППИРОВАТЬ ПО | МедицинскийДокумент." ; Запрос.УстановитьПараметр("МедицинскаяКарта", МассивОбъектов[0]); Запрос.Выполнить(); Запрос2 = Новый Запрос; Запрос2.Текст = " | ВЫБРАТЬ | МедицинскийДокумент.Ссылка, | Временная.ТелоМедицинскогоДокумента, | Временная.Дата | ИЗ | Временная КАК Временная | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.МедицинскийДокумент КАК МедицинскийДокумент | ПО Временная.ТелоМедицинскогоДокумента = МедицинскийДокумент.ТелоМедицинскогоДокумента | И Временная.Дата = МедицинскийДокумент.Дата | ГДЕ | МедицинскийДокумент.МедицинскаяКарта = &МедицинскаяКарта" ; |
|||
55
KuJIT
30.01.14
✎
09:43
|
Собсно ошибка появляется, когда пытается выполнить Запрос.Выполнить();
|
|||
56
salvator
30.01.14
✎
09:47
|
(55) Точку убери в имени поля группировки.
И пользуйся конструктором, коли не умеешь писать руками. Там и научишься писать запросы со временными таблицами, заодно. |
|||
57
KuJIT
30.01.14
✎
09:54
|
(56) Так не в точке дело) Я прочто при копипасте не все скопипастил, видимо. По примеру там должно быть "МедицинскийДокумент.ТелоМедицинскогоДокумента"
|
|||
58
Мимохожий Однако
30.01.14
✎
09:56
|
Опиши типы реквизитов. Погадаю: ТелоМедицинскогоДокумент с типом Строка неограниченной длины.
|
|||
59
KuJIT
30.01.14
✎
10:01
|
Ну, я тоже гуглил =)
ТелоМедицинскогоДокумента имеет тип "хранилище значений", что, вероятно, то же самое. Вообще в нем хранится xml-строка. |
|||
60
13_Mult
30.01.14
✎
10:49
|
(43) Ух ты ж, это же надо как бывает ))).
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |