Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Лютик23
1 / 1 / 0
Регистрация: 10.10.2018
Сообщений: 145
1

Найти количество записей в запросе

06.11.2018, 11:05. Просмотров 645. Ответов 25
Метки нет (Все метки)

надо получить количество записей, получаемых из запроса
делаю вот так. но неправильно получается. На картинке попробовала вот так. Получаю кол-во. Но должна получить 17,а получаю 8
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ВариантыИсполнения.Владелец КАК Номенклатура,
        |   ВариантыИсполнения.Ссылка КАК ВИ
        |   ИЗ
        |   Справочник.ВариантыИсполнения КАК ВариантыИсполнения
        |ГДЕ
        |   ВариантыИсполнения.ПометкаУдаления = ЛОЖЬ
        |   И ВариантыИсполнения.Владелец.ПометкаУдаления = ЛОЖЬ
        |   И ВариантыИсполнения.Владелец В ИЕРАРХИИ(&Номенклатура)
        |   И ВариантыИсполнения.Активность
        |   И ВариантыИсполнения.Владелец.Активность
        |   И ВариантыИсполнения.ТипВИ = ЗНАЧЕНИЕ(Перечисление.ТипыВариантовИсполнения.Стандартный)
        |
        |СГРУППИРОВАТЬ ПО
        |   ВариантыИсполнения.Владелец,
        |   ВариантыИсполнения.Ссылка
        |ИТОГИ ПО
        |   Номенклатура ИЕРАРХИЯ,
        |   ВИ";
                 Запрос.УстановитьПараметр("Номенклатура", НоменклатураИерархия.ВыгрузитьЗначения());   
    РезультатЗапроса = Запрос.Выполнить();  
        ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        
 
    колво=ВыборкаНоменклатура.Количество();
0
Миниатюры
Найти количество записей в запросе   Найти количество записей в запросе  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2018, 11:05
Ответы с готовыми решениями:

Вывод части записей при запросе
Подскажите, пожалуйста, в чем ошибка? Во временной таблице "ХарактеристикаСТехКартой" 997 запись,...

Как в запросе сделать чтобы количество умножалось на количество?
Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслугТовары.Номенклатура КАК Товар,...

подсчитать количество в запросе
ВЫБРАТЬ ЗамещенияСЛишними.Клиент, ЗамещенияСЛишними.Начало, ЗамещенияСЛишними.Окончание,...

Объединения в запросе. Получить количество!
Добрый день! Есть три документа Заявки, ЗаявкиГРО, ЗаявкиПрочее. Нужно за период получить общее...

количество записей в запросе
Доброго времени суток. Не знаю даже с чего начать решение задачи. Есть запрос который берет...

25
Phil
Эксперт 1С
404 / 281 / 86
Регистрация: 28.05.2014
Сообщений: 1,138
06.11.2018, 11:40 2
Ну всё правильно выглядит,
так в консоли сколько записей?
1C
1
2
3
4
5
6
7
8
9
10
11
"ВЫБРАТЬ
        |   Количество(ВариантыИсполнения.Ссылка ) КАК ВИ_Количество
        |   ИЗ
        |   Справочник.ВариантыИсполнения КАК ВариантыИсполнения
        |ГДЕ
        |   ВариантыИсполнения.ПометкаУдаления = ЛОЖЬ
        |   И ВариантыИсполнения.Владелец.ПометкаУдаления = ЛОЖЬ
        |   И ВариантыИсполнения.Владелец В ИЕРАРХИИ(&Номенклатура)
        |   И ВариантыИсполнения.Активность
        |   И ВариантыИсполнения.Владелец.Активность
        |   И ВариантыИсполнения.ТипВИ = ЗНАЧЕНИЕ(Перечисление.ТипыВариантовИсполнения.Стандартный)";
0
Лютик23
1 / 1 / 0
Регистрация: 10.10.2018
Сообщений: 145
06.11.2018, 11:52  [ТС] 3
Phil,
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ВЫБРАТЬ
    ВариантыИсполнения.Владелец КАК Номенклатура,
    ВариантыИсполнения.Ссылка КАК ВИ,
    КОЛИЧЕСТВО(ВариантыИсполнения.Ссылка) КАК Ссылка
ИЗ
    Справочник.ВариантыИсполнения КАК ВариантыИсполнения
ГДЕ
    ВариантыИсполнения.ПометкаУдаления = ЛОЖЬ
    И ВариантыИсполнения.Владелец.ПометкаУдаления = ЛОЖЬ
    И ВариантыИсполнения.Владелец В ИЕРАРХИИ(&Номенклатура)
    И ВариантыИсполнения.Активность
    И ВариантыИсполнения.Владелец.Активность
    И ВариантыИсполнения.ТипВИ = ЗНАЧЕНИЕ(Перечисление.ТипыВариантовИсполнения.Стандартный)
 
СГРУППИРОВАТЬ ПО
    ВариантыИсполнения.Владелец,
    ВариантыИсполнения.Ссылка,
    ВариантыИсполнения.Ссылка
ИТОГИ ПО
    Номенклатура ИЕРАРХИЯ,
    ВИ
0
Лютик23
1 / 1 / 0
Регистрация: 10.10.2018
Сообщений: 145
06.11.2018, 11:53  [ТС] 4
Phil, 1
0
Миниатюры
Найти количество записей в запросе  
Phil
Эксперт 1С
404 / 281 / 86
Регистрация: 28.05.2014
Сообщений: 1,138
06.11.2018, 11:57 5
Лютик23, запрос, который я написал вставьте в консоль
0
Лютик23
1 / 1 / 0
Регистрация: 10.10.2018
Сообщений: 145
06.11.2018, 11:58  [ТС] 6
Phil, 1 выводит
0
Phil
Эксперт 1С
404 / 281 / 86
Регистрация: 28.05.2014
Сообщений: 1,138
06.11.2018, 12:00 7
Лютик23, 1 строка, а в ней количество какое?)
0
Лютик23
1 / 1 / 0
Регистрация: 10.10.2018
Сообщений: 145
06.11.2018, 12:00  [ТС] 8
Phil, 1
0
Phil
Эксперт 1С
404 / 281 / 86
Регистрация: 28.05.2014
Сообщений: 1,138
06.11.2018, 12:05 9
Давайте скрин консоли, будем разбираться
0
Лютик23
1 / 1 / 0
Регистрация: 10.10.2018
Сообщений: 145
06.11.2018, 12:08  [ТС] 10
Phil, ну он правильно выводит,у выбранной номенклатуры один ви
0
Миниатюры
Найти количество записей в запросе  
Лютик23
1 / 1 / 0
Регистрация: 10.10.2018
Сообщений: 145
06.11.2018, 13:24  [ТС] 11
Phil, на самом деле я просто хочу правильно сгруппировать. Пока получается вот так и это не правильно. Надо найти строку на которой заканчивается группировка. помогите пожалуйста..
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
Процедура ВыгрузитьШаблон(ВхСтрокаКонтрагент)
    ActiveDOC    = ПолучитьМакет("ШаблонЗаказа");
    COMobject    = ActiveDOC.Получить();
          
    Лист         = COMobject.WorkSheets(1);
 
    Лист.Cells(2,4).Value = СокрЛП(ВхСтрокаКонтрагент.Контрагент.Код);
    Лист.Cells(3,4).Value = СокрЛП(ВхСтрокаКонтрагент.Контрагент.Наименование); 
    Лист.Cells(4,4).Value = СокрЛП(ВхСтрокаКонтрагент.Контрагент.Адрес);
    
    COMobject.Application.Visible = 1;
    COMobject.Windows(1).Visible = 1;
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ВариантыИсполнения.Владелец КАК Номенклатура,
        |   ВариантыИсполнения.Ссылка КАК ВИ
        |   ИЗ
        |   Справочник.ВариантыИсполнения КАК ВариантыИсполнения
        |ГДЕ
        |   ВариантыИсполнения.ПометкаУдаления = ЛОЖЬ
        |   И ВариантыИсполнения.Владелец.ПометкаУдаления = ЛОЖЬ
        |   И ВариантыИсполнения.Владелец В ИЕРАРХИИ(&Номенклатура)
        |   И ВариантыИсполнения.Активность
        |   И ВариантыИсполнения.Владелец.Активность
        |   И ВариантыИсполнения.ТипВИ = ЗНАЧЕНИЕ(Перечисление.ТипыВариантовИсполнения.Стандартный)
        |
        |СГРУППИРОВАТЬ ПО
        |   ВариантыИсполнения.Владелец,
        |   ВариантыИсполнения.Ссылка
        |ИТОГИ ПО
        |   Номенклатура ИЕРАРХИЯ,
        |   ВИ";
                 Запрос.УстановитьПараметр("Номенклатура", НоменклатураИерархия.ВыгрузитьЗначения());   
    РезультатЗапроса = Запрос.Выполнить();  
        ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        выб=РезультатЗапроса.Выбрать();
        колво=выб.Количество()+8;
            _й=9;
        Пока ВыборкаНоменклатура.Следующий() Цикл
        
        ВывестиСтроку(ВыборкаНоменклатура,,Лист,колво);
        
    КонецЦикла;
              
      
    COMobject.SaveAs(КаталогШаблонов+"\"+РегистрыСведений.ВнешниеКоды.ПолучитьВнешнийКодПоСсылке(ВхСтрокаКонтрагент.Контрагент,"МебельМосква")+"_ШаблонЗаказа.xlsx");
 
    // Выйти из Excel.
    COMobject.Application.Quit();
Сообщить(Строка(колво)+"   колво");
//Сообщить(Строка(кол)+"   колво");
КонецПроцедуры
 
Процедура ВывестиСтроку(ВхВыборка,Итератор,ВхЛист,колво)
     номерстр =8;
    Если ВхВыборка.Номенклатура.ЭтоГруппа Тогда   
         номерстр =номерстр+1;
        ВхЛист.Cells(Итератор,2).Value = Строка(Итератор);
        ВхЛист.Cells(Итератор,3).Value = Строка(СокрЛП(ВхВыборка.Номенклатура.Код));    
        ВхЛист.Cells(Итератор,4).Value = Строка(СокрЛП(ВхВыборка.Номенклатура.Наименование));
        ВхЛист.Cells(Итератор,5).Value = "";
        ВхЛист.Cells(Итератор,6).Value = "";
        ВхЛист.Cells(Итератор,2).Font.Bold = 1;
        ВхЛист.Cells(Итератор,3).Font.Bold = 1;
        ВхЛист.Cells(Итератор,4).Font.Bold = 1;
        ВхЛист.Cells(Итератор,5).Font.Bold = 1;
        ВхЛист.Cells(Итератор,6).Font.Bold = 1;
        Итератор = Итератор + 1;
                ВыборкаНоменклатура = ВхВыборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
                    Если ВыборкаНоменклатура.Следующий() Тогда
            ВывестиСтроку(ВыборкаНоменклатура,Итератор,ВхЛист,колво);
        КонецЕсли;
        ВхЛист.Range(ВхЛист.Cells(номерстр,2), ВхЛист.Cells(номерстр,2)).Select(); //Выделение 
ВхЛист.Application.Selection.Rows.Group();
 
ВхЛист.Range(ВхЛист.Cells(номерстр,2), ВхЛист.Cells(колво,2)).Select(); //Выделение 
ВхЛист.Application.Selection.Rows.Group();
Сообщить(Строка(номерстр)+"   первая");
 
    Иначе   
        
        Если глПустоеЗначение(ВхВыборка.ВИ) Тогда
            
            ВыборкаНоменклатура = ВхВыборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
                        Если ВыборкаНоменклатура.Следующий() Тогда
                ВывестиСтроку(ВыборкаНоменклатура,Итератор,ВхЛист,колво);
            КонецЕсли;
             
                    Иначе   
            
            _Дополнительно = Новый Структура;
            _Дополнительно.Вставить("ВариантИсполнения",ВхВыборка.ВИ);
            _Дополнительно.Вставить("ЕдИзм",ВхВыборка.Номенклатура.БазоваяЕдИзм);
            _ШК = глСформироватьВнутреннийШтрихкод(ВхВыборка.Номенклатура,_Дополнительно);
            
            ВхЛист.Cells(Итератор,2).Value = Итератор;
            ВхЛист.Cells(Итератор,3).Value = _ШК;   
            ВхЛист.Cells(Итератор,4).Value = Строка(СокрЛП(ВхВыборка.Номенклатура.Наименование));
            ВхЛист.Cells(Итератор,5).Value = Строка(СокрЛП(ВхВыборка.ВИ.Наименование));
            ВхЛист.Cells(Итератор,6).Value = "";
            Итератор = Итератор + 1;
            
            Пока ВхВыборка.Следующий() Цикл
                
                _Дополнительно = Новый Структура;
                _Дополнительно.Вставить("ВариантИсполнения",ВхВыборка.ВИ);
                _Дополнительно.Вставить("ЕдИзм",ВхВыборка.Номенклатура.БазоваяЕдИзм);
                _ШК = глСформироватьВнутреннийШтрихкод(ВхВыборка.Номенклатура,_Дополнительно);
                
                ВхЛист.Cells(Итератор,2).Value = Итератор;
                ВхЛист.Cells(Итератор,3).Value = _ШК;   
                ВхЛист.Cells(Итератор,4).Value = Строка(СокрЛП(ВхВыборка.Номенклатура.Наименование));
                ВхЛист.Cells(Итератор,5).Value = Строка(СокрЛП(ВхВыборка.ВИ.Наименование));
                ВхЛист.Cells(Итератор,6).Value = "";
                Итератор = Итератор + 1;
                 
            КонецЦикла;
            
        КонецЕсли;
            КонецЕсли;
    
     КонецПроцедуры
0
Миниатюры
Найти количество записей в запросе  
Phil
Эксперт 1С
404 / 281 / 86
Регистрация: 28.05.2014
Сообщений: 1,138
06.11.2018, 14:12 12
Лютик23, Так обходите выборку по группировкам. Что Вам нужно вывести и в каком виде. Правильно сформулированный вопрос - это наполовину ответ.
0
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,784
06.11.2018, 14:14 13
Лютик23, а вы все мучаете этот эксель с группировками.
Приведу пример вывода иерархического справочника в табличный документ с сохранением в xls и нормальными группировками.
Вместо запроса по номенклатуре - подставьте свой.
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
&НаСервере
Процедура ВывестиСправочник()
    Запрос = Новый Запрос("ВЫБРАТЬ
    |    Номенклатура.Ссылка КАК Номенклатура
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура
    |
    |УПОРЯДОЧИТЬ ПО
    |    Номенклатура ИЕРАРХИЯ
    |АВТОУПОРЯДОЧИВАНИЕ");  
    ВыборкаДетали = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);    
    
    ТабДок = Новый ТабличныйДокумент;
    
    Макет = Обработки.Обработка1.ПолучитьМакет("Макет");
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
    ТабДок.Вывести(ОбластьШапка);
    ТабДок.НачатьАвтогруппировкуСтрок();
    РекурсивныйВыводСтрок(ТабДок, ОбластьСтрока, ВыборкаДетали);
    ТабДок.ЗакончитьАвтогруппировкуСтрок();
    
    ТабДок.Записать(КаталогВременныхФайлов() + "1.xls", ТипФайлаТабличногоДокумента.XLS); 
КонецПроцедуры
 
&НаСервере
Процедура РекурсивныйВыводСтрок(ТабДок, ОбластьСтрока, ВыборкаДетали)   
    Пока ВыборкаДетали.Следующий() Цикл
        ЗаполнитьЗначенияСвойств(ОбластьСтрока.Параметры, ВыборкаДетали);
        ТабДок.Вывести(ОбластьСтрока, ВыборкаДетали.Уровень());
        ВыборкаРезультат = ВыборкаДетали.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
        РекурсивныйВыводСтрок(ТабДок, ОбластьСтрока, ВыборкаРезультат);
    КонецЦикла;
КонецПроцедуры
Вид макета mxl -
Найти количество записей в запросе


И вид конечного уже сохраненного файла xls -
Найти количество записей в запросе


Вам надо расширить колонки макета и изменить запрос.
1
Лютик23
1 / 1 / 0
Регистрация: 10.10.2018
Сообщений: 145
06.11.2018, 14:30  [ТС] 14
GreenkA, выводит только первую строчку
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Процедура ВыгрузитьШаблон(ВхСтрокаКонтрагент)
    
Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ВариантыИсполнения.Владелец КАК Номенклатура,
        |   ВариантыИсполнения.Ссылка КАК ВИ
        |   ИЗ
        |   Справочник.ВариантыИсполнения КАК ВариантыИсполнения
        |ГДЕ
        |   ВариантыИсполнения.ПометкаУдаления = ЛОЖЬ
        |   И ВариантыИсполнения.Владелец.ПометкаУдаления = ЛОЖЬ
        |   И ВариантыИсполнения.Владелец В ИЕРАРХИИ(&Номенклатура)
        |   И ВариантыИсполнения.Активность
        |   И ВариантыИсполнения.Владелец.Активность
        |   И ВариантыИсполнения.ТипВИ = ЗНАЧЕНИЕ(Перечисление.ТипыВариантовИсполнения.Стандартный)
        |
        |СГРУППИРОВАТЬ ПО
        |   ВариантыИсполнения.Владелец,
        |   ВариантыИсполнения.Ссылка
        |ИТОГИ ПО
        |   Номенклатура ИЕРАРХИЯ,
        |   ВИ";
                 Запрос.УстановитьПараметр("Номенклатура", НоменклатураИерархия.ВыгрузитьЗначения());   
        
       ВыборкаДетали = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);    
    
    ТабДок = Новый ТабличныйДокумент;
    
    Макет = ПолучитьМакет("Макет");
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьСтрока = Макет.ПолучитьОбласть("Тело");
    ТабДок.Вывести(ОбластьШапка);
    ТабДок.НачатьАвтогруппировкуСтрок();
    РекурсивныйВыводСтрок(ТабДок, ОбластьСтрока, ВыборкаДетали);
    ТабДок.ЗакончитьАвтогруппировкуСтрок();
    
    ТабДок.Записать("C:\Users\User\Desktop\1.xls", ТипФайлаТабличногоДокумента.XLS);
Добавлено через 48 секунд
Phil, каааак?туплю
0
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,784
06.11.2018, 14:30 15
Лютик23, у вас запрос другой, уберите группировки и итоги, оставьте, как у меня:
1C
1
2
3
    |УПОРЯДОЧИТЬ ПО
    |    Номенклатура ИЕРАРХИЯ
    |АВТОУПОРЯДОЧИВАНИЕ");
1
Лютик23
1 / 1 / 0
Регистрация: 10.10.2018
Сообщений: 145
06.11.2018, 14:35  [ТС] 16
GreenkA, все равно что то не то
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Процедура ВыгрузитьШаблон(ВхСтрокаКонтрагент)
    
Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ВариантыИсполнения.Владелец КАК Номенклатура,
        |   ВариантыИсполнения.Ссылка КАК ВИ
        |   ИЗ
        |   Справочник.ВариантыИсполнения КАК ВариантыИсполнения
        |ГДЕ
        |   ВариантыИсполнения.ПометкаУдаления = ЛОЖЬ
        |   И ВариантыИсполнения.Владелец.ПометкаУдаления = ЛОЖЬ
        |   И ВариантыИсполнения.Владелец В ИЕРАРХИИ(&Номенклатура)
        |   И ВариантыИсполнения.Активность
        |   И ВариантыИсполнения.Владелец.Активность
        |   И ВариантыИсполнения.ТипВИ = ЗНАЧЕНИЕ(Перечисление.ТипыВариантовИсполнения.Стандартный)
        |УПОРЯДОЧИТЬ ПО
    |    Номенклатура ИЕРАРХИЯ
    |АВТОУПОРЯДОЧИВАНИЕ";
         Запрос.УстановитьПараметр("Номенклатура", НоменклатураИерархия.ВыгрузитьЗначения());   
        
       ВыборкаДетали = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);    
    
    ТабДок = Новый ТабличныйДокумент;
    
    Макет = ПолучитьМакет("Макет");
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьСтрока = Макет.ПолучитьОбласть("Тело");
    ТабДок.Вывести(ОбластьШапка);
    ТабДок.НачатьАвтогруппировкуСтрок();
    РекурсивныйВыводСтрок(ТабДок, ОбластьСтрока, ВыборкаДетали);
    ТабДок.ЗакончитьАвтогруппировкуСтрок();
    
    ТабДок.Записать("C:\Users\User\Desktop\1.xls", ТипФайлаТабличногоДокумента.XLS);
0
Миниатюры
Найти количество записей в запросе  
Лютик23
1 / 1 / 0
Регистрация: 10.10.2018
Сообщений: 145
06.11.2018, 16:46  [ТС] 17
вот так есть группировка,но много пустых строк выводится почему то
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Процедура ВыгрузитьШаблон(ВхСтрокаКонтрагент)
    
Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ВариантыИсполнения.Владелец КАК Номенклатура,
        |   ВариантыИсполнения.Ссылка КАК ВИ
        |ИЗ
        |   Справочник.ВариантыИсполнения КАК ВариантыИсполнения
        |ГДЕ
        |   ВариантыИсполнения.ПометкаУдаления = ЛОЖЬ
        |   И ВариантыИсполнения.Владелец.ПометкаУдаления = ЛОЖЬ
        |   И ВариантыИсполнения.Владелец В ИЕРАРХИИ(&Номенклатура)
        |   И ВариантыИсполнения.Активность
        |   И ВариантыИсполнения.Владелец.Активность
        |   И ВариантыИсполнения.ТипВИ = ЗНАЧЕНИЕ(Перечисление.ТипыВариантовИсполнения.Стандартный)
        |
        |УПОРЯДОЧИТЬ ПО
        |   Номенклатура
        |ИТОГИ ПО
        |   Номенклатура,
        |   ВИ";
         Запрос.УстановитьПараметр("Номенклатура", НоменклатураИерархия.ВыгрузитьЗначения());   
        
       //ВыборкаДетали = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);    
    
    ТабДок = Новый ТабличныйДокумент;
        
    Макет = ПолучитьМакет("Макет");
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьСтрока = Макет.ПолучитьОбласть("Тело");
    ТабДок.Вывести(ОбластьШапка);
    ТабДок.НачатьАвтогруппировкуСтрок();
    ВыборкаДетали = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); 
   РекурсивныйВыводСтрок(ТабДок, ОбластьСтрока, ВыборкаДетали);
    ТабДок.ЗакончитьАвтогруппировкуСтрок();
                ТабДок.Показать();
    //ТабДок.Записать("C:\Users\User\Desktop\1.xls", ТипФайлаТабличногоДокумента.XLS);
0
Миниатюры
Найти количество записей в запросе  
Лютик23
1 / 1 / 0
Регистрация: 10.10.2018
Сообщений: 145
07.11.2018, 08:05  [ТС] 18
все нашла ошибку,макет неправильный был. Но теперь он выводит номенклатуру с одинаковыми вариантами исполнения,повторяющиеся.
Как исправить?
0
Лютик23
1 / 1 / 0
Регистрация: 10.10.2018
Сообщений: 145
07.11.2018, 08:45  [ТС] 19
вот так почему то
0
Миниатюры
Найти количество записей в запросе  
Лютик23
1 / 1 / 0
Регистрация: 10.10.2018
Сообщений: 145
07.11.2018, 09:35  [ТС] 20
Все исправила,теперь другая ошибка
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
Процедура ВыгрузитьШаблон(ВхСтрокаКонтрагент)
    
Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ВариантыИсполнения.Владелец КАК Номенклатура,
        |   ВариантыИсполнения.Ссылка КАК ВИ
        |ИЗ
        |   Справочник.ВариантыИсполнения КАК ВариантыИсполнения
        |ГДЕ
        |   ВариантыИсполнения.ПометкаУдаления = ЛОЖЬ
        |   И ВариантыИсполнения.Владелец.ПометкаУдаления = ЛОЖЬ
        |   И ВариантыИсполнения.Владелец В ИЕРАРХИИ(&Номенклатура)
        |   И ВариантыИсполнения.Активность
        |   И ВариантыИсполнения.Владелец.Активность
        |   И ВариантыИсполнения.ТипВИ = ЗНАЧЕНИЕ(Перечисление.ТипыВариантовИсполнения.Стандартный)
        |
        |СГРУППИРОВАТЬ ПО
        |   ВариантыИсполнения.Владелец,
        |   ВариантыИсполнения.Ссылка
        |ИТОГИ ПО
        |   Номенклатура ИЕРАРХИЯ
        |АВТОУПОРЯДОЧИВАНИЕ";
         Запрос.УстановитьПараметр("Номенклатура", НоменклатураИерархия.ВыгрузитьЗначения());   
        
       ВыборкаДетали = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);    
    
    ТабДок = Новый ТабличныйДокумент;
        
    Макет = ПолучитьМакет("Макет");
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьСтрока = Макет.ПолучитьОбласть("Тело");
    струк=Новый Структура;
    струк.Вставить("Код",ВхСтрокаКонтрагент.Контрагент.Код);
    струк.Вставить("Наименование",ВхСтрокаКонтрагент.Контрагент.Наименование);  
    струк.Вставить("Адрес",ВхСтрокаКонтрагент.Контрагент.Адрес);
    ОбластьШапка.Параметры.Заполнить(струк);
     ТабДок.Вывести(ОбластьШапка);
 
        ТабДок.НачатьАвтогруппировкуСтрок();
    
 
   РекурсивныйВыводСтрок(ТабДок,ОбластьСтрока,ВыборкаДетали);
    ТабДок.ЗакончитьАвтогруппировкуСтрок();
                ТабДок.Показать();
    //ТабДок.Записать("C:\Users\User\Desktop\1.xls", ТипФайлаТабличногоДокумента.XLS); 
 
КонецПроцедуры
Процедура РекурсивныйВыводСтрок(ТабДок, ОбластьСтрока, ВыборкаДетали)   
    Если НЕ глПустоеЗначение(ВыборкаДетали.ВИ) Тогда
        _Дополнительно = Новый Структура;
                _Дополнительно.Вставить("ВариантИсполнения",ВыборкаДетали.ВИ);
                _Дополнительно.Вставить("ЕдИзм",ВыборкаДетали.Номенклатура.БазоваяЕдИзм);
                _ШК = глСформироватьВнутреннийШтрихкод(ВыборкаДетали.Номенклатура,_Дополнительно);
                
        Пока ВыборкаДетали.Следующий() Цикл
          _Дополнительно = Новый Структура;
                _Дополнительно.Вставить("ВариантИсполнения",ВыборкаДетали.ВИ);
                _Дополнительно.Вставить("ЕдИзм",ВыборкаДетали.Номенклатура.БазоваяЕдИзм);
                _ШК = глСформироватьВнутреннийШтрихкод(ВыборкаДетали.Номенклатура,_Дополнительно);
        
                
    КонецЦикла;
    КонецЕсли;      
                
    Пока ВыборкаДетали.Следующий() Цикл
          _Дополнительно = Новый Структура;
                _Дополнительно.Вставить("ВариантИсполнения",ВыборкаДетали.ВИ);
                _Дополнительно.Вставить("ЕдИзм",ВыборкаДетали.Номенклатура.БазоваяЕдИзм);
                _ШК = глСформироватьВнутреннийШтрихкод(ВыборкаДетали.Номенклатура,_Дополнительно);
 
        ЗаполнитьЗначенияСвойств(ОбластьСтрока.Параметры, ВыборкаДетали);
        ТабДок.Вывести(ОбластьСтрока, ВыборкаДетали.Уровень());
        ВыборкаРезультат = ВыборкаДетали.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        РекурсивныйВыводСтрок(ТабДок, ОбластьСтрока, ВыборкаРезультат);
        
    КонецЦикла;
    
КонецПроцедуры
Значение не является значением объектного типа (БазоваяЕдИзм)
_Дополнительно.Вставить("ЕдИзм",ВыборкаДетали.Номенклатура.БазоваяЕдИзм);
0
07.11.2018, 09:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2018, 09:35

Определить количество записей в запросе
КАК это сделать? То есть, чтобы при выводе избранного количества записей выводилось 1, 2, 3 ......

Aceess количество записей в запросе
Как легче всего сделать вывод определенного пользователем количества записей в запрос? (Оператор...

Количество записей в запросе на добавление
Всем привет! Делаю базу данных: требуется создать форму для просмотра сотрудников и добавления...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru