Как рассчитать сумму в строке табличной части справочника или документа?
В реальной работе прикладного решения часто возникает необходимость автоматизировать некоторые подсчеты согласно собственному алгоритму. Например, сделать так, чтобы сумма в строке табличной части документа автоматически вычислялась при изменении цены или количества в строке.
Это небольшое вычисление производится в модуле формы в процедуре, выполняющейся на клиенте. Такой процедурой являются обработчики события ПриИзменении полей Цена и Количество табличной части документа.
Итак, сначала нужно создать форму документа, чтобы в ней описать собственный алгоритм вычислений. Затем, открыв палитру свойств полей Цена и Количество табличной части документа, создать для них обработчики события ПриИзменении и внести в них следующий код:
При выполнении этого кода в переменную СтрокаТабличнойЧасти помещается объект, содержащий данные текущей строки документа, которую требуется пересчитать. Получив этот объект, можно обратиться к данным конкретной колонки табличной части, указав имя колонки в качестве свойства объекта. Таким образом, во второй строке процедуры обработчика вычисляется значение колонки Сумма как произведение значений колонок Количество и Цена .
Если процедура расчета суммы может понадобиться сразу для нескольких документов, то полезно разместить эту процедуру в общем модуле, и обращаться к ней из форм документов. Например, в общем модуле РаботаСДокументами поместить процедуру РассчитатьСумму() :
В модуле формы документа вызывать ее из обработчиков события ПриИзменении :
Посчитать сумму по столбцу в табличной части и вывести ее в отдельный объект на форме
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Копирование данных из ячейки одной Табличной Части на форме в такую же ячейку другой Табличной части на этой же форме Всех с Новым годом и грядущим Рождеством пособите начинающему: затык такой — НА форме есть две.
Запрос. Условие: строка из первой табличной части равна любой строке из другой табличной части Есть документ «РаспределениеМатериаловНаВыпуск». У этого документа имеется «Форма документа». На.
Экспорт в эксель табличной части подчиненной формы с учетом полей-комбобоксов в табличной части Добрый день. Пришло пожелание от коллег выгружать информацию из табличной подформы в.
Ну дык вы не просто копируйте код, а подгоняйте под свою конфу. Наверное имя ТЧ у вас другое
Добавлено через 6 минут
Запись в БД табличной части на форме Подскажите, пожалуйста, как правильно сделать запись? Пишу свое web приложение, в котором будет.
Как посчитать итоги в колонке табличной части? Нашла, что в 8.3 это делается через ПутьКДаннымПодвала, и там нужно выбрать итоговый реквизит, но у.
Заполнение табличной части на управляемой форме Задача такая. Ут11 есть список ячеек склада, также создается список товаров, которые хранятся в.
Размещение табличной части в форме списка (УФ) Добрый день! Была задача: есть форма списка заказов. И руководителю надо видеть заказ и его.
Значение строки табличной части получить в табличной части другого документа Есть документ ПриходнаяНакладная (товар приходит от поставщика по его цене), с табличной частью.
Получить список колонок табличной части на упр форме задача такая, есть табЧать объекта с огромным количеством колонок и строка в упр форме. и.
Источник
Как сделать итог по колонке в 1С
Продолжаем изучать программирование в системе 1С Предприятие. Сегодня поговорим о том, как подсчитать итоги по колонке в табличной части. Нам нужно чтобы итог подсчитывался автоматически.
В предыдущих статья я рассказывал, как создать новый документ потом мы с вами написали пару процедур для автоматического подсчета суммы в табличной части. Теперь сделаем итог для этой колонки. Сегодня в примере я буду использовать тот же документ, который мы создали ранее. Поэтому советую вам ознакомиться с предыдущими статья, Создание документа, Подсчет итогов в строке табличной части.
Авто подсчёт итогов по колонке в табличной части 1С
И так преступим, запускаем 1С в режиме конфигуратора. Далее переходим в созданный ранее документ. Открываем его и переходим на вкладку формы и открываем её.
В окне формы нужно кликнуть два раза на табличную часть справа должно появиться окно свойств таблицы. В нем ищем пункт Подвал и ставим галочку.
После чего на форме в табличной части снизу должен появиться подвал.
Теперь на нужно чтобы в колонке Сумма подсчитывался итого. Для этого на вкладке Элементы ищем пункт с Название МатериалыСумма и кликаем на нем два раза. Справа появиться свойства поля в них ищем пункт ТекстПодвала и вписываем Итого. А в пункте ПутьКДаннымПОдвала кликаем на три точечки.
В открывшемся окне нужно выбрать ИтогоСумма.
Теперь запускаем отладку и проверяем считается ли итог по колонке в табличной части документа.
Вот мы и сделали автоматический подсчет итогов по колонке. Таким образом можно подсчитать итого во всех колонках и в любых документах.
Скриншоты, опубликованные в данной статье, являются цитатами и иллюстрациями программного продукта «1C:Предприятие», авторское право на который принадлежит ЗАО 1С.
Источник
Табличное поле. Как рассчитать сумму по колонке в таблице формы при F9 ?
user1c
19.01.2011 02:58
Прочитано: 75252
В форме таблица СписокНоменклатуры с полями: Номенклатура, Количество, Цена, Сумма. Поле надписи СуммаПоДокументу, данные: Объект.СуммаПоДокументу При расчете суммы по колонке «Сумма» в таблице формы использую следующий код (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 УП Для ТаблицаФормы события:
Синтаксис-помошник вам в помощь! Если у Вас своя процедура — поделитесь, пожалуйста. Спасибо.
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 УП
Для дальнейших расчетов в документе «ПриходнаяНакладная» реквизит «СуммаПоДокументу» будет показывать правильное значение.