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

Новая тема
Показывать по 10 20 40 сообщений
"Выгружаю значение реквизита из справочника в текстовый файл, но в результате в файл попадает значение реквизита только последнего элемента справочника, где ошибка?
Процедура Выполнить()
Спр = СоздатьОбъект("Справочник.Номенклатура");
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 Цикл
Если Спр.ЭтоГруппа() = 1 Тогда
Продолжить;
КонецЕсли;

Файл = СоздатьОбъект("Текст");    
Файл.Очистить();        
Спис = СоздатьОбъект("СписокЗначений");
Спис.ДобавитьЗначение(Спр.Датапоступ);
Размер = Спис.РазмерСписка();
Сообщить(Размер);
Файл.ДобавитьСтроку(Спис.ВСтрокуСРазделителями());
КонецЦикла;
ИмяФайла = "НашиРеквизиты"+".txt";    
ИФ = "C:\" + ИмяФайла;
Сообщить(""""+ИФ);
   Файл.Записать(СокрЛП(ИФ));

КонецПроцедуры"
"Вы при выборе каждой новой строки заново создаете Файл :)
Нужно его создать, и только потом в цикле перебирать строки и записывать их в файл ;)

~~~ Красноярск, http://x-frame.ru/ ~~~"
Странно...вроде втыкала создание файла до цикла, не получалось...а теперь получилось %)
Может кто подскажет. Не могу понять систему...в конечном итоге мне нужно выгрузить реквизит справочника из архивной копии и заполнить его в действующей базе (слетел при обновлении)
Реализовать это через тхт реально, на сколько я понимаю
Сейчас выгружает только значения, но нужно ведь еще и владельца реквизита привязать, так я понимаю? иначе как я потом буду загрузку делать...
> Может кто подскажет. Не могу понять систему...в конечном итоге мне нужно выгрузить реквизит справочника из архивной копии и заполнить его в действующей базе (слетел при обновлении)
> Реализовать это через тхт реально, на сколько я понимаю
> Сейчас выгружает только значения, но нужно ведь еще и владельца реквизита привязать, так я понимаю? иначе как я потом буду загрузку делать...
>

возьми с ИТС / инета обработку export.ert|import.ert
я сама хочу сделать
реквизит был добавлен вручную (не периодический), а эти обработки громоздские, вытащить оттуда выгрузку реквизита %)
Тогда лучше всего сделать не список, а таблицу значений. Заполнить её значениями Спр.ТекущийЭлемент() и нужные вам реквизиты. После цикла сделать ЗначениеВФайлВнутр.
В рабочей соответственно получаете таблицу через ЗначениеИзФайлаВнутр и обрабатываете.
Правда работает это только в случае, когда перенос делается из архивной базы в рабочую. Если рабочая база не прямой потомок, откуда выгружаете - лучше так не делать.
> я сама хочу сделать
> реквизит был добавлен вручную (не периодический), а эти обработки громоздские, вытащить оттуда выгрузку реквизита %)

тогда надо выгружать родителя и владельца !
"> После цикла сделать ЗначениеВФайлВнутр.
Добавила таблицузначений с реквизитом и кодом элемента, а как это в файл воткнуть, непойму...
Процедура Выполнить()  

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

       
Спис = СоздатьОбъект("ТаблицаЗначений");

Спис.НоваяКолонка("Код","Строка");
Спис.НоваяКолонка("ДатаПоступ","Дата");
Спис.Код = Спр.Код;
Спис.ДатаПоступ = Спр.ДатаПоступ;
Файл.ДобавитьСтроку(Спис.ВСтрокуСРазделителями());
КонецЦикла;
ИмяФайла = "НашиРеквизиты"+".txt";    
ИФ = "C:\" + ИмяФайла;
Сообщить(""""+ИФ);
Файл.Записать(СокрЛП(ИФ));



КонецПроцедуры"
"> > После цикла сделать ЗначениеВФайлВнутр.
Извиняюсь, ошибся. Функция называется ЗнаечниеВФайл и соответственно ЗначениеИзФайла.

Процедура Выполнить()  
Спис = СоздатьОбъект("ТаблицаЗначений");
Спис.НоваяКолонка("Код","Строка");
Спис.НоваяКолонка("ДатаПоступ","Дата");
Спр = СоздатьОбъект("Справочник.Номенклатура");
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 Цикл
Если Спр.ЭтоГруппа() = 1 Тогда
Продолжить;
КонецЕсли;
Спис.Код = Спр.Код;
Спис.ДатаПоступ = Спр.ДатаПоступ;
КонецЦикла;
ИмяФайла = "НашиРеквизиты"+".txt";    
ИФ = "C:\" + ИмяФайла;
Сообщить(""""+ИФ);
ЗначениеВФайл (СокрЛП(ИФ), Спис);
КонецПроцедуры

"
Читают тему
(гостей: 1)

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