Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 11:37

Импорт из EXCEL

Автор SkyNetYar, 22 янв 2015, 09:47

0 Пользователей и 1 гость просматривают эту тему.

SkyNetYar

Обработка импорт из EXCEL в УТ работала в Рознице 2.1 не работает..,дело все в доп.реквизитах номенклатуры, не могу вывести в список наименования этих доп.реквизитов..

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


Ругается на мДопРеквизиты.Вставить(СтрЗаменить(ВыборкаДетальныеЗаписи.Наименование, " ", "_"));  неправильно задано имя атрибута структуры.

SkyNetYar

Ну может кто то подскажет как быть?
В отладчике показывает "" а должно показывать наименование дополнительного реквизита номенклатуры..

LexaK

у вас ВыборкаДетальныеЗаписи.Наименование скорее всего ссылка,

в структуру в методе Вставить(<Ключ>, <Значение>)
Параметры:
<Ключ> (обязательный)
Тип: Строка.
Ключ устанавливаемого элемента.
<Значение> (необязательный)
Тип: Произвольный.
Значение устанавливаемого элемента.

в ключ ссылку передавать нельзя!
вам система честно об это пишет!


попробуйте, ваш код


мДопРеквизиты.Вставить(СтрЗаменить(ВыборкаДетальныеЗаписи.Наименование, " ", "_"));


заменить на следдующий

лкПоз = лкПоз + 1;
мДопРеквизиты.Вставить("Код"+лкПоз,ВыборкаДетальныеЗаписи.Наименование);


вообще моя подсказка бессмысленна, так как я не знаю что вы делаете и зачем!
просто "лечение" вашей ошибки! возможно все надо делать совсем по другому. :dfbsdfbsdf:
если помогло нажмите: Спасибо!

SkyNetYar

Получилось немного изменил..

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


Так заработало :bleh:
В общем то дело было в ДополнительныеРеквизитыИСведения.Наименование

LexaK

зачем это?

лкПоз = лкПоз;


подразумевалось что лкПоз + 1 это счетчик, в вашем варианте если лкПоз не меняется
то после цикла структура у вас будет всего с одним элементом!

может вам ваша переменная мДопРеквизиты не в виде структуры нужна а в виде списокзначений?

тогда нужен следующий код

мДопРеквизиты = Новый СписокЗначений;
//...запрос
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        мРеквизиты.Добавить(ВыборкаДетальныеЗаписи.Наименование);
        мДопРеквизиты.Добавить(ВыборкаДетальныеЗаписи.Наименование);
    КонецЦикла;



(ложка меда)
если помогло нажмите: Спасибо!

SkyNetYar

Да работает,Спасибо еще раз, я учусь еще только поэтому оптимизация кода для меня чужда пока,но я конечно видел что счетчик не нужен,но работает же ;)
Вообще по сути это выпадающий список реквизитов для заполнения документа из excel файла,а эта секция отвечает за доп.реквизиты номенклатуры.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск