Как вывести итог по колонке табличной части

Как сделать итог по колонке в 1С

Продолжаем изучать программирование в системе 1С Предприятие. Сегодня поговорим о том, как подсчитать итоги по колонке в табличной части. Нам нужно чтобы итог подсчитывался автоматически.

В предыдущих статья я рассказывал, как создать новый документ потом мы с вами написали пару процедур для автоматического подсчета суммы в табличной части. Теперь сделаем итог для этой колонки. Сегодня в примере я буду использовать тот же документ, который мы создали ранее. Поэтому советую вам ознакомиться с предыдущими статья, Создание документа, Подсчет итогов в строке табличной части.

Авто подсчёт итогов по колонке в табличной части 1С

И так преступим, запускаем 1С в режиме конфигуратора. Далее переходим в созданный ранее документ. Открываем его и переходим на вкладку формы и открываем её.

В окне формы нужно кликнуть два раза на табличную часть справа должно появиться окно свойств таблицы. В нем ищем пункт Подвал и ставим галочку.

После чего на форме в табличной части снизу должен появиться подвал.

Теперь на нужно чтобы в колонке Сумма подсчитывался итого. Для этого на вкладке Элементы ищем пункт с Название МатериалыСумма и кликаем на нем два раза. Справа появиться свойства поля в них ищем пункт
ТекстПодвала и вписываем Итого. А в пункте ПутьКДаннымПОдвала кликаем на три точечки.

В открывшемся окне нужно выбрать ИтогоСумма.

Теперь запускаем отладку и проверяем считается ли итог по колонке в табличной части документа.

Вот мы и сделали автоматический подсчет итогов по колонке. Таким образом можно подсчитать итого во всех колонках и в любых документах.

Скриншоты, опубликованные в данной статье, являются цитатами и иллюстрациями программного продукта «1C:Предприятие», авторское право на который принадлежит ЗАО 1С.

Источник

Итоги в табличной части с учетом отбора (управляемая форма)

Данная публикация навеяна ностальгией по отборам в конфигурациях на обычных формах (ЗУП2.5, УПП3.1 и т.п.), где в контекстном меню можно было отобраться по выделенному значению и получить итоги в подвале с учетом этого отбора.

В управляемых формах также есть отборы (Найти, найти в найденном), но к сожалению, итоги не зависят от отборов. Данная публикация — некий костыль, позволяющий создать подобный механизм.

Сразу оговорюсь, решение не оптимальное, комфортно работать можно только с табличными частями, где количество строк не более 1-2 тыс. (при отмене отбора загружается первоначальная таблица с приблизительной оценкой по 1 секунде на каждую тысячу строк)

Зато реализация достаточно простая, ниже код для документа Отражение зарплаты в бухучете из ЗУП 3.1:

В форме документа должен быть реквизит АдресХранилища (строка) и контекстные кнопки ОтборПоЗначениюТекущейКолонки и ОтключитьОтбор

&НаСервере
Процедура ОтборПоЗначениюВТекущейКолонкеНаСервере ( Ключ , Значение )

ОригиналТЗ = Объект . НачисленнаяЗарплатаИВзносы . Выгрузить ();
Структура = Новый Структура ( Ключ , Значение );
ТЗ = Объект . НачисленнаяЗарплатаИВзносы . Выгрузить ( Структура );
Объект . НачисленнаяЗарплатаИВзносы . Загрузить ( ТЗ );

Если АдресХранилища = «» Тогда
АдресХранилища = ПоместитьВоВременноеХранилище ( ОригиналТЗ , ЭтаФорма . УникальныйИдентификатор );
ИначеЕсли ТипЗнч ( ПолучитьИзВременногоХранилища ( АдресХранилища )) = Тип ( «Структура» )
Или ПолучитьИзВременногоХранилища ( АдресХранилища )= Неопределено Тогда
АдресХранилища = ПоместитьВоВременноеХранилище ( ОригиналТЗ , ЭтаФорма . УникальныйИдентификатор );
КонецЕсли;

&НаКлиенте
Процедура ОтборПоЗначениюВТекущейКолонке ( Команда )
ПолеОтбора = Прав ( Элементы . НачисленнаяЗарплатаИВзносы . ТекущийЭлемент . Имя , СтрДлина ( Элементы . НачисленнаяЗарплатаИВзносы . ТекущийЭлемент . Имя ) — СтрДлина ( ЭтаФорма . ТекущийЭлемент . Имя ));
ПолеОтбора = ?( ПолеОтбора = «Сотрудник» , «ФизическоеЛицо» , ПолеОтбора ); //В ЗУП3.1 док ОтражениеЗарплатыВБухучете Поле ввода НачисленнаяЗарплатаИВзносыСотрудник, хотя данные — физлицо
ОтборПоЗначениюВТекущейКолонкеНаСервере ( ПолеОтбора , Элементы . НачисленнаяЗарплатаИВзносы . ТекущиеДанные [ ПолеОтбора ]);

//Проверка на изменение ТЧ при отборе (призаписи и проведении)
&НаСервере
Процедура ПроверитьТаблицу ()
Оригинал = ПолучитьИзВременногоХранилища ( АдресХранилища );
Если ТипЗнч ( Оригинал ) = Тип ( «ТаблицаЗначений» ) И
Оригинал . Количество () <> Объект . НачисленнаяЗарплатаИВзносы . Количество () Тогда
Объект . НачисленнаяЗарплатаИВзносы . Загрузить ( Оригинал );
КонецЕсли;
КонецПроцедуры

//. стандартный код процедуры
КонецПроцедуры

//. стандартный код процедуры
КонецПроцедуры

//. стандартный код процедуры
КонецПроцедуры

Во вложении этот код в виде расширения для ЗУП3.1. Тестировалось на платформе 1С:Предприятие 8.3 (8.3.15.1778), Зарплата и управление персоналом КОРП, редакция 3.1 (3.1.10.309), тонкий клиент.

Источник

Итог в подвале по программно добавленой колонке для ТЧ объекта.

Типовой алгоритм добавляет программно колонки для ТЧ документа.

Если для добавляемого поля на форме сделать:

, то вываливается ошибка установки значения.

— работает в типовом коде.

Каким образом можно вывести итог по такой колонке в подвал?

(11) Ага) Итого в подвале считаются только по реквизитам ТЧ. Реквизиты данных форм автоматом не рассчитываются, над руками

Для сч = 1 По 12 Цикл

Элементы[«НачисленияЗначение» + сч].ТекстПодвала = Объект.Начисления.Итог(«Значение» + сч);

Напиши процедуру обновления итогов подвала и вперед)

В общем, в моем случае решилось вот таким образом.
Что делать в случае заполнения ТЧ дополнительной обработкой — остается вопросом.

При этом ПутьКДанным = «Объект.Начисления», НомерПоказателя = от 1 до 12

(4)Т.е. нужно создать еще один реквизит формы, в него каким-то образом присваивать значение итога и сделать

А это когда происходит?

(11) Ага) Итого в подвале считаются только по реквизитам ТЧ. Реквизиты данных форм автоматом не рассчитываются, над руками

Для сч = 1 По 12 Цикл

Элементы[«НачисленияЗначение» + сч].ТекстПодвала = Объект.Начисления.Итог(«Значение» + сч);

Напиши процедуру обновления итогов подвала и вперед)

В общем, в моем случае решилось вот таким образом.
Что делать в случае заполнения ТЧ дополнительной обработкой — остается вопросом.

Источник

Как выдавать в итоги по строкам таблицы ресурсы, отличные от ресурсов в колонках таблицы

Иногда возникает потребность вывести в таблице некоторые ресурсы только в итоге по строкам. Например, требуется вывести в колонках таблицы номенклатуру с указанием суммы оборота и суммы по количеству проданной номенклатуры, а в итоге по строке требуется видеть только итог по сумме.

Если просто добавить в настройки таблицу, и указать, что нужно выводить ресурсы Сумма оборот и Количество оборот,

то результат отчета будет следующим:

Контрагент 1С:Бухгалтерия 7.7 Стандартная версия 1С:Бухгалтерия ПРОФ версия 7.7 1С:Торговля и Склад 7.7 Проф Итого
Количество оборот Сумма оборот Количество оборот Сумма оборот Количество оборот Сумма оборот Количество оборот Сумма оборот
Алекс-2002 2,00 480,00 2,00 560,00 4,00 1 040,00
Завод РТИ 1,00 240,00 1,00 280,00 2,00 520,00
Русская одежда 1,00 120,00 1,00 140,00 2,00 260,00
Эльбрус 2,00 280,00 2,00 480,00 2,00 560,00 6,00 1 320,00
Итого 2,00 280,00 6,00 1 320,00 6,00 1 540,00 14,00 3 140,00

Для того чтобы итог по строке содержал только определенный ресурс, можно воспользоваться детальными записями, в которых выводятся только ресурсы (см. раздел «Особенности использования детальных записей»).

Для этого, добавим в колонки группировку без полей группировки:

Результат исполнения такого отчета:

Контрагент 1С:Бухгалтерия 7.7 Стандартная версия 1С:Бухгалтерия ПРОФ версия 7.7 1С:Торговля и Склад 7.7 Проф Итого
Количество оборот Сумма оборот Количество оборот Сумма оборот Количество оборот Сумма оборот Количество оборот Сумма оборот Количество оборот Сумма оборот
Алекс-2002 2,00 480,00 2,00 560,00 4,00 1 040,00 4,00 1 040,00
Завод РТИ 1,00 240,00 1,00 280,00 2,00 520,00 2,00 520,00
Русская одежда 1,00 120,00 1,00 140,00 2,00 260,00 2,00 260,00
Эльбрус 2,00 280,00 2,00 480,00 2,00 560,00 6,00 1 320,00 6,00 1 320,00
Итого 2,00 280,00 6,00 1 320,00 6,00 1 540,00 14,00 3 140,00 14,00 3 140,00

Мы добились того, что в правой части таблицы появился еще один итог по строке, в котором выводятся все ресурсы.

Нам требуется, чтобы в итоге по строке выводилось только поле «Сумма оборот», поэтому перейдем в выбранные поля только что добавленной нами группировки (в конструкторе схемы компоновки данных для этого нужно выделить группировку и переключить текущие редактируемые настройки на «Детальные записи»).

В выбранных полях нашей группировки добавим поле СуммаОборот, и удалим авто поле, т.к. мы точно знаем, какие поля нам нужны.

Результат такого отчета будет выглядеть так:

Контрагент 1С:Бухгалтерия 7.7 Стандартная версия 1С:Бухгалтерия ПРОФ версия 7.7 1С:Торговля и Склад 7.7 Проф Итого
Количество оборот Сумма оборот Количество оборот Сумма оборот Количество оборот Сумма оборот Количество оборот Сумма оборот Сумма оборот
Алекс-2002 2,00 480,00 2,00 560,00 4,00 1 040,00 1 040,00
Завод РТИ 1,00 240,00 1,00 280,00 2,00 520,00 520,00
Русская одежда 1,00 120,00 1,00 140,00 2,00 260,00 260,00
Эльбрус 2,00 280,00 2,00 480,00 2,00 560,00 6,00 1 320,00 1 320,00
Итого 2,00 280,00 6,00 1 320,00 6,00 1 540,00 14,00 3 140,00 3 140,00

Теперь, для того, чтобы итог по строке не выдавался два раза, уберем вывод общего итога из группировки Номенклатура. Для этого установим параметр вывода «Расположение общих итогов» в значение «Нет».

Источник

Читайте также:  Как подобрать наушники для самсунга
Оцените статью