|
Запросы | ☑ | ||
---|---|---|---|---|
0
ilqar89
27.07.12
✎
12:31
|
Здравствуйте! Вот кусочек запроса, объясню в чем дело. Есть регистр сведений Календарные графики, в нем отмечаются рабочие и нерабочие дни. Есть регистр сведений ГрафикиРабот, в нем отмечается порядок прихода на работу, через день, каждый день, и так далее. Теперь я хочу, чтобы было соединение со вторым регистром, и в рещультате брались только дни, отмеченные во втором регистре, то есть из двух дней только 1. Щас тупо берет из Календаря. Мое изменение (ниже) приводит к переполнению памяти.
ВЫБРАТЬ | ИнтересующиеСотрудники.Сотрудник КАК Сотрудник, | ИнтересующиеСотрудники.Должность КАК Должность, | КалендарныеГрафики.ДатаГрафика КАК ДатаГрафика, | КалендарныеГрафики.Календарь КАК Календарь | ИЗ | ИнтересующиеСотрудники КАК ИнтересующиеСотрудники | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КалендарныеГрафики КАК КалендарныеГрафики | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикиРаботы КАК ГрафикиРаботы | ПО (ГрафикиРаботы.ГрафикРаботы.Календарь = КалендарныеГрафики.Календарь) | ПО (ИСТИНА) | ГДЕ | КалендарныеГрафики.Календарь = &Календарь | И КалендарныеГрафики.ДатаГрафика МЕЖДУ &ДатаНачала И &ДатаОкончания | И КалендарныеГрафики.ДеньВключенВГрафик) КАК СотрудникКалендарь | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | &ДатаНачала КАК Период, | СотрудникиСрезПоследних.Сотрудник КАК Сотрудник, | СотрудникиСрезПоследних.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница, | СотрудникиСрезПоследних.Должность КАК Должность, | СотрудникиСрезПоследних.ЗанимаемыхСтавок КАК ЗанимаемыхСтавок | ИЗ | РегистрСведений.Сотрудники.СрезПоследних( | &ДатаНачала, | Организация = &Организация | И СтруктурнаяЕдиница = &СтруктурнаяЕдиница) КАК СотрудникиСрезПоследних | |
|||
1
Конфигуратор1с
27.07.12
✎
12:33
|
ПО (ИСТИНА) - это что за фигня?
|
|||
2
ilqar89
27.07.12
✎
12:34
|
я сам не догнал, типо все наверное
|
|||
3
Конфигуратор1с
27.07.12
✎
12:34
|
и вообще нифигна не понятно что ты хочешь
|
|||
4
ilqar89
27.07.12
✎
12:34
|
Этот кусок
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикиРаботы КАК ГрафикиРаботы | ПО (ГрафикиРаботы.ГрафикРаботы.Календарь = КалендарныеГрафики.Календарь) мой |
|||
5
Конфигуратор1с
27.07.12
✎
12:35
|
без обид но ВЫБРАТЬ
| ИнтересующиеСотрудники.Сотрудник КАК Сотрудник, | ИнтересующиеСотрудники.Должность КАК Должность, | КалендарныеГрафики.ДатаГрафика КАК ДатаГрафика, | КалендарныеГрафики.Календарь КАК Календарь | ИЗ | ИнтересующиеСотрудники КАК ИнтересующиеСотрудники | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КалендарныеГрафики КАК КалендарныеГрафики | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикиРаботы КАК ГрафикиРаботы | ПО (ГрафикиРаботы.ГрафикРаботы.Календарь = КалендарныеГрафики.Календарь) | ПО (ИСТИНА) - полный бред, судя из поставленной цели |
|||
6
ilqar89
27.07.12
✎
12:38
|
хочу чтобы приходили не дни отмеченные в календаре (там отмечены все как рабочие), а дни отмеченные в графике работ. например, есть 2 сторожа, они работают 1 день полностью, а второй день отдыхают, посменно.
Все дни в календаре рабочие, у них нет выходных, когда смена, тогда и выходят. Я в графике им поставил, а этот запрос читает из календаря, а так как в календаре все дни рабочие, он и возвращает все дни, но мне же не это нужно! |
|||
7
ilqar89
27.07.12
✎
12:39
|
сорри, один сторож работает, др отдыхает, на следующий день наоборот
|
|||
8
ilqar89
27.07.12
✎
12:42
|
по (истина) уже было в родном запросе
|
|||
9
ilqar89
27.07.12
✎
12:48
|
пожалуйста помогите, очень нужно
|
|||
10
hhhh
27.07.12
✎
12:51
|
(9) ну поставьте ВНУТРЕННЕЕ СОЕДИНЕНИЕ. Зачем вы ЛЕВОЕ всобачили?
|
|||
11
ilqar89
27.07.12
✎
12:52
|
вместо какого левое? 1 или 2? наверное 2
|
|||
12
ilqar89
27.07.12
✎
12:54
|
переполнение памяти при внутреннем соединении, программа вылетает с сообщением недостаточно памяти
|
|||
13
ilqar89
27.07.12
✎
13:10
|
родной код запроса:
Запрос.Текст = "ВЫБРАТЬ | СотрудникиСрезПоследних.Сотрудник КАК Сотрудник, | СотрудникиСрезПоследних.Должность КАК Должность |ПОМЕСТИТЬ ИнтересующиеСотрудники |ИЗ | РегистрСведений.Сотрудники.СрезПоследних(&ДатаНачала, Организация = &Организация) КАК СотрудникиСрезПоследних |ГДЕ | СотрудникиСрезПоследних.СтруктурнаяЕдиница = &СтруктурнаяЕдиница | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ РАЗЛИЧНЫЕ | Сотрудники.Сотрудник, | Сотрудники.Должность |ИЗ | РегистрСведений.Сотрудники КАК Сотрудники |ГДЕ | Сотрудники.Организация = &Организация | И Сотрудники.Период МЕЖДУ &ДатаНачала И &ДатаОкончания | И Сотрудники.СтруктурнаяЕдиница = &СтруктурнаяЕдиница |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СотрудникКалендарь.Сотрудник КАК Сотрудник, | СотрудникКалендарь.Должность КАК Должность, | СотрудникКалендарь.ДатаГрафика КАК ДатаГрафика, | Сотрудники.Период КАК Период, | ВЫБОР | КОГДА Сотрудники.СтруктурнаяЕдиница = &СтруктурнаяЕдиница | И Сотрудники.Должность = СотрудникКалендарь.Должность | ТОГДА 8 * Сотрудники.ЗанимаемыхСтавок | ИНАЧЕ 0 | КОНЕЦ КАК Часов, | ВЫБОР | КОГДА Сотрудники.СтруктурнаяЕдиница = &СтруктурнаяЕдиница | И Сотрудники.Должность = СотрудникКалендарь.Должность | ТОГДА 1 | ИНАЧЕ 0 | КОНЕЦ КАК Дней |ИЗ | (ВЫБРАТЬ | ИнтересующиеСотрудники.Сотрудник КАК Сотрудник, | ИнтересующиеСотрудники.Должность КАК Должность, | КалендарныеГрафики.ДатаГрафика КАК ДатаГрафика, | КалендарныеГрафики.Календарь КАК Календарь | ИЗ | ИнтересующиеСотрудники КАК ИнтересующиеСотрудники | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КалендарныеГрафики КАК КалендарныеГрафики | ПО (ИСТИНА) | ГДЕ | КалендарныеГрафики.Календарь = &Календарь | И КалендарныеГрафики.ДатаГрафика МЕЖДУ &ДатаНачала И &ДатаОкончания | И КалендарныеГрафики.ДеньВключенВГрафик) КАК СотрудникКалендарь | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | &ДатаНачала КАК Период, | СотрудникиСрезПоследних.Сотрудник КАК Сотрудник, | СотрудникиСрезПоследних.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница, | СотрудникиСрезПоследних.Должность КАК Должность, | СотрудникиСрезПоследних.ЗанимаемыхСтавок КАК ЗанимаемыхСтавок | ИЗ | РегистрСведений.Сотрудники.СрезПоследних( | &ДатаНачала, | Организация = &Организация | И СтруктурнаяЕдиница = &СтруктурнаяЕдиница) КАК СотрудникиСрезПоследних | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | Сотрудники.Период, | Сотрудники.Сотрудник, | Сотрудники.СтруктурнаяЕдиница, | Сотрудники.Должность, | Сотрудники.ЗанимаемыхСтавок | ИЗ | РегистрСведений.Сотрудники КАК Сотрудники | ГДЕ | Сотрудники.Организация = &Организация | И Сотрудники.Период МЕЖДУ ДОБАВИТЬКДАТЕ(&ДатаНачала, ДЕНЬ, 1) И &ДатаОкончания) КАК Сотрудники | ПО СотрудникКалендарь.Сотрудник = Сотрудники.Сотрудник | И СотрудникКалендарь.ДатаГрафика >= Сотрудники.Период | |УПОРЯДОЧИТЬ ПО | Сотрудник, | Должность, | ДатаГрафика, | Период УБЫВ |ИТОГИ ПО | Сотрудник, | Должность, | ДатаГрафика"; |
|||
14
ilqar89
27.07.12
✎
13:17
|
какие нибудь идеи есть?
|
|||
15
hhhh
27.07.12
✎
13:44
|
(14) а что конкретно нужно? Мы например использовали документ ИндивидуальныеГрафикиРаботы для таких случаев. То есть в конфигуратор не влезали, никаких запросов не переписывали.
|
|||
16
rasswet
27.07.12
✎
13:48
|
раздели на несколько ВТ..и тогда соединяй уже подготовленные данные. имхо.
|
|||
17
ilqar89
27.07.12
✎
14:42
|
тема закрыта, я программно сделал
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |