Получить ЭлементыФормы

1. evgaid 145 10.03.10 10:14 Сейчас в теме
Привет всем: подскажите из обработки создаю документ ПоступлениеТОваровиУслуг в УТ, а вот как мне в обработке получить ЭлементыФормы.Товары.ТекущиеДанные, ну т.е. чтобы обратиться к стандартным функциям не придумывать велосипед. Как бы делаю
ДоОб = Док.ПолучитьФорму("ФормаДокумента");
СтрокаТабличнойЧасти =ДоОб.ЭлементыФормы.ТОвары.ТекущиеДанные;
А у меня СтрокаТабличнойЧасти идет пустая без значения данной Табчасти.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. tango 543 10.03.10 10:52 Сейчас в теме
во-первых, если док только что создан, откуда там возьмутся строки?
во-вторых, если форма не открыта, строка не позиционирована, даже если она есть
6. tango 543 10.03.10 11:17 Сейчас в теме
пипец.
см. (2)п.2
и выложи полный код чего там делаешь
3. evgaid 145 10.03.10 10:55 Сейчас в теме
Док создан, записан, я туда добавляю новые строки, и вот есть типовые процедуры по расчету ставки ндс (к примеру) и нужно вот мне получить ЭлементыФормы!
4. tango 543 10.03.10 11:05 Сейчас в теме
ну тогда код выложи, как добавляешь строки.
откуда уверенность, что добавил?
5. evgaid 145 10.03.10 11:06 Сейчас в теме
Для Каждого Стр Из Тз Цикл

НоваяСтрока = Док.Товары.Добавить();
ДоОб = Док.ПолучитьФорму("ФормаДокумента");
СтрокаТабличнойЧасти =ДоОб.ЭлементыФормы.ТОвары.ТекущиеДанные;
7. evgaid 145 10.03.10 11:21 Сейчас в теме
Док = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
Док.Дата = ДатаДок;
Док.Контрагент = Контрагент;
Док.СкладОрдер = Справочники.Склады.НайтиПоКоду("000000001");
Док.ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента;
ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(Док.ЭтотОбъект, глТекущийПользователь, , "Покупка", , );
Док.РегистрироватьЦеныПоставщика = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "РегистрироватьЦеныПоставщика");
Док.Комментарий = "введен в автоматическом режиме";
//Док.Записать();

Для Каждого Стр Из Тз Цикл

НоваяСтрока = Док.Товары.Добавить();
НоваяСтрока.Номенклатура = Стр.Номенклатура;
НоваяСтрока.Количество = -Стр.Количество;
НоваяСтрока.Цена = Стр.Цена-Окр(Стр.Цена*Процент/100,2);
НоваяСтрока.ЕдиницаИзмерения = Стр.Номенклатура.ЕдиницаХраненияОстатков;
НоваяСтрока.Коэффициент = НоваяСтрока.ЕдиницаИзмерения.Коэффициент;
НоваяСтрока.Сумма = НоваяСтрока.Количество*новаястрока.Цена;
НоваяСтрока.СтавкаНДС = Стр.Номенклатура.СтавкаНДС;

Если Стр.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС20 ИЛИ Стр.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС20_120 Тогда
СтавкаНДС = 20;
ИначеЕсли Стр.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС10 ИЛИ Стр.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС10_110 Тогда
СтавкаНДС = 10;
ИначеЕсли Стр.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС18 ИЛИ Стр.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС18_118 Тогда
СтавкаНДС = 18;
КонецЕсли;
НоваяСтрока.СуммаНДС = НоваяСтрока.Сумма*СтавкаНДС/100;
//ДоОб = Док.ПолучитьФорму("ФормаДокумента");
//СтрокаТабличнойЧасти =ДоОб.ЭлементыФормы.ТОвары.ТекущиеДанные;
//// Заполняем реквизиты табличной части.
//ОбработкаТабличныхЧастей.ЗаполнитьСтавкуНДСТабЧасти(СтрокаТабличнойЧасти, Док.ЭтотОбъект, "Приобретение");
//// Рассчитываем реквизиты табличной части.
//ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, Док.ЭтотОбъект);
//ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, Док.ЭтотОбъект);
КонецЦикла;
Док.Записать();
КонецЕсли;
8. Styvi 6 10.03.10 11:30 Сейчас в теме
Должно работать ;)
Только последнее
КонецЕсли
без начала повисло - что там за условие было в начале???
9. tango 543 10.03.10 11:34 Сейчас в теме
не надо получать форму в цикле.
**
ДокументМенеджер.<Имя документа> (DocumentManager.<Имя документа>)
ПолучитьФормуНовогоДокумента (GetNewDocumentForm)
Синтаксис:
ПолучитьФормуНовогоДокумента(<Форма>, <Владелец>, <Ключ уникальности>)
Параметры:
<Форма> (необязательный)
Тип: Строка, ОбъектМетаданных: Форма . Имя формы, как оно задано в конфигураторе, или объект описания метаданного требуемой формы. Если параметр не указан, то используется основная форма, заданная в конфигураторе.
<Владелец> (необязательный)
Тип: Форма, Элемент управления. Объект, который будет являться владельцем открываемой формы.
<Ключ уникальности> (необязательный)
Тип: Произвольный. В данном параметре может быть задан некоторый ключ, значение которого будет использоваться для поиска уже открытых форм.
При поиске учитываются значения свойств открытых форм соответствующим значениям параметров метода. Если найдена открытая форма (по совпадению всех параметров), то она будет возвращена вместо новой формы.
Если из некой формы (один и тот же владелец) требуется открывать новые экземпляры другой формы, то при каждом вызове метода значение данного параметра должно быть уникально (в рамках соответствующих значений свойств открытых форм).
Значение параметра присваивается свойству открываемой формы КлючУникальности.
Следует учитывать, что при получении формы из "объекта" система получает форму для конкретного экземпляра объекта с учетом совокупности переданных параметров, в то время как для "ссылки" всегда существует только один объект в базе данных и форма получается одна (для одинаковой совокупности параметров).
Возвращаемое значение:
Тип: Форма.
Описание:
Получает форму нового документа.
10. Styvi 6 10.03.10 11:39 Сейчас в теме
(9)
Он и не получает... Всё закомментировано у него...
НоваяСтрока.СуммаНДС = НоваяСтрока.Сумма*СтавкаНДС/100; 
//ДоОб = Док.ПолучитьФорму("ФормаДокумента"); 
//СтрокаТабличнойЧасти =ДоОб.ЭлементыФормы.ТОвары.ТекущиеДанные; 
//// Заполняем реквизиты табличной части. 
//ОбработкаТабличныхЧастей.ЗаполнитьСтавкуНДСТабЧасти(СтрокаТабличнойЧасти, Док.ЭтотОбъект, "Приобретение"); 
//// Рассчитываем реквизиты табличной части. 
//ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, Док.ЭтотОбъект); 
//ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, Док.ЭтотОбъект); 
КонецЦикла; 
Показать

Должно работать...
Если только сама ТЗ не пустая, из которой он строки Док делает :)
11. evgaid 145 10.03.10 11:42 Сейчас в теме
Блин я закомментировал для того чтобы уже самому просчитать, если посмотрите код. И вот если разкомментировать то ничего не работает (а закомментировать расчеты самому)
12. Styvi 6 10.03.10 11:58 Сейчас в теме
Возможно, проще добавить в свою обработку МЕСТНУЮ процедурку :
РассчитатьСуммуТабЧасти(НоваяСтрока) ,
скопировав её из нужного места конфигурации и подправив...
13. evgaid 145 10.03.10 12:13 Сейчас в теме
В принципе я так и сделал, вытянул себе просто нужные куски, но на будущее как бы охото знать!
14. Styvi 6 10.03.10 12:22 Сейчас в теме
Не знаю, поможет ли. но когда ты используешь в вызове
Док.ЭтотОбъект для
ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, Док.ЭтотОбъект);
- возможно, надо записать его сначала (как у тебя в начале кода закомментировано)...
15. Styvi 6 10.03.10 12:23 Сейчас в теме
Возможно, надо записывать с каждой новой строкой, не могу утверждать - но я бы попробовал ;)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот