Имя: Пароль:
1C
1С v8
Построитель запроса не заполняет реквизит
,
0 Джинн
 
12.12.16
12:34
Коллеги, наткнулся на странную проблему - есть запрос, созданный в консоли. Нормальный, кошерный. В числе прочих реквизитов контрагент и договор. Заполненные как положено. Пихаем этот запрос в ПостроительЗапроса и в результате получаем ... часть пустых контрагентов и договоров, а часть заполненных. Пустые сгруппированы. Причем закономерность не просматривается. Релиз 8.3.9.1850, но то же на 8.19.64. База не битая, тестирование проходит, реиндексация делалась. Кто-то видел подобное?
1 Defender aka LINN
 
12.12.16
12:54
Итоговый запрос-то смотрел?
2 FIXXXL
 
12.12.16
13:03
(0) РЛС?
3 Джинн
 
12.12.16
13:18
(1) Да, все пучком. В консоли отрабатывает как положено.

(2) На контрагентах нет. Да и под полными правами тестирую.

Первый раз такую хрень наблюдаю :( Ладно бы все не проходили, а так выборочно. Может из-за временных таблиц в запросе что-то не то? Но вроде их пачками веде применяю и проблем не было.
4 catena
 
12.12.16
13:36
(3)Временные таблицы в построителе запроса? Разве он их ест?
5 Cool_Profi
 
12.12.16
13:37
(4) Временные есть. Внешние - нет
6 catena
 
12.12.16
13:37
А, пардон, перепутала.
7 Джинн
 
12.12.16
13:38
(4) Ест нормально.
8 Ёпрст
 
12.12.16
14:05
Текст запроса одинаковый хоть и параметры его ?
9 ildary
 
12.12.16
14:41
Нет ли орфографически похожих по названию справочников или полей, которые при копировании текста запроса подменились?
10 Cool_Profi
 
12.12.16
14:48
В отладчике пробовал попросить у построителя запрос непосредственно перед выполнением?
11 Джинн
 
12.12.16
15:35
Короче суть расследования такова (с небольшим упрощением в части всяких других пересчетов для понимания).

1. Таблица с планом закупки сырья для бюджета помесячно. Добываем из регистра, упаковываем во временную таблицу.

2. Таблица с основными поставщиками номенклатуры и отсрочками оплаты. Добывается из регистров/справочников, укладывается во временную таблицу. В реквизите отсрочки есть нулевые значения (оплата по факту).

3. Делаем левое соединение первой со второй, рассчитывая период оплаты (сдвиг дат), контрагента и сумму по бюджету. Со всеми связями и т.п.

4. Пихаем все в поля построителя. Видим, что все замечательно в консоли - контрагенты заполнены, отсрочка посчитана, суммы сходятся.

5. Выполняем этот запрос ПостроителеЗапросов. Даты, суммы все пучком. И даже из результирующего запроса контрагенты, у которых отсрочка не нулевая. Но те контрагенты, у которых отсрочка нулевая во второй таблице, построителем не заполняются.

Вылечил добавлением левого реквизита со значением "1" в таблицу на шаге 2 и выводом этого реквизита в таблицу на шаге 3. Хотя он на фиг мне не нужен и без него все считается. И все заработало.

1цы - доступно и всерьез (pit)
12 Джинн
 
12.12.16
15:37
(8)(9)(10) Это все проверено. На такие грабли уже не наступаю очень давно.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.