Преобразование типов из строки в С.Номенклатура

Тема в разделе "1C и всё что с ней связано", создана пользователем WildAnther, 7 июн 2009.

  1. WildAnther

    WildAnther Гость

    Наверника найдутся те кто обгадят тему мол нубо тема. с такими вопросами да к бабушки бы... Ну надеюсь найдутся те кто помогут, зарание спасибо,
    Собственно суть проблемы:
    Тащу данные из экселя а именно заказ из магазин в 3 колонки Номер Товар Кол-во. Всё просто в общем то.
    Делаю в отдельной обработке, имеется соответственно таблица в 3 колонки, аналогичная.
    Если Товар Тип Строка то всё ровно.. но меня это не устраивает нужно чтобы в дальнейшем у меня было Тип С.Номенклатура.
    Данные из обработки попадают в док-т ЗаказМагазина и там вот уже надо чтобы всё ровненько было с С.Номенклатура и т.д.

    1С 8.1
    УТ 10.3
    П.С. Поиском пользовался.
    П.С.С не надо камней, я и так знаю что я не гуру.
    П.С.С.С. =) спасибо.
     
  2. gorlanovmax

    gorlanovmax Well-Known Member
    1C Team

    Регистрация:
    19 июн 2008
    Сообщения:
    286
    Симпатии:
    0
    Если у тебя Товар - это код товара в 1С Тогда так:

    Спр=СоздатьОбъект("Справочник.Номенклатура");
    Если Спр.НайтиПоКоду(СокрЛП(Товар),0)=1 Тогда
    ТоварВОбработке=Спр.ТекущийЭлемент();
    КонецЕсли;

    Если у тебя Товар - это Текстовое название, тогда так:

    Спр=СоздатьОбъект("Справочник.Номенклатура");
    Если Спр.НайтиПоНаименованию(СокрЛП(Товар),0)=1 Тогда
    ТоварВОбработке=Спр.ТекущийЭлемент();
    КонецЕсли;

    Примерно так
     
  3. WildAnther

    WildAnther Гость

    У меня Товар это текст

    И если я правильно понял то что относительно текстового названия:
    Создаст новую номенклатуру если нету такой и потом присвоет уже товару в обработке номенклатуру из справочника?

    Вот процедура добавления именно уже в документ ЗаказИзМагазина
    Код (Text):
    Процедура СозданиеДокЗаказИзМагазина ()
    ДокЗакИзМагазина = Документы.ЗаказИзМагазина.СоздатьДокумент();
    ДокЗакИзМагазина.Дата = ТекущаяДата();
    ДокЗакИзМагазина.Магазин = Магазин;  
    ДокЗакИзМагазина.Продавец = Продавец;

    Для каждого СтрокаДанныхМагазина из ДанныеМагазина цикл  
    ЗаполнитьЗначенияСвойств(ДокЗакИзМагазина.ПереченьТовара.Добавить(), СтрокаДанныхМагазина);
    ДокЗакИзМагазина.Записать();   
    КонецЦикла;

    Форма = ДокЗакИзМагазина.ПолучитьФорму();
    Форма.Открыть();

    КонецПроцедуры
    сюда я как понимаю никак надо до это все исправлять
    например когда формируем таблицу обработки.
     
  4. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Т.е. поиск будет осуществляться по наименованию? Решили ли вы проблему синхронизации? Т.е. не будет ли у вас такого, чтов файле "Огурцы соленые", а в базе "Огурцы соленые под водку" которые реально одно и то же?
    А вопрос я не совсем понял)
     
  5. WildAnther

    WildAnther Гость

    =)
    Под водку это хорошо... Но сначала так сказать самалеты...
    Нет раз синхронизации с огурцами и молоком не будет точно(тобиш проблем с этим нет)
    Есть эксель файл там список Номер Това Кол-во
    Номер - число просто от 1 - N
    Товар это просто текст причем текст именно определнный. в Екселе всё жестко там ошибок не может быть из списка выбирается товар. тоесть в 1ски он точно есть.
    Кол-во Число (собственно сколько товара)
    Проблема в том что мне в конечном итоге надо чтобы товар уютно сел с типом С.Номенклатура, дабы пойти дальше по документам.
    Вот в чем стоит суть проблемы.
     
  6. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Так вот...
    Проблема у вас не в том что "надо", а в том что "не садится", или в том, что "не знаете, как сделать..."... Это к вопросу формулировки...
    Нужно примерно вот это:
    [codebox]СпрТовар = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеИзФайла);
    Если СпрТовар = Неопределено Тогда
    СпрТовар = Справочники.Номенклатура.СоздатьЭлемент();
    СпрТовар.Наименование = НаименованиеИзФайла;
    СпрТовар.Записать();
    КонецЕсли;
    [/codebox]
     
  7. WildAnther

    WildAnther Гость

    Спасибо мужики за помошь. как появится возможность втыкнуть плюс поставлю обоим. помогли оба.
    огромное спасибо!
    Сделал по своему исходя из первого вариант получилось вот что
    Спр= Справочники.Номенклатура;
    С4 = Спр.НайтиПоНаименованию(Колонка2);
    С2 = С4.Наименование;

    Но подумав чтобы забивать новые данные неплохом бы иметь и вариант от unknown181538 (спасибо) и сделал и его вариант тоже... теперь всё тип топ.. веточку не закрываю может еще какой вопрос возникнит.. огромное спасибо...
     
Загрузка...

Поделиться этой страницей