![]() |
![]() |
![]() |
|
Элементыформы и программно вводимая строка | ☑ | ||
---|---|---|---|---|
0
егаис
19.02.13
✎
17:41
|
Комрады, подскажите в простом вопросе, туплю
Программно ввожу Товар = Товары.Добавить(); Товар.Номенклатура = СерийныйНомер.Владелец; ПриИзмененииНоменклатурыТовары(ЭлементыФормы.Товары.ТекущиеДанные); Как передать несозданную строку в типовую процедуру обработки номенклатуры в УТ 10? Спасибо |
|||
1
егаис
19.02.13
✎
17:42
|
ошибка
{ОбщийМодуль.ОбщегоНазначения.Модуль(917)}: Значение не является значением объектного типа (Имя) ИмяТабличнойЧасти = Метаданные.НайтиПоТипу(ТипЗнч(СтрокаТабличнойЧасти)).Имя; т.к. ЭлементыФормы.Товары.ТекущиеДанные = Неопределено |
|||
2
Reset
19.02.13
✎
17:42
|
добавленную строку, наверное?
Товар <-- вот она |
|||
3
егаис
19.02.13
✎
17:43
|
(2) нет, там вроде как элемент формы должен передаваться
|
|||
4
Reset
19.02.13
✎
17:44
|
(3) Позвольте не согласиться, коллега.
|
|||
5
Reset
19.02.13
✎
17:44
|
Хотя бы в (1) взор вперьте: СтрокаТабличнойЧасти
|
|||
6
егаис
19.02.13
✎
17:45
|
штатно при выборе вручную товара Элемент это ПолеВвода
Тараканы в голове ( |
|||
7
hhhh
19.02.13
✎
17:54
|
(6) ЭлементыФормы.Товары.ТекущиеДанные - это строка табличной части, это не элемент формы.
|
|||
8
егаис
19.02.13
✎
17:56
|
Функция СМКСертификат(СерийныйНомер, СШК) Экспорт
Товар = Товары.Добавить(); Товар.Номенклатура = СерийныйНомер.Владелец; ПриИзмененииНоменклатурыТовары(Товар); ошибка! ПриИзмененииНоменклатурыТовары(ЭлементыФормы.Товары.ТекущиеДанные); ошибка, потому что неопределено! Возврат Истина; КонецФункции // как достучаться до вводимой строки? |
|||
9
Reset
19.02.13
✎
17:59
|
(8) Процедуру ПриИзмененииНоменклатурыТовары предъявите
|
|||
10
егаис
19.02.13
✎
17:59
|
штатная УТ-шная
Процедура ПриИзмененииНоменклатурыТовары(Элемент) СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные; // Выполнить общие действия для всех документов при изменении номенклатуры. ОбработкаТабличныхЧастей.ПриИзмененииНоменклатурыТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); ПриИзмененииНоменклатурыТоваров(СтрокаТабличнойЧасти); ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); УчетСерийныхНомеров.ПроверитьСерийныеНомера(СтрокаТабличнойЧасти, ЭтотОбъект); // Ввод состава набора УправлениеЗапасами.ДобавитьСоставНабора(СтрокаТабличнойЧасти, ЭтотОбъект); КонецПроцедуры // ПриИзмененииНоменклатурыТовары() |
|||
11
егаис
19.02.13
✎
18:04
|
епт, все просто
этаформа.товары[товар.номерстроки-1] |
|||
12
Reset
19.02.13
✎
18:04
|
ЭлементыФормы.Товары.ТекущаяСтрока=Товар;
ПриИзмененииНоменклатурыТовары("ЗдесьПофигЧтоХотьЧертаЛысого"); |
|||
13
Reset
19.02.13
✎
18:08
|
(11) Это то же самое, что просто "Товар"
|
|||
14
Reset
19.02.13
✎
18:11
|
Я бы написал вместо вызова ПриИзмененииНоменклатурыТовары:
ОбработкаТабличныхЧастей.ПриИзмененииНоменклатурыТабЧасти(Товар, ЭтотОбъект); ПриИзмененииНоменклатурыТоваров(СтрокаТабличнойЧасти); ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(Товар, ЭтотОбъект); УчетСерийныхНомеров.ПроверитьСерийныеНомера(Товар, ЭтотОбъект); // Ввод состава набора УправлениеЗапасами.ДобавитьСоставНабора(Товар, ЭтотОбъект); Тогда не пришлось бы менять текущую строку. А ПриИзмененииНоменклатурыТовары - это обработчик события, его явно вызывать некрасиво [имхо] |
|||
15
Reset
19.02.13
✎
18:13
|
И не называл бы новую строку табличной части Товар.
НоваяСтрока=Товары.Добавить(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |