Имя: Пароль:
1C
1C 7.7
v7: Запрос, левое соединение
0 salvator
 
07.04.22
12:22
Доброго дня!
Напомните, пожалуйста, как в 7.7 сделать левое соединение?
К примеру, мне к таблице справочника нужно присоединить таблицу остатков из регистра, если остатка нет, то в соответствующей строке выводить 0.
То ест нужны все элементы справочника, а не только те, где есть остатки.
1 Андрей_Андреич
 
naïve
07.04.22
12:24
Что-то типа Товар=Справочник.Номенклатура.ТекущийЭлемент,Регистр.Останки.Номенклатура
2 Builder
 
07.04.22
12:31
(1) Вообще то проще
Группировка Номенклатура Все
3 salvator
 
07.04.22
12:35
(2) Вроде то, что нужно. В этом случае только элементы выведутся, без групп? Группы мне не нужны.
4 Builder
 
07.04.22
12:38
(3) Группировка Номенклатура Все Без Групп
5 salvator
 
07.04.22
12:41
(4) Отлично, спасибо!
6 salvator
 
07.04.22
12:54
Дополню вопрос еще одним.
Сейчас я вывожу элемент номенклатуры и остаток.
Нужно добавить условие: что элемент номенклатуры не принадлежит определенной группе.
Как добавить условие?
Запрос сейчас такой:

Период с НачДата по КонДата;
Товар = Справочник.Номенклатура.ТекущийЭлемент, Регистр.ОстаткиТоваров.Товар;
Количество = Регистр.ОстаткиТоваров.ОстатокТовара;
Функция КонОст = КонОст(Количество);
Группировка Товар Без Групп Все;
7 Builder
 
07.04.22
13:08
(6)
Как то так вроде

Период с НачДата по КонДата;
Товар = Регистр.ОстаткиТоваров.Товар;
Количество = Регистр.ОстаткиТоваров.ОстатокТовара;
Функция КонОст = КонОст(Количество);
Условие (НЕ (Товар в ВыбГруппа))
Группировка Товар Без Групп Все;
8 salvator
 
07.04.22
13:23
(7) Не работает, выводятся позиции из выбранной группы. Может, как-то условие на родителя нужно накладывать, а не на "Товар"?
9 Builder
 
07.04.22
14:10
(8) Ну так у тебя условие стоит Все, вот они все и выводятся.
Попробуй так

Период с НачДата по КонДата;
Товар = Справочник.Номенклатура.ТекущийЭлемент, Регистр.ОстаткиТоваров.Товар;
Количество = Регистр.ОстаткиТоваров.ОстатокТовара;
Функция КонОст = КонОст(Количество);
Условие (НЕ (Товар в ВыбГруппа))
Группировка Товар Без Групп;
10 salvator
 
07.04.22
14:13
(9) Ну тогда позиции без остатков не выведутся
11 Builder
 
07.04.22
14:16
(10) Выведутся, поверь :)
12 salvator
 
07.04.22
15:11
(11) Проверил, не выводятся.
13 Ёпрст
 
07.04.22
15:17
(0) открой ужо наконец, прямые запросы к бд.
Там всё понятнее и прозрачнее.
И быстрее
14 salvator
 
07.04.22
18:20
(13) Да мне нужно было быстренько обработку сделать и забыть про 7.7) Разобрался, в условии Товар.Родитель указал и все получилось.
15 Злопчинский
 
07.04.22
23:15
(7) "Условие (НЕ (Товар в ВыбГруппа))"
- с такими условиями поосторожнее, в скульном варианте есть косяки с условием НЕ
лучше
|Условие (Товар.ПринадлежитГруппе(ВыбГруппа)=0);
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший