База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как аккумулировать итоги по ГруппаВид в таблице значений в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 6 часов, 58 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
19 июня 2026 в 15:32 #37887
Если ВыборкаДетальныеЗаписи.ЮрФизЛицоУслуги = Перечисления.ЮрФизЛицо.ФизЛицо ИЛИ ВыборкаДетальныеЗаписи.ЮрФизЛицоТовары = Перечисления.ЮрФизЛицо.ФизЛицо Тогда
СтрокаГруппы.СуммаБезНДС_ФизЛица = СтрокаГруппы.СуммаБезНДС_ФизЛица + ВыборкаДетальныеЗаписи.СуммаБезНДС;
СтрокаГруппы.НДС_ФизЛица = СтрокаГруппы.НДС_ФизЛица + ВыборкаДетальныеЗаписи.НДС;
СтрокаГруппы.Сумма_ФизЛица = СтрокаГруппы.Сумма_ФизЛица + ВыборкаДетальныеЗаписи.Сумма;
СтрокаВидаГруппы.ИтогоСуммаБезНДС_ФизЛица = СтрокаВидаГруппы.ИтогоСуммаБезНДС_ФизЛица + ВыборкаДетальныеЗаписи.СуммаБезНДС;
СтрокаВидаГруппы.ИтогоНДС_ФизЛица = СтрокаВидаГруппы.ИтогоНДС_ФизЛица + ВыборкаДетальныеЗаписи.НДС;
СтрокаВидаГруппы.ИтогоСумма_ФизЛица = СтрокаВидаГруппы.ИтогоНДС_ФизЛица + ВыборкаДетальныеЗаписи.Сумма;
ИначеЕсли ВыборкаДетальныеЗаписи.ЮрФизЛицоУслуги = Перечисления.ЮрФизЛицо.ЮрЛицо ИЛИ ВыборкаДетальныеЗаписи.ЮрФизЛицоТовары = Перечисления.ЮрФизЛицо.ЮрЛицо Тогда
СтрокаГруппы.СуммаБезНДС_ЮрЛица = СтрокаГруппы.СуммаБезНДС_ЮрЛица + ВыборкаДетальныеЗаписи.СуммаБезНДС;
СтрокаГруппы.НДС_ЮрЛица = СтрокаГруппы.НДС_ЮрЛица + ВыборкаДетальныеЗаписи.НДС;
СтрокаГруппы.Сумма_ЮрЛица = СтрокаГруппы.Сумма_ЮрЛица + ВыборкаДетальныеЗаписи.Сумма;
СтрокаВидаГруппы.ИтогоСуммаБезНДС_ЮрЛица = СтрокаВидаГруппы.ИтогоСуммаБезНДС_ЮрЛица + ВыборкаДетальныеЗаписи.СуммаБезНДС;
СтрокаВидаГруппы.ИтогоНДС_ЮрЛица = СтрокаВидаГруппы.ИтогоНДС_ЮрЛица + ВыборкаДетальныеЗаписи.НДС;
СтрокаВидаГруппы.ИтогоСумма_ЮрЛица = СтрокаВидаГруппы.ИтогоСумма_ЮрЛица + ВыборкаДетальныеЗаписи.Сумма;
Конецесли;
КонецЕсли;
КонецЦикла;
как сделать так чтобы ИтогоНДС_ЮрЛица добавлялись в СтрокаВидаГруппы с соответствующим СтрокаВидаГруппы.ГруппаВид -
19 июня 2026 в 15:32 #37888
Нужно для накопления итогов по
СтрокаВидаГруппыс соответствующимГруппаВид— сначала найти или создать эту строку в таблице итогов по виду услуги, используя ключГруппаВид(составной из группы и вида услуги).Примерный алгоритм:
1. Формируете ключ
ГруппаВидиз текущих данных (например,Группа + "|" + ВидУслуги).
2. Пытаетесь найти строку в таблице итогов по виду услуги по этому ключу.
3. Если не нашли — добавляете новую строку и инициализируете поля.
4. Накопляете суммы в найденной/созданной строке.—
### Пример кода (фрагмент):
1С (Код)12345678910111213141516171819202122232425262728293031323334353637// Формируем ключ для строки вида группыКлючВидаГруппы = ГруппаСубконто.Группа + "|" + Строка(ВыборкаДетальныеЗаписи.ВидУслуги);// Пытаемся найти строку в таблице итогов по виду услугиСтрокаВидаГруппы = ТаблицаИтоговВидУслуги.Найти(КлючВидаГруппы, "ГруппаВид");Если СтрокаВидаГруппы = Неопределено Тогда// Если не нашли, добавляем новую строкуСтрокаВидаГруппы = ТаблицаИтоговВидУслуги.Добавить();СтрокаВидаГруппы.Группа = ГруппаСубконто.Группа;СтрокаВидаГруппы.ВидУслуги = ВыборкаДетальныеЗаписи.ВидУслуги;СтрокаВидаГруппы.ГруппаВид = КлючВидаГруппы;// Инициализация полейСтрокаВидаГруппы.ИтогоСуммаБезНДС_ФизЛица = 0;СтрокаВидаГруппы.ИтогоНДС_ФизЛица = 0;СтрокаВидаГруппы.ИтогоСумма_ФизЛица = 0;СтрокаВидаГруппы.ИтогоСуммаБезНДС_ЮрЛица = 0;СтрокаВидаГруппы.ИтогоНДС_ЮрЛица = 0;СтрокаВидаГруппы.ИтогоСумма_ЮрЛица = 0;КонецЕсли;// Накопление суммЕсли ВыборкаДетальныеЗаписи.ЮрФизЛицоУслуги = Перечисления.ЮрФизЛицо.ФизЛицоИЛИ ВыборкаДетальныеЗаписи.ЮрФизЛицоТовары = Перечисления.ЮрФизЛицо.ФизЛицо ТогдаСтрокаВидаГруппы.ИтогоСуммаБезНДС_ФизЛица = СтрокаВидаГруппы.ИтогоСуммаБезНДС_ФизЛица + ВыборкаДетальныеЗаписи.СуммаБезНДС;СтрокаВидаГруппы.ИтогоНДС_ФизЛица = СтрокаВидаГруппы.ИтогоНДС_ФизЛица + ВыборкаДетальныеЗаписи.НДС;СтрокаВидаГруппы.ИтогоСумма_ФизЛица = СтрокаВидаГруппы.ИтогоСумма_ФизЛица + ВыборкаДетальныеЗаписи.Сумма;ИначеЕсли ВыборкаДетальныеЗаписи.ЮрФизЛицоУслуги = Перечисления.ЮрФизЛицо.ЮрЛицоИЛИ ВыборкаДетальныеЗаписи.ЮрФизЛицоТовары = Перечисления.ЮрФизЛицо.ЮрЛицо ТогдаСтрокаВидаГруппы.ИтогоСуммаБезНДС_ЮрЛица = СтрокаВидаГруппы.ИтогоСуммаБезНДС_ЮрЛица + ВыборкаДетальныеЗаписи.СуммаБезНДС;СтрокаВидаГруппы.ИтогоНДС_ЮрЛица = СтрокаВидаГруппы.ИтогоНДС_ЮрЛица + ВыборкаДетальныеЗаписи.НДС;СтрокаВидаГруппы.ИтогоСумма_ЮрЛица = СтрокаВидаГруппы.ИтогоСумма_ЮрЛица + ВыборкаДетальныеЗаписи.Сумма;КонецЕсли;—
### Важные моменты:
— Таблица
ТаблицаИтоговВидУслугидолжна быть создана заранее с колонками:1С (Код)12345678910ТаблицаИтоговВидУслуги = Новый ТаблицаЗначений;ТаблицаИтоговВидУслуги.Колонки.Добавить("Группа", Новый ОписаниеТипов("Строка"));ТаблицаИтоговВидУслуги.Колонки.Добавить("ВидУслуги", Новый ОписаниеТипов("Строка"));ТаблицаИтоговВидУслуги.Колонки.Добавить("ГруппаВид", Новый ОписаниеТипов("Строка"));ТаблицаИтоговВидУслуги.Колонки.Добавить("ИтогоСуммаБезНДС_ФизЛица", Новый ОписаниеТипов("Число"));ТаблицаИтоговВидУслуги.Колонки.Добавить("ИтогоНДС_ФизЛица", Новый ОписаниеТипов("Число"));ТаблицаИтоговВидУслуги.Колонки.Добавить("ИтогоСумма_ФизЛица", Новый ОписаниеТипов("Число"));ТаблицаИтоговВидУслуги.Колонки.Добавить("ИтогоСуммаБезНДС_ЮрЛица", Новый ОписаниеТипов("Число"));ТаблицаИтоговВидУслуги.Колонки.Добавить("ИтогоНДС_ЮрЛица", Новый ОписаниеТипов("Число"));ТаблицаИтоговВидУслуги.Колонки.Добавить("ИтогоСумма_ЮрЛица", Новый ОписаниеТипов("Число"));— Используйте составной ключ
ГруппаВиддля поиска строки, чтобы не было конфликтов.—
Так вы аккумулируете суммы по
ГруппаВиди сможете потом использовать эти итоги.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.