7.7 Не выводится номенклатура

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем xDee, 7 дек 2011.

  1. TopicStarter Overlay
    xDee
    Offline

    xDee

    Регистрация:
    16 авг 2010
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Доброго времени суток! Написал обработку по созданию Заявки покупателя формируемой из буфера обмена с сайта интернет магазина. На форме создал многострочное поле ввода куда вставляются артикулы и количество и ТЗ , все читается и заполняется, только при создании документа Заявки покупателя не заполняется поле номенклатуры, при этом если вызываю Сообщить() то все показывается , а в документе никак. Помогите, что не так ?
    Код:
    Док	= СоздатьОбъект("Документ.ЗаявкаПокупателя");
    Док.Новый();
    Док.ВидОперации = Перечисление.ВидыОперацийЗаявок.НаПоставку;
    Док.Фирма =НужнаяФирма;
    Док.Склад=НужныйСклад;
    ТЗ.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку()=1 Цикл
    Док.НоваяСтрока();
    Док.Номенклатура  = Строка(ТЗ.Наимен);
    //Док.Номенклатура  = ТЗ.Наимен;
    Док.Количество  = ТЗ.Количество;	
    Сообщить(ТЗ.Наимен+"__"+ ТЗ.Количество);
    КонецЦикла;
    Док.Записать();
    ОткрытьФормуМодально(Док.ТекущийДокумент()); 
    
    
  2. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Скорее всего разные типы.
    Думаю "Док.Номенклатура" - тип будет "Справочник", ну а присваивается строка.

    Нужно сначала найти нужный элемент справочника номенклатуры (по наименованию или полному наименованию), а потом его присваивать реквизиту документа.
  3. TopicStarter Overlay
    xDee
    Offline

    xDee

    Регистрация:
    16 авг 2010
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    При заполнении ТЗ я нахожу номенклатуру в справочнике :
    Код:
    Процедура Сформировать()
    Ном = СоздатьОбъект("Справочник.Номенклатура");
    Для Индекс=1 по СтрКоличествоСтрок(Текст) Цикл
    // Разберем строку
    СтрТекста = СтрПолучитьСтроку(Текст,Индекс);
    СтрТекста  = СтрЗаменить(СтрТекста ," ",РазделительСтрок);
    ТЗ.НоваяСтрока();
    _Артикул= СтрПолучитьСтроку(СтрТекста,1);
    Если Ном.НайтиПоРеквизиту("Артикул",_Артикул,1)=1 Тогда
    Наим=Ном.Наименование;
    ТЗ.Наимен = Наим;
    ТЗ.Количество = СтрПолучитьСтроку(СтрТекста,2);
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры
    
    
  4. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    у вас ТЗ.Наимен все равно скорее всего типа Строка, а вам надо действительно ссылку на элемент справочника Номенклатура
  5. TopicStarter Overlay
    xDee
    Offline

    xDee

    Регистрация:
    16 авг 2010
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Подскажите пожалуйста как из процедуры Сформировать() получить ссылку ?
  6. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Код:
    ТЗ.Наимен = Наим;
    
    заменить на
    Код:
    ТЗ.Наимен = Ном.ТекущийЭлемент();
    
    Или использовать отдельную колонку в ТЗ
    PS для колонки Наимен нужно проверить, что бы тип был "Справочник".
  7. TopicStarter Overlay
    xDee
    Offline

    xDee

    Регистрация:
    16 авг 2010
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Спасибо всем, все получилось!

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