|
Таблица значений как параметр в запросе | ☑ | ||
---|---|---|---|---|
0
smitov
15.12.21
✎
07:14
|
Здравствуйте.
Есть запрос: "ВЫБРАТЬ | ЧекККМ.Ссылка КАК Ссылка, | ЧекККМ.Дата КАК Дата, | ЧекККМ.НомерЧекаККМ КАК НомерЧекаККМ, | ЧекККМ.СуммаДокумента КАК СуммаДокумента, | ЧекККМ.ОперацияСДенежнымиСредствами КАК ОперацияСДенежнымиСредствами, | ЧекККМ.СтатусЧекаККМ КАК СтатусЧекаККМ |ИЗ | Документ.ЧекККМ КАК ЧекККМ |ГДЕ | ЧекККМ.Дата МЕЖДУ &НачЧека И &КонЧека" Таблица значений с колонками НачЧека и КонЧека, которые заполняются из документов смен (начало смены и конец смены) Как эту таблицу значений подставить в запрос? |
|||
1
Малыш Джон
15.12.21
✎
07:25
|
(0) в каждой строке таблицы будет своё значение НачЧека и КонЧека. Соответственно условие "ГДЕ ЧекККМ.Дата МЕЖДУ &НачЧека И &КонЧека" для каждой строки таблицы будет выполнятся по-своему. На выходе что должно получиться?
|
|||
2
Малыш Джон
15.12.21
✎
07:28
|
А вообще:
ВЫБРАТЬ ТвояТаблица.НачЧека КАК НачЧека, ТвояТаблица.КонЧекаКАК КонЧека ПОМЕСТИТЬ втТвояТаблица ИЗ &ТвояТаблица КАК ТвояТаблица; и используй дальше вт как тебе угодно. |
|||
3
Chameleon1980
15.12.21
✎
07:31
|
+2 только колонки тз должны быть типизированы, а то придешь со следующим вопросом
|
|||
4
smitov
15.12.21
✎
08:28
|
(1) На выходе должны остаться только те чеки, которые входят в диапазон дат.
Проблем нет, если одна смена. Если несколько смен тогда запрос дает только последний интервал |
|||
5
hhhh
15.12.21
✎
08:37
|
(4) какой запрос? Текст запроса в студию.
|
|||
6
Ryzeman
15.12.21
✎
08:42
|
(4) Зачем использовать ТЗ, если документы смен и так есть в базе данных? Получи их и минимальную\максимальную дату запросом.
Если уже так хочется использовать ТЗ, зачем опять же, пихать её в запрос? Тебе надо же получить чеки в интервале дат, так найди интервал в коде, а интервал так же параметрами задавай как в (0). Но навскидку всё это выглядит какими-то неверными решениями от непонимания. Если тебе нужно выбрать чеки по сменам, то там наверняка есть какая-то связь, в запрос следует передавать смены, а уже по ним определять чеки. |
|||
7
smitov
15.12.21
✎
08:50
|
(6) Бухгалтер выбирает из списка нужные смены. На основе которых и идет отбор всех кассовых смен.
минимальную\максимальную дату запросом я как раз и получаю запросом и его надо вставить в запрос из (0) |
|||
8
Мимохожий Однако
15.12.21
✎
08:54
|
(7) Посмотри, привязан ли чек к кассовой смене. Если привязан, то передавай массив номеров смен в запрос и отлавливай чеки по номерам смен. При этом текст запроса должен быть другой.
|
|||
9
smitov
15.12.21
✎
09:15
|
(8) В том то и дело, что кассир делает только открытие смены и закрытие смены. Привязка чеков должна идти через документ Отчеты о розничных продажах. Они его не делают, не хотят, не могут, не видят.
Поэтому бухгалтер попросила сделать привязку чеков через начало смены и конец смены. |
|||
10
hhhh
15.12.21
✎
09:30
|
(9) в чекек уже есть реквизит КассоваяСмена, поэтому искать чеки по датам этой смены - это дебилизм.
|
|||
11
Мимохожий Однако
15.12.21
✎
09:38
|
(9) Бухгалтер здесь не при чём. Посмотри структуру метаданных чека и подумай
|
|||
12
Ryzeman
15.12.21
✎
09:40
|
(9) Так у тебя типовая УТ? Зачем тогда вообще извращения с датой чека и концом\началом смены? Все привязки и так есть в базе данных. У тебя задача какая?
|
|||
13
smitov
15.12.21
✎
11:13
|
(12) Я делаю выгрузку проданных товаров из Розницы в стандартную бухгалтерию. Задание сделать без использования стандартного механизма обмена данными.
|
|||
14
Мимохожий Однако
15.12.21
✎
11:15
|
(13) Использование своего механизма обмена не предполагает отказа от рационального выбора данных из базы.
|
|||
15
SleepyHead
гуру
15.12.21
✎
11:55
|
(0) из твоей таблицы получи массив дат, каждую дату приведи к началу дня.
Сделай этот массив параметром запроса. В условии в запросе - НачалоПериода(Чек.Дата, ДЕНЬ) в (&МассивДат) |
|||
16
Мультук
гуру
15.12.21
✎
12:00
|
(15)
Т.е. если в течении дня было две смены, одну выгружаем, а другую нет, то все равно выгружаем? |
|||
17
acht
15.12.21
✎
12:01
|
(15) > НачалоПериода(Чек.Дата, ДЕНЬ) в (&МассивДат)
Прощайте, индексы! |
|||
18
SleepyHead
гуру
15.12.21
✎
12:09
|
(17) Да и. с ними ))
|
|||
19
SleepyHead
гуру
15.12.21
✎
12:10
|
(16) я не понял вопроса. Лучше у автора спросить, какие даты он планирует использовать.
|
|||
20
acht
15.12.21
✎
12:11
|
(18) Анекдот про парашютиста, стропорез и яйца =]
|
|||
21
SleepyHead
гуру
15.12.21
✎
12:14
|
(20) Как костыль сойдет, а дальше пусть сам автор оптимизирует. Про индексы я знал, когда писал.
|
|||
22
серый КТУЛХУ
15.12.21
✎
12:35
|
два взаимосвязанных вопроса, без которых дальнейший разговор (и вообще все в этой ветке) - лишены смысла:
1) какие колонки помимо НачДата и КонДата есть в ТЗ? 2) как для каждого документа (ЧекККМ) определить - из КАКОЙ строки ТЗ надо брать даты для сравнения (п.1)? |
|||
23
smitov
15.12.21
✎
12:55
|
(19) За день может быть несколько смен в идеале одна.
Смены выбираются чекбоксом |
|||
24
smitov
15.12.21
✎
12:57
|
(15) К началу дня не вариант. У каждой смены своё время начала
|
|||
25
smitov
15.12.21
✎
12:58
|
(22) Только НачДата и КонДата. Эти значения о определяют куда относится чек, к какой смене.
|
|||
26
Мультук
гуру
15.12.21
✎
13:21
|
(0)
Запрос про даты, нужно еще условие на КассуККМ ВЫБРАТЬ ДАТАВРЕМЯ(2021, 12, 1, 0, 0, 0) КАК ДТ, 1 КАК номерЧека ПОМЕСТИТЬ ВТ_ЧЕКИ ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(2021, 12, 2, 0, 0, 0), 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(2021, 12, 3, 0, 0, 0), 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(2021, 12, 4, 0, 0, 0), 4 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДАТАВРЕМЯ(2021, 12, 1, 0, 0, 0) КАК ДТ_Начало, ДАТАВРЕМЯ(2021, 12, 2, 23, 59, 59) КАК ДТ_Окончание, 1 КАК НомерСмены ПОМЕСТИТЬ ВТ_СМЕНЫ ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(2021, 12, 4, 0, 0, 0), ДАТАВРЕМЯ(2021, 12, 4, 23, 59, 59), 2 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ЧЕКИ.ДТ КАК ДТ, ВТ_ЧЕКИ.номерЧека КАК номерЧека ИЗ ВТ_ЧЕКИ КАК ВТ_ЧЕКИ ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_СМЕНЫ ПО ВТ_ЧЕКИ.ДТ >= ВТ_СМЕНЫ.ДТ_Начало И ВТ_ЧЕКИ.ДТ <= ВТ_СМЕНЫ.ДТ_Окончание |
|||
27
smitov
15.12.21
✎
13:52
|
(26) Спасибо за помощь. Касса пока одна.
Делаю через цикл, дату каждой смены в запрос из (0), потом запрос.выполнить().выбрать и добавляю в таблицу чеки |
|||
28
Мультук
гуру
15.12.21
✎
14:01
|
(27)
>>>>Я делаю выгрузку проданных товаров из Розницы в стандартную бухгалтерию. Задание сделать без использования стандартного механизма обмена данными. 1) А зачем там чеки? Там более чем достаточно ООРП 2) Если не секрет, в какой документ в Бух будет грузится информация ? P.S. Я понимаю, когда люди играют в "это грузим", а "это не грузим". Но грузим/не грузим кассовые чеки это что-то новое. |
|||
29
smitov
15.12.21
✎
14:13
|
(28) В Бухгалтерии будут создаваться документы: Реализация ТМЗ и услуг, приходный кассовый ордер.
|
|||
30
Мультук
гуру
15.12.21
✎
14:19
|
(29)
С РТУ хрен с ним, но как ваши бухи будут показывать ПКО (кассовая книга и прочее) и объяснять как они сочетаются с чеками пробитыми через кассовый аппарат... Но это уже их {частично нецензурное слово} трудности. |
|||
31
smitov
15.12.21
✎
14:40
|
(30) В Казахстане кассовые книги не нужны. Чеки с кассы копируются на сайт налогового органа.
Чеки, смены, тчеты все можно посмотреть онлайн. |
|||
32
серый КТУЛХУ
15.12.21
✎
14:50
|
(25): о, тогда у тебя проблемы с вербальным самовыражением.
т.е. по сути - тебе надо выбирать документы по условию нахождения даты документа в любом из интервалов, список которых указан в ТЗ с колонками НачДата и КонДата |
|||
33
Мимохожий Однако
15.12.21
✎
15:07
|
(31) К чему эта информация?
|
|||
34
anatoly
15.12.21
✎
15:15
|
(27) запрос в цикле.. 8-/
можно сделать через СОЕДИНЕНИЕ. |
|||
35
Малыш Джон
15.12.21
✎
15:19
|
и ведь это не курсовая студента, которая никому не сдалась...
это ведь реальная организация и где-то будет вот так реально это работать... |
|||
36
smitov
15.12.21
✎
15:21
|
(34) Спасибо. Сделал уже как в (27).
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |