Имя: Пароль:
1C
1С v8
СКД: Отбор на таблице
,
0 glime
 
13.02.15
15:57
Всем привет.
Помогите плз, есть СКД, срез последних на каждую дату.
Одна таблица оборот за период по регистру накопления(есть поле ДатаПродажи), вторая таблица регистр сведений срез последних (ДатаОкончаниеСкидки), все получается нормально.
НО не на все записи в регистре накопления есть записи регистра сведений, то есть при склейки получается местами NULL. Создаю вычисляемое поле СкидкаНеЗарегистрирована

Выбор Кода ДатаОкончаниеСкидки Есть NULL
Тогда Истина
Иначе ДатаПродажи > ДатаОкончаниеСкидки
Конец

В результате при выводе таблицы в поле СкидкаНеЗарегистрирована выдается все правильно (Да Если NULL или дата завершения уже прошла, нет если скидка попадает в период ее действия), но если я пытаюсь отобрать только не зарегистрированные скидки, то остаются только те кто не попали в период, с NULL пропадают.
1 Alexaha
 
13.02.15
16:16
(0) вычислемое поле или поле запроса?
2 glime
 
13.02.15
16:48
(1) вычисляемое поле, причем ДатаПродажи всегда есть(из регистра накопления, оборот), а вот ДатаОканчанияСкидки может и не быть, она из регистра, при попытке переделать на срез последних запросом(не СКД), система уходит в ступор, даждаться так и не смог, так как там работа идет с таблицами не виртуальными, а в регистре сведений записей.... такое количество что ах.
3 Alexaha
 
13.02.15
17:07
(2) сделай обычным, сразу в запросе
4 leonidkorolev
 
16.02.15
09:17
ап, то же интересует такая проблема
5 leonidkorolev
 
16.02.15
09:18
(3) А почему такое возникает то?
6 glime
 
16.02.15
09:48
(3) не могу, таблицы просто огромные, а в срезе последних в на каждую дату используется не виртуальные таблицы. Просто приводит к уходу в ступор(за 20 минут результата не дождался). На СКД формируется порядка 2-3 минут.
7 glime
 
16.02.15
10:49
ап
8 Alexaha
 
16.02.15
10:57
(6) моделирую твою ситуацию: отбор работает нормально вне зависимости вычиляемое это поле или поле набора данных
9 glime
 
16.02.15
11:03
(8) всегда ли во второй таблице есть данные?, если в таблице срез последних(которая присоединяется к основной таблице) есть записи все ок, если же там нет таковых, то не отрабатывает условие(проверка на NULL), и эти данные не попадают в результат. Если что релиз платформы какой?
10 ИС-2
 
naïve
16.02.15
11:09
ммм... Похоже для вычисляемого поля игнорировать null ставится в истину. Попробуй заменить null на неопределено
11 leonidkorolev
 
16.02.15
11:10
(8) Можно модель посмотреть? Скинь куданить если можно?
12 glime
 
16.02.15
11:14
(11) конфа абсолютно не стандартная. могу конечно кинуть схему, куда давай?
13 glime
 
16.02.15
11:16
(10) дело в том что там действительно NULL так как без отбора при выводе поля в таблицу условие отрабатывает (Где значение NULL устанавливается истина).
14 glime
 
16.02.15
11:18
Если честно хотелось бы узнать, может дурит оптимизатор, и можно его как то глушануть?
15 Alexaha
 
16.02.15
11:35
(11) модель простая: в запросе две таблицы регистров, связь по регистратору, у каких то регистраторв есть движения в обоих регистрах у каких то только в одном, вычисляемое поле делаю по измрению из второго регистра, потом по нему делаю отбор
16 leonidkorolev
 
16.02.15
11:40
(15) Похоже модель не верная. Должно быть два набора данных и связь наборов данных.
17 glime
 
16.02.15
11:44
(15) (16) Регистры связаны между собой только через договор, то есть регистратор тут не причем(мы же устанавливаем цену на товар/услугу не одним и тем же документом).
Модель следующая(ситуация)
Установлены скидки на товар для определенных клиентов по определенным договорам.
Есть продажи со скидками.
У менеджеров есть возможность руками добавить скидку.
Так вот, нужно вычислить "Много ли надовали скидок не зарегистрированных в системе" и часть перенести в постоянные скидки, за часть постучать манагером по голове.
18 Alexaha
 
16.02.15
11:48
(16) из (0) не ясно два наобора или тдве таблицы в одном наборе
(17) а какая разница чрез что осуществляется связь? главное что она левая и что в правой таблице не всегда есть записи соотвествующие записям в левой

попробуй жестко прописать тип значений вычисляемого поля и значения котороые он может принимать
19 glime
 
16.02.15
12:38
(18) не помогло
20 glime
 
16.02.15
12:42
может у кого еще есть идеи?
21 Alexaha
 
16.02.15
12:45
(20) запрос выложи
22 leonidkorolev
 
16.02.15
12:46
(21) тут не запрос нужен, а схема. там суть в связи наборах
23 glime
 
16.02.15
12:49
(22) ага в этом и соль
Конфа к сожалению самапаханная, досталась такая.
Так что выкладиывание схемы вряд ли чем поможет, сейчас попробую на стандартной УТ ченить придумать.
24 Alexaha
 
16.02.15
13:13
(23) не мучься, я уже смоделировал твою ситуацию
25 Alexaha
 
16.02.15
13:31
(23) короче, сделай этот отбор не на весь отчет, а на группировку или перепиши запрос
если верить гуглу, такая работа отбора это фича СКД
26 glime
 
16.02.15
14:23
(25) СПС БОЛЬШОЕ, БОЛЬШОЕ!!!!!!!!! Где ты вычитал про это??? я весь инет облазил.
27 Alexaha
 
16.02.15
14:24
(26) http://1c-pro.ru/threads/skd-otbor-po-vychisljaemomu-polju.51418/
в конце обсуждения :)
28 glime
 
16.02.15
14:33
(27) наверное я гугл не умею готовить :(