Аватар для felicita_091
8 / 8 / 2
Регистрация: 24.10.2012
Сообщений: 430
1C 8.x

Сложение строк

27.06.2014, 10:52. Показов 15982. Ответов 47
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сложить таблицу значений по строкам?
Миниатюры
Сложение строк  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.06.2014, 10:52
Ответы с готовыми решениями:

Сложение строк
Есть программа которая должна складывать строки(не надо мне говорить про функцию Concat). Вводные данные str1:='11111111111111111111' ...

Сложение строк
есть две строки вида 00:00:000 нужно сложить их, при чем если 01 + 02 то должно быть не 3, а 03

Сложение строк
Как сложить 2 строки по символьно ?

47
 Аватар для felicita_091
8 / 8 / 2
Регистрация: 24.10.2012
Сообщений: 430
27.06.2014, 14:47  [ТС]
Студворк — интернет-сервис помощи студентам
GreenkO, прости
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
Для Н=1 по ТЗМен.Количество() Цикл                
            НаименованиеКолонки = "КолМенедж" +Н;
            СтруктураПараметровСтроки1 = Новый Структура;
            СтруктураПараметровСтроки1.Вставить("Сумма",  СтрокаТзМенОтгр[НаименованиеКолонки]);
            Если  ТзМенОтгр.Итог(НаименованиеКолонки) = 0  Тогда 
                СтруктураПараметровСтроки1.Вставить("Процент", "0%");
            Иначе 
                СтруктураПараметровСтроки1.Вставить("Процент", Формат((СтрокаТзМенОтгр[НаименованиеКолонки]/ТзМенОтгр.Итог(НаименованиеКолонки))*100,"ЧЦ=16; ЧДЦ=2; ЧН=Ноль")+"%");
            КонецЕсли;
            СтрокаМакета1 = Макет.ПолучитьОбласть("Строка | КолМен");
            СтрокаМакета1.Параметры.Заполнить(СтруктураПараметровСтроки1);
            Таб.Присоединить(СтрокаМакета1); 
        КонецЦикла;
 
        
        СтруктураПараметровСтроки = Новый Структура;
        СтруктураПараметровСтроки.Вставить("СуммаБрен", СтрокаТзМенОтгр.СуммаСтрок);
        Если  ТзМенОтгр.Итог(НаименованиеКолонки) = 0  Тогда 
            СтруктураПараметровСтроки.Вставить("ПроцентБренд", "0%");
        Иначе 
            СтруктураПараметровСтроки.Вставить("ПроцентБренд", Формат((СтрокаТзМенОтгр.СуммаСтрок/СтрокаТзМенОтгр.СуммаСтрок)*100,"ЧЦ=16; ЧДЦ=2; ЧН=Ноль")+"%");
        КонецЕсли;
        СтрокаМакета = Макет.ПолучитьОбласть("Строка | СумМен");
        СтрокаМакета.Параметры.Заполнить(СтруктураПараметровСтроки);
        Таб.Присоединить(СтрокаМакета);
Миниатюры
Сложение строк  
0
Эксперт 1С
 Аватар для GreenkA
3066 / 2013 / 526
Регистрация: 25.06.2009
Сообщений: 6,964
27.06.2014, 14:57
felicita_091, т.е. ты считаешь, что так куда понятнее?
где описание задачи?
где весь код?
Откуда это СтрокаТзМенОтгр, где ты вообще вывод в табдок начинаешь...
0
 Аватар для felicita_091
8 / 8 / 2
Регистрация: 24.10.2012
Сообщений: 430
27.06.2014, 15:01  [ТС]
GreenkO,
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
Таб = Новый ТабличныйДокумент;
    Таб.АвтоМасштаб = Истина;
    Таб.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
    Макет = ПолучитьМакет("БрендыИМенеджеры");
 
    СтруктураПараметровЗаголовки = Новый Структура;
    СтруктураПараметровЗаголовки.Вставить("НачДата", Формат(НачалоМесяца(НачДата),"ДФ=dd.MM.yyyy"));
    СтруктураПараметровЗаголовки.Вставить("КонДата", Формат(КонецМесяца(КонДата),"ДФ=dd.MM.yyyy"));
    ЗаголовокМакета = Макет.ПолучитьОбласть("Заголовок");
    ЗаголовокМакета.Параметры.Заполнить(СтруктураПараметровЗаголовки);
    Таб.Вывести(ЗаголовокМакета);
 
    ШапкаМакета = Макет.ПолучитьОбласть("Шапка |КолБренд");
    Таб.Вывести(ШапкаМакета);
    
    //******************Формируем менеджер**************
    ТзМен = Новый ТаблицаЗначений;
    ТзМен.Колонки.Добавить("Менеджер");
    
    БренМен = Справочники.Менеджеры.Выбрать();
    
    Пока БренМен.Следующий() Цикл
        СтрокаТЗ = ТзМен.Добавить();   
        СтрокаТЗ.Менеджер = БренМен.Ссылка;
    КонецЦикла;
 
    Если Режим Тогда Сообщить("***Формируем Менеджер***") КонецЕсли;
    //Если Режим Тогда Сообщить(БренМен) КонецЕсли;
 
    Для Каждого СтрокаТЗМен из ТЗМен Цикл
 
        ТекстКолонки =  СтрокаТЗМен.Менеджер.Ссылка.Наименование;
        СтруктураПараметровШапки = Новый Структура;
        СтруктураПараметровШапки.Очистить();
        СтруктураПараметровШапки.Вставить("Менеджер", ТекстКолонки);
        ШапкаМакета = Макет.ПолучитьОбласть("Шапка | КолМен");
        ШапкаМакета.Параметры.Заполнить(СтруктураПараметровШапки);   
        Таб.Присоединить(ШапкаМакета);
        
        Если Режим Тогда Сообщить(СтрокаТЗМен.Менеджер.Ссылка.Наименование) КонецЕсли;
     КонецЦикла;
 
     //****************************************************************
    Если Режим Тогда Сообщить("***Заполняем строки таблицы***") КонецЕсли;
 
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |   ОтгрузкаТМЦ.Регистратор,
        |   ОтгрузкаТМЦ.ТМЦ,
        |   ОтгрузкаТМЦ.СуммаВсего,
        |   ОтгрузкаТМЦ.Период
        |ИЗ
        |   РегистрНакопления.ОтгрузкаТМЦ КАК ОтгрузкаТМЦ
        |ГДЕ
        |   ОтгрузкаТМЦ.Период МЕЖДУ &ДатаНач И &ДатаКон"; 
                    
    Запрос.УстановитьПараметр("ДатаНач",НачалоМесяца(НачДата));            
    Запрос.УстановитьПараметр("ДатаКон",КонецМесяца(КонДата));
        
    Результат = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    
    ТзМенОтгр = Новый ТаблицаЗначений;
    ТзМенОтгр.Колонки.Добавить("Бренды");                           
    ТзМенОтгр.Колонки.Добавить("ГруппаБренды");
    ТзМенОтгр.Колонки.Добавить("СуммаСтрок");
    КолонкиСуммирования = "";
    
    
    Для Н=1 по ТЗМен.Количество() Цикл
            ТзМенОтгр.Колонки.Добавить("КолМенедж"+Н);
            КолонкиСуммирования = КолонкиСуммирования  + ",КолМенедж" + Н;  
    КонецЦикла;
    КолонкиСуммирования = Прав(КолонкиСуммирования,СтрДлина(КолонкиСуммирования)-1);
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        СтрокаТзМенОтгр = ТзМенОтгр.Добавить();
        СтрокаТзМенОтгр.Бренды  = ВыборкаДетальныеЗаписи.ТМЦ.КлассификаторТМЦ;
        СтрокаТзМенОтгр.ГруппаБренды  = ВыборкаДетальныеЗаписи.ТМЦ.КлассификаторТМЦ.Родитель;
        Для Н=1 по ТЗМен.Количество() Цикл
            ТекМен = ТзМен.Получить(Н-1);
            НаименованиеКолонки = "КолМенедж"+Н;
            Если ТекМен.Менеджер=ВыборкаДетальныеЗаписи.Регистратор.Ссылка.Менеджер  Тогда
                СтрокаТзМенОтгр[НаименованиеКолонки] = ВыборкаДетальныеЗаписи.СуммаВсего;
                СтрокаТзМенОтгр.СуммаСтрок = ВыборкаДетальныеЗаписи.СуммаВсего;
            Иначе 
                СтрокаТзМенОтгр[НаименованиеКолонки] = 0;
            КонецЕсли;  
        КонецЦикла;   
    КонецЦикла;
        
    ТзМенОтгр.Свернуть("Бренды,ГруппаБренды",КолонкиСуммирования + ",СуммаСтрок");
    ТзМенОтгр.Сортировать("ГруппаБренды,Бренды");
    
    Элементыформы.ТабМен.Значение=ТзМенОтгр;
    Элементыформы.ТабМен.СоздатьКолонки();
    Элементыформы.ТабМен.ОбновитьСтроки();
    
 
    СуммаМакета = Макет.ПолучитьОбласть("Сумма |КолБренд");
    Таб.Вывести(СуммаМакета);
    
    Для Н=1 по ТЗМен.Количество() Цикл
        НаименованиеКолонки = "КолМенедж" +Н;
        СтруктураПараметровСтроки = Новый Структура;
        СтруктураПараметровСтроки.Вставить("СуммаВсего",  ТзМенОтгр.Итог(НаименованиеКолонки));
        Если  ТзМенОтгр.Итог(НаименованиеКолонки) = 0  Тогда 
            СтруктураПараметровСтроки.Вставить("Проц", "0%");
        Иначе 
            СтруктураПараметровСтроки.Вставить("Проц", Формат((ТзМенОтгр.Итог(НаименованиеКолонки)/ТзМенОтгр.Итог(НаименованиеКолонки))*100,"ЧЦ=16; ЧН=Ноль")+"%");
        КонецЕсли;
        СтрокаМакета = Макет.ПолучитьОбласть("Сумма | КолМен");
        СтрокаМакета.Параметры.Заполнить(СтруктураПараметровСтроки);
        Таб.Присоединить(СтрокаМакета);
    КонецЦикла;
    
        Для Каждого СтрокаТзМенОтгр Из ТзМенОтгр   Цикл 
        СтруктураПараметровСтроки = Новый Структура;
        СтруктураПараметровСтроки.Вставить("ГрупБренд", СтрокаТзМенОтгр.ГруппаБренды);
        СтруктураПараметровСтроки.Вставить("Бренд",  СтрокаТзМенОтгр.Бренды);
        СтрокаМакета = Макет.ПолучитьОбласть("Строка | КолБренд");
        СтрокаМакета.Параметры.Заполнить(СтруктураПараметровСтроки);
        Таб.Вывести(СтрокаМакета);
                
        Для Н=1 по ТЗМен.Количество() Цикл                
            НаименованиеКолонки = "КолМенедж" +Н;
            СтруктураПараметровСтроки1 = Новый Структура;
            СтруктураПараметровСтроки1.Вставить("Сумма",  СтрокаТзМенОтгр[НаименованиеКолонки]);
            Если  ТзМенОтгр.Итог(НаименованиеКолонки) = 0  Тогда 
                СтруктураПараметровСтроки1.Вставить("Процент", "0%");
            Иначе 
                СтруктураПараметровСтроки1.Вставить("Процент", Формат((СтрокаТзМенОтгр[НаименованиеКолонки]/ТзМенОтгр.Итог(НаименованиеКолонки))*100,"ЧЦ=16; ЧДЦ=2; ЧН=Ноль")+"%");
            КонецЕсли;
            СтрокаМакета1 = Макет.ПолучитьОбласть("Строка | КолМен");
            СтрокаМакета1.Параметры.Заполнить(СтруктураПараметровСтроки1);
            Таб.Присоединить(СтрокаМакета1); 
        КонецЦикла;
        
        СтруктураПараметровСтроки = Новый Структура;
        СтруктураПараметровСтроки.Вставить("СуммаБрен", СтрокаТзМенОтгр.СуммаСтрок);
        Если  ТзМенОтгр.Итог(НаименованиеКолонки) = 0  Тогда 
            СтруктураПараметровСтроки.Вставить("ПроцентБренд", "0%");
        Иначе 
            СтруктураПараметровСтроки.Вставить("ПроцентБренд", Формат((ТзМенОтгр.Итог(НаименованиеКолонки)/СтрокаТзМенОтгр.СуммаСтрок),"ЧЦ=16; ЧДЦ=2; ЧН=Ноль")+"%");
        КонецЕсли;
        СтрокаМакета = Макет.ПолучитьОбласть("Строка | СумМен");
        СтрокаМакета.Параметры.Заполнить(СтруктураПараметровСтроки);
        Таб.Присоединить(СтрокаМакета);
 
        
    КонецЦикла;
0
Эксперт 1С
 Аватар для GreenkA
3066 / 2013 / 526
Регистрация: 25.06.2009
Сообщений: 6,964
27.06.2014, 15:21
felicita_091, где текст задачи?? описание?
ох... почему я должна разбираться, что тебе нужно вывести по твоему коду? расписала бы нормально какие где проценты и как должны рассчитываться. считаем проценты по всем менеджерам или по итогу по каждому?
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
   //здесь ты выводишь итоговый процент по всей таблице, так?? где для каждого менеджера процент = Итог по колонке / Итог по сумме строк.
    Для Н=1 по ТЗМен.Количество() Цикл
        НаименованиеКолонки = "КолМенедж" +Н;
        СтруктураПараметровСтроки = Новый Структура;
        СтруктураПараметровСтроки.Вставить("СуммаВсего",  ТзМенОтгр.Итог(НаименованиеКолонки));
        Если  ТзМенОтгр.Итог(НаименованиеКолонки) = 0  Тогда 
            СтруктураПараметровСтроки.Вставить("Проц", "0%");
        Иначе 
//что ты тут получить собиралась - без понятия, 100% у тебя будет, всегда
//            СтруктураПараметровСтроки.Вставить("Проц", Формат((ТзМенОтгр.Итог(НаименованиеКолонки)/ТзМенОтгр.Итог(НаименованиеКолонки))*100,"ЧЦ=16; ЧН=Ноль")+"%");
 
//возможно... меняем эту строку
            СтруктураПараметровСтроки.Вставить("Проц", Формат((ТзМенОтгр.Итог(НаименованиеКолонки)/ТзМенОтгр.Итог("СуммаСтрок"))*100,"ЧЦ=16; ЧН=Ноль")+"%");
        КонецЕсли;
        СтрокаМакета = Макет.ПолучитьОбласть("Сумма | КолМен");
        СтрокаМакета.Параметры.Заполнить(СтруктураПараметровСтроки);
        Таб.Присоединить(СтрокаМакета);
    КонецЦикла;
 
//здесь ты обходишь каждую строку
        Для Каждого СтрокаТзМенОтгр Из ТзМенОтгр   Цикл 
        СтруктураПараметровСтроки = Новый Структура;
        СтруктураПараметровСтроки.Вставить("ГрупБренд", СтрокаТзМенОтгр.ГруппаБренды);
        СтруктураПараметровСтроки.Вставить("Бренд",  СтрокаТзМенОтгр.Бренды);
        СтрокаМакета = Макет.ПолучитьОбласть("Строка | КолБренд");
        СтрокаМакета.Параметры.Заполнить(СтруктураПараметровСтроки);
        Таб.Вывести(СтрокаМакета);
                
        Для Н=1 по ТЗМен.Количество() Цикл                 
            НаименованиеКолонки = "КолМенедж" +Н;
            СтруктураПараметровСтроки1 = Новый Структура;
            СтруктураПараметровСтроки1.Вставить("Сумма",  СтрокаТзМенОтгр[НаименованиеКолонки]);
            Если  ТзМенОтгр.Итог(НаименованиеКолонки) = 0  Тогда 
                СтруктураПараметровСтроки1.Вставить("Процент", "0%");
            Иначе 
//процент для каждого менеджера = значение текущей колонки/итог по текущей колонке, точно?    
                СтруктураПараметровСтроки1.Вставить("Процент", Формат((СтрокаТзМенОтгр[НаименованиеКолонки]/ТзМенОтгр.Итог(НаименованиеКолонки))*100,"ЧЦ=16; ЧДЦ=2; ЧН=Ноль")+"%");
            КонецЕсли;
            СтрокаМакета1 = Макет.ПолучитьОбласть("Строка | КолМен");
            СтрокаМакета1.Параметры.Заполнить(СтруктураПараметровСтроки1);
            Таб.Присоединить(СтрокаМакета1);    
        КонецЦикла;
        
        СтруктураПараметровСтроки = Новый Структура;
        СтруктураПараметровСтроки.Вставить("СуммаБрен", СтрокаТзМенОтгр.СуммаСтрок);
        Если  ТзМенОтгр.Итог(НаименованиеКолонки) = 0  Тогда 
            СтруктураПараметровСтроки.Вставить("ПроцентБренд", "0%");
        Иначе 
//это что??? вообще не понимаю эту конструкцию.
            СтруктураПараметровСтроки.Вставить("ПроцентБренд", Формат((ТзМенОтгр.Итог(НаименованиеКолонки)/СтрокаТзМенОтгр.СуммаСтрок),"ЧЦ=16; ЧДЦ=2; ЧН=Ноль")+"%");
        КонецЕсли;
        СтрокаМакета = Макет.ПолучитьОбласть("Строка | СумМен");
        СтрокаМакета.Параметры.Заполнить(СтруктураПараметровСтроки);
        Таб.Присоединить(СтрокаМакета);
 
        
    КонецЦикла;
0
 Аватар для felicita_091
8 / 8 / 2
Регистрация: 24.10.2012
Сообщений: 430
27.06.2014, 15:31  [ТС]
GreenkO, все спасибо, я уже разобралась)) прости..
0
 Аватар для duk337
2956 / 1768 / 84
Регистрация: 03.11.2011
Сообщений: 8,280
27.06.2014, 17:31
Цитата Сообщение от felicita_091 Посмотреть сообщение
только руками
тогда придётся ведь и голову включать. Всё будет зависеть от алгоритма в целом, начиная с запроса и заканчивая построением вертикальных и горизонтальных областей макета. Т.о, помощь будет заключаться в отчете от и до.
Я не готов.
Может, кто другой.
0
 Аватар для felicita_091
8 / 8 / 2
Регистрация: 24.10.2012
Сообщений: 430
27.06.2014, 17:38  [ТС]
duk337, спасибо за подсказку, но у меня все получилось)
0
27.06.2014, 17:41

Не по теме:

ух ты! Растём!! :good:

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.06.2014, 17:41

Сложение строк!
Подскажите как сделать действие??? Сложение процедуры +(кол материала* цену матер+кол материала*цену)=ответ

Сложение строк
Добрый день! Есть три таблицы: В первой, 4тыре столбика, название строки "Т1" (текстовый) и три аргумента x, y, z...

сложение строк
пишу программу для сложения двух строк в одну, но в консоли просто какие-то 3 символа рандомных выводит, английские строки тоже пробовал,...

Сложение строк в Си
Добрый день. Пытаюсь решить другим способом (чтобы было короче) задачу по марио в cs50. Добрые люди помогли по функции printf. Сейчас завис...

Сложение строк
смысл программы: вводим с клавиатуры строки....они запихиваются в вектор, когда мы прекращаем ввод они суммируются алгоритмом accumulate()...


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

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

Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru