Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
31 мая 2024, 07:21

Суммма

Автор Bondloong, 12 июн 2016, 23:21

0 Пользователей и 1 гость просматривают эту тему.

Bondloong

Цитата: Artjomrgv от 13 июн 2016, 16:55
Сделай так как я привёл в примере, добавь процедуру в модуль формы, будут работать.
Попробовав ваш метод вышло это:

Artjomrgv

&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
   
   Товары = Элементы.Товары.ТекущиеДанные;
   Товары.Сумма=Товары.Количество*Товары.Цена

КонецПроцедуры

Работает. Если не работает, проверь название полей и и тип данных, везде должно быть число.

cska-fanat-kz

Цитата: Artjomrgv от 13 июн 2016, 21:16
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
   
   Товары = Элементы.Товары.ТекущиеДанные;
   Товары.Сумма=Товары.Количество*Товары.Цена

КонецПроцедуры

Работает. Если не работает, проверь название полей и и тип данных, везде должно быть число.

начали подсказывать за здравие, а закончили...

1) то что вы советуете (получать текущую строку и заполнять ее реквизиты) делается в событиях ПриИзменении() соответственно количества и цены
2) если на секунду представить что действительно нужно событие ПередЗаписью(), то табличную часть надо обходить в цикле Для каждого...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

cska-fanat-kz

Цитата: Bondloong от 13 июн 2016, 15:10Вставил в модуль объекта документа, но мне не помогло...

1) директива &НаКлиенте не нужна
2) поставьте точку останова и проверьте, зашло в процедуру по кнопке Записать или нет
3) "Объект.Товары" - можно и без "Объект."
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Artjomrgv

:D
Цитата: cska-fanat-kz от 14 июн 2016, 06:30
начали подсказывать за здравие, а закончили...
1) то что вы советуете (получать текущую строку и заполнять ее реквизиты) делается в событиях ПриИзменении() соответственно количества и цены
2) если на секунду представить что действительно нужно событие ПередЗаписью(), то табличную часть надо обходить в цикле Для каждого...

Блин но работает же. Хорошо другой вариант с циклом:

Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
      Выборка=Объект.Товары;
      Для каждого Элемент из Выборка Цикл
      Элемент.Сумма=Элемент.Цена*Элемент.Количество   
      КонецЦикла
КонецПроцедуры

cska-fanat-kz

в смысле "ДРУГОЙ вариант с циклом"?

Цитата: Artjomrgv от 13 июн 2016, 21:16Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
   
   Товары = Элементы.Товары.ТекущиеДанные;
   Товары.Сумма=Товары.Количество*Товары.Цена

КонецПроцедуры


Цитата: Artjomrgv от 15 июн 2016, 17:17Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
      Выборка=Объект.Товары;
      Для каждого Элемент из Выборка Цикл
      Элемент.Сумма=Элемент.Цена*Элемент.Количество   
      КонецЦикла
КонецПроцедуры

а так да, второй вариант имеет место быть...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Bondloong

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

Artjomrgv

Скинь DT-ник

Bondloong

Вот ссылка https://yadi.sk/d/3Msf4kEjsavr7 . Если кто поможет - буду очень благодарен.

Artjomrgv


&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
      Выборка=Объект.Товары;
      Для каждого Элемент из Выборка Цикл
      Элемент.Сумма=Элемент.Цена*Элемент.Количество   
      КонецЦикла
КонецПроцедуры

В событии формы укажите процедуру и все заработает.

Теги:
Рейтинг@Mail.ru

Поиск