Привет всем: подскажите из обработки создаю документ ПоступлениеТОваровиУслуг в УТ, а вот как мне в обработке получить ЭлементыФормы.Товары.ТекущиеДанные, ну т.е. чтобы обратиться к стандартным функциям не придумывать велосипед. Как бы делаю
ДоОб = Док.ПолучитьФорму("ФормаДокумента");
СтрокаТабличнойЧасти =ДоОб.ЭлементыФормы.ТОвары.ТекущиеДанные;
А у меня СтрокаТабличнойЧасти идет пустая без значения данной Табчасти.
ДоОб = Док.ПолучитьФорму("ФормаДокумента");
СтрокаТабличнойЧасти =ДоОб.ЭлементыФормы.ТОвары.ТекущиеДанные;
А у меня СтрокаТабличнойЧасти идет пустая без значения данной Табчасти.
По теме из базы знаний
- Сохранение ручных корректировок в печатных формах
- Загрузка списка значений в стандартных отчетах (Обычное приложение)
- Получение списка объектов из ЭлементыФормы.СправочникСписок/ДокументСписок с учетом отборов и сортировки
- Пишем игру 21 (очко). Пример использования 1С и ActiveX
- Методика независимой системы "Подписки на события"
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Док = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
Док.Дата = ДатаДок;
Док.Контрагент = Контрагент;
Док.СкладОрдер = Справочники.Склады.НайтиПоКоду("000000001");
Док.ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента;
ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(Док.ЭтотОбъект, глТекущийПользователь, , "Покупка", , );
Док.РегистрироватьЦеныПоставщика = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "РегистрироватьЦеныПоставщика");
Док.Комментарий = "введен в автоматическом режиме";
//Док.Записать();
Для Каждого Стр Из Тз Цикл
НоваяСтрока = Док.Товары.Добавить();
НоваяСтрока.Номенклатура = Стр.Номенклатура;
НоваяСтрока.Количество = -Стр.Количество;
НоваяСтрока.Цена = Стр.Цена-Окр(Стр.Цена*Процент/100,2);
НоваяСтрока.ЕдиницаИзмерения = Стр.Номенклатура.ЕдиницаХраненияОстатков;
НоваяСтрока.Коэффициент = НоваяСтрока.ЕдиницаИзмерения.Коэффициент;
НоваяСтрока.Сумма = НоваяСтрока.Количество*новаястрока.Цена;
НоваяСтрока.СтавкаНДС = Стр.Номенклатура.СтавкаНДС;
Если Стр.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС20 ИЛИ Стр.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС20_120 Тогда
СтавкаНДС = 20;
ИначеЕсли Стр.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС10 ИЛИ Стр.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС10_110 Тогда
СтавкаНДС = 10;
ИначеЕсли Стр.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС18 ИЛИ Стр.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС18_118 Тогда
СтавкаНДС = 18;
КонецЕсли;
НоваяСтрока.СуммаНДС = НоваяСтрока.Сумма*СтавкаНДС/100;
//ДоОб = Док.ПолучитьФорму("ФормаДокумента");
//СтрокаТабличнойЧасти =ДоОб.ЭлементыФормы.ТОвары.ТекущиеДанные;
//// Заполняем реквизиты табличной части.
//ОбработкаТабличныхЧастей.ЗаполнитьСтавкуНДСТабЧасти(СтрокаТабличнойЧасти, Док.ЭтотОбъект, "Приобретение");
//// Рассчитываем реквизиты табличной части.
//ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, Док.ЭтотОбъект);
//ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, Док.ЭтотОбъект);
КонецЦикла;
Док.Записать();
КонецЕсли;
Док.Дата = ДатаДок;
Док.Контрагент = Контрагент;
Док.СкладОрдер = Справочники.Склады.НайтиПоКоду("000000001");
Док.ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента;
ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(Док.ЭтотОбъект, глТекущийПользователь, , "Покупка", , );
Док.РегистрироватьЦеныПоставщика = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "РегистрироватьЦеныПоставщика");
Док.Комментарий = "введен в автоматическом режиме";
//Док.Записать();
Для Каждого Стр Из Тз Цикл
НоваяСтрока = Док.Товары.Добавить();
НоваяСтрока.Номенклатура = Стр.Номенклатура;
НоваяСтрока.Количество = -Стр.Количество;
НоваяСтрока.Цена = Стр.Цена-Окр(Стр.Цена*Процент/100,2);
НоваяСтрока.ЕдиницаИзмерения = Стр.Номенклатура.ЕдиницаХраненияОстатков;
НоваяСтрока.Коэффициент = НоваяСтрока.ЕдиницаИзмерения.Коэффициент;
НоваяСтрока.Сумма = НоваяСтрока.Количество*новаястрока.Цена;
НоваяСтрока.СтавкаНДС = Стр.Номенклатура.СтавкаНДС;
Если Стр.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС20 ИЛИ Стр.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС20_120 Тогда
СтавкаНДС = 20;
ИначеЕсли Стр.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС10 ИЛИ Стр.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС10_110 Тогда
СтавкаНДС = 10;
ИначеЕсли Стр.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС18 ИЛИ Стр.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС18_118 Тогда
СтавкаНДС = 18;
КонецЕсли;
НоваяСтрока.СуммаНДС = НоваяСтрока.Сумма*СтавкаНДС/100;
//ДоОб = Док.ПолучитьФорму("ФормаДокумента");
//СтрокаТабличнойЧасти =ДоОб.ЭлементыФормы.ТОвары.ТекущиеДанные;
//// Заполняем реквизиты табличной части.
//ОбработкаТабличныхЧастей.ЗаполнитьСтавкуНДСТабЧасти(СтрокаТабличнойЧасти, Док.ЭтотОбъект, "Приобретение");
//// Рассчитываем реквизиты табличной части.
//ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, Док.ЭтотОбъект);
//ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, Док.ЭтотОбъект);
КонецЦикла;
Док.Записать();
КонецЕсли;
не надо получать форму в цикле.
**
ДокументМенеджер.<Имя документа> (DocumentManager.<Имя документа>)
ПолучитьФормуНовогоДокумента (GetNewDocumentForm)
Синтаксис:
ПолучитьФормуНовогоДокумента(<Форма>, <Владелец>, <Ключ уникальности>)
Параметры:
<Форма> (необязательный)
Тип: Строка, ОбъектМетаданных: Форма . Имя формы, как оно задано в конфигураторе, или объект описания метаданного требуемой формы. Если параметр не указан, то используется основная форма, заданная в конфигураторе.
<Владелец> (необязательный)
Тип: Форма, Элемент управления. Объект, который будет являться владельцем открываемой формы.
<Ключ уникальности> (необязательный)
Тип: Произвольный. В данном параметре может быть задан некоторый ключ, значение которого будет использоваться для поиска уже открытых форм.
При поиске учитываются значения свойств открытых форм соответствующим значениям параметров метода. Если найдена открытая форма (по совпадению всех параметров), то она будет возвращена вместо новой формы.
Если из некой формы (один и тот же владелец) требуется открывать новые экземпляры другой формы, то при каждом вызове метода значение данного параметра должно быть уникально (в рамках соответствующих значений свойств открытых форм).
Значение параметра присваивается свойству открываемой формы КлючУникальности.
Следует учитывать, что при получении формы из "объекта" система получает форму для конкретного экземпляра объекта с учетом совокупности переданных параметров, в то время как для "ссылки" всегда существует только один объект в базе данных и форма получается одна (для одинаковой совокупности параметров).
Возвращаемое значение:
Тип: Форма.
Описание:
Получает форму нового документа.
**
ДокументМенеджер.<Имя документа> (DocumentManager.<Имя документа>)
ПолучитьФормуНовогоДокумента (GetNewDocumentForm)
Синтаксис:
ПолучитьФормуНовогоДокумента(<Форма>, <Владелец>, <Ключ уникальности>)
Параметры:
<Форма> (необязательный)
Тип: Строка, ОбъектМетаданных: Форма . Имя формы, как оно задано в конфигураторе, или объект описания метаданного требуемой формы. Если параметр не указан, то используется основная форма, заданная в конфигураторе.
<Владелец> (необязательный)
Тип: Форма, Элемент управления. Объект, который будет являться владельцем открываемой формы.
<Ключ уникальности> (необязательный)
Тип: Произвольный. В данном параметре может быть задан некоторый ключ, значение которого будет использоваться для поиска уже открытых форм.
При поиске учитываются значения свойств открытых форм соответствующим значениям параметров метода. Если найдена открытая форма (по совпадению всех параметров), то она будет возвращена вместо новой формы.
Если из некой формы (один и тот же владелец) требуется открывать новые экземпляры другой формы, то при каждом вызове метода значение данного параметра должно быть уникально (в рамках соответствующих значений свойств открытых форм).
Значение параметра присваивается свойству открываемой формы КлючУникальности.
Следует учитывать, что при получении формы из "объекта" система получает форму для конкретного экземпляра объекта с учетом совокупности переданных параметров, в то время как для "ссылки" всегда существует только один объект в базе данных и форма получается одна (для одинаковой совокупности параметров).
Возвращаемое значение:
Тип: Форма.
Описание:
Получает форму нового документа.
(9)
Он и не получает... Всё закомментировано у него...
Должно работать...
Если только сама ТЗ не пустая, из которой он строки Док делает :)
Он и не получает... Всё закомментировано у него...
НоваяСтрока.СуммаНДС = НоваяСтрока.Сумма*СтавкаНДС/100;
//ДоОб = Док.ПолучитьФорму("ФормаДокумента");
//СтрокаТабличнойЧасти =ДоОб.ЭлементыФормы.ТОвары.ТекущиеДанные;
//// Заполняем реквизиты табличной части.
//ОбработкаТабличныхЧастей.ЗаполнитьСтавкуНДСТабЧасти(СтрокаТабличнойЧасти, Док.ЭтотОбъект, "Приобретение");
//// Рассчитываем реквизиты табличной части.
//ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, Док.ЭтотОбъект);
//ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, Док.ЭтотОбъект);
КонецЦикла;
ПоказатьДолжно работать...
Если только сама ТЗ не пустая, из которой он строки Док делает :)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот