Имя: Пароль:
1C
1С v8
Как выбрать частично повторяющиеся данные из табличной части документа
0 Эльфийка
 
21.02.12
00:40
Есть документ уатВыдачаРасходныхМатериалов, в табличной части которого перечисляются номенклатура, ТС, количество и т.д. Бывает так, что в одном документе перечислено дважды одна номенклатура для разных ТС. Например, номенклатура -Фильтр воздушный, 1шт на ТС "BP 125 /16RUS", 1 шт на ТС "BP 117/16RUS". А в в двух строках отчета выходит "BP 125 /16RUS" по 1 шт. Как исправить?

Запрос1 = Новый Запрос;
   Запрос1.Текст = "ВЫБРАТЬ
   |    уатВыдачаРасходныхМатериалов.Ссылка КАК Док,
   |    уатВыдачаРасходныхМатериалов.Номенклатура КАК Номенклатура,
   |    уатВыдачаРасходныхМатериалов.ТС КАК ТС
   |ИЗ
   |    Документ.уатВыдачаРасходныхМатериалов.Материалы КАК уатВыдачаРасходныхМатериалов
   |
   |УПОРЯДОЧИТЬ ПО
   |    Ссылка,
   |    Номенклатура
   //|    ТС

   |";
   
   РезультатЗапроса1 = Запрос1.Выполнить();

в цикле Вывода строк таблицы
....
               Если ТипЗнч(ОбластьДанные.Параметры.Док) = Тип("ДокументСсылка.уатВыдачаРасходныхМатериалов")
                   Тогда  
                   
                   Выборка=РезультатЗапроса1.Выбрать();
                   Пока Выборка.Следующий() Цикл
                       Если (Выборка.Номенклатура = Обход.Номенклатура) И (Выборка.Док = Обход.Док) Тогда
                           //Сообщить(""+Выборка.Док+"  Номенклатура "+Выборка.Номенклатура+"  ТС: "+Выборка.ТС);

                           Прервать
                       КонецЕсли;
                   КонецЦикла;
                   ОбластьДанные.Параметры.ПечДок = Выборка.ТС
               КонецЕсли;
1 Fragster
 
гуру
21.02.12
00:44
это потому что в личной карточке фотка не заполнена
2 Эльфийка
 
21.02.12
00:57
(1) фотка была, удалила, чтобы не просили ниже пояса показать-как мне ранее писали "всем известное место"
3 Эльфийка
 
21.02.12
00:59
Уважаемые молодые люди, мужчины (мужской пол), прошу Вас писать по существу. И не захламлять тему. Заранее благодарю!!!!!)))))))
4 Stim
 
21.02.12
01:34
жесть
5 DrHiHi
 
21.02.12
01:57
это конфигурация Н'бтон Трейда??
6 DrHiHi
 
21.02.12
01:57
*Н'ютон-Трейда
7 Эльфийка
 
21.02.12
02:05
(5)(6)1С Управление автотранспортом
8 DrHiHi
 
21.02.12
02:10
вот тут

                   Выборка=РезультатЗапроса1.Выбрать();
                   Пока Выборка.Следующий() Цикл
                       Если (Выборка.Номенклатура = Обход.Номенклатура) И (Выборка.Док = Обход.Док) Тогда
                           //Сообщить(""+Выборка.Док+"  Номенклатура "+Выборка.Номенклатура+"  ТС: "+Выборка.ТС);


                           Прервать
                       КонецЕсли;
                   КонецЦикла;

постоянно будет выбирать только первую строку
9 DrHiHi
 
21.02.12
02:11
какой отчет??
10 Эльфийка
 
21.02.12
02:28
Прервать убрала, все равно так же

Если ТипЗнч(ОбластьДанные.Параметры.Док) = Тип("ДокументСсылка.уатВыдачаРасходныхМатериалов")
   Тогда  
                   
   Выборка=РезультатЗапроса1.Выбрать();
   Пока Выборка.Следующий() Цикл
   Если (Выборка.Номенклатура = Обход.Номенклатура) И (Выборка.Док = Обход.Док)
             Тогда
       ОбластьДанные.Параметры.ПечДок = Выборка.ТС
   КонецЕсли;
КонецЦикла;
//ОбластьДанные.Параметры.ПечДок = Выборка.ТС
КонецЕсли;
11 SeraFim
 
21.02.12
02:37
(0) не понял, какой результат нужен-то?
12 SeraFim
 
21.02.12
02:38
если нужно "BP 125 /16RUS" - 2 шт. тогда делай сумму и группируй
Если нужно просто убрать повторяющиеся, то ВЫБРАТЬ РАЗЛИЧНЫЕ
13 Эльфийка
 
21.02.12
02:40
(12) нужно "BP 125 /16RUS" -1 шт,  "BP 117/16RUS" - 1 шт
14 SeraFim
 
21.02.12
02:46
а, невнимательно прочитал)
а что вообще такое "обход" и зачем он нужен?
15 DrHiHi
 
21.02.12
02:48
ОбластьДанные.Параметры.ПечДок = Выборка.ТС

ОбластьДанные - это область макета, которую ты будешь выводить, так что тебе ее еще нужно вывести, а потом уже продолжать обход цикла
16 Эльфийка
 
21.02.12
15:47
(15) так ведь у меня вывод происходит внутри цикла, разве нет?
17 Эльфийка
 
21.02.12
23:16
кто-нибудь, помогите, плиз!!!!!!!
18 Stim
 
21.02.12
23:18
удалите весь код и огласите задачу полностью
19 hhhh
 
22.02.12
01:29
(17) сделайте отдельный регистр, в котором будет информация храниться в том аиде, как вам надо. А таскать данные из табличных частей, да еше и частично повторяющиеся - это лучше сразу повеситься.
20 Эльфийка
 
23.02.12
00:15
(19)чтобы сделать отдельный регистр, это надо будет конфу дописывать? по возможности хотелось бы без изменения
21 AlexNew
 
23.02.12
00:20
А СГРУППИРОВАТЬ отменили?
22 Эльфийка
 
23.02.12
00:27
(21) Ошибка при вызове метода контекста (Выполнить): {(3, 2)}: Поле не входит в группу "уатВыдачаРасходныхМатериалов.Номенклатура"
<<?>>уатВыдачаРасходныхМатериалов.Номенклатура КАК Номенклатура,
   РезультатЗапроса1 = Запрос1.Выполнить();
23 Эльфийка
 
23.02.12
00:27
Запрос1 = Новый Запрос;
   Запрос1.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
                   |    уатВыдачаРасходныхМатериалов.Ссылка КАК Док,
                   |    уатВыдачаРасходныхМатериалов.Номенклатура КАК Номенклатура,
                   |    уатВыдачаРасходныхМатериалов.ТС КАК ТС,
                   |    уатВыдачаРасходныхМатериалов.НомерСтроки КАК НС
                   |ИЗ
                   |    Документ.уатВыдачаРасходныхМатериалов.Материалы КАК уатВыдачаРасходныхМатериалов
                   |ГДЕ
                   |    уатВыдачаРасходныхМатериалов.Номенклатура = &Материал
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    уатВыдачаРасходныхМатериалов.Ссылка
                   //|    уатВыдачаРасходныхМатериалов.Номенклатура,
                   //|    уатВыдачаРасходныхМатериалов.ТС,
                   //|    уатВыдачаРасходныхМатериалов.НомерСтроки
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    Док,
                   |    НС,
                   |    ТС";
   Запрос1.УстановитьПараметр( "Материал",   Материал);
                   
   РезультатЗапроса1 = Запрос1.Выполнить();
24 Эльфийка
 
23.02.12
00:28
немного переписала код
25 AlexNew
 
23.02.12
00:29
Маладец, добавь все то, что у тебя не входит в группу, или поставь Максимум, минимум, что тебе нравится, если не волнует, что получится.
26 Эльфийка
 
23.02.12
00:33
Группировка не помогла, все равно все тоже выходит((((
27 Эльфийка
 
23.02.12
00:35
а вернее когда делаем выборку запроса в цикле вывода строк таблицы, не видит вторую строку в этом же документе с нужными данными
28 Эльфийка
 
23.02.12
00:36
Т.е. вот что получается, если выборка следует после запроса
Выдача расходных материалов (уат) 00000000002 от 08.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: BP 122 /16RUS    Номер строки 2
Выдача расходных материалов (уат) 00000000002 от 08.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: BP 139 /16RUS    Номер строки 12
Выдача расходных материалов (уат) 00000000003 от 09.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: BP 127 /16RUS    Номер строки 1
Выдача расходных материалов (уат) 00000000005 от 02.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: ВТ 359 /16RUS    Номер строки 5
29 Эльфийка
 
23.02.12
00:38
а вот что внутри цикла

Выдача расходных материалов (уат) 00000000006 от 03.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: ВТ 374 /16RSU    Номер строки 2
Выдача расходных материалов (уат) 00000000008 от 05.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: BP 193 /16RUS    Номер строки 1
Выдача расходных материалов (уат) 00000000009 от 06.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: BP 189 /16RUS    Номер строки 1
Выдача расходных материалов (уат) 00000000002 от 08.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: BP 122 /16RUS    Номер строки 2
Выдача расходных материалов (уат) 00000000002 от 08.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: BP 139 /16RUS    Номер строки 12
Выдача расходных материалов (уат) 00000000002 от 08.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: BP 122 /16RUS    Номер строки 2
Выдача расходных материалов (уат) 00000000002 от 08.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: BP 139 /16RUS    Номер строки 12
Выдача расходных материалов (уат) 00000000003 от 09.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: BP 127 /16RUS    Номер строки 1
Выдача расходных материалов (уат) 00000000014 от 13.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: BP 112 /16RUS    Номер строки 2
30 AlexNew
 
23.02.12
00:41
А что получается, если выборка после запроса? Что ты переписала? Код. И слушай, менять профессию надо.
31 Эльфийка
 
23.02.12
00:44
(30)прошу строго не судить чайника
32 Эльфийка
 
23.02.12
00:44
до добавления СГРУППИРОВАТЬ, у меня выходило
Выдача расходных материалов (уат) 00000000006 от 03.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: ВТ 374 /16RSU    Номер строки 2
Выдача расходных материалов (уат) 00000000008 от 05.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: BP 193 /16RUS    Номер строки 1
Выдача расходных материалов (уат) 00000000009 от 06.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: BP 189 /16RUS    Номер строки 1
Выдача расходных материалов (уат) 00000000002 от 08.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: BP 139 /16RUS    Номер строки 12
Выдача расходных материалов (уат) 00000000002 от 08.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: BP 139 /16RUS    Номер строки 12
Выдача расходных материалов (уат) 00000000003 от 09.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: BP 127 /16RUS    Номер строки 1
33 AlexNew
 
23.02.12
00:55
Где тут количество?
34 Эльфийка
 
23.02.12
01:01
Выдача расходных материалов (уат) 00000000006 от 03.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: ВТ 374 /16RSU    Номер строки 2  Кол-во 1
Выдача расходных материалов (уат) 00000000008 от 05.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: BP 193 /16RUS    Номер строки 1  Кол-во 1
Выдача расходных материалов (уат) 00000000009 от 06.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: BP 189 /16RUS    Номер строки 1  Кол-во 1
Выдача расходных материалов (уат) 00000000002 от 08.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: BP 122 /16RUS    Номер строки 2  Кол-во 1
Выдача расходных материалов (уат) 00000000002 от 08.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: BP 139 /16RUS    Номер строки 12  Кол-во 1
Выдача расходных материалов (уат) 00000000002 от 08.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: BP 122 /16RUS    Номер строки 2  Кол-во 1
Выдача расходных материалов (уат) 00000000002 от 08.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: BP 139 /16RUS    Номер строки 12  Кол-во 1
Выдача расходных материалов (уат) 00000000003 от 09.01.2012 12:00:00  Номенклатура Фильтр воздушный   ТС: BP 127 /16RUS    Номер строки 1  Кол-во 1
35 Эльфийка
 
23.02.12
01:01
а в отчете выходит
03 янв. 12 г.    00000000006    1    ВТ 374 /16RSU    шт    -    1,00
05 янв. 12 г.    00000000008    2    BP 193 /16RUS    шт    -    1,00
06 янв. 12 г.    00000000009    3    BP 189 /16RUS    шт    -    1,00
08 янв. 12 г.    00000000002    4    BP 139 /16RUS    шт    -    1,00
08 янв. 12 г.    00000000002    5    BP 139 /16RUS    шт    -    1,00
09 янв. 12 г.    00000000003    6    BP 127 /16RUS    шт    -    1,00
36 AlexNew
 
23.02.12
01:03
Теперь Сумма(Количество) отменили. При чем тут чайник?
37 Эльфийка
 
23.02.12
01:06
Не поняла, а зачем мне сумма?
у меня должно получиться в отчете
08 янв. 12 г.    00000000002    4    BP 122 /16RUS    шт    -    1,00
08 янв. 12 г.    00000000002    5    BP 139 /16RUS    шт    -    1,00,
т.к. в документе было указано по одной шт для каждого ТС
38 Эльфийка
 
23.02.12
01:08
и непонятно почему выборка теперь пробегает 4раза по документу №2
39 Эльфийка
 
23.02.12
01:09
причем, когда прохожу отладчиком, пробегает только 2 раза
40 Эльфийка
 
23.02.12
01:28
(38), (39) сообщает 4раза разобралась
41 AlexNew
 
23.02.12
01:34
(40) Какая умная. Сама с собой говорит.
42 Эльфийка
 
23.02.12
02:17
(41) Больше не с кем)))
43 Garkin
 
23.02.12
02:25
(42) зря ты (18) проигнорировала.
44 catena
 
23.02.12
05:28
ыыыы
Мадам, вам уже говорили в предудыщей ветке
а) пользуйтесь конструктором запроса
б) четко описывайте задачу
в) ну соедините уже ваш запрос с запросом, который у вас в "Обход" - сразу будет выходить все как вам надо, без всяких страшных условий при выборке.
45 zak555
 
23.02.12
07:47
(7) рарус ?
46 zak555
 
23.02.12
07:49
(23) >                     |    уатВыдачаРасходныхМатериалов.Номенклатура = &Материал

а что может в ТЧ быть только один марианл ? о_О
47 Эльфийка
 
24.02.12
00:27
(44) Если соединять с Обходом, то отваливаются другие документы, которые нужно, будь то Поступление товаров и услуг
48 Эльфийка
 
24.02.12
00:27
всем спасибо, вопрос решен
49 Эльфийка
 
24.02.12
00:47
Дорогие Мужчины! Поздравляю всех с днем защитника отечества!
51 catena
 
24.02.12
18:36
(47)Если соединять с умом, ничего не отвалится.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан