Имя: Пароль:
1C
1С v8
Добавление номенклатуры в табличную часть
0 Ikera
 
21.05.16
16:58
Добрый день. Столкнулся с такой проблемой. В документе Поступление товаров имеется столбец Номенклатура, требуется программно заполнить его. Как мне по наименованию(или артикулу) выбрать запись в справочнике и добавить ее в эту таблицу? 1С:БП 8.3
Спасибо! :)
1 zak555
 
21.05.16
17:09
Откуда получаешь наименование или артикул?
2 Chameleon1980
 
21.05.16
17:22
Запрос
3 Ikera
 
21.05.16
17:36
(2) данные получаю из таблицы эксель, все читается нормально ( например АртикулТекст = Excel.Cells(К,2).Text;)
(3) Можно по подробнее, пожалуйста, ну или куда мне следует гуглить
Серьезным программированием в 1С еще не занимался, но для начальства я "тыжпрограммист"
4 Ikera
 
21.05.16
17:38
*опечатался
(1) данные получаю из таблицы эксель, все читается нормально ( например АртикулТекст = Excel.Cells(К,2).Text;)
(2) Можно по подробнее, пожалуйста, ну или куда мне следует гуглить
5 Masquerade
 
21.05.16
17:51
Дело серьезное.

НужноеНаименование = //Какое то твоё наименование.

Номенклатура = Справчоники.Номенклатура.НайтиПоНаименованию(НужноеНаименование);

Если Номенклатура.Пустая() тогда
Возврат;
КонецЕсли;

ДокПоступление = ВернутьНужныйДокПоступления();

ДокПоступлениеОб = ДокПоступление.ПолучитьОбъект();

НовСтрокаВТЧ = ДокПоступлениеОб.Товары.Добавить();
НовСтрокаВТЧ.Номенклатура = Номенклатура;
6 Chameleon1980
 
21.05.16
17:53
&НаСервереБезКонтекста
Функция НайтиНоменклатуруПоАртикулу(СтрокаАртикул)

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

КонецФункции

&НаСервере
Процедура ЗагружаемНаСервере();
   ...
   ...
   АртикулТекст = Excel.Cells(К,2).Text;
   НоваяСтрока=Объект.Товары.Добавить();
   НоваяСтрока.Номенклатура = НайтиНоменклатуруПоАртикулу(АртикулТекст);
   ...
   ...
КонецПроцедуры
7 Ikera
 
21.05.16
19:07
(6) большое спасибо, использовал ваш метод
8 zak555
 
21.05.16
19:17
(7) не забываем, что под одним артикулом может быть более одного элемента
9 Chameleon1980
 
21.05.16
19:31
это точно
ну какой вопрос был - такой ответ