Имя: Пароль:
1C
1С v8
Выбор объектов, имеющих идентичное содержание в табличной части
0 Paradox
 
21.06.13
11:10
Можно ли как-то реализовать в запросе данную задачу? Например, в базе введен:
Документ №1:
1. Молоко
2. Кефир
3. Булка

В базе имеются другие документы:
Документ №2:
1. Молоко
2. Кефир
3. Булка

Документ №3
1. Молоко
2. Булка
3. Кефир


Задача в том, что бы найти документ, по содержанию идентичный табличной части Документ №1. Документ №3 должен исключаться.
Кодом реализовать данный алгоритм не сложно, будет много переборов строк ТЧ исходного документа и искомых...но это долго. Можно как то запросом получить идентичные табличные части?
Спасибо.
1 Ненавижу 1С
 
гуру
21.06.13
11:14
(0) можно
2 Лефмихалыч
 
21.06.13
11:16
Соединить чо-нит с чем-нить в запросе
3 Paradox
 
21.06.13
11:19
а можно хотя бы план запроса?) или пример (ну это уж совсем халява будет, но приятная)
пока придумал такой план:
1. выбираю в ВТ исходный документ и общее число строк в ТЧ у него
2. Беру все документы и получаю так же количество строк у них. В ВТ
3. Фильтрую полученный список документов, до списка с равным количеством строк с исходным документов
4. получаю ТЧ найденных документов
5. получаю ТЧ исходного документа
6. Соединяю ТЧ исходного докумета с ТЧ найденных документов по всем полям ТЧ (номер строки, номенклатура, количество)

в результате все хорошо, много чего лишнего отсекается, но по описанному примеру, попадает документ №3...т.е попадают все доки с одинаковым набором строк, но порядок строк может различаться...
4 Лефмихалыч
 
21.06.13
11:20
ВЫБРАТЬ
  Товар, НомерСтроки
Поместить Повторы
ИЗ
  Документ.ТвойДокумент.ТвояТабличнаяЧасть
Сгруппировать по Товар, НомерСтроки ИМЕЮЩИЕ КОЛИЧЕСТВО(Ссылка) > 1
;
Выбрать РАЗЛИЧНЫЕ
  ТЧ.Ссылка
Поместить ВсеСсылки
ИЗ
  Документ.ТвойДокумент.ТвояТабличнаяЧасть как ТЧ
  ВНУТРЕННЕЕ СОЕДИНЕНИЕ Повторы по товар и НомерСтроки
5 zak555
 
21.06.13
11:21
а если документ № 2 будет вида :?


1. Молоко
2. Булка
3. Кефир
6 Лефмихалыч
 
21.06.13
11:21
это заготовка.
Туда еще нужно добавить:
1. максимум по номеру строки
2. соединение ВсеСсылки с табличными частями
3. ну и там и так далее

Автор, нахрен это надо вообще?
7 Лефмихалыч
 
21.06.13
11:22
для исследования вских корреляций, медиан и прочего матана есть специально заточенный объект АнализДанных, может тебе он нужен?
8 RomaH
 
naïve
21.06.13
11:23
почему только док №3? а почему второй нет?
9 Paradox
 
21.06.13
11:24
(5) до документ №2 не должен попасть в запрос) ТЧ должны быть полностью идентичными как у исходного документа
10 Ненавижу 1С
 
гуру
21.06.13
11:26
выбрать различные
а1.ссылка как ссылка1,
а2.ссылка как ссылка2,
поместить вхождение
из
а.товары как а1
левое соединение а.товары как а2
по а1.номенклатура=а2.номенклатура и а1.номерстроки=а2. номерстроки и а1.ссылка<>а2.ссылка;

выбрать различные вхождение1.ссылка
из вхождение как вхождение1
внутреннее соединение вхождение как вхождени2
по вхождение1.ссылка1=вхождение2.ссылка2 и
вхождение1.ссылка2=вхождение2.ссылка1
11 Paradox
 
21.06.13
11:27
В общем как я понял, это Зопа, использовать запрос для этой цели, надо что-то другое придумать.
Левмихалыч, надо, очень)
12 Ненавижу 1С
 
гуру
21.06.13
11:28
+(10) а нет, надо там классы сделать, но идея же понятна?
13 Paradox
 
21.06.13
11:32
(12) как понять классы сделать?