Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вывести код УКТВЭД в форму докемента
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
kot488
Как можно попроще вывести код УКТВЭД в форму документа Реализация товаров и услуг?
Petre
Добавить реквизит документа и создать соответствующий элемент формы.
kot488
Цитата(Petre @ 15.07.15, 10:15) необходимо зарегистрироваться для просмотра ссылки
Добавить реквизит документа и создать соответствующий элемент формы.


Код идеально выводиться в н.н.
создал колонку УКТВЭД в реализации, создал реквизиты табличной части уктвэд и гтд, но при выборе номенклатуры ошибка

{Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(1192)}: Метод обьекта не найдено (ЗаполнитьУКТВЭДВСтрокеТоваров)
    ОбработкаТабличныхЧастей.ЗаполнитьУКТВЭДВСтрокеТоваров(СтрокаТабличнойЧасти);


Для этой колонки прописал
Процедура ТоварыКодУКТВЭДНачалоВыбора(Элемент, СтандартнаяОбработка)
    
        НачалоВыбораНоменклатурыГТД(Элемент, СтандартнаяОбработка);
        
КонецПроцедуры

Процедура ТоварыКодУКТВЭДОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    
    Если ТипЗнч(ВыбранноеЗначение) = Тип("СправочникСсылка.НоменклатураГТД") Тогда
    
        ТекущаяСтрокаТоваров = ЭлементыФормы.Товары.ТекущиеДанные;
        Если НЕ ТекущаяСтрокаТоваров = Неопределено Тогда
            ТекущаяСтрокаТоваров.НомерГТД = ВыбранноеЗначение.НомерГТД;
        КонецЕсли;

        ВыбранноеЗначение = ВыбранноеЗначение.КодУКТВЭД;    
        
    КонецЕсли;

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

Процедура ТоварыНомерГТДОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    
    Если ТипЗнч(ВыбранноеЗначение) = Тип("СправочникСсылка.НоменклатураГТД") Тогда
    
        ТекущаяСтрокаТоваров = ЭлементыФормы.Товары.ТекущиеДанные;
        Если НЕ ТекущаяСтрокаТоваров = Неопределено Тогда
            ТекущаяСтрокаТоваров.КодУКТВЭД = ВыбранноеЗначение.КодУКТВЭД;
        КонецЕсли;
        
        ВыбранноеЗначение = ВыбранноеЗначение.НомерГТД;    
        
    КонецЕсли;
    
КонецПроцедуры

// Процедура дает возможность выбора Кода УКТ ВЭД и НОмера ГТД как из всех возможных вариантов
// так и из подчиненного к номенклатуре справочника, содержащие возможные значения по-умолчанию
// для номенклатуры
//
Процедура НачалоВыбораНоменклатурыГТД(Элемент, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    ТекущаяСтрокаТоваров = ЭлементыФормы.Товары.ТекущиеДанные;
    Если ТекущаяСтрокаТоваров = Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    ВариантыВыбора = Новый СписокЗначений();
    ВариантыВыбора.Добавить(Ложь,   "Выбрать по данным номенклатуры");
    ВариантыВыбора.Добавить(Истина, "Произвольный выбор");
    
    РезультатВыбора = ВыбратьИзСписка(ВариантыВыбора, Элемент, 0);
    
    Если РезультатВыбора = Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    СтандартнаяОбработка = РезультатВыбора.Значение;
    
    Если СтандартнаяОбработка Тогда
        Возврат;
    КонецЕсли;

    ФормаВыбора = Справочники.НоменклатураГТД.ПолучитьФормуВыбора(,Элемент);
    ФормаВыбора.ПараметрВыборПоВладельцу = ТекущаяСтрокаТоваров.Номенклатура;
    ФормаВыбора.ПараметрОтборПоВладельцу = ТекущаяСтрокаТоваров.Номенклатура;
    
    Запрос = Новый Запрос();
    Запрос.УстановитьПараметр("КодУКТВЭД", ТекущаяСтрокаТоваров.КодУКТВЭД);
    Запрос.УстановитьПараметр("НомерГТД",  ТекущаяСтрокаТоваров.НомерГТД);
    Запрос.УстановитьПараметр("Владелец", ФормаВыбора.ПараметрВыборПоВладельцу);
    
    Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
                   |    НоменклатураГТД.Ссылка
                   |ИЗ
                   |    Справочник.НоменклатураГТД КАК НоменклатураГТД
                   |ГДЕ
                   |    НоменклатураГТД.КодУКТВЭД = &КодУКТВЭД
                   |    И НоменклатураГТД.НомерГТД = &НомерГТД
                   |    И НоменклатураГТД.Владелец = &Владелец";
    
    Выборка = Запрос.Выполнить().Выбрать();
    
    Если Выборка.Следующий() Тогда
        ФормаВыбора.ПараметрТекущаяСтрока = Выборка.Ссылка;    
    КонецЕсли;
    
    ФормаВыбора.Открыть();
    
КонецПроцедуры


Мне реквизит артикул не нужен, может как то вместо артикула выводить уктвэд?

Начал заново колупать, добавлена колонка УКТВЭД, реквизит УКТВЭД на справочник Номенклатура ГТД, при добавлении номенклатуры можно открыть справочник номенклатуры ГТД, что бы при добавлении номенклатуры подставлялось то значение которое присвое этой номенклатуре?
Petre
1. Это не управляемый интерфейс.
2. Если речь идет о какой-то типовой, расскажите.
3. В украинских типовых "Номенклатура ГТД" - подчинен "Номенклатуре". Кроме того, в элементе номенклатуры есть номенклатура ГТД по-умолчанию. "Код УКТЗЕД" - реквизит элемента номенклатуры ГТД. Вот в обработчике события "ПриИзменении" и присваивайте элементу формы значение номенклатуры ГТД (или код УКТЗЕД из нее) из реквизита номенклатуры по умолчанию.
kot488
Цитата(Petre @ 15.07.15, 11:55) необходимо зарегистрироваться для просмотра ссылки
1. Это не управляемый интерфейс.
2. Если речь идет о какой-то типовой, расскажите.
3. В украинских типовых "Номенклатура ГТД" - подчинен "Номенклатуре". Кроме того, в элементе номенклатуры есть номенклатура ГТД по-умолчанию. "Код УКТЗЕД" - реквизит элемента номенклатуры ГТД. Вот в обработчике события "ПриИзменении" и присваивайте элементу формы значение номенклатуры ГТД (или код УКТЗЕД из нее) из реквизита номенклатуры по умолчанию.


Затупил, это обычный интерфейс, УТП Для Украины 1.2.30.



Пытаюсь код вывода кода выдереть с налоговой накладной так там Процедура ТоварыНоменклатураПриИзменении про уктвэд вообще пусто
Petre
Ну как же? Вот:
ПриИзмененииНоменклатурыТоваров(СтрокаТабличнойЧасти);
kot488
Цитата(Petre @ 15.07.15, 13:01) необходимо зарегистрироваться для просмотра ссылки
Ну как же? Вот:
ПриИзмененииНоменклатурыТоваров(СтрокаТабличнойЧасти);



Вот кусок с Н,Н,
Процедура ПриИзмененииНоменклатурыТоваров(СтрокаТабличнойЧасти)

    // Заполняем реквизиты табличной части.
    ЗаполнитьСтавкуНДС(СтрокаТабличнойЧасти);
    ЗаполнитьУКТВЭДВСтрокеТоваров(СтрокаТабличнойЧасти);

    // Заполнение цены зависит от розничности операции.
    ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуЦенуПродажиТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, мВалютаРегламентированногоУчета);

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



А вот с реализации
Процедура ПриИзмененииНоменклатурыТоваров(СтрокаТабличнойЧасти)

    // Заполняем реквизиты табличной части.
    ОбработкаТабличныхЧастей.ЗаполнитьСтавкуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, "Реализация");
    ОбработкаТабличныхЧастей.ЗаполнитьСпособСписанияОстаткаТоваровТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);

    // Заполнение цены зависит от розничности операции.
    ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуЦенуПродажиТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, мВалютаРегламентированногоУчета);

    УстановитьСвойстваПоляВводаЦены(СтрокаТабличнойЧасти.Номенклатура);

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


Если сделать так
Процедура ПриИзмененииНоменклатурыТоваров(СтрокаТабличнойЧасти)

    // Заполняем реквизиты табличной части.
    ОбработкаТабличныхЧастей.ЗаполнитьСтавкуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, "Реализация");
    ОбработкаТабличныхЧастей.ЗаполнитьСпособСписанияОстаткаТоваровТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);
    ЗаполнитьУКТВЭДВСтрокеТоваров(СтрокаТабличнойЧасти);

    // Заполнение цены зависит от розничности операции.
    ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуЦенуПродажиТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, мВалютаРегламентированногоУчета);

    УстановитьСвойстваПоляВводаЦены(СтрокаТабличнойЧасти.Номенклатура);

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


то получаем
{Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(1192,2)}: Процедура або функція з вказаним ім`ям не визначена (ЗаполнитьУКТВЭДВСтрокеТоваров)
<<?>>ЗаполнитьУКТВЭДВСтрокеТоваров(СтрокаТабличнойЧасти); (Перевірка: Товстий клієнт (звичайна прикладна програма))
Petre
Естественно! Надо еще скопировать из НН "ЗаполнитьУКТВЭДВСтрокеТоваров".
kot488
Цитата(Petre @ 15.07.15, 14:23) необходимо зарегистрироваться для просмотра ссылки
Естественно! Надо еще скопировать из НН "ЗаполнитьУКТВЭДВСтрокеТоваров".



Кроме этого больше нечего нет
Процедура ПриИзмененииНоменклатурыТоваров(СтрокаТабличнойЧасти)

    // Заполняем реквизиты табличной части.
    ЗаполнитьСтавкуНДС(СтрокаТабличнойЧасти);
    ЗаполнитьУКТВЭДВСтрокеТоваров(СтрокаТабличнойЧасти);

    // Заполнение цены зависит от розничности операции.
    ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуЦенуПродажиТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, мВалютаРегламентированногоУчета);

КонецПроцедуры
Процедура ПриИзмененииХарактеристикиНоменклатурыТоваров(СтрокаТабличнойЧасти)

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

КонецПроцедуры // ПриИзмененииХарактеристикиНоменклатурыТоваров()
Petre
Процедура "ЗаполнитьУКТВЭДВСтрокеТоваров" находится в модуле объекта. Пользуйтесь F12.
kot488
Цитата(Petre @ 15.07.15, 14:55) необходимо зарегистрироваться для просмотра ссылки
Процедура "ЗаполнитьУКТВЭДВСтрокеТоваров" находится в модуле объекта. Пользуйтесь F12.


Уже понял что не там искал((( Перенес, в поступлении товаров и услуг заработало, а вот в реализации нет((

Вот в модуле документа
Процедура ЗаполнитьУКТВЭДВСтрокеТоваров(СтрокаТабличнойЧасти) Экспорт
    НоменклатураГТДХарактеристики = СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры.НоменклатураГТД;
    
    Если СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры.ОтечественныйНеподакцизныйТовар = Истина Тогда
        
        СтрокаТабличнойЧасти.КодУКТВЭД = Неопределено;
        СтрокаТабличнойЧасти.НомерГТД = Неопределено;
    ИначеЕсли ЗначениеЗаполнено(НоменклатураГТДХарактеристики) Тогда
        СтрокаТабличнойЧасти.КодУКТВЭД = НоменклатураГТДХарактеристики.КодУКТВЭД;
        СтрокаТабличнойЧасти.НомерГТД  = НоменклатураГТДХарактеристики.НомерГТД;
    Иначе
        СтрокаТабличнойЧасти.КодУКТВЭД = СтрокаТабличнойЧасти.Номенклатура.НоменклатураГТД.КодУКТВЭД;
        СтрокаТабличнойЧасти.НомерГТД  = СтрокаТабличнойЧасти.Номенклатура.НоменклатураГТД.НомерГТД;
    КонецЕсли;
КонецПроцедуры


Вот в Модуле формы

Процедура ТоварыНоменклатураПриИзменении(Элемент)

    СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;

    // Выполнить общие действия для всех документов при изменении номенклатуры.
    ОбработкаТабличныхЧастей.ПриИзмененииНоменклатурыТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);

    // Заполняем реквизиты табличной части.
    ОбработкаТабличныхЧастей.ЗаполнитьСтавкуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект,"Приобретение");

    СтруктураШапкиДокумента = Новый Структура("Контрагент, ТипЦен, ДоговорКонтрагента, ДатаДокумента, ВалютаДокумента, УчитыватьНДС, СуммаВключаетНДС",
                                             Контрагент, ТипЦен, ДоговорКонтрагента, Дата,ВалютаДокумента, УчитыватьНДС,СуммаВключаетНДС);
    ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуЦенуПокупкиТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, СтруктураШапкиДокумента, мВалютаРегламентированногоУчета);

    // Рассчитываем реквизиты табличной части.
    ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);
    ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);
    
    УчетСерийныхНомеров.ПроверитьСерийныеНомера(СтрокаТабличнойЧасти, ЭтотОбъект);
    ЗаполнитьУКТВЭДВСтрокеТоваров(СтрокаТабличнойЧасти);
    ЗаполнитьСчетаУчетаВСтрокеТабЧасти(СтрокаТабличнойЧасти, "Товары", ОтражатьВБухгалтерскомУчете, ОтражатьВБухгалтерскомУчете);

КонецПроцедуры // ТоварыНоменклатураПриИзменении()


В реализации как то скудно выражено при изменении
Процедура ТоварыНоменклатураПриИзменении(Элемент)

    ПриИзмененииНоменклатурыТовары(Элемент);
    ЗаполнитьУКТВЭДВСтрокеТоваров(СтрокаТабличнойЧасти);
    
КонецПроцедуры // ТоварыНоменклатураПриИзменении()


ВОт ошибка, реквизит создан, что он хочет не влезу

{Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(2913,32)}: Змінна не визначена (СтрокаТабличнойЧасти)
    ЗаполнитьУКТВЭДВСтрокеТоваров(<<?>>СтрокаТабличнойЧасти); (Перевірка: Товстий клієнт (звичайна прикладна програма))
logist
Цитата(kot488 @ 15.07.15, 15:20) необходимо зарегистрироваться для просмотра ссылки
ВОт ошибка, реквизит создан, что он хочет не влезу

Добавьте выше
СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;
kot488
Цитата(logist @ 15.07.15, 16:17) необходимо зарегистрироваться для просмотра ссылки
Добавьте выше
СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;


Спасибо, помогло)) тему можно закрыть
nmf
Прочитал тему, сделал вывод код УКТВЭД для документа (Поступление товаров и услуг) УТП для Украины, в ручном вводе работает (выводится код УКТВЭД), при вводе на основании из документа (Заказ поставщику) автоматом "код УКТВЭД" не подтягивает, может кто подскажет в чем проблема.
logist
Цитата(nmf @ 24.02.17, 11:36) необходимо зарегистрироваться для просмотра ссылки
может кто подскажет в чем проблема.

Расскажите, что сделали, для того что бы выводился на основании.
nmf
logist @ Сегодня, 13:55 необходимо зарегистрироваться для просмотра ссылки , logist @ Сегодня, 13:55 необходимо зарегистрироваться для просмотра ссылки ,
logist
Если вы о сообщениях выше, то там нигде нет заполнения на основании, там только обработка строк из формы.
nmf
</p><p>Процедура КоманднаяПанельТоварыДействиеЗаполнитьПоЗаказуПоставщику(Кнопка)
ЗаполнитьТабличнуюЧастьПоОстаткам(Товары);
ЗаполнитьУКТВЭДВСтрокеТоваров(СтрокаТабличнойЧасти);
КонецПроцедуры // КоманднаяПанельТоварыДействиеЗаполнитьПоОстаткам()



ошибка вот

{Документ.ПоступлениеТоваровУслуг.Форма.ФормаДокумента.Форма(2286,32)}: Переменная не определена (СтрокаТабличнойЧасти)
ЗаполнитьУКТВЭДВСтрокеТоваров(<<?>>СтрокаТабличнойЧасти);

logist
Цитата(nmf @ 27.02.17, 11:54) необходимо зарегистрироваться для просмотра ссылки
ошибка вот

Цитата(nmf @ 24.02.17, 11:36) необходимо зарегистрироваться для просмотра ссылки
Прочитал тему

Плохо читали. необходимо зарегистрироваться для просмотра ссылки
fender2121
Здравствуйте. Можете описать схему действий по внесению в табличную часть приходной накладной кодов УКТВЭД? конф.8.3 УТП ред 1,2
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.