Как можно попроще вывести код УКТВЭД в форму документа Реализация товаров и услуг?
Добавить реквизит документа и создать соответствующий элемент формы.
{Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(1192)}: Метод обьекта не найдено (ЗаполнитьУКТВЭДВСтрокеТоваров)
ОбработкаТабличныхЧастей.ЗаполнитьУКТВЭДВСтрокеТоваров(СтрокаТабличнойЧасти);
Процедура ТоварыКодУКТВЭДНачалоВыбора(Элемент, СтандартнаяОбработка)
НачалоВыбораНоменклатурыГТД(Элемент, СтандартнаяОбработка);
КонецПроцедуры
Процедура ТоварыКодУКТВЭДОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Если ТипЗнч(ВыбранноеЗначение) = Тип("СправочникСсылка.НоменклатураГТД") Тогда
ТекущаяСтрокаТоваров = ЭлементыФормы.Товары.ТекущиеДанные;
Если НЕ ТекущаяСтрокаТоваров = Неопределено Тогда
ТекущаяСтрокаТоваров.НомерГТД = ВыбранноеЗначение.НомерГТД;
КонецЕсли;
ВыбранноеЗначение = ВыбранноеЗначение.КодУКТВЭД;
КонецЕсли;
КонецПроцедуры
Процедура ТоварыНомерГТДОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Если ТипЗнч(ВыбранноеЗначение) = Тип("СправочникСсылка.НоменклатураГТД") Тогда
ТекущаяСтрокаТоваров = ЭлементыФормы.Товары.ТекущиеДанные;
Если НЕ ТекущаяСтрокаТоваров = Неопределено Тогда
ТекущаяСтрокаТоваров.КодУКТВЭД = ВыбранноеЗначение.КодУКТВЭД;
КонецЕсли;
ВыбранноеЗначение = ВыбранноеЗначение.НомерГТД;
КонецЕсли;
КонецПроцедуры
// Процедура дает возможность выбора Кода УКТ ВЭД и НОмера ГТД как из всех возможных вариантов
// так и из подчиненного к номенклатуре справочника, содержащие возможные значения по-умолчанию
// для номенклатуры
//
Процедура НачалоВыбораНоменклатурыГТД(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущаяСтрокаТоваров = ЭлементыФормы.Товары.ТекущиеДанные;
Если ТекущаяСтрокаТоваров = Неопределено Тогда
Возврат;
КонецЕсли;
ВариантыВыбора = Новый СписокЗначений();
ВариантыВыбора.Добавить(Ложь, "Выбрать по данным номенклатуры");
ВариантыВыбора.Добавить(Истина, "Произвольный выбор");
РезультатВыбора = ВыбратьИзСписка(ВариантыВыбора, Элемент, 0);
Если РезультатВыбора = Неопределено Тогда
Возврат;
КонецЕсли;
СтандартнаяОбработка = РезультатВыбора.Значение;
Если СтандартнаяОбработка Тогда
Возврат;
КонецЕсли;
ФормаВыбора = Справочники.НоменклатураГТД.ПолучитьФормуВыбора(,Элемент);
ФормаВыбора.ПараметрВыборПоВладельцу = ТекущаяСтрокаТоваров.Номенклатура;
ФормаВыбора.ПараметрОтборПоВладельцу = ТекущаяСтрокаТоваров.Номенклатура;
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("КодУКТВЭД", ТекущаяСтрокаТоваров.КодУКТВЭД);
Запрос.УстановитьПараметр("НомерГТД", ТекущаяСтрокаТоваров.НомерГТД);
Запрос.УстановитьПараметр("Владелец", ФормаВыбора.ПараметрВыборПоВладельцу);
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| НоменклатураГТД.Ссылка
|ИЗ
| Справочник.НоменклатураГТД КАК НоменклатураГТД
|ГДЕ
| НоменклатураГТД.КодУКТВЭД = &КодУКТВЭД
| И НоменклатураГТД.НомерГТД = &НомерГТД
| И НоменклатураГТД.Владелец = &Владелец";
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
ФормаВыбора.ПараметрТекущаяСтрока = Выборка.Ссылка;
КонецЕсли;
ФормаВыбора.Открыть();
КонецПроцедуры
1. Это не управляемый интерфейс.
2. Если речь идет о какой-то типовой, расскажите.
3. В украинских типовых "Номенклатура ГТД" - подчинен "Номенклатуре". Кроме того, в элементе номенклатуры есть номенклатура ГТД по-умолчанию. "Код УКТЗЕД" - реквизит элемента номенклатуры ГТД. Вот в обработчике события "ПриИзменении" и присваивайте элементу формы значение номенклатуры ГТД (или код УКТЗЕД из нее) из реквизита номенклатуры по умолчанию.
Ну как же? Вот:
ПриИзмененииНоменклатурыТоваров(СтрокаТабличнойЧасти);
ПриИзмененииНоменклатурыТоваров(СтрокаТабличнойЧасти);
Процедура ПриИзмененииНоменклатурыТоваров(СтрокаТабличнойЧасти)
// Заполняем реквизиты табличной части.
ЗаполнитьСтавкуНДС(СтрокаТабличнойЧасти);
ЗаполнитьУКТВЭДВСтрокеТоваров(СтрокаТабличнойЧасти);
// Заполнение цены зависит от розничности операции.
ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуЦенуПродажиТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, мВалютаРегламентированногоУчета);
КонецПроцедуры
Процедура ПриИзмененииНоменклатурыТоваров(СтрокаТабличнойЧасти)
// Заполняем реквизиты табличной части.
ОбработкаТабличныхЧастей.ЗаполнитьСтавкуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, "Реализация");
ОбработкаТабличныхЧастей.ЗаполнитьСпособСписанияОстаткаТоваровТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);
// Заполнение цены зависит от розничности операции.
ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуЦенуПродажиТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, мВалютаРегламентированногоУчета);
УстановитьСвойстваПоляВводаЦены(СтрокаТабличнойЧасти.Номенклатура);
КонецПроцедуры
Процедура ПриИзмененииНоменклатурыТоваров(СтрокаТабличнойЧасти)
// Заполняем реквизиты табличной части.
ОбработкаТабличныхЧастей.ЗаполнитьСтавкуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, "Реализация");
ОбработкаТабличныхЧастей.ЗаполнитьСпособСписанияОстаткаТоваровТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);
ЗаполнитьУКТВЭДВСтрокеТоваров(СтрокаТабличнойЧасти);
// Заполнение цены зависит от розничности операции.
ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуЦенуПродажиТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, мВалютаРегламентированногоУчета);
УстановитьСвойстваПоляВводаЦены(СтрокаТабличнойЧасти.Номенклатура);
КонецПроцедуры
Естественно! Надо еще скопировать из НН "ЗаполнитьУКТВЭДВСтрокеТоваров".
Процедура ПриИзмененииНоменклатурыТоваров(СтрокаТабличнойЧасти)
// Заполняем реквизиты табличной части.
ЗаполнитьСтавкуНДС(СтрокаТабличнойЧасти);
ЗаполнитьУКТВЭДВСтрокеТоваров(СтрокаТабличнойЧасти);
// Заполнение цены зависит от розничности операции.
ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуЦенуПродажиТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, мВалютаРегламентированногоУчета);
КонецПроцедуры
Процедура ПриИзмененииХарактеристикиНоменклатурыТоваров(СтрокаТабличнойЧасти)
// Заполняем реквизиты табличной части.
ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуЦенуПродажиТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, мВалютаРегламентированногоУчета);
ЗаполнитьУКТВЭДВСтрокеТоваров(СтрокаТабличнойЧасти);
КонецПроцедуры // ПриИзмененииХарактеристикиНоменклатурыТоваров()
Процедура "ЗаполнитьУКТВЭДВСтрокеТоваров" находится в модуле объекта. Пользуйтесь F12.
Процедура ЗаполнитьУКТВЭДВСтрокеТоваров(СтрокаТабличнойЧасти) Экспорт
НоменклатураГТДХарактеристики = СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры.НоменклатураГТД;
Если СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры.ОтечественныйНеподакцизныйТовар = Истина Тогда
СтрокаТабличнойЧасти.КодУКТВЭД = Неопределено;
СтрокаТабличнойЧасти.НомерГТД = Неопределено;
ИначеЕсли ЗначениеЗаполнено(НоменклатураГТДХарактеристики) Тогда
СтрокаТабличнойЧасти.КодУКТВЭД = НоменклатураГТДХарактеристики.КодУКТВЭД;
СтрокаТабличнойЧасти.НомерГТД = НоменклатураГТДХарактеристики.НомерГТД;
Иначе
СтрокаТабличнойЧасти.КодУКТВЭД = СтрокаТабличнойЧасти.Номенклатура.НоменклатураГТД.КодУКТВЭД;
СтрокаТабличнойЧасти.НомерГТД = СтрокаТабличнойЧасти.Номенклатура.НоменклатураГТД.НомерГТД;
КонецЕсли;
КонецПроцедуры
Процедура ТоварыНоменклатураПриИзменении(Элемент)
СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;
// Выполнить общие действия для всех документов при изменении номенклатуры.
ОбработкаТабличныхЧастей.ПриИзмененииНоменклатурыТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);
// Заполняем реквизиты табличной части.
ОбработкаТабличныхЧастей.ЗаполнитьСтавкуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект,"Приобретение");
СтруктураШапкиДокумента = Новый Структура("Контрагент, ТипЦен, ДоговорКонтрагента, ДатаДокумента, ВалютаДокумента, УчитыватьНДС, СуммаВключаетНДС",
Контрагент, ТипЦен, ДоговорКонтрагента, Дата,ВалютаДокумента, УчитыватьНДС,СуммаВключаетНДС);
ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуЦенуПокупкиТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, СтруктураШапкиДокумента, мВалютаРегламентированногоУчета);
// Рассчитываем реквизиты табличной части.
ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);
ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);
УчетСерийныхНомеров.ПроверитьСерийныеНомера(СтрокаТабличнойЧасти, ЭтотОбъект);
ЗаполнитьУКТВЭДВСтрокеТоваров(СтрокаТабличнойЧасти);
ЗаполнитьСчетаУчетаВСтрокеТабЧасти(СтрокаТабличнойЧасти, "Товары", ОтражатьВБухгалтерскомУчете, ОтражатьВБухгалтерскомУчете);
КонецПроцедуры // ТоварыНоменклатураПриИзменении()
Процедура ТоварыНоменклатураПриИзменении(Элемент)
ПриИзмененииНоменклатурыТовары(Элемент);
ЗаполнитьУКТВЭДВСтрокеТоваров(СтрокаТабличнойЧасти);
КонецПроцедуры // ТоварыНоменклатураПриИзменении()
{Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(2913,32)}: Змінна не визначена (СтрокаТабличнойЧасти)
ЗаполнитьУКТВЭДВСтрокеТоваров(<<?>>СтрокаТабличнойЧасти); (Перевірка: Товстий клієнт (звичайна прикладна програма))
СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;
СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;
Прочитал тему, сделал вывод код УКТВЭД для документа (Поступление товаров и услуг) УТП для Украины, в ручном вводе работает (выводится код УКТВЭД), при вводе на основании из документа (Заказ поставщику) автоматом "код УКТВЭД" не подтягивает, может кто подскажет в чем проблема.
Если вы о сообщениях выше, то там нигде нет заполнения на основании, там только обработка строк из формы.
</p><p>Процедура КоманднаяПанельТоварыДействиеЗаполнитьПоЗаказуПоставщику(Кнопка)
ЗаполнитьТабличнуюЧастьПоОстаткам(Товары);
ЗаполнитьУКТВЭДВСтрокеТоваров(СтрокаТабличнойЧасти);
КонецПроцедуры // КоманднаяПанельТоварыДействиеЗаполнитьПоОстаткам()
Здравствуйте. Можете описать схему действий по внесению в табличную часть приходной накладной кодов УКТВЭД? конф.8.3 УТП ред 1,2
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua