Выгружаю реквизит в файл

Новая тема
Показывать по сообщений
так ерунда какая-то, совсем не то %(<br>{"VT","1",{"0",{{","0","0","0",","2"},<br>{"Код","Код","1","0","0",{"S","0","0","0","0","0"},","0",<br>{<br><br>}<br>},<br>{"ДатаПоступ","ДатаПоступ","1","0","1",{"D","0","0","0","0","0"},","0",<br>{<br><br>}<br>}}}}
вобщем, всем спасибо, благодаря вашим советам у меня появлялись умные мысли :)<br>все получилось через "списокзначений"<br><br>
Пожалуйста :)<br>Только тот файл читать надо через ЗначениеИзФайла!!!
> читать надо через ЗначениеИзФайла!!!<br>с импортированием реквизита я приду завтра :))))
"Вот и я :)<br>что-то напутано с циклами. Ниже получается, что когда из справочника взят первый элемент, и из файла первый, они сравнились вставили дату, если ее нет, а дальше опять с первым элементом из файла сравнивается следующий элемент из справочника, а мне нужно чтобы при первом совпадении совпавшие коды больше не проходили по циклу... <br><br> Спис = СоздатьОбъект("СписокЗначений");<br> КолСтрок = Файл.КоличествоСтрок();<br> <br> <br> СпрНом = СоздатьОбъект("Справочник.Номенклатура");<br> СпрНом.ВыбратьЭлементы();<br> Пока СпрНом.ПолучитьЭлемент() = 1 Цикл<br> <br> Если СпрНом.ЭтоГруппа() = 1 Тогда<br> Продолжить;<br> КонецЕсли;<br> Для А=1 По КолСтрок Цикл <br> Стр = Файл.ПолучитьСтроку(А); <br> Спис.УдалитьВсе();<br> Спис.ИзСтрокиСРазделителями(Стр);<br> <br> ТекКод = Спис.ПолучитьЗначение(1);<br> ТекДатаПоступ = Спис.ПолучитьЗначение(2);  <br> <br> <br> Если (СпрНом.Код = ТекКод) и (ПустоеЗначение(СпрНом.ДатаПоступ)=1)Тогда<br> СпрНом.ДатаПоступ = ТекДатаПоступ;<br> <br> Иначе<br> Сообщить ("Элемента с таким кодом нет в справочнике! Вероятно он был удален. Или реквизит уже заполнен"); <br> продолжить;<br> КонецЕсли; <br> КонецЦикла<br> КонецЦикла;<br>КонецПроцедуры"
"Зачем цикл в цикле, лучше использовать поиск:<br><br>Спис = СоздатьОбъект("СписокЗначений");<br>КолСтрок = Файл.КоличествоСтрок();<br>СпрНом = СоздатьОбъект("Справочник.Номенклатура");<br>Для А=1 По КолСтрок Цикл <br>    Стр = Файл.ПолучитьСтроку(А); <br>    Спис.УдалитьВсе();<br>    Спис.ИзСтрокиСРазделителями(Стр);<br><br>    ТекКод = Спис.ПолучитьЗначение(1);<br>    ТекДатаПоступ = Спис.ПолучитьЗначение(2);  <br><br>    Если СпрНом.НайтиПоКоду(ТекКод)=1 Тогда<br>        Если ПустоеЗначение(СпрНом.ДатаПоступ)=1 Тогда<br>            СпрНом.ДатаПоступ = ТекДатаПоступ;<br>            СпрНом.Записать();<br>        Иначе<br>            Сообщить ("Реквизит уже заполнен"); <br>        КонецЕсли; <br>    Иначе<br>        Сообщить ("Элемента с таким кодом нет в справочнике!"); <br>    КонецЕсли; <br>КонецЦикла;<br>"
Большое спасибо, работает :)
Читают тему
(гостей: 1)

Быстрый переход