Имя: Пароль:
1C
1С v8
Автоматическое заполнение артикула при выборе номенклатуры
0 noooobok
 
17.02.15
14:44
Всем привет!

1с 8.2 упп 1.3
Требуется помощь в составлении запроса.
Есть документ "Установка кодов номенклатуры покупателей". Необходимо сделать автозаполнение артикула при выборе номенклатуры.

Есть код на обратную процедуру (заполнение номенклатуры при выборе артикула). Вот он:

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

    Запрос.УстановитьПараметр("Артикул", СтрокаТабличнойЧасти.Артикул);
    Запрос.УстановитьПараметр("ВидНоменклатуры", Справочники.ВидыНоменклатуры.НайтиПоКоду("000000023"));
    Результат = Запрос.Выполнить().Выбрать();
    КолВоЗаписей = Результат.Количество();
    
    
    Если КолВоЗаписей = 1 Тогда
        //Выборка = Результат.Выбрать();

         Результат.Следующий();
        СтрокаТабличнойЧасти.Номенклатура = Результат.Ссылка;
    КонецЕсли;
    
КонецПроцедуры


Пробую действовать от обратного, чет застрял. Можете мой код подправить?

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

    Запрос.УстановитьПараметр("Наименование", Справочники.Номенклатура.НайтиПоНаименованию("Номенклатура.Наименование"));
    Запрос.УстановитьПараметр("Артикул", СтрокаТабличнойЧасти.Артикул);
    // Запрос.УстановитьПараметр("ВидНоменклатуры", Справочники.ВидыНоменклатуры.НайтиПоКоду("000000023"));          

    
    Результат = Запрос.Выполнить().Выбрать();
    КолВоЗаписей = Результат.Количество();
    
    
    Если КолВоЗаписей = 1 Тогда
        //Выборка = Результат.Выбрать();

         Результат.Следующий();
        СтрокаТабличнойЧасти.Номенклатура = Результат.Ссылка;
    КонецЕсли;
КонецПроцедуры

Спасибо!
1 marty0701
 
17.02.15
14:49
(0)С элементарного начни, говоришь установить артикул, а делаешь?
СтрокаТабличнойЧасти.Номенклатура = Результат.Ссылка;
Где тут артикул?
Дайте мне развидеть это...
2 Крошка Ру
 
17.02.15
14:53
(0)
СтрокаТабличнойЧасти = ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные;
СтрокаТабличнойЧасти.Артикул = Элемент.Значение.Артикул;

Это если ТабличноеПоле1 - именно то поле, где ты пытаешься изменить номенклатуру и там есть колонка Артикул.

А вообще, копировать чужой г..нокод - это лучший способ научиться г..нокодировать.
3 shuhard
 
17.02.15
16:20
(2) в УПП артикула в ТЧ нет и не будет
4 Крошка Ру
 
17.02.15
16:22
(3) А если добавлю?
5 Михаил Козлов
 
17.02.15
16:31
(4) Руки оторвут.
6 noooobok
 
17.02.15
16:31
(2)

ТабличноеПоле1 - именно то поле, где я пытаюсь изменить номенклатуру и там есть колонка Артикул.

Спасибо, артикул корректно заполняется.
Будем учиться и стараться избегать г..нокодирования.

Всем мир ^)
7 Крошка Ру
 
17.02.15
16:37
(5) Так я ж никому не скажу, что это я :))

Что думает кот, когда гадит под креслом?
"Знаю, что нельзя, но, во-первых - там же темно, во-вторых - никто ж не видит, да и потом - я же закопаю!"
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn