Иногда возникает потребность вывести в таблице некоторые ресурсы только в итоге по строкам. Например, требуется вывести в колонках таблицы номенклатуру с указанием суммы оборота и суммы по количеству проданной номенклатуры, а в итоге по строке требуется видеть только итог по сумме.
Если просто добавить в настройки таблицу, и указать, что нужно выводить ресурсы Сумма оборот и Количество оборот,
то результат отчета будет следующим:
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 |
Мы добились того, что в правой части таблицы появился еще один итог по строке, в котором выводятся все ресурсы.
Нам требуется, чтобы в итоге по строке выводилось только поле "Сумма оборот", поэтому перейдем в выбранные поля только что добавленной нами группировки (в конструкторе схемы компоновки данных для этого нужно выделить группировку и переключить текущие редактируемые настройки на "Детальные записи").
В выбранных полях нашей группировки добавим поле СуммаОборот, и удалим авто поле, т.к. мы точно знаем, какие поля нам нужны.
Результат такого отчета будет выглядеть так:
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 |
---|
Прочитано: 59964 |
При расчете суммы по колонке "Сумма" в таблице формы использую следующий код (1С 8.2):
Все работает хорошо, но при добавлении копированием выбранной строки (F9) в первый случай копирования значение Объект.СуммаПоДокументу не обновляется. В дальнейшем расчет идет без данных этой строки. Последующее использование F9 (несколько раз) для любой строки вызывает пересчет за исключением бедной строки. При добавлении строки стандартным способом (ins) и вводе значений — расчет получается правильный. Если добавить копированием (F9) – опять появляется неучтенная в итогах сумма для новой строки.
Рассмотрел значения полей по шагам. В процедуру
Код 1C v 8.2 УП
Передается элемент с типом ТаблицаФормы с новой строкой с нулевыми значениями, установлено значение только в поле НомерСтроки:
Элемент.ТекущиеДанные.НомерСтроки
Вопрос знатокам: это глюк системы или можно обойтись другими программными средствами? Например отслеживать F9 и вызывать функцию РсчетСуммыПоДокументу()
Спасибо.
Yandex |
---|
Возможно, вас также заинтересует |
bugor666 |
---|
Ответ № 1 |
E_Migachev |
---|
Ответ № 2 |
snfr1c |
---|
Ответ № 3 |
user1c |
---|
Ответ № 4 |
Как правильно рассчитать сумму по документу из табличной части, ведь пользователь может использовать добавление строки копированием?
user1c |
---|
Ответ № 5 |
Что такое процедура ПриВыводеСтроки?
Напомню:
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 |
---|
Ответ № 6 |
snfr1c |
---|
Ответ № 7 |
СписокНоменклатурыЦенаПриИзменении(Элемент)
snfr1c |
---|
Ответ № 8 |
Код 1C v 8.х
user1c |
---|
Ответ № 9 |
Спасибо, не получается. 1С 8.2. У Вас пример для 8.1. Не смог сделать.
Разбирал глюки системы:
В табличном поле установим флаг «Подвал».
В 1С 8.0 в табличном поле для колонки можно было установить флаг «Показывать итог в подвале». В 1С 8.2 такого нет. Приходится указывать для реквизита «СписокНоменклатурыСумма» путь к данным подвала «Объект.СписокНоменклатуры.ИтогСумма». Для наглядности в окне редактирования формы в правом верхнем углу (в окне реквизитов формы) раскроем основной реквизит формы «Объект», потом раскроем «СписокНоменклатуры». Мышкой «схватим» элемент «ИтогСумма» и перетащим в окно элементов формы (левая верхняя часть окна редактирования формы). Получим поле надписи «СписокНоменклатурыИтогСумма», а на форме надпись «Сумма (итог):». При этом, остается пустым свойство «Заголовок» поля надписи «СписокНоменклатурыИтогСумма».
Для устойчивости добавим процедуру:
В результате на форме отображаются два поля надписи:
«Сумма по документу»,
«Сумма (итог):».
При изменении данных в таблице происходит пересчет суммы, отображаются одинаковые данные. Но если добавить новый элемент копированием текущего (кнопкой или F9), то в подвале таблицы и в поле «Сумма (итог):» отображаются правильные данные, а в поле «Сумма по документу» — нет.
Не получается получить значение (текст) из Элементы.СписокНоменклатурыИтогСумма.
ПОМОГИТЕ правильно рассчитать сумму документа!
Спасибо.
user1c |
---|
Ответ № 10 |
Скачивать файлы может только зарегистрированный пользователь!
user1c |
---|
Ответ № 11 |
Да, в 1С 8.2 пока есть глюк с расчетом при копировании текущего элемента (кнопкой или F9). С этим надо смириться и учитывать при работе.
Решение проблемы:
На форме не показывать поле из объекта, рассчитываемое суммированием записей таблицы, например для документа «ПриходнаяНакладная» реквизит «СуммаПоДокументу», а показывать поле надписи «СписокНоменклатурыИтогСумма» (выше подробно описал, как его отобразить).
Отслеживаем событие для формы «ПередЗаписью»:
Код 1C v 8.2 УП
Для дальнейших расчетов в документе «ПриходнаяНакладная» реквизит «СуммаПоДокументу» будет показывать правильное значение.
Продолжаем изучать программирование в системе 1С Предприятие. Сегодня поговорим о том, как подсчитать итоги по колонке в табличной части. Нам нужно чтобы итог подсчитывался автоматически.
В предыдущих статья я рассказывал, как создать новый документ потом мы с вами написали пару процедур для автоматического подсчета суммы в табличной части. Теперь сделаем итог для этой колонки. Сегодня в примере я буду использовать тот же документ, который мы создали ранее. Поэтому советую вам ознакомиться с предыдущими статья, Создание документа, Подсчет итогов в строке табличной части.
Автоподсчёт итогов по колонке в табличной части 1С
И так преступим, запускаем 1С в режиме конфигуратора. Далее переходим в созданный ранее документ. Открываем его и переходим на вкладку формы и открываем её.
В окне формы нужно кликнуть два раза на табличную часть справа должно появиться окно свойств таблицы. В нем ищем пункт Подвал и ставим галочку.
После чего на форме в табличной части снизу должен появиться подвал.
Теперь на нужно чтобы в колонке Сумма подсчитывался итого. Для этого на вкладке Элементы ищем пункт с Название МатериалыСумма и кликаем на нем два раза. Справа появиться свойства поля в них ищем пункт
ТекстПодвала и вписываем Итого. А в пункте ПутьКДаннымПОдвала кликаем на три точечки.
В открывшемся окне нужно выбрать ИтогоСумма.
Теперь запускаем отладку и проверяем считается ли итог по колонке в табличной части документа.
Вот мы и сделали автоматический подсчет итогов по колонке. Таким образом можно подсчитать итого во всех колонках и в любых документах.
Скриншоты, опубликованные в данной статье, являются цитатами и иллюстрациями программного продукта «1C:Предприятие», авторское право на который принадлежит ЗАО 1С.