1. Главная страница » Компьютеры

1С итог по столбцу

Автор: | 16.12.2019

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

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

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

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

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

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

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

1С:Бухгалтерия 7.7 Стандартная версия 1С:Торговля и Склад 7.7 Проф Количество оборот Количество оборот Количество оборот Количество оборот Количество оборот Алекс-2002 480,00 560,00 1 040,00 1 040,00
1,00 1,00 2,00 2,00 Русская одежда 120,00 140,00 260,00 260,00
2,00 2,00 2,00 6,00 6,00 Итого 280,00 1 320,00 1 540,00 3 140,00 3 140,00
Читайте также:  Epson l210 картриджи не распознаны

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

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

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

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

1С:Бухгалтерия 7.7 Стандартная версия 1С:Торговля и Склад 7.7 Проф Количество оборот Количество оборот Количество оборот Количество оборот Сумма оборот
2,00 2,00 4,00 1 040,00
1,00 1,00 2,00 520,00
1,00 1,00 2,00 260,00
2,00 2,00 2,00 6,00 1 320,00
2,00 6,00 6,00 14,00 3 140,00

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

user1c
19.01.2011 02:58

Прочитано: 59964
В форме таблица СписокНоменклатуры с полями: Номенклатура, Количество, Цена, Сумма. Поле надписи СуммаПоДокументу, данные: Объект.СуммаПоДокументу
При расчете суммы по колонке "Сумма" в таблице формы использую следующий код (1С 8.2):

Все работает хорошо, но при добавлении копированием выбранной строки (F9) в первый случай копирования значение Объект.СуммаПоДокументу не обновляется. В дальнейшем расчет идет без данных этой строки. Последующее использование F9 (несколько раз) для любой строки вызывает пересчет за исключением бедной строки. При добавлении строки стандартным способом (ins) и вводе значений — расчет получается правильный. Если добавить копированием (F9) – опять появляется неучтенная в итогах сумма для новой строки.
Рассмотрел значения полей по шагам. В процедуру
Код 1C v 8.2 УП
Передается элемент с типом ТаблицаФормы с новой строкой с нулевыми значениями, установлено значение только в поле НомерСтроки:
Элемент.ТекущиеДанные.НомерСтроки

Вопрос знатокам: это глюк системы или можно обойтись другими программными средствами? Например отслеживать F9 и вызывать функцию РсчетСуммыПоДокументу()

Спасибо.

Yandex
Возможно, вас также заинтересует
bugor666
19.01.2011 08:40

Ответ № 1
(0) user1c, конечно проще отследить F9. А при добавлении строки не копированием все работает?
E_Migachev
19.01.2011 09:41

Ответ № 2
(0) а если копировать через кнопочку — считает?
snfr1c
19.01.2011 10:45

Ответ № 3
(1) мне кажется необходимо добавить расчет итоговой суммы в процедуру ПриВыводеСтроки
user1c
19.01.2011 11:12

Ответ № 4
Повторюсь — проблема только при первом случае использования в таблице формы добавления строки копированием (при нажатии кнопки или F9 — одинаковый эффект). При последующем добавлении строки копированием считает все, кроме данных той строки, которая получилась при первом копировании. Если добавить строки обычным интерактивным способом (кнопка добавить или Ins) — считает правильно. Потом при добавлении строки копированием вся история с данными вновь полученной строки (только при первом добавлении) повторяется. Скорее всего — это глюк системы.
Как правильно рассчитать сумму по документу из табличной части, ведь пользователь может использовать добавление строки копированием?
user1c
19.01.2011 11:25

Ответ № 5
Для snfr1c:
Что такое процедура ПриВыводеСтроки?
Напомню:
1С 8.2. ТаблицаФормы. Отслеживаю изменения в:
Код 1C v 8.2 УП
Для ТаблицаФормы события:

Выбор (S_election)
ВыборЗначения (ValueChoice)
НачалоПеретаскивания (DragStart)
ОбработкаВыбора (ChoiceProcessing)
ОбработкаЗаписиНового (NewWriteProcessing)
ОкончаниеПеретаскивания (DragEnd)
ПередНачаломДобавления (BeforeAddRow)
ПередНачаломИзменения (BeforeRowChange)
ПередОкончаниемРедактирования (BeforeEditEnd)
ПередРазворачиванием (BeforeExpand)
ПередСворачиванием (BeforeCollapse)
ПередУдалением (BeforeDeleteRow)
Перетаскивание (Drag)
ПослеУдаления (AfterDeleteRow)
ПриАктивизацииПоля (OnActivateField)
ПриАктивизацииСтроки (OnActivateRow)
ПриАктивизацииЯчейки (OnActivateCell)
ПриИзменении (OnChange)
ПриНачалеРедактирования (OnStartEdit)
ПриОкончанииРедактирования (OnEditEnd)
ПриСменеТекущегоРодителя (OnCurrentParentChange)
ПроверкаПеретаскивания (DragCheck)

Синтаксис-помошник вам в помощь!
Если у Вас своя процедура — поделитесь, пожалуйста.
Спасибо.

snfr1c
19.01.2011 13:24

Ответ № 6
прошу прощения опечатался процедура "ПриВыводеСтроки" находится в поле ТабличноеПоле в разделе "события". она как раз этим и занимается — пересчетом и перерисовкой значений итоговых сумм в таблице
snfr1c
19.01.2011 13:26

Ответ № 7
также можно добавить РасчетСуммыПоДокументу() в процедуры СписокНоменклатурыКоличествоПриИзменении(Элемент)
СписокНоменклатурыЦенаПриИзменении(Элемент)
snfr1c
19.01.2011 13:44

Ответ № 8
вот пример:
Код 1C v 8.х
user1c
19.01.2011 14:42

Ответ № 9
Для snfr1c:
Спасибо, не получается. 1С 8.2. У Вас пример для 8.1. Не смог сделать.

Разбирал глюки системы:
В табличном поле установим флаг «Подвал».
В 1С 8.0 в табличном поле для колонки можно было установить флаг «Показывать итог в подвале». В 1С 8.2 такого нет. Приходится указывать для реквизита «СписокНоменклатурыСумма» путь к данным подвала «Объект.СписокНоменклатуры.ИтогСумма». Для наглядности в окне редактирования формы в правом верхнем углу (в окне реквизитов формы) раскроем основной реквизит формы «Объект», потом раскроем «СписокНоменклатуры». Мышкой «схватим» элемент «ИтогСумма» и перетащим в окно элементов формы (левая верхняя часть окна редактирования формы). Получим поле надписи «СписокНоменклатурыИтогСумма», а на форме надпись «Сумма (итог):». При этом, остается пустым свойство «Заголовок» поля надписи «СписокНоменклатурыИтогСумма».

Для устойчивости добавим процедуру:

В результате на форме отображаются два поля надписи:
«Сумма по документу»,
«Сумма (итог):».
При изменении данных в таблице происходит пересчет суммы, отображаются одинаковые данные. Но если добавить новый элемент копированием текущего (кнопкой или F9), то в подвале таблицы и в поле «Сумма (итог):» отображаются правильные данные, а в поле «Сумма по документу» — нет.
Не получается получить значение (текст) из Элементы.СписокНоменклатурыИтогСумма.

ПОМОГИТЕ правильно рассчитать сумму документа!
Спасибо.

user1c
19.01.2011 14:54

Ответ № 10
Напомню: управляемая форма 1С 8.2, внешний вид:
Скачивать файлы может только зарегистрированный пользователь!
user1c
19.01.2011 15:38

Ответ № 11
В результате долгих мучений сам нашел правильное решение.
Да, в 1С 8.2 пока есть глюк с расчетом при копировании текущего элемента (кнопкой или F9). С этим надо смириться и учитывать при работе.
Решение проблемы:
На форме не показывать поле из объекта, рассчитываемое суммированием записей таблицы, например для документа «ПриходнаяНакладная» реквизит «СуммаПоДокументу», а показывать поле надписи «СписокНоменклатурыИтогСумма» (выше подробно описал, как его отобразить).
Отслеживаем событие для формы «ПередЗаписью»:
Код 1C v 8.2 УП

Для дальнейших расчетов в документе «ПриходнаяНакладная» реквизит «СуммаПоДокументу» будет показывать правильное значение.

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

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

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

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

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

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

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

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *