Имя: Пароль:
1C
1С v8
Помогите составить запрос
0 S-e-r
 
27.07.16
10:47
Здравствуйте дорогие форумчане, мне необходимо(как можно быстрей) выбрать всех сотрудников с датами рождения в БГУ
делаю
выбрать * из Справочник.Сотрудники, но там нет даты рождения, они находятся в справочнике "Физические лица"(а тут не только сотрудники), поэтому помогите кто сколько может...
1 S-e-r
 
27.07.16
11:18
Почему то этот запрос возвращает пустой результат,
выбрать * из Справочник.ФизическиеЛица где ФизическиеЛица.Родитель = "Сотрудники"
как условие правильно написать?
2 evorle145
 
27.07.16
11:24
(1) пустой, потому что в справочнике ФизическиеЛица нет элементов у которых родитель равен Строке.
3 корум
 
27.07.16
11:39
(0)
"ВЫБРАТЬ
    |    ФизическиеЛица.ДатаРождения,
    |    Сотрудники.Наименование
    |ИЗ
    |    Справочник.Сотрудники КАК Сотрудники
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
    |        ПО Сотрудники.Физлицо = ФизическиеЛица.Ссылка"

и тщательно читай про язык запросов.
4 evorle145
 
27.07.16
11:45
(3) а зачем левое соединение?
почему нельзя сразу из таблицы сотрудники? Сотрудники.Физлицо.ДатаРождения?
5 Mankubus
 
27.07.16
11:47
(4) это тоже соединение, но не явное
6 evorle145
 
27.07.16
11:55
(5) да я понял, просто проще через реквизит мне кажется... или тут быстродействие разное будет?
7 S-e-r
 
27.07.16
12:08
Спасибо, но запрос почему то не работает(в консоле запросов), наверное "Сотрудники.Физлицо = ФизическиеЛица.Ссылка" нет поля Физлицо в справочнике Сотрудники, правда я поменял на "Сотрудники.Наименование = ФизическиеЛица.Ссылка", но тоже не работает
8 Numerus Mikhail
 
27.07.16
12:19
(7) И правильно что с наименованием не работает. Это ведь строка.
По какому полю ты определяешь, что Сотрудник = Физическое лицо?
9 Яплакал
 
27.07.16
12:25
(7) "правда я поменял на "Сотрудники.Наименование = ФизическиеЛица.Ссылка", но тоже не работает"
ну ты пробуй дальше, глядишь методом брутфорса и достигнешь истины
10 Max_Fokin
 
27.07.16
13:18
добрый день
Воспользуюсь чужой темой, т.к вопрос у меня похожий
имеется запрос к табличной части документа отчет производства за смену
выбирается определённая номенклатура.
Результат запроса выгружаю в Таблицу значений
и в каждой строке ТЗ ещё таблица значений, что я делаю не так?
сам запрос
    "ВЫБРАТЬ
        |    ОтчетПроизводстваЗаСмену.Продукция.(
        |        СУММА(ВЫРАЗИТЬ(ОтчетПроизводстваЗаСмену.Продукция.Количество КАК ЧИСЛО(15, 4))) КАК Колво,
        |        Номенклатура,
        |        ХарактеристикаНоменклатуры
        |    )
        |ИЗ
        |    Документ.ОтчетПроизводстваЗаСмену КАК ОтчетПроизводстваЗаСмену
        |ГДЕ
        |    ОтчетПроизводстваЗаСмену.Продукция.Ссылка.Дата МЕЖДУ &НачПериода И &КонПериода
        |    И ОтчетПроизводстваЗаСмену.Проведен
        |    И ОтчетПроизводстваЗаСмену.Продукция.Номенклатура = &номенкл
        |
        |СГРУППИРОВАТЬ ПО
        |    ОтчетПроизводстваЗаСмену.Продукция.(ХарактеристикаНоменклатуры,
        |    Номенклатура)";
11 Numerus Mikhail
 
27.07.16
13:22
(10) Делай запрос сразу к табличной части документа.
ВЫБРАТЬ
%что тебе надо%
ИЗ
Документ.ОтчетПроизводстваЗаСмену.Продукция КАК ОтчетПроизводстваЗаСменуПродукция
12 Очевидно
 
27.07.16
13:26
(10) Потому что "Документ.ОтчетПроизводстваЗаСмену" и "Документ.ОтчетПроизводстваЗаСмену.Продукция" - разные таблицы ... связанные ссылкой на документ.
поэтому когда берешь Сначала документ, а потом табличную часть через точку - у тебя отображается вся таблицаДокумент.ОтчетПроизводстваЗаСмену.Продукция, но в одном поле ... обращайся сразу в правильную таблицу.

  "ВЫБРАТЬ
        |    СУММА(ВЫРАЗИТЬ(ОтчетПроизводстваЗаСменуПродукция.Количество КАК ЧИСЛО(15, 4))) КАК Колво,
        |    Номенклатура,
        |    ХарактеристикаНоменклатуры
        |ИЗ
        |    Документ.ОтчетПроизводстваЗаСмену.Продукция КАК ОтчетПроизводстваЗаСменуПродукция
        |ГДЕ
        |    ОтчетПроизводстваЗаСменуПродукция.Ссылка.Дата МЕЖДУ &НачПериода И &КонПериода
        |    И ОтчетПроизводстваЗаСменуПродукция.Ссылка.Проведен
        |    И ОтчетПроизводстваЗаСменуПродукция.Номенклатура = &номенкл
        |
        |СГРУППИРОВАТЬ ПО
        |    ОтчетПроизводстваЗаСменуПродукция.ХарактеристикаНоменклатуры,
        |    ОтчетПроизводстваЗаСменуПродукция.Номенклатура)";
13 Max_Fokin
 
27.07.16
13:39
спасибо большое, всё получилось.
Программист всегда исправляет последнюю ошибку.