Имя: Пароль:
1C
1С v8
Помогите в запросе навести порядок :)
0 b-dm
 
20.09.13
13:52
Есть запрос, там полное соединение регистра накопления и проводок по регистру бух.хозрасчетному. Как можно сделать так, чтобы выводились записи по отсортированные по дате ? Ниже запрос:

ВЫБРАТЬ
        |    ХозрасчетныйДвиженияССубконто.Регистратор.Контрагент,
        |    СУММА(ХозрасчетныйДвиженияССубконто.Сумма) КАК Сумма,
        |    ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
        |    ХозрасчетныйДвиженияССубконто.Период,
        |    ХозрасчетныйДвиженияССубконто.МоментВремени КАК МоментВремениПроводки
        |ПОМЕСТИТЬ Проводки
        |ИЗ
        |    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&ДатаНач, &ДатаКон, СчетКт = &Счет, , ) КАК ХозрасчетныйДвиженияССубконто
        |
        |СГРУППИРОВАТЬ ПО
        |    ХозрасчетныйДвиженияССубконто.Регистратор.Контрагент,
        |    ХозрасчетныйДвиженияССубконто.Регистратор,
        |    ХозрасчетныйДвиженияССубконто.Период,
        |    ХозрасчетныйДвиженияССубконто.МоментВремени
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    НДСЗаписиКнигиПродажОбороты.Покупатель,
        |    НДСЗаписиКнигиПродажОбороты.Регистратор,
        |    СУММА(НДСЗаписиКнигиПродажОбороты.НДСОборот) КАК НДСОборот,
        |    НДСЗаписиКнигиПродажОбороты.Период,
        |    НДСЗаписиКнигиПродажОбороты.ДатаСобытия КАК ДатаСобытияПродажи
        |ПОМЕСТИТЬ Регистры
        |ИЗ
        |    РегистрНакопления.НДСЗаписиКнигиПродаж.Обороты(&ДатаНач, &ДатаКон, Регистратор, ) КАК НДСЗаписиКнигиПродажОбороты
        |ГДЕ
        |    НДСЗаписиКнигиПродажОбороты.ЗаписьДополнительногоЛиста = ЛОЖЬ
        |
        |СГРУППИРОВАТЬ ПО
        |    НДСЗаписиКнигиПродажОбороты.Покупатель,
        |    НДСЗаписиКнигиПродажОбороты.Регистратор,
        |    НДСЗаписиКнигиПродажОбороты.Период,
        |    НДСЗаписиКнигиПродажОбороты.ДатаСобытия
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Проводки.РегистраторКонтрагент КАК КонтрагентПроводки,
        |    ЕСТЬNULL(Проводки.Регистратор, ""отсутствуют проводки"") КАК ДокументПроводки,
        |    ЕСТЬNULL(Проводки.Сумма, 0) КАК СуммаПроводки,
        |    Регистры.Покупатель КАК КонтрагентКнига,
        |    ЕСТЬNULL(Регистры.Регистратор, ""отсутствуют в книге продаж"") КАК ДокументКнига,
        |    Регистры.НДСОборот КАК СуммаКнига,
        |    ЕСТЬNULL(Проводки.Сумма, 0) - ЕСТЬNULL(Регистры.НДСОборот, 0) КАК Разница,
        |    Проводки.МоментВремениПроводки,
        |    Регистры.ДатаСобытияПродажи КАК ДатаСобытияПродажи
        |ИЗ
        |    Регистры КАК Регистры
        |        ПОЛНОЕ СОЕДИНЕНИЕ Проводки КАК Проводки
        |        ПО (Проводки.Регистратор = Регистры.Регистратор)";
        
    Если ТолькоРасхождения Тогда Запрос.Текст = Запрос.Текст +        
        "ГДЕ
        |    ЕСТЬNULL(Проводки.Сумма, 0) - ЕСТЬNULL(Регистры.НДСОборот, 0) <> 0
1 Buster007
 
20.09.13
13:54
упорядочить
2 b-dm
 
20.09.13
13:58
(1) куда надо вставить ? хочу упорядочить по моменту времени или по датедокумента, ну то есть по датам. На какую закладку или в какой конкретно куусок кода вставлять ?
3 Жан Пердежон
 
20.09.13
14:01
(2) чем ты занимался 2 года 7 месяцев 11 дней?
4 b-dm
 
20.09.13
14:04
(3) по сути есть что сказать ? 7-кой занимался, устроит ?
5 Тоненький Клиент
 
20.09.13
14:06
6 Cyberhawk
 
20.09.13
14:08
"ГДЕ
        |    НДСЗаписиКнигиПродажОбороты.ЗаписьДополнительногоЛиста = ЛОЖЬ"
в параметр ВТ Обороты не засовывается?
7 b-dm
 
20.09.13
14:12
(5) там написано только партнерам продавать будут или я что то не понял ?
8 b-dm
 
20.09.13
14:12
(6) может и засовывается, надо поробовать, но мне не это надо :) надо чтобы по дате выводились записи, хочу их отсортировать, как это можно сделать ?
9 Cyberhawk
 
20.09.13
14:17
(8) выложи таблицу-результат запроса в виде Экселя, тогда скажу
10 Oleg_Kag
 
20.09.13
14:19
ГДЕ
   ЕСТЬNULL(Проводки.Сумма, 0) - ЕСТЬNULL(Регистры.НДСОборот, 0) <> 0
УПОРЯДОЧИТЬ ПО
    ДатаСобытияПродажи
11 b-dm
 
20.09.13
14:35
(10) - спасибо, попробую сейчас
12 b-dm
 
20.09.13
14:44
{(30, 3)}: При формировании временной таблицы предложение УПОРЯДОЧИТЬ может использоваться только совместно с предложением ПЕРВЫЕ
<<?>>УПОРЯДОЧИТЬ ПО ДатаСобытияПродажи
13 catena
 
20.09.13
15:00
(12)А зачем порядочить во временной таблице? Упорядочивай итоговую.
14 Сонька
 
20.09.13
15:04
(12) нельзя упорядочить записи временной таблицы, сделай тоже самое в итоговой
15 Сонька
 
20.09.13
15:05
(13)упс... бояню :)
16 b-dm
 
20.09.13
15:33
(13) - делал, результат такой же
17 catena
 
20.09.13
15:34
(16)Не верю
18 b-dm
 
20.09.13
15:39
ВЫБРАТЬ
        |    ХозрасчетныйДвиженияССубконто.Регистратор.Контрагент,
        |    СУММА(ХозрасчетныйДвиженияССубконто.Сумма) КАК Сумма,
        |    ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
        |    ХозрасчетныйДвиженияССубконто.Период,
        |    ХозрасчетныйДвиженияССубконто.МоментВремени КАК МоментВремениПроводки
        |ПОМЕСТИТЬ Проводки
        |ИЗ
        |    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&ДатаНач, &ДатаКон, СчетКт = &Счет, , ) КАК ХозрасчетныйДвиженияССубконто
        |
        |СГРУППИРОВАТЬ ПО
        |    ХозрасчетныйДвиженияССубконто.Регистратор.Контрагент,
        |    ХозрасчетныйДвиженияССубконто.Регистратор,
        |    ХозрасчетныйДвиженияССубконто.Период,
        |    ХозрасчетныйДвиженияССубконто.МоментВремени
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    НДСЗаписиКнигиПродажОбороты.Покупатель,
        |    НДСЗаписиКнигиПродажОбороты.Регистратор,
        |    СУММА(НДСЗаписиКнигиПродажОбороты.НДСОборот) КАК НДСОборот,
        |    НДСЗаписиКнигиПродажОбороты.Период,
        |    НДСЗаписиКнигиПродажОбороты.ДатаСобытия КАК ДатаСобытияПродажи
        |ПОМЕСТИТЬ Регистры
        |ИЗ
        |    РегистрНакопления.НДСЗаписиКнигиПродаж.Обороты(&ДатаНач, &ДатаКон, Регистратор, ) КАК НДСЗаписиКнигиПродажОбороты
        |ГДЕ
        |    НДСЗаписиКнигиПродажОбороты.ЗаписьДополнительногоЛиста = ЛОЖЬ
        |
        |СГРУППИРОВАТЬ ПО
        |    НДСЗаписиКнигиПродажОбороты.Покупатель,
        |    НДСЗаписиКнигиПродажОбороты.Регистратор,
        |    НДСЗаписиКнигиПродажОбороты.Период,
        |    НДСЗаписиКнигиПродажОбороты.ДатаСобытия
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Проводки.РегистраторКонтрагент КАК КонтрагентПроводки,
        |    ЕСТЬNULL(Проводки.Регистратор, ""отсутствуют проводки"") КАК ДокументПроводки,
        |    ЕСТЬNULL(Проводки.Сумма, 0) КАК СуммаПроводки,
        |    Регистры.Покупатель КАК КонтрагентКнига,
        |    ЕСТЬNULL(Регистры.Регистратор, ""отсутствуют в книге продаж"") КАК ДокументКнига,
        |    Регистры.НДСОборот КАК СуммаКнига,
        |    ЕСТЬNULL(Проводки.Сумма, 0) - ЕСТЬNULL(Регистры.НДСОборот, 0) КАК Разница,
        |    Проводки.МоментВремениПроводки,
        |    Регистры.ДатаСобытияПродажи КАК ДатаСобытияПродажи
        |ИЗ
        |    Регистры КАК Регистры
        |        ПОЛНОЕ СОЕДИНЕНИЕ Проводки КАК Проводки
        |        ПО (Проводки.Регистратор = Регистры.Регистратор)
        |
        |УПОРЯДОЧИТЬ ПО
        |    ДатаСобытияПродажи
19 b-dm
 
20.09.13
15:40
{Форма.КонтрольКнигиПродаж.Форма(117)}: Ошибка при вызове метода контекста (Выполнить)
    Результат = Запрос.Выполнить();
по причине:
{(56, 2)}: Синтаксическая ошибка "СУММА(СуммаПроводки),"
<<?>>СУММА(СуммаПроводки),

Дальше у меня идёт следующее, после запроса:
    Запрос.Текст = Запрос.Текст +
        "ИТОГИ
        |    СУММА(СуммаПроводки),
        |    СУММА(СуммаКнига),
        |    СУММА(Разница)
        |ПО
        |    ОБЩИЕ";
20 catena
 
20.09.13
15:46
(19)Ну ведь не "результат такой же", ошибка совсем другая.
21 Сонька
 
20.09.13
15:49
Выбор Когда Проводки.Сумма Есть Null Тогда 0 Конец КАК СуммаПроводки
22 catena
 
20.09.13
15:52
(21)Зачем так?
23 catena
 
20.09.13
15:53
(19)И все-таки что-то недоговариваешь, приведенный кусок запроса не может давать такую ошибку.
24 b-dm
 
20.09.13
16:05
(23) хочешь вышлю отчет ? работает на типовой бух2
25 b-dm
 
20.09.13
16:05
посмотришь так или нет
26 b-dm
 
20.09.13
16:06
весь запрос написал, вот он:

    Макет = ПолучитьМакет("Макет");
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ХозрасчетныйДвиженияССубконто.Регистратор.Контрагент,
        |    СУММА(ХозрасчетныйДвиженияССубконто.Сумма) КАК Сумма,
        |    ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
        |    ХозрасчетныйДвиженияССубконто.Период,
        |    ХозрасчетныйДвиженияССубконто.МоментВремени КАК МоментВремениПроводки
        |ПОМЕСТИТЬ Проводки
        |ИЗ
        |    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&ДатаНач, &ДатаКон, СчетКт = &Счет, , ) КАК ХозрасчетныйДвиженияССубконто
        |
        |СГРУППИРОВАТЬ ПО
        |    ХозрасчетныйДвиженияССубконто.Регистратор.Контрагент,
        |    ХозрасчетныйДвиженияССубконто.Регистратор,
        |    ХозрасчетныйДвиженияССубконто.Период,
        |    ХозрасчетныйДвиженияССубконто.МоментВремени
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    НДСЗаписиКнигиПродажОбороты.Покупатель,
        |    НДСЗаписиКнигиПродажОбороты.Регистратор,
        |    СУММА(НДСЗаписиКнигиПродажОбороты.НДСОборот) КАК НДСОборот,
        |    НДСЗаписиКнигиПродажОбороты.Период,
        |    НДСЗаписиКнигиПродажОбороты.ДатаСобытия КАК ДатаСобытияПродажи
        |ПОМЕСТИТЬ Регистры
        |ИЗ
        |    РегистрНакопления.НДСЗаписиКнигиПродаж.Обороты(&ДатаНач, &ДатаКон, Регистратор, ) КАК НДСЗаписиКнигиПродажОбороты
        |ГДЕ
        |    НДСЗаписиКнигиПродажОбороты.ЗаписьДополнительногоЛиста = ЛОЖЬ
        |
        |СГРУППИРОВАТЬ ПО
        |    НДСЗаписиКнигиПродажОбороты.Покупатель,
        |    НДСЗаписиКнигиПродажОбороты.Регистратор,
        |    НДСЗаписиКнигиПродажОбороты.Период,
        |    НДСЗаписиКнигиПродажОбороты.ДатаСобытия
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ ПЕРВЫЕ 1410065407
        |    Проводки.РегистраторКонтрагент КАК КонтрагентПроводки,
        |    ЕСТЬNULL(Проводки.Регистратор, ""отсутствуют проводки"") КАК ДокументПроводки,
        |    ЕСТЬNULL(Проводки.Сумма, 0) КАК СуммаПроводки,
        |    Регистры.Покупатель КАК КонтрагентКнига,
        |    ЕСТЬNULL(Регистры.Регистратор, ""отсутствуют в книге продаж"") КАК ДокументКнига,
        |    Регистры.НДСОборот КАК СуммаКнига,
        |    ЕСТЬNULL(Проводки.Сумма, 0) - ЕСТЬNULL(Регистры.НДСОборот, 0) КАК Разница,
        |    Проводки.МоментВремениПроводки,
        |    Регистры.ДатаСобытияПродажи КАК ДатаСобытияПродажи
        |ИЗ
        |    Регистры КАК Регистры
        |        ПОЛНОЕ СОЕДИНЕНИЕ Проводки КАК Проводки
        |        ПО (Проводки.Регистратор = Регистры.Регистратор)
        |
        |УПОРЯДОЧИТЬ ПО
        |    ДатаСобытияПродажи";
        
    Если ТолькоРасхождения Тогда Запрос.Текст = Запрос.Текст +        
        "ГДЕ
        |    ЕСТЬNULL(Проводки.Сумма, 0) - ЕСТЬNULL(Регистры.НДСОборот, 0) <> 0
        |";
    КонецЕсли;
    
    Запрос.Текст = Запрос.Текст +
        "ИТОГИ
        |    СУММА(СуммаПроводки),
        |    СУММА(СуммаКнига),
        |    СУММА(Разница)
        |ПО
        |    ОБЩИЕ";
27 b-dm
 
20.09.13
16:07
то есть вот, прошу прощения:
    Макет = ПолучитьМакет("Макет");
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ХозрасчетныйДвиженияССубконто.Регистратор.Контрагент,
        |    СУММА(ХозрасчетныйДвиженияССубконто.Сумма) КАК Сумма,
        |    ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
        |    ХозрасчетныйДвиженияССубконто.Период,
        |    ХозрасчетныйДвиженияССубконто.МоментВремени КАК МоментВремениПроводки
        |ПОМЕСТИТЬ Проводки
        |ИЗ
        |    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&ДатаНач, &ДатаКон, СчетКт = &Счет, , ) КАК ХозрасчетныйДвиженияССубконто
        |
        |СГРУППИРОВАТЬ ПО
        |    ХозрасчетныйДвиженияССубконто.Регистратор.Контрагент,
        |    ХозрасчетныйДвиженияССубконто.Регистратор,
        |    ХозрасчетныйДвиженияССубконто.Период,
        |    ХозрасчетныйДвиженияССубконто.МоментВремени
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    НДСЗаписиКнигиПродажОбороты.Покупатель,
        |    НДСЗаписиКнигиПродажОбороты.Регистратор,
        |    СУММА(НДСЗаписиКнигиПродажОбороты.НДСОборот) КАК НДСОборот,
        |    НДСЗаписиКнигиПродажОбороты.Период,
        |    НДСЗаписиКнигиПродажОбороты.ДатаСобытия КАК ДатаСобытияПродажи
        |ПОМЕСТИТЬ Регистры
        |ИЗ
        |    РегистрНакопления.НДСЗаписиКнигиПродаж.Обороты(&ДатаНач, &ДатаКон, Регистратор, ) КАК НДСЗаписиКнигиПродажОбороты
        |ГДЕ
        |    НДСЗаписиКнигиПродажОбороты.ЗаписьДополнительногоЛиста = ЛОЖЬ
        |
        |СГРУППИРОВАТЬ ПО
        |    НДСЗаписиКнигиПродажОбороты.Покупатель,
        |    НДСЗаписиКнигиПродажОбороты.Регистратор,
        |    НДСЗаписиКнигиПродажОбороты.Период,
        |    НДСЗаписиКнигиПродажОбороты.ДатаСобытия
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    Проводки.РегистраторКонтрагент КАК КонтрагентПроводки,
        |    ЕСТЬNULL(Проводки.Регистратор, ""отсутствуют проводки"") КАК ДокументПроводки,
        |    ЕСТЬNULL(Проводки.Сумма, 0) КАК СуммаПроводки,
        |    Регистры.Покупатель КАК КонтрагентКнига,
        |    ЕСТЬNULL(Регистры.Регистратор, ""отсутствуют в книге продаж"") КАК ДокументКнига,
        |    Регистры.НДСОборот КАК СуммаКнига,
        |    ЕСТЬNULL(Проводки.Сумма, 0) - ЕСТЬNULL(Регистры.НДСОборот, 0) КАК Разница,
        |    Проводки.МоментВремениПроводки,
        |    Регистры.ДатаСобытияПродажи КАК ДатаСобытияПродажи
        |ИЗ
        |    Регистры КАК Регистры
        |        ПОЛНОЕ СОЕДИНЕНИЕ Проводки КАК Проводки
        |        ПО (Проводки.Регистратор = Регистры.Регистратор)";
        
    Если ТолькоРасхождения Тогда Запрос.Текст = Запрос.Текст +        
        "ГДЕ
        |    ЕСТЬNULL(Проводки.Сумма, 0) - ЕСТЬNULL(Регистры.НДСОборот, 0) <> 0
        |";
    КонецЕсли;
    
    Запрос.Текст = Запрос.Текст +
        "ИТОГИ
        |    СУММА(СуммаПроводки),
        |    СУММА(СуммаКнига),
        |    СУММА(Разница)
        |ПО
        |    ОБЩИЕ";
28 Сонька
 
20.09.13
16:28
(27) В таком виде в консоли запрос рабочий, может когда склеивает запрос - все немного криво получается?
29 b-dm
 
20.09.13
16:33
(28) может быть. но расклеить тоже не могу, там же итоги ...или посоветуйте как ?
30 b-dm
 
20.09.13
16:38
знаний не хватает, тыкаюсь тыкаюсь..
31 Сонька
 
20.09.13
16:46
(30) по фильтру и без фильтра не работает?
32 b-dm
 
20.09.13
16:49
(31) к сожалению не понял о чем речь.можете расшифровать ?
33 Сонька
 
20.09.13
16:57
Если ТолькоРасхождения Тогда .... КонецЕсли и без..
34 b-dm
 
20.09.13
17:07
При ТолькоРасхождения
по причине:
{(56, 2)}: Синтаксическая ошибка "ЕСТЬNULL(Проводки.Сумма,"
<<?>>ЕСТЬNULL(Проводки.Сумма, 0) - ЕСТЬNULL(Регистры.НДСОборот, 0) <> 0
35 Сонька
 
20.09.13
17:08
(34) ну правильно    |"; уберите строчку, перенесите "; на предыдущую.
36 Сонька
 
20.09.13
17:08
(34)Там где толькорасхождения
37 b-dm
 
20.09.13
17:09
щас попробую.вот сама обработка, глянете ?
http://yadi.sk/d/8LKfo2ML9bmff
38 b-dm
 
20.09.13
17:14
не выходит пока каменный цветок
39 Сонька
 
20.09.13
17:26
(38)у меня ошибок нет на типовой. Точно у вас типовая :)
40 b-dm
 
20.09.13
17:29
я вам прислал без ошибок, и без упорядочивания
41 b-dm
 
20.09.13
17:29
потому что не хочу прислыать ошибочную, хочу посмотреть куда и что нужно вставить, какой кусок запроса
42 b-dm
 
20.09.13
17:49
вроде бы что то как то заработало, только я так и не понял как. выложу в ближ 10 мин, гляньте если есть возм-сть
43 b-dm
 
20.09.13
18:17