Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
11 Дек 2017, 07:12
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Нужна помощь по процедуре импорта  (Прочитано 2097 раз)

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

Оффлайн nartai

  • *
  • Сообщений: 11
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-07-07
  • Сайт: 
  • Профессия: Программист 1С
Всем Привет!!! есть процедура импорта  из хмл, она должна импортировать несколько элементов из хмл но она место этого импортирует только  1 элемент наименования и записывает ее на другие элементы например наименование записывает норм а на места инвномера и штрихкода тоже записывает наименование можете помочь с процедурой 
Заранее Спасибо!!!!



  &НаСервере
 
  Процедура ПрочитатьXMLНаСервере(Файлик)


     ПутьКФайлу = Файлик[0];
    
    
     ЧтениеXML = Новый ЧтениеXML;
     ЧтениеXML.ОткрытьФайл(ПутьКФайлу);
    
    
     Сз = Неопределено;
Пока ЧтениеXML.Прочитать() Цикл
             Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
                  ИмяЭлемента = ЧтениеXML.Имя;
             Если ИмяЭлемента="CatalogObject.ОсновныеСредства" Тогда
                  Если Сз<>Неопределено Тогда
                  СоздатьЭлементСправочника(Сз);
             КонецЕсли;
                  Сз = Новый СписокЗначений;
           КонецЕсли;
          
            ЧтениеXML.Прочитать();
            Если ЧтениеXML.ТипУзла=ТипУзлаXML.Текст Тогда
         Если ИмяЭлемента= "Description" Тогда
               Сз.Добавить(ЧтениеXML.Значение,ИмяЭлемента);
                 КонецЕсли;
         Если ИмяЭлемента= "ИнвНомер" Тогда
               Сз.Добавить(ЧтениеXML.Значение,ИмяЭлемента);
                 КонецЕсли;
          Если ИмяЭлемента= "ШтрихКод" Тогда
               Сз.Добавить(ЧтениеXML.Значение,ИмяЭлемента);
                 КонецЕсли;   


КонецЕсли;
             
                КонецЕсли;


КонецЦикла;




              
    
   КонецПроцедуры


   Процедура СоздатьЭлементСправочника(СЗ)
      
            Если СЗ.Количество() >0 Тогда
         НовыйЭлемент = Справочники.ОсновныеСредства.СоздатьЭлемент();
         НовыйЭлемент.Наименование=СЗ
  • .Значение;

         НовыйЭлемент.ИнвНомер=СЗ[0].Значение;
         НовыйЭлемент.ШтрихКод = СЗ[0].Значение;
         НовыйЭлемент.Записать();
      
          КонецЕсли;
      КонецПроцедуры



Оффлайн Yura063

  • *****
  • Сообщений: 1045
  • РЕПУТАЦИЯ: 136
  • КПД: 13%
  • Регистрация: 2010-11-15
  • Сайт: yuis.ru
  • Профессия: Программист 1С
Так у вас в процедуре  Процедура СоздатьЭлементСправочника(СЗ) Ко всему присваивается одно и тоже значение "СЗ[0].Значение"!
Добавлено: 11 Янв 2013, 11:16

ПолучитьЗначение(<Позиция>, <Перем>)
Англоязычный синоним:
GetValue
Параметры:
<Позиция>
Числовое выражение — номер элемента в списке, значение которого будет возвращено. Номер позиции может быть от 1 до количества элементов в списке.
<Перем>
Идентификатор переменной в которую будет возвращено строковое выражение, содержащее символьное представление получаемого значения.
Возвращаемое значение:
Полученное значение из списка.
Описание:
С помощью метода ПолучитьЗначение можно получить значение элемента, находящегося в указанной позиции списка.
Пример:
ОпредПредст = "";
ОпредВид=Спис.ПолучитьЗначение(1, ОпредПредст);
Помогли, отблагодари!

Оффлайн nartai

  • *
  • Сообщений: 11
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-07-07
  • Сайт: 
  • Профессия: Программист 1С
Спасибо  Yura063 Помогло значении  поставил заработало!!!:D

Вы можете еще с этим помочь?  когда импортирую хмлку чтобы импортировался только определенные две группы. Если добавлю в Процедуру СоздатьЭлементСправочника(СЗ)
будетли это правильно или нет 
Если Не Сз.Свойство("ГруппаОС") Или Сз.ГруппаОС<>"Компьютеры" Тогда
Возврат;
КонецЕсли;

Оффлайн Yura063

  • *****
  • Сообщений: 1045
  • РЕПУТАЦИЯ: 136
  • КПД: 13%
  • Регистрация: 2010-11-15
  • Сайт: yuis.ru
  • Профессия: Программист 1С
Записывалось только в две группы?
Добавлено: 11 Янв 2013, 12:30

создавал только в двух группах?
Помогли, отблагодари!

Оффлайн nartai

  • *
  • Сообщений: 11
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-07-07
  • Сайт: 
  • Профессия: Программист 1С
Чтобы из хмл брал только две группы например "компьютеры и Оргтехника" и записывал их по отдельности 

Оффлайн Yura063

  • *****
  • Сообщений: 1045
  • РЕПУТАЦИЯ: 136
  • КПД: 13%
  • Регистрация: 2010-11-15
  • Сайт: yuis.ru
  • Профессия: Программист 1С
Можно написать на подобие:
Если (Сз.ГруппаОС="Компьютеры" ИЛИ Сз.ГруппаОС="Оргтехника") тогда
        //Команды для создания элементов справочника
            Если Сз.ГруппаОС="Компьютеры" тогда
                Родитель = НайтиПоКоду(кодГруппыКомпьютеры);
            Иначе
                Родитель = НайтиПоКоду(кодГруппыОргтехника);
            КонецЕсли;
        //Записать элемент справочника
      КонецЕсли;
То тогда он будет записывать только эти группы и в группы справочника комп. или оргтехника
Помогли, отблагодари!

Оффлайн nartai

  • *
  • Сообщений: 11
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-07-07
  • Сайт: 
  • Профессия: Программист 1С

Yura063 можете подсказать как исправить эти ошибки

{Справочник.ОсновныеСредства.Форма.ФормаСписка.Форма(52,40)}: Переменная не определена (кодГруппыКомпьютеры)
                Родитель = НайтиПоКоду(<<?>>кодГруппыКомпьютеры); (Проверка: Сервер)
{Справочник.ОсновныеСредства.Форма.ФормаСписка.Форма(52,28)}: Процедура или функция с указанным именем не определена (НайтиПоКоду)
                Родитель = <<?>>НайтиПоКоду(кодГруппыКомпьютеры); (Проверка: Сервер)

Оффлайн Yura063

  • *****
  • Сообщений: 1045
  • РЕПУТАЦИЯ: 136
  • КПД: 13%
  • Регистрация: 2010-11-15
  • Сайт: yuis.ru
  • Профессия: Программист 1С
Так вы этой переменой присвойте код группы Компьютеры!
Добавлено: 14 Янв 2013, 09:40

И я вам не писал что это переменная! я вам имел ввиду, что надо написать код группы компьютеры! Например:
НайтиПоКоду("00000001");
Помогли, отблагодари!


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
160 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
55 Сообщений
alex0402
46 Сообщений
andron81_81
44 Сообщений
AIFrame
35 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
27 Сообщений
BuhRust
27 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 293
  • Точка Скрытых: 0
  • Точка Пользователей: 5
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal