Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
jediAlex
2 / 2 / 3
Регистрация: 12.07.2011
Сообщений: 461
1

Запрос на выбор всех сотрудников из справочника и документов, записанных сотрудниками в периоде

16.03.2015, 10:48. Просмотров 1233. Ответов 5
Метки нет (Все метки)

Здравствуйте. Пытаюсь решить задачу в собственной конфигурации на 1с 8.3. Суть в следующем. Создал справочник Сотрудники со стандартными реквизитами и документ "ОценочнаяВедомость" с реквизитом "Сотрудник" (СправочникСсылка.Сотрудники). Каждый сотрудник должен формировать данный документ в начале месяца. Надо бы сделать отчет, который показывал бы всех сотрудников и кто записал оценочную ведомость в указанном периоде. Я пытаюсь вывести эти данные таким запросом:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ВЫБРАТЬ
    Сотрудники.Код КАК ТабельныйНомер,
    Сотрудники.Наименование КАК ФамилияИмяОтчество,
    Сотрудники.Подразделение,
    Сотрудники.Должность,
    ОценочнаяВедомость.Проведен КАК НаличиеВедомости,
    ОценочнаяВедомость.Дата,
    ОценочнаяВедомость.Автор,
    ОценочнаяВедомость.Оценивающий
ИЗ
    Справочник.Сотрудники КАК Сотрудники
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОценочнаяВедомость КАК ОценочнаяВедомость
        ПО ОценочнаяВедомость.Сотрудник = Сотрудники.Ссылка
ГДЕ
    ОценочнаяВедомость.Дата >= &НачалоПериода
    И ОценочнаяВедомость.Дата <= &КонецПериода
    И Сотрудники.ЭтоГруппа = ЛОЖЬ
т.е. я хочу весь список сотрудников и если сотрудник не записал ведомость в указанный период, то вывести пустые поля. Но запрос выводит все документы, записанные в периоде и сотрудников, указанных в этих документах... что я не так делаю?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2015, 10:48
Ответы с готовыми решениями:

Заполнение документов из справочника
Здравствуйте. есть справочник &quot;Информация&quot; с реквизитом НомерАКБ, есть...

Запрос update: перевод всех сотрудников отдела X в отдел Y
возникла сложность с запросом перевод всех сотрудников отдела ХХ в отдел УУ....

SQL-запрос для вывода всех табельных номеров сотрудников
Здравствуйте! Вот есть такая небольшая задача, связанная с SQL. В БД есть две...

Программное создание и открытие форм не записанных документов
Добрый вечер. мне нужно на основании документа &quot;ЗаказПокупателя&quot; создать и...

Запрос дни недели в периоде
Добрый день форумчане! Помогите с вопросом: есть два поля в форме Vvod Дата1 и...

5
StaLL1n
19 / 19 / 4
Регистрация: 13.04.2014
Сообщений: 268
16.03.2015, 12:37 2
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ВЫБРАТЬ
    Сотрудники.Код КАК ТабельныйНомер,
    Сотрудники.Наименование КАК ФамилияИмяОтчество,
    Сотрудники.Подразделение,
    Сотрудники.Должность,
    ОценочнаяВедомость.Проведен КАК НаличиеВедомости,
    ОценочнаяВедомость.Дата,
    ОценочнаяВедомость.Автор,
    ОценочнаяВедомость.Оценивающий
ИЗ
    Справочник.Сотрудники КАК Сотрудники
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОценочнаяВедомость КАК ОценочнаяВедомость
        ПО Сотрудники.Ссылка  = ОценочнаяВедомость.Сотрудник
ГДЕ
    ОценочнаяВедомость.Дата >= &НачалоПериода
    И ОценочнаяВедомость.Дата <= &КонецПериода
    И Сотрудники.ЭтоГруппа = ЛОЖЬ
0
Tklwegsd
Эксперт 1С
745 / 544 / 184
Регистрация: 24.07.2013
Сообщений: 1,898
16.03.2015, 22:44 3
StaLL1n, в чем разница?
0
serrembo
2 / 2 / 0
Регистрация: 16.03.2015
Сообщений: 7
17.03.2015, 13:59 4
1C
1
2
3
ГДЕ
    ОценочнаяВедомость.Дата >= &НачалоПериода
    И ОценочнаяВедомость.Дата <= &КонецПериода
так писать нельзя в данной ситуации
эти отборы при левом соединении нужно поставить
правильно так
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ВЫБРАТЬ
    Сотрудники.Код КАК ТабельныйНомер,
    Сотрудники.Наименование КАК ФамилияИмяОтчество,
    Сотрудники.Подразделение,
    Сотрудники.Должность,
    ОценочнаяВедомость.Проведен КАК НаличиеВедомости,
    ОценочнаяВедомость.Дата,
    ОценочнаяВедомость.Автор,
    ОценочнаяВедомость.Оценивающий
ИЗ
    Справочник.Сотрудники КАК Сотрудники
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОценочнаяВедомость КАК ОценочнаяВедомость
        ПО Сотрудники.Ссылка  = ОценочнаяВедомость.Сотрудник
        И ОценочнаяВедомость.Дата >= &НачалоПериода
        И ОценочнаяВедомость.Дата <= &КонецПериода
ГДЕ 
    Сотрудники.ЭтоГруппа = ЛОЖЬ
0
Dethmontt
Модератор
Эксперт 1С
2643 / 2436 / 415
Регистрация: 10.03.2011
Сообщений: 8,699
Записей в блоге: 1
Завершенные тесты: 1
18.03.2015, 00:13 5
serrembo, верно подметил! Молоток!
При таком условии получаешь внутреннее соединение!

Но наверное лучше вынести из соединения условия отбора (дабы сократить количество проверок в соединении и общее число соединений) в отдельную временную таблицу, наложить условия, а уже потом соединять!
0
serrembo
2 / 2 / 0
Регистрация: 16.03.2015
Сообщений: 7
18.03.2015, 08:13 6
Цитата Сообщение от Dethmontt Посмотреть сообщение
Но наверное лучше
Конечно, это уже вопрос оптимизации.
Еще лучше отчеты на СКД делать.
0
18.03.2015, 08:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2015, 08:13

Проектирование справочника сотрудников
Хочу спроектировать некий абстрактный справочник сотрудников, абстрактный...

Заполнение документов данными из справочника
Здравствуйте! У меня есть документы ЗачислениеВКружки и ОтчислениеИзКружков....

Запрос на выбор всех возможных вариантов
Есть два поля. Список работников и к какой бригаде мастеров они принадлежат. В...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru