Имя: Пароль:
1C
 
Соединить два РС в запрос как?
,
0 Обработка
 
19.08.15
12:31
Вобщем самописка 8.3
Есть РС "РаботникиОрганизаций". В этом регистре регистрируются данные как тот или иной работник меняет или подразделение или переходит из одной организации в другой.

Есть другой регистр РС "ПитаниеРаботников" в нем в день 3-4 раза регисрируется кто из каой организации покушал в стоовой.

Проблема в том что в некоторых записях организация села не то что у работника. Нужно сверить и изменить эти записи обработкой.

Как в одном запросе вытащить тех кто имеет разницу???
Иначе приходится перебирать все записи и в каждом делать запрс на РС работники организации.
1 Апош
 
19.08.15
12:33
зачем организация вообще нужна, если она определяется работником?
2 Обработка
 
19.08.15
12:34
У сотрудников организации меняются редко. Но видмо из за того что документ вводится задним числом по питанию получается нестыковка. РС по питанию независимый но периоддический.
3 varyag
 
19.08.15
12:35
(0) три раза перечитал про
Проблема в том что в некоторых записях организация села не то что у работника

еле как понял о чем речь
4 Обработка
 
19.08.15
12:35
(1) В начале так и было но чтоб строить отчеты быстро я добавил это измерение. Да и потом есть перенос в результирующие РН по питанию ...
5 Апош
 
19.08.15
12:35
>в день 3-4 раза
а работники вообще работают между принятиями пищи?
6 Nuobu
 
19.08.15
12:35
(0) Где регистрируется то, что организация всё таки должна была съесть?
7 Господин ПЖ
 
19.08.15
12:36
>У сотрудников организации меняются редко.

кривая самописка...

то что у вас работник - в типовых физ. лицо

не может работник шариться по организациям
8 Престарелый Заяц
 
19.08.15
12:37
Выбрать ..... ИЗ ПитаниеРаботников ГДЕ (Организация,Сотрудник) НЕ В (
Выбрать Организация ,Сотрудуник Из РаботникиОрганизаций
)

?
9 varyag
 
19.08.15
12:38
(4) интересный подход))) Отчеты быстрей стали? И все таки какие измерения? Сотрудники или физлица?
10 Обработка
 
19.08.15
12:38
(3) Прошу прощения.

РС "Работники организаций"
1 Измерение - физлицо
2 измерение - организация

далее ресурся всякие

РС "ПитаниеРаботников"

1 измерение физлицо
2 измерение орагнизация
3. измерен е период питания затрак обед ужин
4. измерение столовая
11 Обработка
 
19.08.15
12:40
(7) Забудь про обычный учет.
Это чисто опер учет итп.  Водилы и слесаря часто переводят в разные организации
Считай что организация это для нас подры!
12 RomanYS
 
19.08.15
12:40
"Как в одном запросе вытащить тех кто имеет разницу???"

соединение по
Т1.Работник = Т2.Работник и Т1.Организация <> Т2.Организация

Интереснее вопрос как соединить по периоду?
Тут два варианта
Простой. Запрос по срезам в цикле по датам.
Сложный. Получать "срез по всем датам" в запросе.
13 Обработка
 
19.08.15
12:41
(5) двухсменная работа обязательно 3 раза кушают. есть ночной ужин для ночной смены.
14 Обработка
 
19.08.15
12:42
(12) Вот вот!!!
Как раз я об этом догадались в чем моя проблема.
15 Обработка
 
19.08.15
12:44
Мне бы примерчик:

"Интереснее вопрос как соединить по периоду?
Тут два варианта
Простой. Запрос по срезам в цикле по датам.
Сложный. Получать "срез по всем датам" в запросе."
16 Fram
 
19.08.15
12:44
(12) можно соединением получить таблицу такой структуры
начпериода,конпериода,физлицо,организация
и потом уже эту таблицу соединять с Питанием
17 Обработка
 
19.08.15
12:45
(16) откуда же возьму начпериода и конпериода ???
18 Fram
 
19.08.15
12:47
(17) написал же "соединением получить"
19 Обработка
 
19.08.15
12:59
не могу сообразить как в запросе вытащить на каждый день организацию сотрудника.
Просто по регстру не пойдет
А срезпоследних дает только на дату одно значение и все.
20 Господин ПЖ
 
19.08.15
13:06
статья есть на мисте - "срез последних на каждую дату"
21 kudlach
 
19.08.15
13:27
Не надо тебе срез последних. Просто к регистру обратись.
22 Обработка
 
19.08.15
14:07
(21) Работник принят в прошлом году и запись в прошлом году а мне нужно проверить второй регистр за последние 2 месяца.

Не получится по вашему..
23 kudlach
 
19.08.15
14:22
в запросе в голову не лезет.
Можно так:

ВЫБРАТЬ
Источник.Сотрудник,
Источник.Организация,
Источник.Период,
Источник.ПриоритетОрганизаций,
Источник.ЗначениеДляДальнейшихДействий
ИЗ
(ВЫБРАТЬ
Таб1.Сотрудник,
Таб1.Организация,
Таб1.Период,
1 КАК ПриоритетОрганизаций,
NULL КАК ЗначениеДляДальнейшихДействий
ИЗ РегистрСведений.Таб1 КАК Таб1

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
Таб2.Сотрудник,
Таб2.Организация,
Таб2.Период,
2,
Таб2.ЗначениеДляДальнейшихДействий
ИЗ РегистрСведений.Таб2 КАК Таб2
ГДЕ Таб2.Период>=&ДатаНачалаПроверки
) КАК ИСТОЧНИК
УПОРЯДОЧИТЬ ПО
Период ВОзр, ПриоритетОрганизаций Возр, Сотрудник Возр


И дальше через выборку и проверки на несовпадение Организации при Приоритете=2 со значением предудущей организации по приоритету 1.

Чтоб голову не ломать, сэкономит время и работало, можно так. Чтоб красиво и одним запросом - думать еще.
24 Fram
 
19.08.15
15:42
(17) немного фантазии
        "ВЫБРАТЬ
        |    КурсыВалют.Период КАК НачПериода,
        |    ДОБАВИТЬКДАТЕ(МИНИМУМ(КурсыВалют1.Период), СЕКУНДА, -1) КАК КонПериода,
        |    КурсыВалют.Валюта,
        |    КурсыВалют.Курс,
        |    КурсыВалют.Кратность
        |ИЗ
        |    РегистрСведений.КурсыВалют КАК КурсыВалют
        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют1
        |        ПО КурсыВалют.Валюта = КурсыВалют1.Валюта
        |            И КурсыВалют.Период < КурсыВалют1.Период
        |
        |СГРУППИРОВАТЬ ПО
        |    КурсыВалют.Валюта,
        |    КурсыВалют.Период,
        |    КурсыВалют.Курс,
        |    КурсыВалют.Кратность";
25 Fram
 
19.08.15
15:43
+(24) лучше ЛЕВОЕ СОЕДИНЕНИЕ, чтобы последнюю запись не потерять