Имя: Пароль:
1C
1C 7.7
v7: сортировка документа по дате создания в 1С 7.7
,
0 amadeus2010
 
22.06.12
13:46
Добрый день,есть запрос созданный 1С 7.7 попросили немного изменить его таким образом чтобы сортировка шла по дате создания документа.Цель запроса вывести все накладные клиента за определенную дату,например с 01.06.12 по 20.06.12
/////////////////////////////////////////////
   Запрос11 = СоздатьОбъект("Запрос");
       ТекстЗапроса =
       "//{{ЗАПРОС(СчетФактуры)
       |Период с НачДата по КонДата;
       |ДатаДок            = Документ.РасходнаяНакладная.ДатаДок;
       |НомерНакл          = Документ.РасходнаяНакладная.НомерДок;
       |Контрагент         = Документ.РасходнаяНакладная.Контрагент;
       |Группировка НомерНакл Упорядочить по ДатаДок;
       |Условие (Контрагент в ВыбКонтрагент);
       |"//}}ЗАПРОС
//////////////////////////////////////////////////////////////////////
правильно ли написан запрос?
1 amadeus2010
 
22.06.12
13:54
есть кто-нибудь?
2 m-serg74
 
22.06.12
13:59
типа вот так

ТекДок = Документ.Реализация.ТекущийДокумент;
Контрагент = Документ.Реализация.Контрагент;
Группировка ТекДок упорядочить по ТекДок.ДатаДок;
Условие(Контрагент = ВыбКонтр);
3 amadeus2010
 
22.06.12
14:06
(2) Группировка НомерНакл Упорядочить по Документ.РасходнаяНакладная.ДатаДок;
т.е предлагаете сделать так? НомерНакл небходим для группировки и вывода номеров накладных в строке результата запроса
4 m-serg74
 
22.06.12
14:11
ТекДок = Документ.Реализация.ТекущийДокумент;
ДатаДок = Документ.Реализация.ДатаДок;
НомерНакл = Документ.Реализация.НомерДок;
Контрагент = Документ.Реализация.Контрагент;
Группировка НомерНакл;
Группировка ТекДок упорядочить по ТекДок.ДатаДок;
Условие(Контрагент в ВыбКонтр);

тогда наверное так
5 m-serg74
 
22.06.12
14:12
потому что (по моему) "Группировка НомерНакл Упорядочить по ДатаДок;"
группировать по одному полю, а упорядочивать по другому не получится... может я ошибаюсь)))
6 Aleksey
 
22.06.12
14:12
А причем тут дата создания если сортируешь по номеру документа?
7 m-serg74
 
22.06.12
14:13
(6) эт кому? )
8 Aleksey
 
22.06.12
14:13
Автору
9 m-serg74
 
22.06.12
14:14
понял, и я ему тоже говорю)
10 Aleksey
 
22.06.12
14:14
Я сегодня (22.07.12) создал документ от 30.05.12.

Т.е. дата создания 22.07.12
А вот дата документа 30.05.12
11 m-serg74
 
22.06.12
14:17
(10) эт как? с 8 кой не путаешь?
12 m-serg74
 
22.06.12
14:18
ТС с секцией видимо ошибся
13 amadeus2010
 
22.06.12
14:22
(6)задача стоит такая что номера накладных должны выводиться по дате . Т.е если за период времени клиенту выписали 5 накладных то они должны отобразиться все начиная от меньшей даты к большей.Изначально я сделал группировку по НомерНакл
///////////////////////////////////////////////////////////////////////
               |Период с НачДата по КонДата;
       |ДатаДок            = Документ.РасходнаяНакладная.ДатаДок;
       |НомерНакл          = Документ.РасходнаяНакладная.НомерДок;
       |Контрагент         = Документ.РасходнаяНакладная.Контрагент;
       |Группировка НомерНакл;

//////////////////////////////////////////////////////////////////
Но бухгалтера сказали что накладные отображаются по возрастанию номера накладной.Я поменял на Группировка ДатаДок,опять пришли и сказали что отображаются только последние накладные а не все за период скажем 5 дней.Теперь как сделать так чтобы сортировать накладные по дате документа.
14 Aleksey
 
22.06.12
14:24
(11) Нет не путаю. У тебя буха разносят выписку день в день или будут сегодня создавать выписку за вчера, т.е. проводить ее 21.06 ?
15 Aleksey
 
22.06.12
14:25
(13)
|Группировка ДатаДок, НомерНакл;
16 amadeus2010
 
22.06.12
14:29
Бухи клиентам делают выписку по накладным и клиентам удобнее смотреть накладные по дате документа, а не возрастанию накладных
17 m-serg74
 
22.06.12
14:29
(14) а где в 7ке дата создания и дата документа, и разве они отличаются? я почему то всегда думал что есть ДатаДок единственная и неповтр.
18 m-serg74
 
22.06.12
14:34
(13)
> отображаются только последние накладные а не все за период скажем 5 дней
а это как от группировок зависит?
19 m-serg74
 
22.06.12
14:35
понял, я ж говорю добавь в группировки сам документ
20 m-serg74
 
22.06.12
14:36
а вот упорядочивание настраивай как надо бухам
21 amadeus2010
 
22.06.12
14:37
я про ДатаДок и говорю, документ например был создан 15.06.12-это и есть его дата создания.Я имел ввиду что сортировать по ДатаДок что показать накладные за весь выбранный период.Кстати код из (4) работает, спасибо,сейчас посмотрю (15)
22 Aleksey
 
22.06.12
14:40
(17) В явном вие его нет. В неявном, например в журнале регистрации. Плюс ID документа тоже возрастает по мере создания. ак что сортировка по ID и будет сортировкой по дате создания

(21) Нет 15.06.12 это дата докуменента, ну никак не дата создания. Тем более завтра баба Маша поняла что ошиблась и исправила дату на 20.06.12. И что по твоему дата создания поменялась?
23 m-serg74
 
22.06.12
14:43
(17) а где ты в (0) нашел ИД? да ТС просто под датой создания понимает, если не ошибаюсь дату которая в Шапке дока стоит)) т.е. дата документа
24 m-serg74
 
22.06.12
14:43
(23) 2 (22)
25 Aleksey
 
22.06.12
14:45
(23) И чё?

И я о том же что ТС использует неправильную терминологию, на что я и пытаюсь ему указать. Заодно и уточнить по какой дате он сортирует
26 m-serg74
 
22.06.12
14:46
так из запроса в (0) понятно по какой дате)
27 amadeus2010
 
22.06.12
14:50
Объясните пожалуйста ИД ДатаДок как мне сделать по нему сортировку? В 7.7 не силен,поэтому задаю такие вопросы.
28 amadeus2010
 
22.06.12
14:51
в запросе использовал методы 8.ххх при построение запроса
29 m-serg74
 
22.06.12
14:52
(27) тогда ответь на (25) "Заодно и уточнить по какой дате он сортирует"...
30 amadeus2010
 
22.06.12
14:58
я сортирую по ДатаДок в шапке документа, в свойствах также указано что ИД ДатаДок=ДатаДок. А насчет кода (4) сейчас бухи пусть проверят все ли сходится
31 m-serg74
 
22.06.12
15:02
в свойствах также указано что ИД ДатаДок=ДатаДок

это откуда взято?
32 amadeus2010
 
22.06.12
15:41
(31)Я ЭТО ВЗЯЛ ИЗ СВОЙСТВА ПОЛЯ ВВОДА ДАТАДОК
33 Aleksey
 
22.06.12
15:53
(32) У Даты Док нет ID. Оно есть только у объекта, т.е. у документа

Короче, если тебе нужно по ДатаДок, сортировать, но не заморачивайся, просто держи в голове, что дата создания/проведения/изменения документа это не тоже самое что датаДок.

ДатаДок - это просто ДатаДок, не более
34 amadeus2010
 
22.06.12
15:56
Кстати бухи проверили накладную и обнаружили что сортировка по дате идет странным образом.Первые 2-3 номера сортируются по дате, а остальные 3-4 по возрастанию номера накладной
35 amadeus2010
 
22.06.12
15:58
(33) И как мне поступить тогда?
36 Lionee
 
22.06.12
16:01
подумать
37 Aleksey
 
22.06.12
16:03
(35)
|Группировка ДатаДок, НомерДок;
38 amadeus2010
 
22.06.12
16:03
(34) моя опечатка в коде запроса я вместо ТекДок = Документ.Реализация.ТекущийДокумент написал ТекДок = Документ.Реализация.ДатаДок, поэтому ДатаДок была объявлена дважды,что возможно и привело к ошибке выполнения запроса
39 amadeus2010
 
22.06.12
16:33
НАСКОЛЬКО Я ПОНЯЛ ГРУППИРОВКА ДОЛЖНА ИДТИ ПО НОМЕРДОК А УПОРЯДОЧИТЬ ПО ДАТАДОК.
40 smaharbA
 
22.06.12
16:36
упорядочивание уточняемо
41 smaharbA
 
22.06.12
16:37
и просче упорядочить по документам
42 amadeus2010
 
22.06.12
16:50
я сделал так
/////////////////////////////////////////////////////////////////////////
   Запрос11 = СоздатьОбъект("Запрос");
       ТекстЗапроса =
       "//{{ЗАПРОС(СчетФактуры)
       |Период с НачДата по КонДата;
   //    |ДатаДок            = Документ.РасходнаяНакладная.ДатаДок;
   //    |НомерНакл          = Документ.РасходнаяНакладная.НомерДок;
   //    |Контрагент         = Документ.РасходнаяНакладная.Контрагент;
   //    |Группировка НомерДок,ДатаДок;
   //    |Условие (Контрагент в ВыбКонтрагент);
   //    |"//}}ЗАПРОС
       
       |ТекДок = Документ.РасходнаяНакладная.ТекущийДокумент;
       //|ДатаДок = Документ.РасходнаяНакладная.ДатаДок;
       |НомерНакл = Документ.РасходнаяНакладная.НомерДок;
       |Контрагент = Документ.РасходнаяНакладная.Контрагент;
       //|Группировка НомерНакл;
       |Группировка ТекДок Упорядочить по ТекДок.ДатаДок,ТекДок.НомерДок;
       |Условие(Контрагент в ВыбКонтрагент);
       |"//}}ЗАПРОС
///////////////////////////////////////////////////////////////////////////
43 m-serg74
 
22.06.12
16:55
я не пойму что именно тебе надо для отчета? в послед. варианте НомерНакл тебе придется отдельно при выводе результата запроса получать из ТекДок, потому как - нет группировки, нет и поля, тогда и не понятно зачем: "НомерНакл = Документ.РасходнаяНакладная.НомерДок;", если ты его нигде не используешь...
44 amadeus2010
 
22.06.12
16:57
версия в (42) вполне рабочая,ее бухам и отдам.
45 m-serg74
 
22.06.12
17:00
|НомерНакл = Документ.РасходнаяНакладная.НомерДок;

вот это закомменть тоже оно бесполезно...
46 Mikeware
 
22.06.12
17:01
Что ты хочегь? упордочить документы по номеру внутри даты, чтоль?
47 Aleksey
 
22.06.12
17:49
(46) Да
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой