Синтаксическая ошибка выбрать во вложенном запросе

Синтаксическая ошибка ВЫБРАТЬ при выполнении запроса

Синтаксическая ошибка «ВЫБРАТЬ»<?> ВЫБРАТЬ возникает в 1С, когда в тексте запроса идут его блоки в подряд без разделения между собой.

Синтаксическая ошибка ВЫБРАТЬ

Рис.1 Скриншот ошибки «Выбрать»

Например, в случаях:

  • объединения запросов, когда подзапросы должны отделяться служебными словами «ОБЪЕДИНИТЬ» или «ОБЪЕДИНИТЬ ВСЕ«
  • два запроса идущие в подряд для последующей выборки методом ВыбратьПакет(): требуется их разделение » ; «
  • последующая выборка из временной таблицы: также необходимо разделение » ; «
  • неверный синтаксис во вложенном запросе в конструкции ГДЕ Значение В (Выбрать ссылка из Справочники.ПримерСправочника): доступно только сравнение » В ()«, а не «=«, «>» и прочее

Замечу, что такая ошибка возникает при ручной правке текста, поскольку при формировании  конструктором запроса, он вставляет разделители самостоятельно:

Разделение подзапросов

Цифры в начале ошибки (на рисунке — 386,1) —  это номер строки в запросе. При большом тексте  такая информация поможет быстрее локализовать ошибку.

Поведение системы

Выполнение запроса прерывается, но система продолжает работать

Мода имеет такое же отношение к оригинальности, как любая другая реклама к товару.

Вложенный запрос ☑ 0

AnisaL

20.09.13

12:39

Добрый день!

Помогите разобраться где ошибка во вложенном запросе, точнее я не очень понимаю как правильно его написать. Вот кусок запроса, и он выдает ошибку «Синтаксическая ошибка «ВЫБРАТЬ»

        // Цена

                   ВЫБОР

                       КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена

                       Тогда         ВЫБОР     

                                   КОГДА ТЧ.ЦенаВнутренная = 1

                                   ТОГДА

                                   (ВЫБРАТЬ

                                     РаботникиОрганизацийСрезПоследних.Стоимость1часа

                                 ИЗ

                                     РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец, ФизЛицо = &ФизЛицо) КАК РаботникиОрганизацийСрезПоследних

                                 ГДЕ

                                     РаботникиОрганизацийСрезПоследних.Организация = &Организация

                                 АВТОУПОРЯДОЧИВАНИЕ) КАК ВложенныйЗапросРаботникиОрганизаций                       

                                     ИНАЧЕ ТЧ.ЦенаВнутренная

                             КОНЕЦ

                            
                    ИНАЧЕ 0

                   КОНЕЦ КАК ЦенаРабочаяСмена,

1

ДенисЧ

20.09.13

12:40

Не прокатит так.

2

AnisaL

20.09.13

12:41

+(0) ошибку выдает на 6 строку (как здесь)

3

AnisaL

20.09.13

12:43

(1) ага, не прокатывает, наверно нужно чтобы было предложение с «ИЗ»

4

ДенисЧ

20.09.13

12:45

(3) Нужно для начала читать документацию. И осознавать, что запросы 1с — это не запросы SQL

5

kanalex

20.09.13

12:46

(0)

а скобку закрыть не пробовали?

6

Ёпрст

20.09.13

12:47

(0) в снеговике это не реализовано.. пока

7

kanalex

20.09.13

12:47

(4) хотя, конечно, в выражении ВЫБОР так нельзя, видимо

8

AnisaL

20.09.13

12:47

(3) смысл этого выбора в том заключается, что сначала идет условие на то что является ли эта номенклатура «Рабочей сменой», если да то опять условие: если Цена(стоимость 1 часа) этой рабочей смены = 1 (такое у нас бывает на внутренние работы), то нужно эту стоимость брать из вложенного подзапроса из период. РС РаботникиОрганизаций, иначе если не равно 1, то из ТЧ — табличной части документа

9

Ёпрст

20.09.13

12:48

нет там реализации подзапроса в кейсе

10

AnisaL

20.09.13

12:49

(5) в какой строке?

11

George Wheels

20.09.13

12:52

В качестве цены у тебя получается результат запроса.

Выбери ВложенныйЗапросРаботникиОрганизаций.Стоимость1часа

12

AnisaL

20.09.13

12:52

(4) а какую документацию почитать?

13

AnisaL

20.09.13

12:52

(11) да

14

AnisaL

20.09.13

12:55

(11) а как это написать ?

15

AnisaL

20.09.13

13:00

Написала так:

    // Цена

                   ВЫБОР

                       КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена

                       Тогда         ВЫБОР     

                                   КОГДА ТЧ.ЦенаВнутренная = 1

                                   ТОГДА

                                   ВЫБРАТЬ ВложенныйЗапросРаботникиОрганизаций.Стоимость1часа ИЗ

                                   (ВЫБРАТЬ

                                     РаботникиОрганизацийСрезПоследних.Стоимость1часа

                                 ИЗ

                                     РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец, ФизЛицо = &ФизЛицо) КАК РаботникиОрганизацийСрезПоследних

                                 ГДЕ

                                     РаботникиОрганизацийСрезПоследних.Организация = &Организация

                                 АВТОУПОРЯДОЧИВАНИЕ) КАК ВложенныйЗапросРаботникиОрганизаций                       

                                     ИНАЧЕ ТЧ.ЦенаВнутренная

                             КОНЕЦ

                            
                    ИНАЧЕ 0

                   КОНЕЦ КАК ЦенаРабочаяСмена,

16

AnisaL

20.09.13

13:01

(15) + но все равно ошибка

17

catena

20.09.13

13:04

(15)Было же сказано, что не работает так. Можно соединить.

18

AnisaL

20.09.13

13:06

(17) а как тогда сделать по-другому?

19

manti

20.09.13

13:07

(15) приведи полный текст запроса

20

AnisaL

20.09.13

13:08

(19)         

ВЫБРАТЬ

    ДатаСоздания,

    Клиент,

    Сумма(СуммаРабочаяСмена) КАК СуммаРабСмена,

    Сумма(КоличествоРабочаяСмена) КАК КоличествоРабочаяСмена,

    Сумма(ЦенаРабочаяСмена) КАК ЦенаРабочаяСмена,

    Сумма(СуммаДопРаботы) КАК СуммаДопРаботы,

    Сумма(СуммаПитание) КАК СуммаПитание,

    Сумма(СуммаТранспорт) КАК СуммаТранспорт

    ИЗ            

                    
            (ВЫБРАТЬ

            
                 Ссылка.ДатаСоздания,

                 Ссылка.Клиент,

                   // Количество

                   ВЫБОР

                       КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена

                       Тогда ТЧ.Количество

                ИНАЧЕ 0

                   КОНЕЦ КАК КоличествоРабочаяСмена,  

                 ВЫБОР

                       КОГДА ТЧ.Работы.Наименование НЕ ПОДОБНО &РабСмена           

                       Тогда ТЧ.Количество

                    ИНАЧЕ 0

                       Конец КАК КоличествоДопРаботы,

                   0 КАК КоличествоПитание,

                   0 КАК КоличествоТранспорт,

                   
                // Цена

                   ВЫБОР

                       КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена

                       Тогда         ВЫБОР     

                                   КОГДА ТЧ.ЦенаВнутренная = 1

                                   ТОГДА

                                   ВЫБРАТЬ ВложенныйЗапросРаботникиОрганизаций.Стоимость1часа ИЗ

                                   (ВЫБРАТЬ

                                     РаботникиОрганизацийСрезПоследних.Стоимость1часа

                                 ИЗ

                                     РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец, ФизЛицо = &ФизЛицо) КАК РаботникиОрганизацийСрезПоследних

                                 ГДЕ

                                     РаботникиОрганизацийСрезПоследних.Организация = &Организация

                                 АВТОУПОРЯДОЧИВАНИЕ) КАК ВложенныйЗапросРаботникиОрганизаций                       

                                     ИНАЧЕ ТЧ.ЦенаВнутренная

                             КОНЕЦ

                            
                    ИНАЧЕ 0

                   КОНЕЦ КАК ЦенаРабочаяСмена,  

                 ВЫБОР

                       КОГДА ТЧ.Работы.Наименование НЕ ПОДОБНО &РабСмена           

                       Тогда ТЧ.ЦенаВнутренная

                    ИНАЧЕ 0

                       Конец КАК ЦенаДопРаботы,

                   0 КАК ЦенаПитание,

                   0 КАК ЦенаТранспорт,

    
                   // Сумма

                   ВЫБОР

                       КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена

                       Тогда ТЧ.Количество*ТЧ.ЦенаВнутренная

                ИНАЧЕ 0

                   КОНЕЦ КАК СуммаРабочаяСмена,  

                 ВЫБОР

                       КОГДА ТЧ.Работы.Наименование НЕ ПОДОБНО &РабСмена           

                       Тогда ТЧ.Количество*ТЧ.ЦенаВнутренная

                    ИНАЧЕ 0

                       Конец КАК СуммаДопРаботы,

                   0 КАК СуммаПитание,

                   0 КАК СуммаТранспорт

                      
               ИЗ

                   Документ.ЗаявкаНаряд.Работы КАК ТЧ

               ГДЕ

                   Ссылка.Работы.Исполнитель = &Исполнитель

                   И

                   Ссылка.ДатаСоздания Между &Начало и &Конец

                               
            ОБЪЕДИНИТЬ

              ВЫБРАТЬ

                 Ссылка.ДатаСоздания,

                 Ссылка.Клиент,

                 // Количество

                0 КАК  КоличествоРабочаяСмена,

                   0 КАК  КоличествоДопРаботы,

                      (ВЫБОР

                       Когда ТЧ.Работы.Наименование ПОДОБНО &Питание

                       Тогда

                       ТЧ.Количество

                       КОНЕЦ) КАК КоличествоПитание,

                          (ВЫБОР

                          Когда ТЧ.Работы.Наименование ПОДОБНО &Транспорт

                          Тогда

                       ТЧ.Количество

                       Конец) КАК КоличествоТранспорт,

                   // Цена

                   0 КАК  ЦенаРабочаяСмена,

                   0 КАК  ЦенаДопРаботы,

                      (ВЫБОР

                       Когда ТЧ.Работы.Наименование ПОДОБНО &Питание

                       Тогда

                       ТЧ.ЦенаВнутренная

                       КОНЕЦ) КАК ЦенаПитание,

                          (ВЫБОР

                          Когда ТЧ.Работы.Наименование ПОДОБНО &Транспорт

                          Тогда

                       ТЧ.ЦенаВнутренная

                       Конец) КАК ЦенаТранспорт,

                // Сумма

                   0 КАК  СуммаРабочаяСмена,

                   0 КАК  СуммаДопРаботы,

                      (ВЫБОР

                       Когда ТЧ.Работы.Наименование ПОДОБНО &Питание

                       Тогда

                       ТЧ.Количество*ТЧ.ЦенаВнутренная

                       КОНЕЦ) КАК СуммаПитание,

                          (ВЫБОР

                          Когда ТЧ.Работы.Наименование ПОДОБНО &Транспорт

                          Тогда

                       ТЧ.Количество*ТЧ.ЦенаВнутренная

                       Конец) КАК СуммаТранспорт

                   
                                                   
               ИЗ

                   Документ.ЗаявкаНаряд.НакладныеРасходы КАК ТЧ

               ГДЕ

                   Ссылка.Работы.Исполнитель = &Исполнитель

                   И

                   Ссылка.ДатаСоздания Между &Начало и &Конец ) КАК ВложенныйЗапрос

      
    СГРУППИРОВАТЬ ПО ДатаСоздания, Клиент              

    УПОРЯДОЧИТЬ ПО

             ДатаСоздания, Клиент

    ИТОГИ ПО ОБЩИЕ

21

Ёпрст

20.09.13

13:08

(18) см. (9).

22

AnisaL

20.09.13

13:10

(21) уже посмотрела, тогда как иначе сделать?

23

George Wheels

20.09.13

13:14

Всё-таки лучше через соединение.

24

AnisaL

20.09.13

13:15

(22) + понятно что цену можно оставить такой какая есть и уже потом ее вытащить, после выполнения запроса, но хочется чтоб в запросе все считалось

25

AnisaL

20.09.13

13:15

(23) а что с чем соединять?

26

George Wheels

20.09.13

13:17

ФизЛицо, которое во вложенном запросе есть в документе?

27

AnisaL

20.09.13

13:19

(26) оно есть в табличной части, из которой берутся цифры

28

Dmitry1c

20.09.13

13:20

Брутально

29

George Wheels

20.09.13

13:21

Или соединить документ с регистром по реквизиту Организация (думаю в документе он должен быть). И оставить то же условие по ФизЛицу.

30

AnisaL

20.09.13

13:21

(26) в документе есть реквизит «Исполнитель», но бывают случаи когда в ТЧ помимо исполнителя еще другой сотрудник выбран, поэтому физлицо берется из ТЧ документа

31

AnisaL

20.09.13

13:22

(29) проблема в том что в документе нету реквизита Организация(

32

George Wheels

20.09.13

13:25

(30) Ну так соединяй по ФизЛицу из ТЧ.

33

AnisaL

20.09.13

13:26

(31) у нас несколько организаций, но только в одной возможны такие случаи когда стоимость 1 часа = 1, и именно по ней идет отбор в подзапросе

34

George Wheels

20.09.13

13:32

Всё, что в ВЫБОР оставляешь.

Вложенный запрос убираешь. Вместо него — РаботникиОрганизацийСрезПоследних.Стоимость1часа

ну и в конце

ИЗ

    Документ.ЗаявкаНаряд.Работы КАК ТЧ

    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец) КАК РаботникиОрганизацийСрезПоследних

    ПО ТЧ.Сотрудник = РаботникиОрганизацийСрезПоследних.ФизЛицо

ГДЕ

    …

35

AnisaL

20.09.13

13:52

(34) спасибо большое! единственное что получилось так, что когда в регистре РаботникиОрганизаций 1 запись по сотруднику, то запрос правильно выдает, а когда записей в регистре несколько по этому сотрдунику но от разных дат, то Цена 1 часа суммируется

36

AnisaL

20.09.13

13:54

(35) + как сделать чтобы выбиралась только последняя запись?

37

George Wheels

20.09.13

14:00

(35) СрезПоследних выдаёт несколько записей? Тогда смотри какие ещё измерения у регистра.

38

AnisaL

20.09.13

14:02

(37) у регистра 3 измерения: ФизЛицо, Организация, Подразделение

39

catena

20.09.13

14:10

(38)Это клево. Какой смысл?

Тогда так

Выбрать РабОрг.Стоимость1часа из (Выбрать физлицо, максимум(период) как Период из РегистрСведений.РаботникиОрганизаций как РаботникиОрганизаций где Организация=&Организация) как ВложеныйЗапрос

Левое соединение РегистрСведений.РаботникиОрганизаций как РабОрг

по РабОрг.Физлицо = ВложеныйЗапрос.Физлицо

и РабОрг.Период = ВложеныйЗапрос.Период

40

AnisaL

20.09.13

14:18

(39) этот запрос написать вместо этого ?

    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец) КАК РаботникиОрганизацийСрезПоследних

                ПО ТЧ.Исполнитель = РаботникиОрганизацийСрезПоследних.ФизЛицо

41

catena

20.09.13

14:23

(40)Вместо РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец)

42

AnisaL

20.09.13

14:26

(41) ошибку выдает:

Поле не входит в группу «Физлицо»

Выбрать Физлицо

43

catena

20.09.13

14:26

Вот так вернее для ваших целей.

Выбрать РабОрг.Стоимость1часа, РабОрг.Физлицо

из (Выбрать физлицо, максимум(период) как Период из РегистрСведений.РаботникиОрганизаций как РаботникиОрганизаций где Организация=&Организация и Период <=&Конец

Сгруппировать по физлицо

) как ВложеныйЗапрос

Левое соединение РегистрСведений.РаботникиОрганизаций как РабОрг

по РабОрг.Физлицо = ВложеныйЗапрос.Физлицо

и РабОрг.Период = ВложеныйЗапрос.Период

44

catena

20.09.13

14:27

(42)Да, группировку забыла, смотри (43)

45

AnisaL

20.09.13

14:40

(44) спасибо) только запрос выдает стоимости1часа без отбора по организации

46

AnisaL

20.09.13

14:50

(45) разобралась, в конце надо было еще одну строчку добавить

где РабОрг.организация = &Организация (43) чтоб отбор был по организации у второй таблицы

47

AnisaL

20.09.13

14:54

(44) запрос вставила вместо РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец) выдает ошибку:

Ожидается имя таблицы

<<?>>Выбрать РабОрг.физлицо

48

catena

20.09.13

15:02

(47)А скобочки есть?

ЛЕВОЕ СОЕДИНЕНИЕ (ТУТ_ТЕКСТ_ЗАПРОСА)  КАК РаботникиОрганизацийСрезПоследних

                ПО ТЧ.Исполнитель = РаботникиОрганизацийСрезПоследних.ФизЛицо

49

AnisaL

23.09.13

07:42

(48) ага спасибо )

50

AnisaL

23.09.13

09:58

У меня не считает итог по строке — такое возможно осуществить в запросе?

«ВЫБРАТЬ

|    ДатаСоздания,

|    Клиент,

|    Проведен,

|     Сумма(СуммаРабочаяСмена) КАК СуммаРабочаяСмена,

|     Сумма(КоличествоРабочаяСмена) КАК КоличествоРабочаяСмена,

|     Сумма(ЦенаРабочаяСмена) КАК ЦенаРабочаяСмена,

|     Сумма(СуммаДопРаботы) КАК СуммаДопРаботы,

|     Сумма(СуммаПитание) КАК СуммаПитание,

|     Сумма(СуммаТранспорт) КАК СуммаТранспорт,

|   Сумма(СуммаРабочаяСмена+СуммаДопРаботы+СуммаПитание+СуммаТранспорт) КАК СуммаИтог

51

AnisaL

23.09.13

10:00

(50) + т.е. в последней строчке почему-то считает «Суммаитог» как СуммаРабочаяСмена а остальные суммы не прибавляет

52

AnisaL

23.09.13

10:35

(51) а если в ИТогах написать, то получится?

  

AnisaL

20.09.13 — 12:39

Добрый день!

Помогите разобраться где ошибка во вложенном запросе, точнее я не очень понимаю как правильно его написать. Вот кусок запроса, и он выдает ошибку «Синтаксическая ошибка «ВЫБРАТЬ»

        // Цена

                   ВЫБОР

                       КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена

                       Тогда         ВЫБОР     

                                   КОГДА ТЧ.ЦенаВнутренная = 1

                                   ТОГДА

                                   (ВЫБРАТЬ

                                     РаботникиОрганизацийСрезПоследних.Стоимость1часа

                                 ИЗ

                                     РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец, ФизЛицо = &ФизЛицо) КАК РаботникиОрганизацийСрезПоследних

                                 ГДЕ

                                     РаботникиОрганизацийСрезПоследних.Организация = &Организация

                                 АВТОУПОРЯДОЧИВАНИЕ) КАК ВложенныйЗапросРаботникиОрганизаций                       

                                     ИНАЧЕ ТЧ.ЦенаВнутренная

                             КОНЕЦ

                            

                    ИНАЧЕ 0

                   КОНЕЦ КАК ЦенаРабочаяСмена,

  

ДенисЧ

1 — 20.09.13 — 12:40

Не прокатит так.

  

AnisaL

2 — 20.09.13 — 12:41

+(0) ошибку выдает на 6 строку (как здесь)

  

AnisaL

3 — 20.09.13 — 12:43

(1) ага, не прокатывает, наверно нужно чтобы было предложение с «ИЗ»

  

ДенисЧ

4 — 20.09.13 — 12:45

(3) Нужно для начала читать документацию. И осознавать, что запросы 1с — это не запросы SQL

  

kanalex

5 — 20.09.13 — 12:46

(0)

а скобку закрыть не пробовали?

  

Ёпрст

6 — 20.09.13 — 12:47

(0) в снеговике это не реализовано.. пока

  

kanalex

7 — 20.09.13 — 12:47

(4) хотя, конечно, в выражении ВЫБОР так нельзя, видимо

  

AnisaL

8 — 20.09.13 — 12:47

(3) смысл этого выбора в том заключается, что сначала идет условие на то что является ли эта номенклатура «Рабочей сменой», если да то опять условие: если Цена(стоимость 1 часа) этой рабочей смены = 1 (такое у нас бывает на внутренние работы), то нужно эту стоимость брать из вложенного подзапроса из период. РС РаботникиОрганизаций, иначе если не равно 1, то из ТЧ — табличной части документа

  

Ёпрст

9 — 20.09.13 — 12:48

нет там реализации подзапроса в кейсе

  

AnisaL

10 — 20.09.13 — 12:49

(5) в какой строке?

  

George Wheels

11 — 20.09.13 — 12:52

В качестве цены у тебя получается результат запроса.

Выбери ВложенныйЗапросРаботникиОрганизаций.Стоимость1часа

  

AnisaL

12 — 20.09.13 — 12:52

(4) а какую документацию почитать?

  

AnisaL

13 — 20.09.13 — 12:52

(11) да

  

AnisaL

14 — 20.09.13 — 12:55

(11) а как это написать ?

  

AnisaL

15 — 20.09.13 — 13:00

Написала так:

    // Цена

                   ВЫБОР

                       КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена

                       Тогда         ВЫБОР     

                                   КОГДА ТЧ.ЦенаВнутренная = 1

                                   ТОГДА

                                   ВЫБРАТЬ ВложенныйЗапросРаботникиОрганизаций.Стоимость1часа ИЗ

                                   (ВЫБРАТЬ

                                     РаботникиОрганизацийСрезПоследних.Стоимость1часа

                                 ИЗ

                                     РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец, ФизЛицо = &ФизЛицо) КАК РаботникиОрганизацийСрезПоследних

                                 ГДЕ

                                     РаботникиОрганизацийСрезПоследних.Организация = &Организация

                                 АВТОУПОРЯДОЧИВАНИЕ) КАК ВложенныйЗапросРаботникиОрганизаций                       

                                     ИНАЧЕ ТЧ.ЦенаВнутренная

                             КОНЕЦ

                            

                    ИНАЧЕ 0

                   КОНЕЦ КАК ЦенаРабочаяСмена,

  

AnisaL

16 — 20.09.13 — 13:01

(15) + но все равно ошибка

  

catena

17 — 20.09.13 — 13:04

(15)Было же сказано, что не работает так. Можно соединить.

  

AnisaL

18 — 20.09.13 — 13:06

(17) а как тогда сделать по-другому?

  

manti

19 — 20.09.13 — 13:07

(15) приведи полный текст запроса

  

AnisaL

20 — 20.09.13 — 13:08

(19)         

ВЫБРАТЬ

    ДатаСоздания,

    Клиент,

    Сумма(СуммаРабочаяСмена) КАК СуммаРабСмена,

    Сумма(КоличествоРабочаяСмена) КАК КоличествоРабочаяСмена,

    Сумма(ЦенаРабочаяСмена) КАК ЦенаРабочаяСмена,

    Сумма(СуммаДопРаботы) КАК СуммаДопРаботы,

    Сумма(СуммаПитание) КАК СуммаПитание,

    Сумма(СуммаТранспорт) КАК СуммаТранспорт

    ИЗ            

                    
            (ВЫБРАТЬ

            

                 Ссылка.ДатаСоздания,

                 Ссылка.Клиент,

                   // Количество

                   ВЫБОР

                       КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена

                       Тогда ТЧ.Количество

                ИНАЧЕ 0

                   КОНЕЦ КАК КоличествоРабочаяСмена,  

                 ВЫБОР

                       КОГДА ТЧ.Работы.Наименование НЕ ПОДОБНО &РабСмена           

                       Тогда ТЧ.Количество

                    ИНАЧЕ 0

                       Конец КАК КоличествоДопРаботы,

                   0 КАК КоличествоПитание,

                   0 КАК КоличествоТранспорт,

                   

                // Цена

                   ВЫБОР

                       КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена

                       Тогда         ВЫБОР     

                                   КОГДА ТЧ.ЦенаВнутренная = 1

                                   ТОГДА

                                   ВЫБРАТЬ ВложенныйЗапросРаботникиОрганизаций.Стоимость1часа ИЗ

                                   (ВЫБРАТЬ

                                     РаботникиОрганизацийСрезПоследних.Стоимость1часа

                                 ИЗ

                                     РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец, ФизЛицо = &ФизЛицо) КАК РаботникиОрганизацийСрезПоследних

                                 ГДЕ

                                     РаботникиОрганизацийСрезПоследних.Организация = &Организация

                                 АВТОУПОРЯДОЧИВАНИЕ) КАК ВложенныйЗапросРаботникиОрганизаций                       

                                     ИНАЧЕ ТЧ.ЦенаВнутренная

                             КОНЕЦ

                            

                    ИНАЧЕ 0

                   КОНЕЦ КАК ЦенаРабочаяСмена,  

                 ВЫБОР

                       КОГДА ТЧ.Работы.Наименование НЕ ПОДОБНО &РабСмена           

                       Тогда ТЧ.ЦенаВнутренная

                    ИНАЧЕ 0

                       Конец КАК ЦенаДопРаботы,

                   0 КАК ЦенаПитание,

                   0 КАК ЦенаТранспорт,

    

                   // Сумма

                   ВЫБОР

                       КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена

                       Тогда ТЧ.Количество*ТЧ.ЦенаВнутренная

                ИНАЧЕ 0

                   КОНЕЦ КАК СуммаРабочаяСмена,  

                 ВЫБОР

                       КОГДА ТЧ.Работы.Наименование НЕ ПОДОБНО &РабСмена           

                       Тогда ТЧ.Количество*ТЧ.ЦенаВнутренная

                    ИНАЧЕ 0

                       Конец КАК СуммаДопРаботы,

                   0 КАК СуммаПитание,

                   0 КАК СуммаТранспорт

                      

               ИЗ

                   Документ.ЗаявкаНаряд.Работы КАК ТЧ

               ГДЕ

                   Ссылка.Работы.Исполнитель = &Исполнитель

                   И

                   Ссылка.ДатаСоздания Между &Начало и &Конец

                               

            ОБЪЕДИНИТЬ

              ВЫБРАТЬ

                 Ссылка.ДатаСоздания,

                 Ссылка.Клиент,

                 // Количество

                0 КАК  КоличествоРабочаяСмена,

                   0 КАК  КоличествоДопРаботы,

                      (ВЫБОР

                       Когда ТЧ.Работы.Наименование ПОДОБНО &Питание

                       Тогда

                       ТЧ.Количество

                       КОНЕЦ) КАК КоличествоПитание,

                          (ВЫБОР

                          Когда ТЧ.Работы.Наименование ПОДОБНО &Транспорт

                          Тогда

                       ТЧ.Количество

                       Конец) КАК КоличествоТранспорт,

                   // Цена

                   0 КАК  ЦенаРабочаяСмена,

                   0 КАК  ЦенаДопРаботы,

                      (ВЫБОР

                       Когда ТЧ.Работы.Наименование ПОДОБНО &Питание

                       Тогда

                       ТЧ.ЦенаВнутренная

                       КОНЕЦ) КАК ЦенаПитание,

                          (ВЫБОР

                          Когда ТЧ.Работы.Наименование ПОДОБНО &Транспорт

                          Тогда

                       ТЧ.ЦенаВнутренная

                       Конец) КАК ЦенаТранспорт,

                // Сумма

                   0 КАК  СуммаРабочаяСмена,

                   0 КАК  СуммаДопРаботы,

                      (ВЫБОР

                       Когда ТЧ.Работы.Наименование ПОДОБНО &Питание

                       Тогда

                       ТЧ.Количество*ТЧ.ЦенаВнутренная

                       КОНЕЦ) КАК СуммаПитание,

                          (ВЫБОР

                          Когда ТЧ.Работы.Наименование ПОДОБНО &Транспорт

                          Тогда

                       ТЧ.Количество*ТЧ.ЦенаВнутренная

                       Конец) КАК СуммаТранспорт

                   

                                                   
               ИЗ

                   Документ.ЗаявкаНаряд.НакладныеРасходы КАК ТЧ

               ГДЕ

                   Ссылка.Работы.Исполнитель = &Исполнитель

                   И

                   Ссылка.ДатаСоздания Между &Начало и &Конец ) КАК ВложенныйЗапрос

      

    СГРУППИРОВАТЬ ПО ДатаСоздания, Клиент              

    УПОРЯДОЧИТЬ ПО

             ДатаСоздания, Клиент

    ИТОГИ ПО ОБЩИЕ

  

Ёпрст

21 — 20.09.13 — 13:08

(18) см. (9).

  

AnisaL

22 — 20.09.13 — 13:10

(21) уже посмотрела, тогда как иначе сделать?

  

George Wheels

23 — 20.09.13 — 13:14

Всё-таки лучше через соединение.

  

AnisaL

24 — 20.09.13 — 13:15

(22) + понятно что цену можно оставить такой какая есть и уже потом ее вытащить, после выполнения запроса, но хочется чтоб в запросе все считалось

  

AnisaL

25 — 20.09.13 — 13:15

(23) а что с чем соединять?

  

George Wheels

26 — 20.09.13 — 13:17

ФизЛицо, которое во вложенном запросе есть в документе?

  

AnisaL

27 — 20.09.13 — 13:19

(26) оно есть в табличной части, из которой берутся цифры

  

Dmitry1c

28 — 20.09.13 — 13:20

Брутально

  

George Wheels

29 — 20.09.13 — 13:21

Или соединить документ с регистром по реквизиту Организация (думаю в документе он должен быть). И оставить то же условие по ФизЛицу.

  

AnisaL

30 — 20.09.13 — 13:21

(26) в документе есть реквизит «Исполнитель», но бывают случаи когда в ТЧ помимо исполнителя еще другой сотрудник выбран, поэтому физлицо берется из ТЧ документа

  

AnisaL

31 — 20.09.13 — 13:22

(29) проблема в том что в документе нету реквизита Организация(

  

George Wheels

32 — 20.09.13 — 13:25

(30) Ну так соединяй по ФизЛицу из ТЧ.

  

AnisaL

33 — 20.09.13 — 13:26

(31) у нас несколько организаций, но только в одной возможны такие случаи когда стоимость 1 часа = 1, и именно по ней идет отбор в подзапросе

  

George Wheels

34 — 20.09.13 — 13:32

Всё, что в ВЫБОР оставляешь.

Вложенный запрос убираешь. Вместо него — РаботникиОрганизацийСрезПоследних.Стоимость1часа

ну и в конце

ИЗ

    Документ.ЗаявкаНаряд.Работы КАК ТЧ

    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец) КАК РаботникиОрганизацийСрезПоследних

    ПО ТЧ.Сотрудник = РаботникиОрганизацийСрезПоследних.ФизЛицо

ГДЕ

    …

  

AnisaL

35 — 20.09.13 — 13:52

(34) спасибо большое! единственное что получилось так, что когда в регистре РаботникиОрганизаций 1 запись по сотруднику, то запрос правильно выдает, а когда записей в регистре несколько по этому сотрдунику но от разных дат, то Цена 1 часа суммируется

  

AnisaL

36 — 20.09.13 — 13:54

(35) + как сделать чтобы выбиралась только последняя запись?

  

George Wheels

37 — 20.09.13 — 14:00

(35) СрезПоследних выдаёт несколько записей? Тогда смотри какие ещё измерения у регистра.

  

AnisaL

38 — 20.09.13 — 14:02

(37) у регистра 3 измерения: ФизЛицо, Организация, Подразделение

  

catena

39 — 20.09.13 — 14:10

(38)Это клево. Какой смысл?

Тогда так

Выбрать РабОрг.Стоимость1часа из (Выбрать физлицо, максимум(период) как Период из РегистрСведений.РаботникиОрганизаций как РаботникиОрганизаций где Организация=&Организация) как ВложеныйЗапрос

Левое соединение РегистрСведений.РаботникиОрганизаций как РабОрг

по РабОрг.Физлицо = ВложеныйЗапрос.Физлицо

и РабОрг.Период = ВложеныйЗапрос.Период

  

AnisaL

40 — 20.09.13 — 14:18

(39) этот запрос написать вместо этого ?

    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец) КАК РаботникиОрганизацийСрезПоследних

                ПО ТЧ.Исполнитель = РаботникиОрганизацийСрезПоследних.ФизЛицо

  

catena

41 — 20.09.13 — 14:23

(40)Вместо РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец)

  

AnisaL

42 — 20.09.13 — 14:26

(41) ошибку выдает:

Поле не входит в группу «Физлицо»

Выбрать Физлицо

  

catena

43 — 20.09.13 — 14:26

Вот так вернее для ваших целей.

Выбрать РабОрг.Стоимость1часа, РабОрг.Физлицо

из (Выбрать физлицо, максимум(период) как Период из РегистрСведений.РаботникиОрганизаций как РаботникиОрганизаций где Организация=&Организация и Период <=&Конец

Сгруппировать по физлицо

) как ВложеныйЗапрос

Левое соединение РегистрСведений.РаботникиОрганизаций как РабОрг

по РабОрг.Физлицо = ВложеныйЗапрос.Физлицо

и РабОрг.Период = ВложеныйЗапрос.Период

  

catena

44 — 20.09.13 — 14:27

(42)Да, группировку забыла, смотри (43)

  

AnisaL

45 — 20.09.13 — 14:40

(44) спасибо) только запрос выдает стоимости1часа без отбора по организации

  

AnisaL

46 — 20.09.13 — 14:50

(45) разобралась, в конце надо было еще одну строчку добавить

где РабОрг.организация = &Организация (43) чтоб отбор был по организации у второй таблицы

  

AnisaL

47 — 20.09.13 — 14:54

(44) запрос вставила вместо РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец) выдает ошибку:

Ожидается имя таблицы

<<?>>Выбрать РабОрг.физлицо

  

catena

48 — 20.09.13 — 15:02

(47)А скобочки есть?

ЛЕВОЕ СОЕДИНЕНИЕ (ТУТ_ТЕКСТ_ЗАПРОСА)  КАК РаботникиОрганизацийСрезПоследних

                ПО ТЧ.Исполнитель = РаботникиОрганизацийСрезПоследних.ФизЛицо

  

AnisaL

49 — 23.09.13 — 07:42

(48) ага спасибо )

  

AnisaL

50 — 23.09.13 — 09:58

У меня не считает итог по строке — такое возможно осуществить в запросе?

«ВЫБРАТЬ

|    ДатаСоздания,

|    Клиент,

|    Проведен,

|     Сумма(СуммаРабочаяСмена) КАК СуммаРабочаяСмена,

|     Сумма(КоличествоРабочаяСмена) КАК КоличествоРабочаяСмена,

|     Сумма(ЦенаРабочаяСмена) КАК ЦенаРабочаяСмена,

|     Сумма(СуммаДопРаботы) КАК СуммаДопРаботы,

|     Сумма(СуммаПитание) КАК СуммаПитание,

|     Сумма(СуммаТранспорт) КАК СуммаТранспорт,

|   Сумма(СуммаРабочаяСмена+СуммаДопРаботы+СуммаПитание+СуммаТранспорт) КАК СуммаИтог

  

AnisaL

51 — 23.09.13 — 10:00

(50) + т.е. в последней строчке почему-то считает «Суммаитог» как СуммаРабочаяСмена а остальные суммы не прибавляет

  

AnisaL

52 — 23.09.13 — 10:35

(51) а если в ИТогах написать, то получится?

AnisaL

20.09.13 — 12:39

Добрый день!

Помогите разобраться где ошибка во вложенном запросе, точнее я не очень понимаю как правильно его написать. Вот кусок запроса, и он выдает ошибку «Синтаксическая ошибка «ВЫБРАТЬ»

        // Цена

                   ВЫБОР

                       КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена

                       Тогда         ВЫБОР     

                                   КОГДА ТЧ.ЦенаВнутренная = 1

                                   ТОГДА

                                   (ВЫБРАТЬ

                                     РаботникиОрганизацийСрезПоследних.Стоимость1часа

                                 ИЗ

                                     РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец, ФизЛицо = &ФизЛицо) КАК РаботникиОрганизацийСрезПоследних

                                 ГДЕ

                                     РаботникиОрганизацийСрезПоследних.Организация = &Организация

                                 АВТОУПОРЯДОЧИВАНИЕ) КАК ВложенныйЗапросРаботникиОрганизаций                       

                                     ИНАЧЕ ТЧ.ЦенаВнутренная

                             КОНЕЦ

                            

                    ИНАЧЕ 0

                   КОНЕЦ КАК ЦенаРабочаяСмена,

ДенисЧ

1 — 20.09.13 — 12:40

Не прокатит так.

AnisaL

2 — 20.09.13 — 12:41

+(0) ошибку выдает на 6 строку (как здесь)

AnisaL

3 — 20.09.13 — 12:43

(1) ага, не прокатывает, наверно нужно чтобы было предложение с «ИЗ»

ДенисЧ

4 — 20.09.13 — 12:45

(3) Нужно для начала читать документацию. И осознавать, что запросы 1с — это не запросы SQL

kanalex

5 — 20.09.13 — 12:46

(0)

а скобку закрыть не пробовали?

Ёпрст

6 — 20.09.13 — 12:47

(0) в снеговике это не реализовано.. пока

kanalex

7 — 20.09.13 — 12:47

(4) хотя, конечно, в выражении ВЫБОР так нельзя, видимо

AnisaL

8 — 20.09.13 — 12:47

(3) смысл этого выбора в том заключается, что сначала идет условие на то что является ли эта номенклатура «Рабочей сменой», если да то опять условие: если Цена(стоимость 1 часа) этой рабочей смены = 1 (такое у нас бывает на внутренние работы), то нужно эту стоимость брать из вложенного подзапроса из период. РС РаботникиОрганизаций, иначе если не равно 1, то из ТЧ — табличной части документа

Ёпрст

9 — 20.09.13 — 12:48

нет там реализации подзапроса в кейсе

AnisaL

10 — 20.09.13 — 12:49

(5) в какой строке?

George Wheels

11 — 20.09.13 — 12:52

В качестве цены у тебя получается результат запроса.

Выбери ВложенныйЗапросРаботникиОрганизаций.Стоимость1часа

AnisaL

12 — 20.09.13 — 12:52

(4) а какую документацию почитать?

AnisaL

13 — 20.09.13 — 12:52

(11) да

AnisaL

14 — 20.09.13 — 12:55

(11) а как это написать ?

AnisaL

15 — 20.09.13 — 13:00

Написала так:

    // Цена

                   ВЫБОР

                       КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена

                       Тогда         ВЫБОР     

                                   КОГДА ТЧ.ЦенаВнутренная = 1

                                   ТОГДА

                                   ВЫБРАТЬ ВложенныйЗапросРаботникиОрганизаций.Стоимость1часа ИЗ

                                   (ВЫБРАТЬ

                                     РаботникиОрганизацийСрезПоследних.Стоимость1часа

                                 ИЗ

                                     РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец, ФизЛицо = &ФизЛицо) КАК РаботникиОрганизацийСрезПоследних

                                 ГДЕ

                                     РаботникиОрганизацийСрезПоследних.Организация = &Организация

                                 АВТОУПОРЯДОЧИВАНИЕ) КАК ВложенныйЗапросРаботникиОрганизаций                       

                                     ИНАЧЕ ТЧ.ЦенаВнутренная

                             КОНЕЦ

                            

                    ИНАЧЕ 0

                   КОНЕЦ КАК ЦенаРабочаяСмена,

AnisaL

16 — 20.09.13 — 13:01

(15) + но все равно ошибка

catena

17 — 20.09.13 — 13:04

(15)Было же сказано, что не работает так. Можно соединить.

AnisaL

18 — 20.09.13 — 13:06

(17) а как тогда сделать по-другому?

manti

19 — 20.09.13 — 13:07

(15) приведи полный текст запроса

AnisaL

20 — 20.09.13 — 13:08

(19)         

ВЫБРАТЬ

    ДатаСоздания,

    Клиент,

    Сумма(СуммаРабочаяСмена) КАК СуммаРабСмена,

    Сумма(КоличествоРабочаяСмена) КАК КоличествоРабочаяСмена,

    Сумма(ЦенаРабочаяСмена) КАК ЦенаРабочаяСмена,

    Сумма(СуммаДопРаботы) КАК СуммаДопРаботы,

    Сумма(СуммаПитание) КАК СуммаПитание,

    Сумма(СуммаТранспорт) КАК СуммаТранспорт

    ИЗ            

                    
            (ВЫБРАТЬ

            

                 Ссылка.ДатаСоздания,

                 Ссылка.Клиент,

                   // Количество

                   ВЫБОР

                       КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена

                       Тогда ТЧ.Количество

                ИНАЧЕ 0

                   КОНЕЦ КАК КоличествоРабочаяСмена,  

                 ВЫБОР

                       КОГДА ТЧ.Работы.Наименование НЕ ПОДОБНО &РабСмена           

                       Тогда ТЧ.Количество

                    ИНАЧЕ 0

                       Конец КАК КоличествоДопРаботы,

                   0 КАК КоличествоПитание,

                   0 КАК КоличествоТранспорт,

                   

                // Цена

                   ВЫБОР

                       КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена

                       Тогда         ВЫБОР     

                                   КОГДА ТЧ.ЦенаВнутренная = 1

                                   ТОГДА

                                   ВЫБРАТЬ ВложенныйЗапросРаботникиОрганизаций.Стоимость1часа ИЗ

                                   (ВЫБРАТЬ

                                     РаботникиОрганизацийСрезПоследних.Стоимость1часа

                                 ИЗ

                                     РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец, ФизЛицо = &ФизЛицо) КАК РаботникиОрганизацийСрезПоследних

                                 ГДЕ

                                     РаботникиОрганизацийСрезПоследних.Организация = &Организация

                                 АВТОУПОРЯДОЧИВАНИЕ) КАК ВложенныйЗапросРаботникиОрганизаций                       

                                     ИНАЧЕ ТЧ.ЦенаВнутренная

                             КОНЕЦ

                            

                    ИНАЧЕ 0

                   КОНЕЦ КАК ЦенаРабочаяСмена,  

                 ВЫБОР

                       КОГДА ТЧ.Работы.Наименование НЕ ПОДОБНО &РабСмена           

                       Тогда ТЧ.ЦенаВнутренная

                    ИНАЧЕ 0

                       Конец КАК ЦенаДопРаботы,

                   0 КАК ЦенаПитание,

                   0 КАК ЦенаТранспорт,

    

                   // Сумма

                   ВЫБОР

                       КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена

                       Тогда ТЧ.Количество*ТЧ.ЦенаВнутренная

                ИНАЧЕ 0

                   КОНЕЦ КАК СуммаРабочаяСмена,  

                 ВЫБОР

                       КОГДА ТЧ.Работы.Наименование НЕ ПОДОБНО &РабСмена           

                       Тогда ТЧ.Количество*ТЧ.ЦенаВнутренная

                    ИНАЧЕ 0

                       Конец КАК СуммаДопРаботы,

                   0 КАК СуммаПитание,

                   0 КАК СуммаТранспорт

                      

               ИЗ

                   Документ.ЗаявкаНаряд.Работы КАК ТЧ

               ГДЕ

                   Ссылка.Работы.Исполнитель = &Исполнитель

                   И

                   Ссылка.ДатаСоздания Между &Начало и &Конец

                               

            ОБЪЕДИНИТЬ

              ВЫБРАТЬ

                 Ссылка.ДатаСоздания,

                 Ссылка.Клиент,

                 // Количество

                0 КАК  КоличествоРабочаяСмена,

                   0 КАК  КоличествоДопРаботы,

                      (ВЫБОР

                       Когда ТЧ.Работы.Наименование ПОДОБНО &Питание

                       Тогда

                       ТЧ.Количество

                       КОНЕЦ) КАК КоличествоПитание,

                          (ВЫБОР

                          Когда ТЧ.Работы.Наименование ПОДОБНО &Транспорт

                          Тогда

                       ТЧ.Количество

                       Конец) КАК КоличествоТранспорт,

                   // Цена

                   0 КАК  ЦенаРабочаяСмена,

                   0 КАК  ЦенаДопРаботы,

                      (ВЫБОР

                       Когда ТЧ.Работы.Наименование ПОДОБНО &Питание

                       Тогда

                       ТЧ.ЦенаВнутренная

                       КОНЕЦ) КАК ЦенаПитание,

                          (ВЫБОР

                          Когда ТЧ.Работы.Наименование ПОДОБНО &Транспорт

                          Тогда

                       ТЧ.ЦенаВнутренная

                       Конец) КАК ЦенаТранспорт,

                // Сумма

                   0 КАК  СуммаРабочаяСмена,

                   0 КАК  СуммаДопРаботы,

                      (ВЫБОР

                       Когда ТЧ.Работы.Наименование ПОДОБНО &Питание

                       Тогда

                       ТЧ.Количество*ТЧ.ЦенаВнутренная

                       КОНЕЦ) КАК СуммаПитание,

                          (ВЫБОР

                          Когда ТЧ.Работы.Наименование ПОДОБНО &Транспорт

                          Тогда

                       ТЧ.Количество*ТЧ.ЦенаВнутренная

                       Конец) КАК СуммаТранспорт

                   

                                                   
               ИЗ

                   Документ.ЗаявкаНаряд.НакладныеРасходы КАК ТЧ

               ГДЕ

                   Ссылка.Работы.Исполнитель = &Исполнитель

                   И

                   Ссылка.ДатаСоздания Между &Начало и &Конец ) КАК ВложенныйЗапрос

      

    СГРУППИРОВАТЬ ПО ДатаСоздания, Клиент              

    УПОРЯДОЧИТЬ ПО

             ДатаСоздания, Клиент

    ИТОГИ ПО ОБЩИЕ

Ёпрст

21 — 20.09.13 — 13:08

(18) см. (9).

AnisaL

22 — 20.09.13 — 13:10

(21) уже посмотрела, тогда как иначе сделать?

George Wheels

23 — 20.09.13 — 13:14

Всё-таки лучше через соединение.

AnisaL

24 — 20.09.13 — 13:15

(22) + понятно что цену можно оставить такой какая есть и уже потом ее вытащить, после выполнения запроса, но хочется чтоб в запросе все считалось

AnisaL

25 — 20.09.13 — 13:15

(23) а что с чем соединять?

George Wheels

26 — 20.09.13 — 13:17

ФизЛицо, которое во вложенном запросе есть в документе?

AnisaL

27 — 20.09.13 — 13:19

(26) оно есть в табличной части, из которой берутся цифры

Dmitry1c

28 — 20.09.13 — 13:20

Брутально

George Wheels

29 — 20.09.13 — 13:21

Или соединить документ с регистром по реквизиту Организация (думаю в документе он должен быть). И оставить то же условие по ФизЛицу.

AnisaL

30 — 20.09.13 — 13:21

(26) в документе есть реквизит «Исполнитель», но бывают случаи когда в ТЧ помимо исполнителя еще другой сотрудник выбран, поэтому физлицо берется из ТЧ документа

AnisaL

31 — 20.09.13 — 13:22

(29) проблема в том что в документе нету реквизита Организация(

George Wheels

32 — 20.09.13 — 13:25

(30) Ну так соединяй по ФизЛицу из ТЧ.

AnisaL

33 — 20.09.13 — 13:26

(31) у нас несколько организаций, но только в одной возможны такие случаи когда стоимость 1 часа = 1, и именно по ней идет отбор в подзапросе

George Wheels

34 — 20.09.13 — 13:32

Всё, что в ВЫБОР оставляешь.

Вложенный запрос убираешь. Вместо него — РаботникиОрганизацийСрезПоследних.Стоимость1часа

ну и в конце

ИЗ

    Документ.ЗаявкаНаряд.Работы КАК ТЧ

    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец) КАК РаботникиОрганизацийСрезПоследних

    ПО ТЧ.Сотрудник = РаботникиОрганизацийСрезПоследних.ФизЛицо

ГДЕ

    …

AnisaL

35 — 20.09.13 — 13:52

(34) спасибо большое! единственное что получилось так, что когда в регистре РаботникиОрганизаций 1 запись по сотруднику, то запрос правильно выдает, а когда записей в регистре несколько по этому сотрдунику но от разных дат, то Цена 1 часа суммируется

AnisaL

36 — 20.09.13 — 13:54

(35) + как сделать чтобы выбиралась только последняя запись?

George Wheels

37 — 20.09.13 — 14:00

(35) СрезПоследних выдаёт несколько записей? Тогда смотри какие ещё измерения у регистра.

AnisaL

38 — 20.09.13 — 14:02

(37) у регистра 3 измерения: ФизЛицо, Организация, Подразделение

catena

39 — 20.09.13 — 14:10

(38)Это клево. Какой смысл?

Тогда так

Выбрать РабОрг.Стоимость1часа из (Выбрать физлицо, максимум(период) как Период из РегистрСведений.РаботникиОрганизаций как РаботникиОрганизаций где Организация=&Организация) как ВложеныйЗапрос

Левое соединение РегистрСведений.РаботникиОрганизаций как РабОрг

по РабОрг.Физлицо = ВложеныйЗапрос.Физлицо

и РабОрг.Период = ВложеныйЗапрос.Период

AnisaL

40 — 20.09.13 — 14:18

(39) этот запрос написать вместо этого ?

    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец) КАК РаботникиОрганизацийСрезПоследних

                ПО ТЧ.Исполнитель = РаботникиОрганизацийСрезПоследних.ФизЛицо

catena

41 — 20.09.13 — 14:23

(40)Вместо РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец)

AnisaL

42 — 20.09.13 — 14:26

(41) ошибку выдает:

Поле не входит в группу «Физлицо»

Выбрать Физлицо

catena

43 — 20.09.13 — 14:26

Вот так вернее для ваших целей.

Выбрать РабОрг.Стоимость1часа, РабОрг.Физлицо

из (Выбрать физлицо, максимум(период) как Период из РегистрСведений.РаботникиОрганизаций как РаботникиОрганизаций где Организация=&Организация и Период <=&Конец

Сгруппировать по физлицо

) как ВложеныйЗапрос

Левое соединение РегистрСведений.РаботникиОрганизаций как РабОрг

по РабОрг.Физлицо = ВложеныйЗапрос.Физлицо

и РабОрг.Период = ВложеныйЗапрос.Период

catena

44 — 20.09.13 — 14:27

(42)Да, группировку забыла, смотри (43)

AnisaL

45 — 20.09.13 — 14:40

(44) спасибо) только запрос выдает стоимости1часа без отбора по организации

AnisaL

46 — 20.09.13 — 14:50

(45) разобралась, в конце надо было еще одну строчку добавить

где РабОрг.организация = &Организация (43) чтоб отбор был по организации у второй таблицы

AnisaL

47 — 20.09.13 — 14:54

(44) запрос вставила вместо РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец) выдает ошибку:

Ожидается имя таблицы

<<?>>Выбрать РабОрг.физлицо

catena

48 — 20.09.13 — 15:02

(47)А скобочки есть?

ЛЕВОЕ СОЕДИНЕНИЕ (ТУТ_ТЕКСТ_ЗАПРОСА)  КАК РаботникиОрганизацийСрезПоследних

                ПО ТЧ.Исполнитель = РаботникиОрганизацийСрезПоследних.ФизЛицо

AnisaL

49 — 23.09.13 — 07:42

(48) ага спасибо )

AnisaL

50 — 23.09.13 — 09:58

У меня не считает итог по строке — такое возможно осуществить в запросе?

«ВЫБРАТЬ

|    ДатаСоздания,

|    Клиент,

|    Проведен,

|     Сумма(СуммаРабочаяСмена) КАК СуммаРабочаяСмена,

|     Сумма(КоличествоРабочаяСмена) КАК КоличествоРабочаяСмена,

|     Сумма(ЦенаРабочаяСмена) КАК ЦенаРабочаяСмена,

|     Сумма(СуммаДопРаботы) КАК СуммаДопРаботы,

|     Сумма(СуммаПитание) КАК СуммаПитание,

|     Сумма(СуммаТранспорт) КАК СуммаТранспорт,

|   Сумма(СуммаРабочаяСмена+СуммаДопРаботы+СуммаПитание+СуммаТранспорт) КАК СуммаИтог

AnisaL

51 — 23.09.13 — 10:00

(50) + т.е. в последней строчке почему-то считает «Суммаитог» как СуммаРабочаяСмена а остальные суммы не прибавляет

  

AnisaL

52 — 23.09.13 — 10:35

(51) а если в ИТогах написать, то получится?

У меня уже есть существующий запрос на бп 3.0 на макет эсм 7 сам макет выводится, а поля пустые потому чтго запрос от м-15 стоит там надо пихнуть запрос от эсм-7 с бп 2.0 я пихнул теперь ошибка синтаксическая ошибка «выбрать», красным выделил запрос от бп 2.0 эсмки

«ВЫБРАТЬ
   |   РегистрСведенийРублевыеСуммыДокументовВВалюте.Регистратор КАК Регистратор,
   |   РегистрСведенийРублевыеСуммыДокументовВВалюте.НомерСтрокиДокумента КАК НомерСтрокиДокумента,
   |   РегистрСведенийРублевыеСуммыДокументовВВалюте.ТабличнаяЧастьДокумента КАК ТабличнаяЧастьДокумента,
   |   РегистрСведенийРублевыеСуммыДокументовВВалюте.Всего,
   |   РегистрСведенийРублевыеСуммыДокументовВВалюте.НДС,
   |   РегистрСведенийРублевыеСуммыДокументовВВалюте.НалоговаяБазаНДС
   |ПОМЕСТИТЬ РегистрСведенийРублевыеСуммыДокументовВВалюте
   |ИЗ
   |   РегистрСведений.РублевыеСуммыДокументовВВалюте КАК РегистрСведенийРублевыеСуммыДокументовВВалюте
   |ГДЕ
   |   РегистрСведенийРублевыеСуммыДокументовВВалюте.Регистратор В(&МассивОбъектов)
   |
   |ИНДЕКСИРОВАТЬ ПО
   |   Регистратор,
   |   НомерСтрокиДокумента,
   |   ТабличнаяЧастьДокумента
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ
   |   ДокументРеализацияТоваровУслуг.Номер КАК Номер,
   |   ДокументРеализацияТоваровУслуг.Ссылка КАК Ссылка,
   |   ДокументРеализацияТоваровУслуг.Дата КАК ДатаСоставления,
   |   ДокументРеализацияТоваровУслуг.Дата КАК ДатаДокумента,
   |   ДокументРеализацияТоваровУслуг.Организация,
   |   ДокументРеализацияТоваровУслуг.Организация КАК ЮрФизЛицо,
   |   ДокументРеализацияТоваровУслуг.Организация КАК Руководители,
   |   ДокументРеализацияТоваровУслуг.Склад КАК Склад,
   |   ДокументРеализацияТоваровУслуг.Склад.Наименование КАК СкладНаименование,
   |   ДокументРеализацияТоваровУслуг.Контрагент.Код КАК КонтрагентКод,
   |   ДокументРеализацияТоваровУслуг.Контрагент КАК Контрагент,
   |   ДокументРеализацияТоваровУслуг.КурсВзаиморасчетов КАК Курс,
   |   ДокументРеализацияТоваровУслуг.КратностьВзаиморасчетов КАК Кратность,
   |   ДокументРеализацияТоваровУслуг.ВалютаДокумента,
   |   ДокументРеализацияТоваровУслуг.ВидОперации,
   |   ДокументРеализацияТоваровУслуг.Проведен,
   |   ДокументРеализацияТоваровУслуг.СуммаВключаетНДС,
   |   ДокументРеализацияТоваровУслуг.ДоговорКонтрагента.Наименование КАК ДоговорНаименование,
   |   ДокументРеализацияТоваровУслуг.ДоговорКонтрагента.ВидДоговора КАК ДоговорВид,
   |   ДокументРеализацияТоваровУслуг.ДоговорКонтрагента.РасчетыВУсловныхЕдиницах КАК РасчетыВУсловныхЕдиницах,
   |   ДокументРеализацияТоваровУслуг.ПодразделениеОрганизации,
   |   ДокументРеализацияТоваровУслуг.БанковскийСчетОрганизации КАК БанковскийСчет,
   |   ДокументРеализацияТоваровУслуг.СчетУчетаРасчетовСКонтрагентом,
   |   РеализацияТоваровУслуг.Номенклатура,
   |   РеализацияТоваровУслуг.Номенклатура.НаименованиеПолное КАК ТоварНаименование,
   |   ВЫБОР
   |      КОГДА &ДополнительнаяКолонкаПечатныхФормДокументов = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул)
   |         ТОГДА РеализацияТоваровУслуг.Номенклатура.Артикул
   |      ИНАЧЕ РеализацияТоваровУслуг.Номенклатура.Код
   |   КОНЕЦ КАК НоменклатурныйНомер,
   |   РеализацияТоваровУслуг.СчетУчета.Код КАК СчетУчетаКод,
   |   РеализацияТоваровУслуг.ПереданныеСчетУчета.Код КАК ПереданныеСчетУчетаКод,
   |   РеализацияТоваровУслуг.СчетРасходов.Код КАК СчетРасходовКод,
   |   РеализацияТоваровУслуг.Количество,
   |   РеализацияТоваровУслуг.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмеренияНаименование,
   |   РеализацияТоваровУслуг.Номенклатура.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКод,
   |   ВЫБОР
   |      КОГДА ДокументРеализацияТоваровУслуг.ВалютаДокумента = &ВалютаРегламентированногоУчета
   |         ТОГДА РеализацияТоваровУслуг.Цена
   |      КОГДА ДокументРеализацияТоваровУслуг.КратностьВзаиморасчетов = 0
   |         ТОГДА 0
   |      ИНАЧЕ ВЫРАЗИТЬ(РеализацияТоваровУслуг.Цена * ДокументРеализацияТоваровУслуг.КурсВзаиморасчетов / ДокументРеализацияТоваровУслуг.КратностьВзаиморасчетов КАК ЧИСЛО(15, 2))
   |   КОНЕЦ КАК Цена,
   |   ВЫБОР
   |      КОГДА ДокументРеализацияТоваровУслуг.ВалютаДокумента = &ВалютаРегламентированногоУчета
   |         ТОГДА РеализацияТоваровУслуг.Сумма
   |      КОГДА ДокументРеализацияТоваровУслуг.КратностьВзаиморасчетов = 0
   |         ТОГДА 0
   |      ИНАЧЕ ВЫРАЗИТЬ(РеализацияТоваровУслуг.Сумма * ДокументРеализацияТоваровУслуг.КурсВзаиморасчетов / ДокументРеализацияТоваровУслуг.КратностьВзаиморасчетов КАК ЧИСЛО(15, 2))
   |   КОНЕЦ КАК Сумма,
   |   ВЫБОР
   |      КОГДА ДокументРеализацияТоваровУслуг.ВалютаДокумента = &ВалютаРегламентированногоУчета
   |         ТОГДА РеализацияТоваровУслуг.СуммаНДС
   |      КОГДА ДокументРеализацияТоваровУслуг.КратностьВзаиморасчетов = 0
   |         ТОГДА 0
   |      ИНАЧЕ ВЫРАЗИТЬ(РеализацияТоваровУслуг.СуммаНДС * ДокументРеализацияТоваровУслуг.КурсВзаиморасчетов / ДокументРеализацияТоваровУслуг.КратностьВзаиморасчетов КАК ЧИСЛО(15, 2))
   |   КОНЕЦ КАК СуммаНДС,
   |   РеализацияТоваровУслуг.Сумма КАК СуммаВВалютеДокумента,
   |   РеализацияТоваровУслуг.СуммаНДС КАК СуммаНДСВВалютеДокумента,
   |   РеализацияТоваровУслуг.СтавкаНДС,
   |   1 КАК ID,
   |   РеализацияТоваровУслуг.НомерСтроки КАК НомерСтроки,
   |   РеализацияТоваровУслуг.СчетДоходов,
   |   ЕСТЬNULL(РеализацияТоваровУслуг.СчетУчета.Забалансовый, ЛОЖЬ) КАК ЭтоКомиссия,
   |   РеализацияТоваровУслуг.Ссылка.Ответственный,
   |   ДокументРеализацияТоваровУслуг.Руководитель,
   |   ДокументРеализацияТоваровУслуг.ЗаРуководителяПоПриказу,
   |   ДокументРеализацияТоваровУслуг.ГлавныйБухгалтер,
   |   ДокументРеализацияТоваровУслуг.ЗаГлавногоБухгалтераПоПриказу,
   |   ДокументРеализацияТоваровУслуг.ОтпускПроизвел,
   |   ЕСТЬNULL(РегистрСведенийРублевыеСуммыДокументовВВалюте.Всего, 0) КАК ВсегоРуб,
   |   ЕСТЬNULL(РегистрСведенийРублевыеСуммыДокументовВВалюте.НДС, 0) КАК НДСРуб,
   |   ЕСТЬNULL(РегистрСведенийРублевыеСуммыДокументовВВалюте.НалоговаяБазаНДС, 0) КАК СуммаБезНДСРуб,
   |   ДокументРеализацияТоваровУслуг._ОбъектСтроительства КАК ОбъектСтроительства,
   |   ДокументРеализацияТоваровУслуг._Машина КАК Машина,
   |   ДокументРеализацияТоваровУслуг._Марка КАК Марка,
   |   ДокументРеализацияТоваровУслуг._ГосударственныйНомернойЗнак КАК ГосударственныйНомернойЗнак,
   |   ДокументРеализацияТоваровУслуг._Машинисты КАК Машинисты
   |ИЗ
   |   Документ.РеализацияТоваровУслуг КАК ДокументРеализацияТоваровУслуг
   |      ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслуг
   |      ПО (РеализацияТоваровУслуг.Ссылка = ДокументРеализацияТоваровУслуг.Ссылка)
   |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведенийРублевыеСуммыДокументовВВалюте КАК РегистрСведенийРублевыеСуммыДокументовВВалюте
   |      ПО (РеализацияТоваровУслуг.Ссылка = РегистрСведенийРублевыеСуммыДокументовВВалюте.Регистратор)
   |         И (РеализацияТоваровУслуг.НомерСтроки = РегистрСведенийРублевыеСуммыДокументовВВалюте.НомерСтрокиДокумента)
   |         И (РегистрСведенийРублевыеСуммыДокументовВВалюте.ТабличнаяЧастьДокумента = ЗНАЧЕНИЕ(Перечисление.ТабличныеЧастиДокументов.Товары))
   |         И (ДокументРеализацияТоваровУслуг.ВалютаДокумента <> &ВалютаРегламентированногоУчета)
   |ГДЕ
   |   ДокументРеализацияТоваровУслуг.Ссылка В(&МассивОбъектов)
   |
   |ОБЪЕДИНИТЬ ВСЕ
   |
   |ВЫБРАТЬ
   |   ДокументРеализацияТоваровУслуг.Номер,
   |   ДокументРеализацияТоваровУслуг.Ссылка,
   |   ДокументРеализацияТоваровУслуг.Дата,
   |   ДокументРеализацияТоваровУслуг.Дата,
   |   ДокументРеализацияТоваровУслуг.Организация,
   |   ДокументРеализацияТоваровУслуг.Организация,
   |   ДокументРеализацияТоваровУслуг.Организация,
   |   ДокументРеализацияТоваровУслуг.Склад,
   |   ДокументРеализацияТоваровУслуг.Склад.Наименование,
   |   ДокументРеализацияТоваровУслуг.Контрагент.Код,
   |   ДокументРеализацияТоваровУслуг.Контрагент,
   |   ДокументРеализацияТоваровУслуг.КурсВзаиморасчетов,
   |   ДокументРеализацияТоваровУслуг.КратностьВзаиморасчетов,
   |   ДокументРеализацияТоваровУслуг.ВалютаДокумента,
   |   ДокументРеализацияТоваровУслуг.ВидОперации,
   |   ДокументРеализацияТоваровУслуг.Проведен,
   |   ДокументРеализацияТоваровУслуг.СуммаВключаетНДС,
   |   ДокументРеализацияТоваровУслуг.ДоговорКонтрагента.Наименование,
   |   ДокументРеализацияТоваровУслуг.ДоговорКонтрагента.ВидДоговора,
   |   ДокументРеализацияТоваровУслуг.ДоговорКонтрагента.РасчетыВУсловныхЕдиницах,
   |   ДокументРеализацияТоваровУслуг.ПодразделениеОрганизации,
   |   ДокументРеализацияТоваровУслуг.БанковскийСчетОрганизации,
   |   ДокументРеализацияТоваровУслуг.СчетУчетаРасчетовСКонтрагентом,
   |   РеализацияТоваровУслуг.Номенклатура,
   |   РеализацияТоваровУслуг.Номенклатура.НаименованиеПолное,
   |   ВЫБОР
   |      КОГДА &ДополнительнаяКолонкаПечатныхФормДокументов = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул)
   |         ТОГДА РеализацияТоваровУслуг.Номенклатура.Артикул
   |      ИНАЧЕ РеализацияТоваровУслуг.Номенклатура.Код
   |   КОНЕЦ,
   |   NULL,
   |   NULL,
   |   РеализацияТоваровУслуг.СчетРасходов.Код,
   |   РеализацияТоваровУслуг.Количество,
   |   РеализацияТоваровУслуг.Номенклатура.ЕдиницаИзмерения,
   |   РеализацияТоваровУслуг.Номенклатура.ЕдиницаИзмерения.Код,
   |   ВЫБОР
   |      КОГДА ДокументРеализацияТоваровУслуг.ВалютаДокумента = &ВалютаРегламентированногоУчета
   |         ТОГДА РеализацияТоваровУслуг.Цена
   |      КОГДА ДокументРеализацияТоваровУслуг.КратностьВзаиморасчетов = 0
   |         ТОГДА 0
   |      ИНАЧЕ ВЫРАЗИТЬ(РеализацияТоваровУслуг.Цена * ДокументРеализацияТоваровУслуг.КурсВзаиморасчетов / ДокументРеализацияТоваровУслуг.КратностьВзаиморасчетов КАК ЧИСЛО(15, 2))
   |   КОНЕЦ,
   |   ВЫБОР
   |      КОГДА ДокументРеализацияТоваровУслуг.ВалютаДокумента = &ВалютаРегламентированногоУчета
   |         ТОГДА РеализацияТоваровУслуг.Сумма
   |      КОГДА ДокументРеализацияТоваровУслуг.КратностьВзаиморасчетов = 0
   |         ТОГДА 0
   |      ИНАЧЕ ВЫРАЗИТЬ(РеализацияТоваровУслуг.Сумма * ДокументРеализацияТоваровУслуг.КурсВзаиморасчетов / ДокументРеализацияТоваровУслуг.КратностьВзаиморасчетов КАК ЧИСЛО(15, 2))
   |   КОНЕЦ,
   |   ВЫБОР
   |      КОГДА ДокументРеализацияТоваровУслуг.ВалютаДокумента = &ВалютаРегламентированногоУчета
   |         ТОГДА РеализацияТоваровУслуг.СуммаНДС
   |      КОГДА ДокументРеализацияТоваровУслуг.КратностьВзаиморасчетов = 0
   |         ТОГДА 0
   |      ИНАЧЕ ВЫРАЗИТЬ(РеализацияТоваровУслуг.СуммаНДС * ДокументРеализацияТоваровУслуг.КурсВзаиморасчетов / ДокументРеализацияТоваровУслуг.КратностьВзаиморасчетов КАК ЧИСЛО(15, 2))
   |   КОНЕЦ,
   |   РеализацияТоваровУслуг.Сумма,
   |   РеализацияТоваровУслуг.СуммаНДС,
   |   РеализацияТоваровУслуг.СтавкаНДС,
   |   3,
   |   РеализацияТоваровУслуг.НомерСтроки,
   |   РеализацияТоваровУслуг.СчетДоходов,
   |   ЛОЖЬ,
   |   РеализацияТоваровУслуг.Ссылка.Ответственный,
   |   ДокументРеализацияТоваровУслуг.Руководитель,
   |   ДокументРеализацияТоваровУслуг.ЗаРуководителяПоПриказу,
   |   ДокументРеализацияТоваровУслуг.ГлавныйБухгалтер,
   |   ДокументРеализацияТоваровУслуг.ЗаГлавногоБухгалтераПоПриказу,
   |   ДокументРеализацияТоваровУслуг.ОтпускПроизвел,
   |   ЕСТЬNULL(РегистрСведенийРублевыеСуммыДокументовВВалюте.Всего, 0),
   |   ЕСТЬNULL(РегистрСведенийРублевыеСуммыДокументовВВалюте.НДС, 0),
   |   ЕСТЬNULL(РегистрСведенийРублевыеСуммыДокументовВВалюте.НалоговаяБазаНДС, 0),
   |   ДокументРеализацияТоваровУслуг._ОбъектСтроительства,
   |   ДокументРеализацияТоваровУслуг._Машина,
   |   ДокументРеализацияТоваровУслуг._Марка,
   |   ДокументРеализацияТоваровУслуг._ГосударственныйНомернойЗнак,
   |   ДокументРеализацияТоваровУслуг._Машинисты
   |ИЗ
   |   Документ.РеализацияТоваровУслуг КАК ДокументРеализацияТоваровУслуг
   |      ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслуг
   |      ПО (РеализацияТоваровУслуг.Ссылка = ДокументРеализацияТоваровУслуг.Ссылка)
   |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведенийРублевыеСуммыДокументовВВалюте КАК РегистрСведенийРублевыеСуммыДокументовВВалюте
   |      ПО (РеализацияТоваровУслуг.Ссылка = РегистрСведенийРублевыеСуммыДокументовВВалюте.Регистратор)
   |         И (РеализацияТоваровУслуг.НомерСтроки = РегистрСведенийРублевыеСуммыДокументовВВалюте.НомерСтрокиДокумента)
   |         И (РегистрСведенийРублевыеСуммыДокументовВВалюте.ТабличнаяЧастьДокумента = ЗНАЧЕНИЕ(Перечисление.ТабличныеЧастиДокументов.Услуги))
   |         И (ДокументРеализацияТоваровУслуг.ВалютаДокумента <> &ВалютаРегламентированногоУчета)
   |ГДЕ
   |   ДокументРеализацияТоваровУслуг.Ссылка В(&МассивОбъектов)
   |
   |ОБЪЕДИНИТЬ ВСЕ
   |
   |ВЫБРАТЬ
   |   ДокументРеализацияТоваровУслуг.Номер,
   |   ДокументРеализацияТоваровУслуг.Ссылка,
   |   ДокументРеализацияТоваровУслуг.Дата,
   |   ДокументРеализацияТоваровУслуг.Дата,
   |   ДокументРеализацияТоваровУслуг.Организация,
   |   ДокументРеализацияТоваровУслуг.Организация,
   |   ДокументРеализацияТоваровУслуг.Организация,
   |   ДокументРеализацияТоваровУслуг.Склад,
   |   ДокументРеализацияТоваровУслуг.Склад.Наименование,
   |   ДокументРеализацияТоваровУслуг.Контрагент.Код,
   |   ДокументРеализацияТоваровУслуг.Контрагент,
   |   ДокументРеализацияТоваровУслуг.КурсВзаиморасчетов,
   |   ДокументРеализацияТоваровУслуг.КратностьВзаиморасчетов,
   |   ДокументРеализацияТоваровУслуг.ВалютаДокумента,
   |   ДокументРеализацияТоваровУслуг.ВидОперации,
   |   ДокументРеализацияТоваровУслуг.Проведен,
   |   ДокументРеализацияТоваровУслуг.СуммаВключаетНДС,
   |   ДокументРеализацияТоваровУслуг.ДоговорКонтрагента.Наименование,
   |   ДокументРеализацияТоваровУслуг.ДоговорКонтрагента.ВидДоговора,
   |   ДокументРеализацияТоваровУслуг.ДоговорКонтрагента.РасчетыВУсловныхЕдиницах,
   |   ДокументРеализацияТоваровУслуг.ПодразделениеОрганизации,
   |   ДокументРеализацияТоваровУслуг.БанковскийСчетОрганизации,
   |   ДокументРеализацияТоваровУслуг.СчетУчетаРасчетовСКонтрагентом,
   |   РеализацияТоваровУслуг.Номенклатура,
   |   РеализацияТоваровУслуг.Номенклатура.НаименованиеПолное,
   |   ВЫБОР
   |      КОГДА &ДополнительнаяКолонкаПечатныхФормДокументов = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул)
   |         ТОГДА РеализацияТоваровУслуг.Номенклатура.Артикул
   |      ИНАЧЕ РеализацияТоваровУслуг.Номенклатура.Код
   |   КОНЕЦ,
   |   NULL,
   |   NULL,
   |   NULL,
   |   РеализацияТоваровУслуг.Количество,
   |   РеализацияТоваровУслуг.Номенклатура.ЕдиницаИзмерения,
   |   РеализацияТоваровУслуг.Номенклатура.ЕдиницаИзмерения.Код,
   |   ВЫБОР
   |      КОГДА ДокументРеализацияТоваровУслуг.ВалютаДокумента = &ВалютаРегламентированногоУчета
   |         ТОГДА РеализацияТоваровУслуг.Цена
   |      КОГДА ДокументРеализацияТоваровУслуг.КратностьВзаиморасчетов = 0
   |         ТОГДА 0
   |      ИНАЧЕ ВЫРАЗИТЬ(РеализацияТоваровУслуг.Цена * ДокументРеализацияТоваровУслуг.КурсВзаиморасчетов / ДокументРеализацияТоваровУслуг.КратностьВзаиморасчетов КАК ЧИСЛО(15, 2))
   |   КОНЕЦ,
   |   ВЫБОР
   |      КОГДА ДокументРеализацияТоваровУслуг.ВалютаДокумента = &ВалютаРегламентированногоУчета
   |         ТОГДА РеализацияТоваровУслуг.Сумма
   |      КОГДА ДокументРеализацияТоваровУслуг.КратностьВзаиморасчетов = 0
   |         ТОГДА 0
   |      ИНАЧЕ ВЫРАЗИТЬ(РеализацияТоваровУслуг.Сумма * ДокументРеализацияТоваровУслуг.КурсВзаиморасчетов / ДокументРеализацияТоваровУслуг.КратностьВзаиморасчетов КАК ЧИСЛО(15, 2))
   |   КОНЕЦ,
   |   ВЫБОР
   |      КОГДА ДокументРеализацияТоваровУслуг.ВалютаДокумента = &ВалютаРегламентированногоУчета
   |         ТОГДА РеализацияТоваровУслуг.СуммаНДС
   |      КОГДА ДокументРеализацияТоваровУслуг.КратностьВзаиморасчетов = 0
   |         ТОГДА 0
   |      ИНАЧЕ ВЫРАЗИТЬ(РеализацияТоваровУслуг.СуммаНДС * ДокументРеализацияТоваровУслуг.КурсВзаиморасчетов / ДокументРеализацияТоваровУслуг.КратностьВзаиморасчетов КАК ЧИСЛО(15, 2))
   |   КОНЕЦ,
   |   РеализацияТоваровУслуг.Сумма,
   |   РеализацияТоваровУслуг.СуммаНДС,
   |   РеализацияТоваровУслуг.СтавкаНДС,
   |   4,
   |   РеализацияТоваровУслуг.НомерСтроки,
   |   NULL,
   |   ИСТИНА,
   |   РеализацияТоваровУслуг.Ссылка.Ответственный,
   |   ДокументРеализацияТоваровУслуг.Руководитель,
   |   ДокументРеализацияТоваровУслуг.ЗаРуководителяПоПриказу,
   |   ДокументРеализацияТоваровУслуг.ГлавныйБухгалтер,
   |   ДокументРеализацияТоваровУслуг.ЗаГлавногоБухгалтераПоПриказу,
   |   ДокументРеализацияТоваровУслуг.ОтпускПроизвел,
   |   ЕСТЬNULL(РегистрСведенийРублевыеСуммыДокументовВВалюте.Всего, 0),
   |   ЕСТЬNULL(РегистрСведенийРублевыеСуммыДокументовВВалюте.НДС, 0),
   |   ЕСТЬNULL(РегистрСведенийРублевыеСуммыДокументовВВалюте.НалоговаяБазаНДС, 0),
   |   ДокументРеализацияТоваровУслуг._ОбъектСтроительства,
   |   ДокументРеализацияТоваровУслуг._Машина,
   |   ДокументРеализацияТоваровУслуг._Марка,
   |   ДокументРеализацияТоваровУслуг._ГосударственныйНомернойЗнак,
   |   ДокументРеализацияТоваровУслуг._Машинисты
   |ИЗ
   |   Документ.РеализацияТоваровУслуг КАК ДокументРеализацияТоваровУслуг
   |      ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.АгентскиеУслуги КАК РеализацияТоваровУслуг
   |      ПО (РеализацияТоваровУслуг.Ссылка = ДокументРеализацияТоваровУслуг.Ссылка)
   |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведенийРублевыеСуммыДокументовВВалюте КАК РегистрСведенийРублевыеСуммыДокументовВВалюте
   |      ПО (РеализацияТоваровУслуг.Ссылка = РегистрСведенийРублевыеСуммыДокументовВВалюте.Регистратор)
   |         И (РеализацияТоваровУслуг.НомерСтроки = РегистрСведенийРублевыеСуммыДокументовВВалюте.НомерСтрокиДокумента)
   |         И (РегистрСведенийРублевыеСуммыДокументовВВалюте.ТабличнаяЧастьДокумента = ЗНАЧЕНИЕ(Перечисление.ТабличныеЧастиДокументов.АгентскиеУслуги))
   |         И (ДокументРеализацияТоваровУслуг.ВалютаДокумента <> &ВалютаРегламентированногоУчета)
   |ГДЕ
   |   ДокументРеализацияТоваровУслуг.Ссылка В(&МассивОбъектов)
   |
   | 
   |
   |
   |ВЫБРАТЬ
   |   РеализацияТоваровУслуг.Ссылка,
   |   РеализацияТоваровУслуг.ВерсияДанных,
    |   РеализацияТоваровУслуг.ПометкаУдаления,
    |   РеализацияТоваровУслуг.Номер,
    |   РеализацияТоваровУслуг.Дата,
    |   РеализацияТоваровУслуг.Проведен,
   |   РеализацияТоваровУслуг.ВидОперации,
   |   РеализацияТоваровУслуг.БанковскийСчетОрганизации,
   |   РеализацияТоваровУслуг.ВалютаДокумента,
    |   РеализацияТоваровУслуг.Комментарий,
   |   РеализацияТоваровУслуг.Грузоотправитель,
    |   РеализацияТоваровУслуг.Грузополучатель,
    |   РеализацияТоваровУслуг.ДоговорКонтрагента,
   |   РеализацияТоваровУслуг.АдресДоставки,
    |   РеализацияТоваровУслуг.Контрагент,
   |   РеализацияТоваровУслуг.КратностьВзаиморасчетов,
    |   РеализацияТоваровУслуг.КурсВзаиморасчетов,
    |   РеализацияТоваровУслуг.Организация,
    |   РеализацияТоваровУслуг.Ответственный,
    |   РеализацияТоваровУслуг.Склад,
   |   РеализацияТоваровУслуг.СтатьяДоходовИРасходовПоТаре,
    |   РеализацияТоваровУслуг.СуммаВключаетНДС,
    |   РеализацияТоваровУслуг.СуммаДокумента,
    |   РеализацияТоваровУслуг.СчетУчетаДоходовПоТаре,
    |   РеализацияТоваровУслуг.СчетУчетаРасходовПоТаре,
    |   РеализацияТоваровУслуг.СчетУчетаРасчетовПоАвансам,
    |   РеализацияТоваровУслуг.СчетУчетаРасчетовПоТаре,
    |   РеализацияТоваровУслуг.СчетУчетаРасчетовСКонтрагентом,
   |   РеализацияТоваровУслуг.ТипЦен,
   |   РеализацияТоваровУслуг.УчитыватьНДС,
    |   РеализацияТоваровУслуг.РучнаяКорректировка,
   |   РеализацияТоваровУслуг.СчетНаОплатуПокупателю,
   |   РеализацияТоваровУслуг.СпособЗачетаАвансов,
    |   РеализацияТоваровУслуг.Руководитель,
   |   РеализацияТоваровУслуг.ГлавныйБухгалтер,
   |   РеализацияТоваровУслуг.ОтпускПроизвел,
   |   РеализацияТоваровУслуг.ЗаРуководителяПоПриказу,
   |   РеализацияТоваровУслуг.ЗаГлавногоБухгалтераПоПриказу,
   |   РеализацияТоваровУслуг.ДеятельностьНаПатенте,
   |   РеализацияТоваровУслуг.Патент,
   |   РеализацияТоваровУслуг._ОбъектСтроительства КАК ОбъектСтроительства,
    |   РеализацияТоваровУслуг._Машина КАК Машина,
   |   РеализацияТоваровУслуг._Марка КАК Марка,
   |   РеализацияТоваровУслуг._ГосударственныйНомернойЗнак КАК ГосударственныйНомернойЗнак,
   |   РеализацияТоваровУслуг._Машинисты КАК Машинисты
   |ИЗ
   |   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
   |ГДЕ
   |   РеализацияТоваровУслуг.Ссылка В(&МассивОбъектов)

   |УПОРЯДОЧИТЬ ПО
   |   ДатаДокумента,
   |   Ссылка,
   |   ID,
   |   НомерСтроки,»;

  

AnisaL

20.09.13 — 12:39

Добрый день!

Помогите разобраться где ошибка во вложенном запросе, точнее я не очень понимаю как правильно его написать. Вот кусок запроса, и он выдает ошибку «Синтаксическая ошибка «ВЫБРАТЬ»

        // Цена

                   ВЫБОР

                       КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена

                       Тогда         ВЫБОР     

                                   КОГДА ТЧ.ЦенаВнутренная = 1

                                   ТОГДА

                                   (ВЫБРАТЬ

                                     РаботникиОрганизацийСрезПоследних.Стоимость1часа

                                 ИЗ

                                     РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец, ФизЛицо = &ФизЛицо) КАК РаботникиОрганизацийСрезПоследних

                                 ГДЕ

                                     РаботникиОрганизацийСрезПоследних.Организация = &Организация

                                 АВТОУПОРЯДОЧИВАНИЕ) КАК ВложенныйЗапросРаботникиОрганизаций                       

                                     ИНАЧЕ ТЧ.ЦенаВнутренная

                             КОНЕЦ

                            

                    ИНАЧЕ 0

                   КОНЕЦ КАК ЦенаРабочаяСмена,

  

ДенисЧ

1 — 20.09.13 — 12:40

Не прокатит так.

  

AnisaL

2 — 20.09.13 — 12:41

+(0) ошибку выдает на 6 строку (как здесь)

  

AnisaL

3 — 20.09.13 — 12:43

(1) ага, не прокатывает, наверно нужно чтобы было предложение с «ИЗ»

  

ДенисЧ

4 — 20.09.13 — 12:45

(3) Нужно для начала читать документацию. И осознавать, что запросы 1с — это не запросы SQL

  

kanalex

5 — 20.09.13 — 12:46

(0)

а скобку закрыть не пробовали?

  

Ёпрст

6 — 20.09.13 — 12:47

(0) в снеговике это не реализовано.. пока

  

kanalex

7 — 20.09.13 — 12:47

(4) хотя, конечно, в выражении ВЫБОР так нельзя, видимо

  

AnisaL

8 — 20.09.13 — 12:47

(3) смысл этого выбора в том заключается, что сначала идет условие на то что является ли эта номенклатура «Рабочей сменой», если да то опять условие: если Цена(стоимость 1 часа) этой рабочей смены = 1 (такое у нас бывает на внутренние работы), то нужно эту стоимость брать из вложенного подзапроса из период. РС РаботникиОрганизаций, иначе если не равно 1, то из ТЧ — табличной части документа

  

Ёпрст

9 — 20.09.13 — 12:48

нет там реализации подзапроса в кейсе

  

AnisaL

10 — 20.09.13 — 12:49

(5) в какой строке?

  

George Wheels

11 — 20.09.13 — 12:52

В качестве цены у тебя получается результат запроса.

Выбери ВложенныйЗапросРаботникиОрганизаций.Стоимость1часа

  

AnisaL

12 — 20.09.13 — 12:52

(4) а какую документацию почитать?

  

AnisaL

13 — 20.09.13 — 12:52

(11) да

  

AnisaL

14 — 20.09.13 — 12:55

(11) а как это написать ?

  

AnisaL

15 — 20.09.13 — 13:00

Написала так:

    // Цена

                   ВЫБОР

                       КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена

                       Тогда         ВЫБОР     

                                   КОГДА ТЧ.ЦенаВнутренная = 1

                                   ТОГДА

                                   ВЫБРАТЬ ВложенныйЗапросРаботникиОрганизаций.Стоимость1часа ИЗ

                                   (ВЫБРАТЬ

                                     РаботникиОрганизацийСрезПоследних.Стоимость1часа

                                 ИЗ

                                     РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец, ФизЛицо = &ФизЛицо) КАК РаботникиОрганизацийСрезПоследних

                                 ГДЕ

                                     РаботникиОрганизацийСрезПоследних.Организация = &Организация

                                 АВТОУПОРЯДОЧИВАНИЕ) КАК ВложенныйЗапросРаботникиОрганизаций                       

                                     ИНАЧЕ ТЧ.ЦенаВнутренная

                             КОНЕЦ

                            

                    ИНАЧЕ 0

                   КОНЕЦ КАК ЦенаРабочаяСмена,

  

AnisaL

16 — 20.09.13 — 13:01

(15) + но все равно ошибка

  

catena

17 — 20.09.13 — 13:04

(15)Было же сказано, что не работает так. Можно соединить.

  

AnisaL

18 — 20.09.13 — 13:06

(17) а как тогда сделать по-другому?

  

manti

19 — 20.09.13 — 13:07

(15) приведи полный текст запроса

  

AnisaL

20 — 20.09.13 — 13:08

(19)         

ВЫБРАТЬ

    ДатаСоздания,

    Клиент,

    Сумма(СуммаРабочаяСмена) КАК СуммаРабСмена,

    Сумма(КоличествоРабочаяСмена) КАК КоличествоРабочаяСмена,

    Сумма(ЦенаРабочаяСмена) КАК ЦенаРабочаяСмена,

    Сумма(СуммаДопРаботы) КАК СуммаДопРаботы,

    Сумма(СуммаПитание) КАК СуммаПитание,

    Сумма(СуммаТранспорт) КАК СуммаТранспорт

    ИЗ            

                    
            (ВЫБРАТЬ

            

                 Ссылка.ДатаСоздания,

                 Ссылка.Клиент,

                   // Количество

                   ВЫБОР

                       КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена

                       Тогда ТЧ.Количество

                ИНАЧЕ 0

                   КОНЕЦ КАК КоличествоРабочаяСмена,  

                 ВЫБОР

                       КОГДА ТЧ.Работы.Наименование НЕ ПОДОБНО &РабСмена           

                       Тогда ТЧ.Количество

                    ИНАЧЕ 0

                       Конец КАК КоличествоДопРаботы,

                   0 КАК КоличествоПитание,

                   0 КАК КоличествоТранспорт,

                   

                // Цена

                   ВЫБОР

                       КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена

                       Тогда         ВЫБОР     

                                   КОГДА ТЧ.ЦенаВнутренная = 1

                                   ТОГДА

                                   ВЫБРАТЬ ВложенныйЗапросРаботникиОрганизаций.Стоимость1часа ИЗ

                                   (ВЫБРАТЬ

                                     РаботникиОрганизацийСрезПоследних.Стоимость1часа

                                 ИЗ

                                     РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец, ФизЛицо = &ФизЛицо) КАК РаботникиОрганизацийСрезПоследних

                                 ГДЕ

                                     РаботникиОрганизацийСрезПоследних.Организация = &Организация

                                 АВТОУПОРЯДОЧИВАНИЕ) КАК ВложенныйЗапросРаботникиОрганизаций                       

                                     ИНАЧЕ ТЧ.ЦенаВнутренная

                             КОНЕЦ

                            

                    ИНАЧЕ 0

                   КОНЕЦ КАК ЦенаРабочаяСмена,  

                 ВЫБОР

                       КОГДА ТЧ.Работы.Наименование НЕ ПОДОБНО &РабСмена           

                       Тогда ТЧ.ЦенаВнутренная

                    ИНАЧЕ 0

                       Конец КАК ЦенаДопРаботы,

                   0 КАК ЦенаПитание,

                   0 КАК ЦенаТранспорт,

    

                   // Сумма

                   ВЫБОР

                       КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена

                       Тогда ТЧ.Количество*ТЧ.ЦенаВнутренная

                ИНАЧЕ 0

                   КОНЕЦ КАК СуммаРабочаяСмена,  

                 ВЫБОР

                       КОГДА ТЧ.Работы.Наименование НЕ ПОДОБНО &РабСмена           

                       Тогда ТЧ.Количество*ТЧ.ЦенаВнутренная

                    ИНАЧЕ 0

                       Конец КАК СуммаДопРаботы,

                   0 КАК СуммаПитание,

                   0 КАК СуммаТранспорт

                      

               ИЗ

                   Документ.ЗаявкаНаряд.Работы КАК ТЧ

               ГДЕ

                   Ссылка.Работы.Исполнитель = &Исполнитель

                   И

                   Ссылка.ДатаСоздания Между &Начало и &Конец

                               

            ОБЪЕДИНИТЬ

              ВЫБРАТЬ

                 Ссылка.ДатаСоздания,

                 Ссылка.Клиент,

                 // Количество

                0 КАК  КоличествоРабочаяСмена,

                   0 КАК  КоличествоДопРаботы,

                      (ВЫБОР

                       Когда ТЧ.Работы.Наименование ПОДОБНО &Питание

                       Тогда

                       ТЧ.Количество

                       КОНЕЦ) КАК КоличествоПитание,

                          (ВЫБОР

                          Когда ТЧ.Работы.Наименование ПОДОБНО &Транспорт

                          Тогда

                       ТЧ.Количество

                       Конец) КАК КоличествоТранспорт,

                   // Цена

                   0 КАК  ЦенаРабочаяСмена,

                   0 КАК  ЦенаДопРаботы,

                      (ВЫБОР

                       Когда ТЧ.Работы.Наименование ПОДОБНО &Питание

                       Тогда

                       ТЧ.ЦенаВнутренная

                       КОНЕЦ) КАК ЦенаПитание,

                          (ВЫБОР

                          Когда ТЧ.Работы.Наименование ПОДОБНО &Транспорт

                          Тогда

                       ТЧ.ЦенаВнутренная

                       Конец) КАК ЦенаТранспорт,

                // Сумма

                   0 КАК  СуммаРабочаяСмена,

                   0 КАК  СуммаДопРаботы,

                      (ВЫБОР

                       Когда ТЧ.Работы.Наименование ПОДОБНО &Питание

                       Тогда

                       ТЧ.Количество*ТЧ.ЦенаВнутренная

                       КОНЕЦ) КАК СуммаПитание,

                          (ВЫБОР

                          Когда ТЧ.Работы.Наименование ПОДОБНО &Транспорт

                          Тогда

                       ТЧ.Количество*ТЧ.ЦенаВнутренная

                       Конец) КАК СуммаТранспорт

                   

                                                   
               ИЗ

                   Документ.ЗаявкаНаряд.НакладныеРасходы КАК ТЧ

               ГДЕ

                   Ссылка.Работы.Исполнитель = &Исполнитель

                   И

                   Ссылка.ДатаСоздания Между &Начало и &Конец ) КАК ВложенныйЗапрос

      

    СГРУППИРОВАТЬ ПО ДатаСоздания, Клиент              

    УПОРЯДОЧИТЬ ПО

             ДатаСоздания, Клиент

    ИТОГИ ПО ОБЩИЕ

  

Ёпрст

21 — 20.09.13 — 13:08

(18) см. (9).

  

AnisaL

22 — 20.09.13 — 13:10

(21) уже посмотрела, тогда как иначе сделать?

  

George Wheels

23 — 20.09.13 — 13:14

Всё-таки лучше через соединение.

  

AnisaL

24 — 20.09.13 — 13:15

(22) + понятно что цену можно оставить такой какая есть и уже потом ее вытащить, после выполнения запроса, но хочется чтоб в запросе все считалось

  

AnisaL

25 — 20.09.13 — 13:15

(23) а что с чем соединять?

  

George Wheels

26 — 20.09.13 — 13:17

ФизЛицо, которое во вложенном запросе есть в документе?

  

AnisaL

27 — 20.09.13 — 13:19

(26) оно есть в табличной части, из которой берутся цифры

  

Dmitry1c

28 — 20.09.13 — 13:20

Брутально

  

George Wheels

29 — 20.09.13 — 13:21

Или соединить документ с регистром по реквизиту Организация (думаю в документе он должен быть). И оставить то же условие по ФизЛицу.

  

AnisaL

30 — 20.09.13 — 13:21

(26) в документе есть реквизит «Исполнитель», но бывают случаи когда в ТЧ помимо исполнителя еще другой сотрудник выбран, поэтому физлицо берется из ТЧ документа

  

AnisaL

31 — 20.09.13 — 13:22

(29) проблема в том что в документе нету реквизита Организация(

  

George Wheels

32 — 20.09.13 — 13:25

(30) Ну так соединяй по ФизЛицу из ТЧ.

  

AnisaL

33 — 20.09.13 — 13:26

(31) у нас несколько организаций, но только в одной возможны такие случаи когда стоимость 1 часа = 1, и именно по ней идет отбор в подзапросе

  

George Wheels

34 — 20.09.13 — 13:32

Всё, что в ВЫБОР оставляешь.

Вложенный запрос убираешь. Вместо него — РаботникиОрганизацийСрезПоследних.Стоимость1часа

ну и в конце

ИЗ

    Документ.ЗаявкаНаряд.Работы КАК ТЧ

    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец) КАК РаботникиОрганизацийСрезПоследних

    ПО ТЧ.Сотрудник = РаботникиОрганизацийСрезПоследних.ФизЛицо

ГДЕ

    …

  

AnisaL

35 — 20.09.13 — 13:52

(34) спасибо большое! единственное что получилось так, что когда в регистре РаботникиОрганизаций 1 запись по сотруднику, то запрос правильно выдает, а когда записей в регистре несколько по этому сотрдунику но от разных дат, то Цена 1 часа суммируется

  

AnisaL

36 — 20.09.13 — 13:54

(35) + как сделать чтобы выбиралась только последняя запись?

  

George Wheels

37 — 20.09.13 — 14:00

(35) СрезПоследних выдаёт несколько записей? Тогда смотри какие ещё измерения у регистра.

  

AnisaL

38 — 20.09.13 — 14:02

(37) у регистра 3 измерения: ФизЛицо, Организация, Подразделение

  

catena

39 — 20.09.13 — 14:10

(38)Это клево. Какой смысл?

Тогда так

Выбрать РабОрг.Стоимость1часа из (Выбрать физлицо, максимум(период) как Период из РегистрСведений.РаботникиОрганизаций как РаботникиОрганизаций где Организация=&Организация) как ВложеныйЗапрос

Левое соединение РегистрСведений.РаботникиОрганизаций как РабОрг

по РабОрг.Физлицо = ВложеныйЗапрос.Физлицо

и РабОрг.Период = ВложеныйЗапрос.Период

  

AnisaL

40 — 20.09.13 — 14:18

(39) этот запрос написать вместо этого ?

    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец) КАК РаботникиОрганизацийСрезПоследних

                ПО ТЧ.Исполнитель = РаботникиОрганизацийСрезПоследних.ФизЛицо

  

catena

41 — 20.09.13 — 14:23

(40)Вместо РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец)

  

AnisaL

42 — 20.09.13 — 14:26

(41) ошибку выдает:

Поле не входит в группу «Физлицо»

Выбрать Физлицо

  

catena

43 — 20.09.13 — 14:26

Вот так вернее для ваших целей.

Выбрать РабОрг.Стоимость1часа, РабОрг.Физлицо

из (Выбрать физлицо, максимум(период) как Период из РегистрСведений.РаботникиОрганизаций как РаботникиОрганизаций где Организация=&Организация и Период <=&Конец

Сгруппировать по физлицо

) как ВложеныйЗапрос

Левое соединение РегистрСведений.РаботникиОрганизаций как РабОрг

по РабОрг.Физлицо = ВложеныйЗапрос.Физлицо

и РабОрг.Период = ВложеныйЗапрос.Период

  

catena

44 — 20.09.13 — 14:27

(42)Да, группировку забыла, смотри (43)

  

AnisaL

45 — 20.09.13 — 14:40

(44) спасибо) только запрос выдает стоимости1часа без отбора по организации

  

AnisaL

46 — 20.09.13 — 14:50

(45) разобралась, в конце надо было еще одну строчку добавить

где РабОрг.организация = &Организация (43) чтоб отбор был по организации у второй таблицы

  

AnisaL

47 — 20.09.13 — 14:54

(44) запрос вставила вместо РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец) выдает ошибку:

Ожидается имя таблицы

<<?>>Выбрать РабОрг.физлицо

  

catena

48 — 20.09.13 — 15:02

(47)А скобочки есть?

ЛЕВОЕ СОЕДИНЕНИЕ (ТУТ_ТЕКСТ_ЗАПРОСА)  КАК РаботникиОрганизацийСрезПоследних

                ПО ТЧ.Исполнитель = РаботникиОрганизацийСрезПоследних.ФизЛицо

  

AnisaL

49 — 23.09.13 — 07:42

(48) ага спасибо )

  

AnisaL

50 — 23.09.13 — 09:58

У меня не считает итог по строке — такое возможно осуществить в запросе?

«ВЫБРАТЬ

|    ДатаСоздания,

|    Клиент,

|    Проведен,

|     Сумма(СуммаРабочаяСмена) КАК СуммаРабочаяСмена,

|     Сумма(КоличествоРабочаяСмена) КАК КоличествоРабочаяСмена,

|     Сумма(ЦенаРабочаяСмена) КАК ЦенаРабочаяСмена,

|     Сумма(СуммаДопРаботы) КАК СуммаДопРаботы,

|     Сумма(СуммаПитание) КАК СуммаПитание,

|     Сумма(СуммаТранспорт) КАК СуммаТранспорт,

|   Сумма(СуммаРабочаяСмена+СуммаДопРаботы+СуммаПитание+СуммаТранспорт) КАК СуммаИтог

  

AnisaL

51 — 23.09.13 — 10:00

(50) + т.е. в последней строчке почему-то считает «Суммаитог» как СуммаРабочаяСмена а остальные суммы не прибавляет

  

AnisaL

52 — 23.09.13 — 10:35

(51) а если в ИТогах написать, то получится?

FannuSun

1 / 1 / 0

Регистрация: 11.01.2019

Сообщений: 16

1

1C 8.x

Синтаксическая ошибка «ВЫБОР»

21.01.2019, 06:47. Показов 4972. Ответов 7

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
ВЫБРАТЬ
ОтпускПоУходуЗаРебенком.Ссылка, 
КОЛИЧЕСТВО ( ОтпускПоУходуЗаРебенком.Сотрудник) КАК Сотрудник,
ОтпускПоУходуЗаРебенком.ВыплачиватьПособиеДоПолутораЛет,
ОтпускПоУходуЗаРебенком.ВыплачиватьПособиеДоТрехЛет,
Кадровая история сотрудниковСрезПоследних.Подразделение,
ОтпускПоУходуЗаРебенком. ДатаОкончанияПособияДоПолутораЛет, 
ОтпускПоУходуЗаРебенком. ДатаОкончанияПособияДоТрехЛет 
ВЫБОР 
КОГДА
ОтпускПоУходуЗаРебенком.ВыплачиватьПособиеДоПолутораЛет = ИСТИНА
И ОтпускПоУходуЗаРебенком.ВыплачиватьПособиеДоТрехЛет = ИСТИНА
ТОГДА "" До 1.5 лет""
ИНАЧЕ 
ВЫБОР 
КОГДА ОтпускПоУходуЗаРебенком.ВыплачиватьПособиеДоПолутораЛет = ИСТИНА
И ОтпускПоУходуЗаРебенком.ВыплачиватьПособиеДоТрехЛет = ЛОЖЬ
ТОГДА "" До 1.5 лет""
ИНАЧЕ 
ВЫБОР 
КОГДА ОтпускПоУходуЗаРебенком.ВыплачиватьПособиеДоПолутораЛет = ЛОЖЬ
И ОтпускПоУходуЗаРебенком.ВыплачиватьПособиеДоТрехЛет = ИСТИНА
ТОГДА "" До 3 лет""
ИНАЧЕ """"
КОНЕЦ;
ИЗ Регистра селений.КадроваяИсторияСотрудников.СрезПоследних (&ДатаПериода) как КадроваяИсторияСотрудниковСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтпускПоУходуЗаРебенком КАК ОтпускПоУходуЗаРебенком
ПО КадроваяИсторияСотрудниковСрезПоследних.Сотрудник = ОтпускПоУходуЗаРебенком.Сотрудник
ГДЕ КадроваяИсторияСотрудниковСрезПоследних.Организация =& Организация
И КадроваяИсторияСотрудниковСрезПоследних.Подразделение В ИЕРАРХИИ (& Подразделение)
И (
ОтпускПоУходуЗаРебенком.ДатаОкончанияПособияДоПолутораЛет >=&ДатаПериода
ИЛИ ОтпускПоУходуЗаРебенком.ДатаОкончанияПособияДоТрехЛет >= &ДатаПериода)
СГРУППИРОВАТЬ ПО 
 
ОтпускПоУходуЗаРебенком.Ссылка, 
КОЛИЧЕСТВО ( ОтпускПоУходуЗаРебенком.Сотрудник) КАК Сотрудник,
ОтпускПоУходуЗаРебенком.ВыплачиватьПособиеДоПолутораЛет,
ОтпускПоУходуЗаРебенком.ВыплачиватьПособиеДоТрехЛет,
Кадровая история сотрудниковСрезПоследних.Подразделение,
ОтпускПоУходуЗаРебенком. ДатаОкончанияПособияДоПолутораЛет, 
ОтпускПоУходуЗаРебенком. ДатаОкончанияПособияДоТрехЛет;

Выдает ошибку «Синтаксическая ошибка «ВЫБОР»». Пожалуйста, объясните что здесь неправильно



0



1231 / 763 / 218

Регистрация: 22.04.2013

Сообщений: 5,589

Записей в блоге: 1

21.01.2019, 08:45

2

говорящая за себя тема. молодец. долго наверно придумывал
посмотри СП про «выбор» — чем он заканчивается?
ну и тут можно сделать попроще вроде. не надо стока выборов



0



1 / 1 / 0

Регистрация: 11.01.2019

Сообщений: 16

21.01.2019, 09:06

 [ТС]

3

Я просто не знал, как описать проблему в теме. Выбор заканчивается КОНЕЦом



0



Phil

Эксперт 1С

434 / 305 / 92

Регистрация: 28.05.2014

Сообщений: 1,247

21.01.2019, 11:09

4

Так?

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ВЫБОР 
КОГДА
ОтпускПоУходуЗаРебенком.ВыплачиватьПособиеДоПолутораЛет = ИСТИНА
И ОтпускПоУходуЗаРебенком.ВыплачиватьПособиеДоТрехЛет = ИСТИНА
ТОГДА "" До 1.5 лет""
 
ВЫБОР 
КОГДА ОтпускПоУходуЗаРебенком.ВыплачиватьПособиеДоПолутораЛет = ИСТИНА
И ОтпускПоУходуЗаРебенком.ВыплачиватьПособиеДоТрехЛет = ЛОЖЬ
ТОГДА "" До 1.5 лет""
 
ВЫБОР 
КОГДА ОтпускПоУходуЗаРебенком.ВыплачиватьПособиеДоПолутораЛет = ЛОЖЬ
И ОтпускПоУходуЗаРебенком.ВыплачиватьПособиеДоТрехЛет = ИСТИНА
ТОГДА "" До 3 лет""
 
КОНЕЦ;



0



1231 / 763 / 218

Регистрация: 22.04.2013

Сообщений: 5,589

Записей в блоге: 1

21.01.2019, 12:16

5

Phil, а зачем ты опять пишешь выбор ?
выбор когда иситна и истина тогда 1.5
когда истина и ложь тогда 1.5
когда лож и истина тогда 3
иначе дупель-пусто
конец

увидел.

Не по теме:

я так понимаю, что вариант лож + лож не рассматривается.
если он не существует — в предпоследней строке (перед конецом) можно написать «иначе 3»



0



1 / 1 / 0

Регистрация: 11.01.2019

Сообщений: 16

21.01.2019, 12:27

 [ТС]

6

А разве Иначе мы не используем?



0



Phil

Эксперт 1С

434 / 305 / 92

Регистрация: 28.05.2014

Сообщений: 1,247

21.01.2019, 13:51

7

Yulunga,

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ВЫБОР 
 
КОГДА
ОтпускПоУходуЗаРебенком.ВыплачиватьПособиеДоПолутораЛет = ИСТИНА
И ОтпускПоУходуЗаРебенком.ВыплачиватьПособиеДоТрехЛет = ИСТИНА
ТОГДА "" До 1.5 лет""
 
КОГДА ОтпускПоУходуЗаРебенком.ВыплачиватьПособиеДоПолутораЛет = ИСТИНА
И ОтпускПоУходуЗаРебенком.ВыплачиватьПособиеДоТрехЛет = ЛОЖЬ
ТОГДА "" До 1.5 лет""
 
КОГДА ОтпускПоУходуЗаРебенком.ВыплачиватьПособиеДоПолутораЛет = ЛОЖЬ
И ОтпускПоУходуЗаРебенком.ВыплачиватьПособиеДоТрехЛет = ИСТИНА
ТОГДА "" До 3 лет""
 
КОНЕЦ

копипаст…



0



Dethmontt

22.01.2019, 14:10


    1C 8.x Синтаксическая ошибка «ВЫБОР»

Не по теме:

Цитата
Сообщение от Yulunga
Посмотреть сообщение

я так понимаю, что вариант лож + лож не рассматривается.
если он не существует — в предпоследней строке (перед конецом) можно написать «иначе 3»

Иначе «Вечно!!!»



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

22.01.2019, 14:10

Для заданого 0<=n<=200.Расматриваемого как возраст человека,вывести фразу вида: «Мне 21 год», «Мне 32 года», «мне 12 лет».
МОЙ ВОЗРАСТ. Для заданого 0&lt;=n&lt;=200.Расматриваемого как возраст человека,вывести фразу вида: &quot;Мне…

Cоздать ссылку на реквизит «Наименование» справочника «Специалисты» из справочника «ЗаявкаНаОбучениеКлиентов»
Пожалуйста, подскажите. Необходимо создать ссылку на реквизит &quot;Наименование&quot; справочника…

Кто может поделиться конфигурацией и базой для «общепита» или «ресторана», хочу потестить
Кто может поделиться конфигурацией и базой для 1с предприятие общепит или ресторан, хочу потестить.

DVD-диском от книги «Профессиональная разработка в системе «1С: Предприятие 8″ в двух томах»
Добрый день, товарищи! Есть такая книга:

У кого есть от нее DVD? Поделитесь, пожалуйста, если у…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

8

Понравилась статья? Поделить с друзьями:
  • Синтаксическая ошибка на телевизоре андроид
  • Синтаксическая ошибка всегда ошибка
  • Синтаксис типичные ошибки
  • Синтаксическая ошибка на планшете как исправить
  • Синтаксическая ошибка vba