Имя: Пароль:
1C
 
Определить пересечение табличных частей
0 Dirk Diggler
 
29.10.09
06:54
Простенький вопрос.
Есть 2 табличные части, скажем, исходные комплектующие спецификаций УПП. Как запросом найти их "пересечение"? Проверить, не содержится ли одна из них целиком в другой?
1 reg-aleks
 
29.10.09
06:57
ВНУТРЕННЕ СОЕДИНЕИЕ двух таблиц!
2 Dirk Diggler
 
29.10.09
07:18
Ну если я правильно понимаю, что если соединение 2х таблиц, то и у выбрать должно быть 2 аргумента:

ВЫБРАТЬ А,Б
ИЗ В
ВНУТРЕННЕ СОЕДИНЕНИЕ Г
ПО Д=Е


что далее я буду делать с А и Б?
3 Рэйв
 
29.10.09
07:25
Может так тебе легче будет?

ВЫБРАТЬ B.НомерСтроки,Г.НомерСтроки
ИЗ В
ВНУТРЕННЕ СОЕДИНЕНИЕ Г
ПО B.А=Г.А
4 Rie
 
29.10.09
07:36
(2) После ВЫБРАТЬ идёт список тех полей, которые тебе нужны. Хоть все выбирай, хоть одно - на источнике это никак не скажется. И если идёт соединение двух таблиц, то после ВЫБРАТЬ вполне может идти и одно поле (если больше ничего не надо), и двадцать.
5 Dirk Diggler
 
29.10.09
08:26
В любом случае, я получаю ошибку
"Содержимое объекта данных может быть выбрано только во временную таблицу"
Без колдовни с временными таблицами удастся обойтись?
6 НЕА123
 
29.10.09
08:56
(5)
источники кто?
7 Dirk Diggler
 
29.10.09
09:14
Надо полагать, табличные части спецификации.

Вообще, задача такова:
Есть некая спецификация номенклатуры. Надо получить все спецификации номенклатуры, у которых табличная часть "ИсходныеКомплектующие" есть подмножество данной.

Например, есть спецификация с ТЧ:

Швеллер - 1 м
Труба круглая - 3 м
Краска - 0.5 кг
Болт - 15 шт

Если вдруг найдутся такие спецификации с ТЧ типа:

Труба круглая - 3 м
Болт - 15 шт

или

Швеллер - 1 м
Краска - 0.5 кг
Болт - 15 шт

то они должны попасть в результат запроса.
8 НЕА123
 
29.10.09
09:36
(7)
понятно. до завтра отложим, на пятницу.
9 Dirk Diggler
 
29.10.09
10:10
Да я тут по-школьному сделал, через 2 временные таблицы. Одного не могу добиться - как получить в результате запроса строки табличной части, чтобы можно было к ним обращаться полноценно - с доступам к колонкам и вызовом методов....
10 Dirk Diggler
 
29.10.09
10:32
(4) Rie, а вот я сделал:


   ТекстЗапроса="Выбрать ТЧ.ВидНорматива, ТЧ.Номенклатура,ТЧ.ХарактеристикаНоменклатуры как Характеристика,ТЧ.Количество ПОМЕСТИТЬ СоставУзла ИЗ &ТабЧ КАК ТЧ";
       Запрос1.Текст=ТекстЗапроса;
       Запрос1.УстановитьПараметр("ТабЧ", ТекущийУзел.ИсходныеКомплектующие);
       Результат=Запрос1.Выполнить();
       
       ТекстЗапроса="Выбрать ТЧ.ВидНорматива, ТЧ.Номенклатура,ТЧ.ХарактеристикаНоменклатуры как Характеристика,ТЧ.Количество ПОМЕСТИТЬ СоставСпец ИЗ &ТабЧ КАК ТЧ";
       Запрос1.Текст=ТекстЗапроса;
       Запрос1.УстановитьПараметр("ТабЧ", Объект.ИсходныеКомплектующие);
       Результат=Запрос1.Выполнить();
       
       ТекстЗапроса="Выбрать Номенклатура Как НМКУзла ИЗ СоставУзла ГДЕ НЕ Номенклатура В ( Выбрать Номенклатура Как Нмк ИЗ СоставСпец ВНУТРЕННЕЕ СОЕДИНЕНИЕ СоставУзла ПО СоставСпец.Характеристика=СоставУзла.Характеристика И СоставСпец.Количество=СоставУзла.Количество)";
       ТекстЗапроса="Выбрать * ИЗ СоставУзла ГДЕ НЕ Номенклатура В ( Выбрать Номенклатура ИЗ СоставСпец ВНУТРЕННЕЕ СОЕДИНЕНИЕ СоставУзла ПО СоставСпец.Характеристика=СоставУзла.Характеристика И СоставСпец.Количество=СоставУзла.Количество)";
       Запрос1.Текст=ТекстЗапроса;
       Результат=Запрос1.Выполнить();



И получил вот такую шнягу: Ошибка при вызове метода контекста (Выполнить): {(1, 57)}: Неоднозначное поле "Номенклатура"

И как бороццо?
11 НЕА123
 
29.10.09
11:00
(10)
поборол?
12 Dirk Diggler
 
29.10.09
13:01
ога. Но все-таки как-то по школьному ))) Сказывается отсутствие практики
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.