Имя: Пароль:
1C
 
Создать поле в запросе из двух полей 2 таблиц
,
0 nbv8608
 
16.01.14
05:23
Нужно в таблицу с одним полем "ссылка" записать ссылки на два типа документов после заданной даты, в хронологическом порядке. Возможно ли это через запрос. Никак не могу понять. Если можно пример описания поля запроса, или др варианты.
1 Cube
 
16.01.14
05:48
(0) Конечно можно:

1). Выбираешь таблицу с двумя колонками "Ссылка" и "Дата". Делаешь её временной (ВТ).

2). В следующем пакете соединяешь левым соединением ВТ с ВТ (то есть саму с собой) по условию "ВТ1.Дата > ВТ2.Дата". Выбираешь поля "ВТ1.Ссылка" и "ВТ2.Дата". Группируешь по полю "ВТ1.Ссылка" со сворачиванием поля "ВТ2.Дата" функцией МАКСИМУМ().
Помещаешь результат во временную таблицу.

3). Повторяешь п. 2, чтобы найти даты документов старее тех, что мы нашли в п. 2. Только соединяешь ВТ из п. 2 с ВТ из п. 1. Должны получиться колонки "Ссылка", "Дата1", "Дата2".
Помещаешь результат во временную таблицу.

4). Соединяешь ВТ из п. 3 с ВТ из п. 1 и подставляешь вместо найденных дат ссылки на документы.

Ну, как-то так. Можно и через вложенные запросы сделать.
2 Wobland
 
16.01.14
05:48
выбрать из одной таблицы
объединить
выбрать из другой таблицы
3 Wobland
 
16.01.14
05:57
(1) кофе перепил с утра? ничо не понял
4 Cube
 
16.01.14
05:58
(3) Это я написал для одного типа документов... Ошибся немного, но принцип, думаю, понятен. :)
5 Cube
 
16.01.14
06:01
(0) Кстати, всё это будет работать до того момента, как появятся документы с одинаковой датой и временем. А они появятся, будь уверен :)
Самое распространенное, это время 0:00:00 и 23:59:59.
6 Wobland
 
16.01.14
06:02
(4) понятно только одно: у нас разное понимание вопроса
7 nbv8608
 
16.01.14
06:03
Спасибо за помощь. О чем речь понял. А вот документы у меня как раз и будут с одинаковым временем(((
8 Cube
 
16.01.14
06:16
(7) Тогда, думаю, стоит привязаться и к номеру документа ещё.
9 Рэйв
 
16.01.14
06:25
(7)Получишь из запроса тз, добавишь колонку "Момент", заполнишь моментами времени документов и отсортируешь
10 Cube
 
16.01.14
06:54
(9) Перебирать результат в коде? Фи... :)
11 skunk
 
16.01.14
06:57
(10)покажи как без перебора одним запросом получить ИДы полученных ссылочных объектов
12 Cube
 
16.01.14
07:48
(11) В задаче такого нет. А если так рассуждать, то покажи, как переназначить ПКМ в 1С, чтобы при нажатии на ПКМ не выскакивало контекстное меню, а открывался блекджек. Нельзя? Ну всё, не надо на 1С ничего писать, пишите на сях и делфях...
13 skunk
 
16.01.14
07:54
причем тут ПКМ и получения идов? ... или ты для получения ИДа ссылочного типа будешь писать ВК на сях?
14 Рэйв
 
16.01.14
08:03
(12)Можно вывести свое меню с блэкджеком:-)
15 Cube
 
16.01.14
08:54
(13) Встречный вопрос: при чем здесь ИДы?
16 skunk
 
16.01.14
09:04
(15)ты сказал, что перебирать результат запроса в коде - это фи ... вот я и подумал, может ты как специалист подскажешь ламеру, как получить иды ссылочных данных запросом без использования этого - фи
17 Cube
 
16.01.14
09:08
(16) "как получить иды"
Каким боком это относится к задаче из (0)?
18 skunk
 
16.01.14
09:09
(17)каким боком твое (10) относиться к задаче из (0) ... там обобщенно "Перебирать результат в коде? Фи"
19 Cube
 
16.01.14
09:13
(18) Таким, что задачу можно решить одним запросом, без обработки результата в коде.

А то, что у "некоторых" розовые очки напялены и они между строк че-то там ещё видят (хотя по факту там ничего нет), то пусть эти "некоторые" пойдут проспятся...
20 nbv8608
 
17.01.14
04:50
Всем спасибо! Все получилось как надо!
21 nbv8608
 
17.01.14
05:12
Хватило объединения и сортировки по дате. Но как-то точнее сортировать наверное было бы лучше, хотя для моей задачи этого достаточно. У меня список такой: У1,Н2,Н1,У2... Мне не критично, но было бы лучше поменять местами Н2 и Н1. К номеру думаю не стоит привязываться, частенько же любят вводить документы в прошлом)
22 nbv8608
 
17.01.14
05:13
(9) Долго будет отрабатывать...? наверное...
23 Михаил 1С
 
17.01.14
05:40
(7) У документа есть еще МоментВремени. Его тоже можно сравнивать с моментом времени другого документа. Как я понимаю - это тоже самое время, только более точное, в него входят подробности внутри секунды.
Если я не прав, буду рад, чтобы меня поправили.
24 Михаил 1С
 
17.01.14
05:41
(23) Аа, Рейв в (9) это уже писал.
25 Wobland
 
17.01.14
05:41
(23) секунда не делится. момент - комбинация ссылки и даты
26 Михаил 1С
 
17.01.14
05:50
(25) Но по сути - это же получается время внутри секунды? Или я не прав?
Разве нельзя сравнить два момента времени? Я сравнивал. Правда, есть небольшое сомнение, что это всегда будет работать верно.
27 Михаил 1С
 
17.01.14
05:52
Кстати, если Дату у документа изменить, то и его МоментВремени изменится? Или там какая-то собака останется зарытой из первой даты документа? Мне что-то такое говорил наш коллега.
28 Wobland
 
17.01.14
05:53
(26) это получается дата и ссылка. моменты умеют сравниваться, да
29 Михаил 1С
 
17.01.14
05:57
(28) Интересно, а если был
Документ1  -  10:00
Документ2  -  15:00

и потом я Документу1 меняю дату на 15:00.
У него ссылка была сделана раньше, чем у Документа2.
Что будет с моментами времени?
Будет ли МоменВремениДокумента1 > МоментВремениДокумента2 ?
30 Wobland
 
17.01.14
05:59
(29) если очень зудит, я могу порыться в талмуде и рассказать точнее. они русским языком рекомендуют разносить документы в разные секунды, если логика приложения критична к нахождению документов внутри секунды
31 Wobland
 
17.01.14
06:02
хронологический порядок документов... не зависит ни от порядка создания, ни от номера, ни от чего-то подобного ©
32 Михаил 1С
 
17.01.14
06:13
(30) Ладно, не ройся. Я тоже не лох, могу и сам порыться.
Думал - вдруг ты сразу скажешь.