Имя: Пароль:
1C
1С v8
Запрос к регистру накопления.
0 Serega-1c
 
26.11.13
15:13
Всем добрый день! Искал ответ на форуме и в гугле - не нашел, поэтому создал новую тему. Пишу небольшую конфигурацию для благотворительной организации, столкнулся с проблемой при запросе к регистру накопления.

Дано:

1. Регистр накопления (Обороты) "Пожертвования", в котором есть измерение: "Жертвователь", равное ссылке справочника "Благотворители". А также измерение "Подопечный" (равное ссылке на соответствующий справочник).

2 Собственно сам справочник благотворители.  

Задача:

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

К примеру, нужно отобрать всех кто внес пожертвования в определенный период. Если несколько пожертвований на одного подопечного - суммировать, если на разных дублировать в таблице. Плюс в отбор должны попадать только те благотворители, которые выполняют условия на заполнение/не заполнения каких-то реквизитов в самом справочнике. Таких "плавающих" условий может быть много, но это не суть т.к. с этим проблем нет.

Написал вот такой вот запрос:

ВЫБРАТЬ
               |    Благотворители.Ссылка,
               |    Благотворители.ПрофессиональныеНавыки.(
               |        ПрофНавык
               |    ),
               |    Благотворители.Автомобили.(
               |        Тип
               |    ),
               |    Благотворители.ТЗКоммуникация.(
               |        Описание
               |    ),
               |    ПожертвованияОбороты.Жертвователь,
               |    ПожертвованияОбороты.СуммаОборот
               |ИЗ
               |    РегистрНакопления.Пожертвования.Обороты(&НачалоПериода, &КонецПериода, , ) КАК ПожертвованияОбороты
               |        {ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Благотворители КАК Благотворители
               |        ПО ПожертвованияОбороты.Жертвователь = Благотворители.Ссылка}
               |ГДЕ
               |    Благотворители.ПометкаУдаления = &Ложь
               |    И ПожертвованияОбороты.СуммаОборот > &СуммаОборот
               |    И Благотворители.ОтписанОтРассылок = &Ложь

Запрос работает, но странно. В список подают только те, кто жертвовал деньги в указанный период (плюс соблюдаются все "плавающие" условия). Но в таблицу попадают их пожертвования и за другие периоды. Куда копать?
1 Жан Пердежон
 
26.11.13
15:18
Зачем соединение?
За какие еще "другие" периоды? Убери соединение и все будет.
2 Maxus43
 
26.11.13
15:20
обращаться к ТЧ напрямую, а не через точку Благотворители.ПрофессиональныеНавыки.(
3 Serega-1c
 
26.11.13
15:22
Наверное, не совсем понятно объяснил, что надо. Попробую простыми словами:

Есть три благотворителя: Иванов, Петров и Сидоров;

Иванов сделал пожертвования:

1.10.2013 - 100 р
5.10.2013 - 200 р.
6.10.2013 - 300 р

Петров

2.10.2013 - 150 р.
7.10.2013 - 250 р.
8.10.2013 - 350 р.

Сидоров

01.09.2013 - 1.000 р.

Период запроса 06.10.2013 - 08.10.2013

Иванов - 100 р.
Иванов - 200 р.
Иванов - 300 р.
Петров - 150 р.
Петров - 250 р.
Петров - 350 р.

А надо

Иванов - 300 р.
Петров - 250 р.
Петров - 350 р.

т.е. только те суммы, которые вносились непосредственно в заданный период.
4 Serega-1c
 
26.11.13
15:27
(1) А как без соединения? Еще раз попробую объяснить, что надо:

1. Отобрать поступления только за конкретный период по принципу:

Благотворитель - Сумма.

2. Отфильтровать полученный список исходя из реквизитов благотворителя.
5 Maxus43
 
26.11.13
15:28
что-то сдаётся мне это конфигурация "1с Управление Сектой"...

|Выбрать
              |    ПожертвованияОбороты.Жертвователь,
               |    ПожертвованияОбороты.СуммаОборот
               |ИЗ
               |    РегистрНакопления.Пожертвования.Обороты(&НачалоПериода, &КонецПериода, , ) КАК ПожертвованияОбороты
               |ГДЕ
               |    ожертвованияОбороты.Жертвователь.ПометкаУдаления = &Ложь
               |    И ПожертвованияОбороты.СуммаОборот > &СуммаОборот
               |    И ожертвованияОбороты.Жертвователь.ОтписанОтРассылок = &Ложь
6 Serega-1c
 
26.11.13
15:29
(2) Не очень понял, при чем тут это?
7 Serega-1c
 
26.11.13
15:30
(5) А есть и такая ?))) Нет, это Благ. фонд., никакого отношения к религии)

Код щас попробую и отпишусь
8 х86
 
26.11.13
15:30
(4)скачай консоль запросов, посмотри твой запрос по частям
9 Maximysis
 
26.11.13
15:33
(5) этот  код относиться к пожертвованиям)))
только на что..
10 Maxus43
 
26.11.13
15:34
(7) а нахрена вам тип автомобиля спонсора? Есно чотб отобрать, заманили в секту, рассылки шлют... метраж квартир ещё надо в справочник добавить
11 Maximysis
 
26.11.13
15:37
(7) Это походу конфига для попрошаек около церкви, на чем подъехал сколько пожертвовал))))
12 Necessitudo
 
26.11.13
15:40
Осторожнее ТС давайте кусочки кода - а то еще в инквизицию обратится и нас пожгут как еретиков-гамнокодеров.
13 Serega-1c
 
26.11.13
15:40
(5) Код выдает тот же результат, что и был у меня...
14 vicof
 
26.11.13
15:41
(0)
[В список подают только те, кто жертвовал деньги в указанный период (плюс соблюдаются все "плавающие" условия). Но в таблицу попадают их пожертвования и за другие периоды.]
В какой список? В какую таблицу?
15 Ерепень
 
26.11.13
15:42
Жертвователь.. где ж ты слово такое выдумал?
16 Maximysis
 
26.11.13
15:42
(15)ММО РПГ)))
17 Ерепень
 
26.11.13
15:43
я б сказал, что ты сумму в измерение зафигачил, да неправда ж это
18 Serega-1c
 
26.11.13
15:44
(10) Тип автомобиля (Легковой, грузовой) нужен для отбора волонтеров с машиной для конкретной задачи. При всем уважении, вопрос был про конкретный код, а не про функционал.
19 Ерепень
 
26.11.13
15:44
>волонтеров
точно секта
20 Serega-1c
 
26.11.13
15:44
(17) Нет, сумма - это ресурс.
21 Maxus43
 
26.11.13
15:45
(20) убери все уловия ГДЕ и по одному добавляй, увидишь где косяк
22 Ерепень
 
26.11.13
15:45
(20) вижу. ставлю на одну из трёх черепашек
23 Serega-1c
 
26.11.13
15:45
(14) Имеется в виду результат запроса.
24 Serega-1c
 
26.11.13
15:46
(21) Пробывал идти таким путем - ясности не добавляет.
25 Ерепень
 
26.11.13
15:46
запрос хоть в консоли делаешь?
26 Maxus43
 
26.11.13
15:47
Периодичность у регистра какая стоит?
27 DmitriyDI
 
26.11.13
15:50
(26) периодичность - вечность)
28 catena
 
26.11.13
15:53
(13)Где и как проверяешь условия запроса?
29 catena
 
26.11.13
15:54
ИМХО, если условия отрабатывают, а период нет - либо не правильно задаешь период (что легко возможно в СКД), либо так уж пишется период в регистре.
30 DmitriyDI
 
26.11.13
15:55
И ПожертвованияОбороты.СуммаОборот > &СуммаОборот
, А сумму оборот не забываете поставить при выполнение запроса ? или началопериода и окончание, а также уберите левое соединение со справочником)
31 Serega-1c
 
26.11.13
16:00
(26) У регистров накопления же нет периодичности?  Периодичность есть у регистров сведений и регистров бухгалтерии. Или я не так понял вопрос?
32 DmitriyDI
 
26.11.13
16:02
(31) не прав РегистрНакопления.Пожертвования.Обороты(&НачалоПериода, &КонецПериода,Период , ) так попробуй
33 vicof
 
26.11.13
16:03
(31) позор
34 Serega-1c
 
26.11.13
16:05
(30) А сумму оборот не забываете поставить при выполнение запроса или началопериода и окончание

Всмысле установить реквизит? Нет, не забываю. Что характерно, условия то отрабатываются. В результат попадают только те, кто жертвовал за указанный период. Но при этом попадают все их платежи, а не за указанный период.

а также уберите левое соединение со справочником)

Убирал. Делал вот так вот (5)  - результат тот-же.
35 DmitriyDI
 
26.11.13
16:07
(34) а лучше так РегистрНакопления.Пожертвования.Обороты({&НачалоПериода}, {&КонецПериода},Период , )
36 Serega-1c
 
26.11.13
16:07
(32) Попробовал, тоже самое.

не прав

Неправ в чем? Про периодичность? Подскажите где ее посмотреть?
37 samozvanec
 
26.11.13
16:08
(0) а справочник Жертвы есть у вас?
38 DmitriyDI
 
26.11.13
16:09
(37) )))))))))
39 Serega-1c
 
26.11.13
16:09
(35) А если так, в результат попадают вообще все, кто есть в справочнике Благотворители.
40 vicof
 
26.11.13
16:09
(37) и регистр накопления Жертвоприношения
41 Serega-1c
 
26.11.13
16:10
(37) Очень смешно. Прям до невозможности.
42 DmitriyDI
 
26.11.13
16:11
(39) Теперь установи значения для реквизитов НачалоПериода и КонецПериода в настройках скд, на вкладке параметры проверь чтобы галочки ограничивать были сняты
43 Maxus43
 
26.11.13
16:15
(39) ну от этого и пляши, убери условия и поставь датуНачала только. Посмотри результат, добавь дату Конца потом и так далее, ты в параметрах где-то ошибся
44 Serega-1c
 
26.11.13
16:17
(42) (43) - Ок! Щас буду пробывать. Спасибо!
45 Maxus43
 
26.11.13
16:19
соединения в этом случае конечно не нужны никакие
46 Serega-1c
 
26.11.13
16:24
(45) Ну я в общем-то понял направление куда копать. Тут действительно можно без соединения сделать. Еще раз спасибо.
47 Maxus43
 
26.11.13
16:26
(46) но всё ранво ответь таки, мы хотим знать: зачем вам знать что благотворитель ездит на бмв х5 и занимается вязанием крючком? шо такое ТЗКоммуникация я и представить боюсь
48 vicof
 
26.11.13
16:29
(47) Телефон, производитель, номера контактов
49 Maxus43
 
26.11.13
16:30
(48) производитель пожертвователя?
я ничо не понимаю(
50 vicof
 
26.11.13
16:31
(49) производитель телефона :)
51 samozvanec
 
26.11.13
16:31
(47) при обмене с "1с Управление Сектой" справочник Благотворители конвертируется в справочник Жертвы
52 DmitriyDI
 
26.11.13
16:32
(51) и фоновое задание поиск жертвенника включается
53 vicof
 
26.11.13
16:33
вот такие они, суровые челябинские 1сники
54 DmitriyDI
 
26.11.13
16:34
православное программирование возвращается
55 Serega-1c
 
26.11.13
16:35
(47) Причем тут бмв х5 ?  Если кратко:

Справочник Благотворители  объединяет людей которые так или иначе помогают фонду. Кто-то деньгами, кто-то транспортом, кто-то своими профессиональными навыками. Кто-то всем сразу.

Этих людей много. Нужно иметь возможность быстро отбирать нужных, для конкретной ситуации. Например, нужен электрик - поиск по проф. навыку. Нужна грузовая ГАЗель, поиск по типу автомобиля. Ну и т.д.

Удовлетворил ваше любопытство?)

Ну а остальным острякам вроде "samozvanec" - если ничего умного не приходит на ум, лучше вообще не писать сообщение. Это все же форум программистов, а не доморощенных Петросянов.
56 vicof
 
26.11.13
16:35
(55) [Это все же форум программистов, а не доморощенных Петросянов.]
бгыгы
57 Maxus43
 
26.11.13
16:37
(55) Щас понятней, благодарствуем.
З.ы. а отбирать у людей право посмеятся - нехорошо, не над тобой же. Конфигурация с точки зрения метаданных сделана естетсвенно неоднозначно
58 DmitriyDI
 
26.11.13
16:39
если честно любопытство только усилилось ) что за фонд
59 Serega-1c
 
26.11.13
16:41
(57) А кто отбирает право-то?) Я таки не модератор) Но грустно, что на Мисте на 2 комментария по теме сабжа  22 комментария с шуточками уровня Евгения Вагановича.    

Конфигурация с точки зрения метаданных сделана естественно неоднозначно

На вкус и цвет)
60 Serega-1c
 
26.11.13
16:42
(58) Много будите знать... )
61 DmitriyDI
 
26.11.13
16:45
(60) а так всегда "обо*рут", но помогут, а что делать)
62 Serega-1c
 
26.11.13
16:49
(61) К тем кто шутит, но помогает - я отношусь позитивно) Хуже, когда человек ничего не может кроме как шутить, при том низкопробно.  Зачем эти люди вообще участвуют в о обсуждениях - ХЗ.
63 Maxus43
 
26.11.13
16:50
Cловарь синонимов Н. Абрамова
Благодетель , покровитель, заступник, отец, благотворитель, жертвователь, меценат; филантроп, добродей, доброхот

Впринципе да, жертвователь ещё достаточно неплохо, другие добродеи звучат ещё хуже)
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс