Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Миша Колесников
2 / 2 / 0
Регистрация: 16.12.2011
Сообщений: 35
1

Работа с табличной частью

15.09.2017, 01:48. Просмотров 458. Ответов 8
Метки нет (Все метки)

Подскажите плз, как реализовать.
Имеется табл.часть в которой содержится количество и цена. Нужно сделать так, чтобы в табличной части считался: 1. сумма по строке 2. общая сумма.
Как можно это реализовать, если документ не записан.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2017, 01:48
Ответы с готовыми решениями:

Работа с табличной частью
Добрый день. Подскажите пожалуйста. Создан документ "заказ-наряд". В документе...

Провести документ с табличной частью
Всем привет! Есть документ, создаётся программно. У него есть табличная...

Значение строки табличной части получить в табличной части другого документа
Есть документ ПриходнаяНакладная (товар приходит от поставщика по его цене), с...

Работа с табличной частью
Мне нужно при изменении реквизита табличной части (при добавлении наименования...

1с77 Создание отчёта. Работа с табличной частью документа
Доброго дня всем! Помогите новичку, хочу написать отчёт. Допустим, у меня есть...

8
OrkVasya
о_____О
Эксперт 1С
220 / 220 / 36
Регистрация: 19.11.2010
Сообщений: 1,061
Завершенные тесты: 1
15.09.2017, 07:37 2
Миша Колесников, в какой момент и как это должно считаться?
0
Yulunga
321 / 220 / 63
Регистрация: 22.04.2013
Сообщений: 1,502
Записей в блоге: 1
Завершенные тесты: 1
15.09.2017, 08:34 3
https://forum.infostart.ru/forum9/topic98463/
0
Миша Колесников
2 / 2 / 0
Регистрация: 16.12.2011
Сообщений: 35
15.09.2017, 12:51  [ТС] 4
Цитата Сообщение от OrkVasya Посмотреть сообщение
Миша Колесников, в какой момент и как это должно считаться?
Все расчеты запихнул в процедуру изменения строк таблица.
1C
1
2
3
4
5
6
7
8
9
10
11
Процедура ТоварыПриИзменении(Элемент)
    Объект.СуммаДокумента = 0   ;
    Для каждого СтрТовар из Объект.Товары
        Цикл
        
            СтрТовар.Сумма= СтрТовар.Цена *  СтрТовар.Количество    ; 
            Объект.СуммаДокумента    =       Объект.СуммаДокумента   + СтрТовар.Сумма  ;
            
    КонецЦикла
        
КонецПроцедуры
Не знаю насколько верное такое решение. Логически наверно более правильно считать это при изменении соответствующих столбцов таблицы, а не всей таблицы.
0
OrkVasya
о_____О
Эксперт 1С
220 / 220 / 36
Регистрация: 19.11.2010
Сообщений: 1,061
Завершенные тесты: 1
15.09.2017, 13:23 5
Неверное.
У тебя при каждом изменении номенклатуры пересчитывается вся табличная часть.
Вместо сложения в СуммаДокумента используй "Итог()".
И сумму лучше только в изменяемой строке менять.
0
Миша Колесников
2 / 2 / 0
Регистрация: 16.12.2011
Сообщений: 35
15.09.2017, 13:33  [ТС] 6
Цитата Сообщение от OrkVasya Посмотреть сообщение
Неверное.
У тебя при каждом изменении номенклатуры пересчитывается вся табличная часть.
Вместо сложения в СуммаДокумента используй "Итог()".
И сумму лучше только в изменяемой строке менять.
А если не сложно, можно пример. Я нашел процедуру события только изменения столбца таблицы. Или можно как-то обратиться к выделенной строке Объект.Товары?
0
Yulunga
321 / 220 / 63
Регистрация: 22.04.2013
Сообщений: 1,502
Записей в блоге: 1
Завершенные тесты: 1
15.09.2017, 13:41 7
1C
1
2
3
4
5
6
процедура запчастиидеталиколичествоприизменении(Элемент)
текданные = этаформа.текущийэлемент.текущиеданные;
текданные.сумма = текданные.количество * текданные.цена;
// это то что по первой ссылке из гугла
//теперь посчитаем сумму : 
этаформа.итоги = ЗапчастиИДетали.Итог("Сумма"); //запчасти и детали - это видать название табличной части. сумма - столбец. сумму считаем по нему. итоги - поле на форме, в котором считаются итоги
0
Миша Колесников
2 / 2 / 0
Регистрация: 16.12.2011
Сообщений: 35
16.09.2017, 14:14  [ТС] 8
Написал следующий код
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
&НаКлиенте
Процедура ТоварыКоличествоПриИзменении(Элемент)
    ТекущаяСтрока= Элементы.Товары.ТекущиеДанные   ;
 
    РассчитатьИтог(ТекущаяСтрока)  ;
КонецПроцедуры
 
&НаКлиенте
Процедура ТоварыЦенаПриИзменении(Элемент)
    РассчитатьИтог(Элементы.Товары.ТекущиеДанные)  ;
 
КонецПроцедуры
 
Процедура       РассчитатьИтог(СтрокаТабличнойЧасти) 
    
    СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество*СтрокаТабличнойЧасти.Цена;
 
КонецПроцедуры
Почему возникает ошибка? пишет

Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'param':
форма: Элемент
имя: {http://v8.1c.ru/8.2/managed-application/modules}param
по причине:
Ошибка отображения типов:
0
OrkVasya
о_____О
Эксперт 1С
220 / 220 / 36
Регистрация: 19.11.2010
Сообщений: 1,061
Завершенные тесты: 1
16.09.2017, 15:02 9
Миша Колесников, потому, что у тебя процедура "РассчитатьИтог" - серверная, что здесь явно лишнее.
Ну и назвать процедуру "РассчитатьИтог", а рассчитывать в ней сумму, логически так себе.
0
16.09.2017, 15:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2017, 15:02

Работа с серверной и клиентской частью
Здраствуйте, у меня вопрос - как работать с данными справочника, например -...

1С8 работа с макетной частью
Есть запрос, который отбирает кредит одного счета и д*цензура* другого. Запрос...

Работа с многострочной частью документа
Плиз, помогите. Главбуху вдруг приспичило перенести в 1С 7.7 данные за 199* -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru