Выгружаю реквизит в файл
Показывать по
10
20
40
сообщений
- 1
- 2
16.12.2009
07:26
#1
"Выгружаю значение реквизита из справочника в текстовый файл, но в результате в файл попадает значение реквизита только последнего элемента справочника, где ошибка?
Процедура Выполнить()
Спр = СоздатьОбъект("Справочник.Номенклатура");
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 Цикл
Если Спр.ЭтоГруппа() = 1 Тогда
Продолжить;
КонецЕсли;
Файл = СоздатьОбъект("Текст");
Файл.Очистить();
Спис = СоздатьОбъект("СписокЗначений");
Спис.ДобавитьЗначение(Спр.Датапоступ);
Размер = Спис.РазмерСписка();
Сообщить(Размер);
Файл.ДобавитьСтроку(Спис.ВСтрокуСРазделителями());
КонецЦикла;
ИмяФайла = "НашиРеквизиты"+".txt";
ИФ = "C:\" + ИмяФайла;
Сообщить(""""+ИФ);
Файл.Записать(СокрЛП(ИФ));
КонецПроцедуры"
Процедура Выполнить()
Спр = СоздатьОбъект("Справочник.Номенклатура");
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 Цикл
Если Спр.ЭтоГруппа() = 1 Тогда
Продолжить;
КонецЕсли;
Файл = СоздатьОбъект("Текст");
Файл.Очистить();
Спис = СоздатьОбъект("СписокЗначений");
Спис.ДобавитьЗначение(Спр.Датапоступ);
Размер = Спис.РазмерСписка();
Сообщить(Размер);
Файл.ДобавитьСтроку(Спис.ВСтрокуСРазделителями());
КонецЦикла;
ИмяФайла = "НашиРеквизиты"+".txt";
ИФ = "C:\" + ИмяФайла;
Сообщить(""""+ИФ);
Файл.Записать(СокрЛП(ИФ));
КонецПроцедуры"
16.12.2009
07:50
#2
"Вы при выборе каждой новой строки заново создаете Файл 
Нужно его создать, и только потом в цикле перебирать строки и записывать их в файл ;)
~~~ Красноярск, ~~~"
Нужно его создать, и только потом в цикле перебирать строки и записывать их в файл ;)
~~~ Красноярск, ~~~"
16.12.2009
08:13
#3
Странно...вроде втыкала создание файла до цикла, не получалось...а теперь получилось %)
16.12.2009
08:48
#4
Может кто подскажет. Не могу понять систему...в конечном итоге мне нужно выгрузить реквизит справочника из архивной копии и заполнить его в действующей базе (слетел при обновлении)
Реализовать это через тхт реально, на сколько я понимаю
Сейчас выгружает только значения, но нужно ведь еще и владельца реквизита привязать, так я понимаю? иначе как я потом буду загрузку делать...
Реализовать это через тхт реально, на сколько я понимаю
Сейчас выгружает только значения, но нужно ведь еще и владельца реквизита привязать, так я понимаю? иначе как я потом буду загрузку делать...
16.12.2009
09:27
#5
> Может кто подскажет. Не могу понять систему...в конечном итоге мне нужно выгрузить реквизит справочника из архивной копии и заполнить его в действующей базе (слетел при обновлении)
> Реализовать это через тхт реально, на сколько я понимаю
> Сейчас выгружает только значения, но нужно ведь еще и владельца реквизита привязать, так я понимаю? иначе как я потом буду загрузку делать...
>
возьми с ИТС / инета обработку export.ert|import.ert
> Реализовать это через тхт реально, на сколько я понимаю
> Сейчас выгружает только значения, но нужно ведь еще и владельца реквизита привязать, так я понимаю? иначе как я потом буду загрузку делать...
>
возьми с ИТС / инета обработку export.ert|import.ert
16.12.2009
11:37
#6
я сама хочу сделать
реквизит был добавлен вручную (не периодический), а эти обработки громоздские, вытащить оттуда выгрузку реквизита %)
реквизит был добавлен вручную (не периодический), а эти обработки громоздские, вытащить оттуда выгрузку реквизита %)
16.12.2009
11:52
#7
Тогда лучше всего сделать не список, а таблицу значений. Заполнить её значениями Спр.ТекущийЭлемент() и нужные вам реквизиты. После цикла сделать ЗначениеВФайлВнутр.
В рабочей соответственно получаете таблицу через ЗначениеИзФайлаВнутр и обрабатываете.
Правда работает это только в случае, когда перенос делается из архивной базы в рабочую. Если рабочая база не прямой потомок, откуда выгружаете - лучше так не делать.
В рабочей соответственно получаете таблицу через ЗначениеИзФайлаВнутр и обрабатываете.
Правда работает это только в случае, когда перенос делается из архивной базы в рабочую. Если рабочая база не прямой потомок, откуда выгружаете - лучше так не делать.
16.12.2009
11:59
#8
> я сама хочу сделать
> реквизит был добавлен вручную (не периодический), а эти обработки громоздские, вытащить оттуда выгрузку реквизита %)
тогда надо выгружать родителя и владельца !
> реквизит был добавлен вручную (не периодический), а эти обработки громоздские, вытащить оттуда выгрузку реквизита %)
тогда надо выгружать родителя и владельца !
16.12.2009
12:34
#9
"> После цикла сделать ЗначениеВФайлВнутр.
Добавила таблицузначений с реквизитом и кодом элемента, а как это в файл воткнуть, непойму...
Процедура Выполнить()
Файл = СоздатьОбъект("Текст");
Файл.Очистить();
Спр = СоздатьОбъект("Справочник.Номенклатура");
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 Цикл
Если Спр.ЭтоГруппа() = 1 Тогда
Продолжить;
КонецЕсли;
Спис = СоздатьОбъект("ТаблицаЗначений");
Спис.НоваяКолонка("Код","Строка");
Спис.НоваяКолонка("ДатаПоступ","Дата");
Спис.Код = Спр.Код;
Спис.ДатаПоступ = Спр.ДатаПоступ;
Файл.ДобавитьСтроку(Спис.ВСтрокуСРазделителями());
КонецЦикла;
ИмяФайла = "НашиРеквизиты"+".txt";
ИФ = "C:\" + ИмяФайла;
Сообщить(""""+ИФ);
Файл.Записать(СокрЛП(ИФ));
КонецПроцедуры"
Добавила таблицузначений с реквизитом и кодом элемента, а как это в файл воткнуть, непойму...
Процедура Выполнить()
Файл = СоздатьОбъект("Текст");
Файл.Очистить();
Спр = СоздатьОбъект("Справочник.Номенклатура");
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 Цикл
Если Спр.ЭтоГруппа() = 1 Тогда
Продолжить;
КонецЕсли;
Спис = СоздатьОбъект("ТаблицаЗначений");
Спис.НоваяКолонка("Код","Строка");
Спис.НоваяКолонка("ДатаПоступ","Дата");
Спис.Код = Спр.Код;
Спис.ДатаПоступ = Спр.ДатаПоступ;
Файл.ДобавитьСтроку(Спис.ВСтрокуСРазделителями());
КонецЦикла;
ИмяФайла = "НашиРеквизиты"+".txt";
ИФ = "C:\" + ИмяФайла;
Сообщить(""""+ИФ);
Файл.Записать(СокрЛП(ИФ));
КонецПроцедуры"
16.12.2009
12:44
#10
"> > После цикла сделать ЗначениеВФайлВнутр.
Извиняюсь, ошибся. Функция называется ЗнаечниеВФайл и соответственно ЗначениеИзФайла.
Процедура Выполнить()
Спис = СоздатьОбъект("ТаблицаЗначений");
Спис.НоваяКолонка("Код","Строка");
Спис.НоваяКолонка("ДатаПоступ","Дата");
Спр = СоздатьОбъект("Справочник.Номенклатура");
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 Цикл
Если Спр.ЭтоГруппа() = 1 Тогда
Продолжить;
КонецЕсли;
Спис.Код = Спр.Код;
Спис.ДатаПоступ = Спр.ДатаПоступ;
КонецЦикла;
ИмяФайла = "НашиРеквизиты"+".txt";
ИФ = "C:\" + ИмяФайла;
Сообщить(""""+ИФ);
ЗначениеВФайл (СокрЛП(ИФ), Спис);
КонецПроцедуры
"
Извиняюсь, ошибся. Функция называется ЗнаечниеВФайл и соответственно ЗначениеИзФайла.
Процедура Выполнить()
Спис = СоздатьОбъект("ТаблицаЗначений");
Спис.НоваяКолонка("Код","Строка");
Спис.НоваяКолонка("ДатаПоступ","Дата");
Спр = СоздатьОбъект("Справочник.Номенклатура");
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 Цикл
Если Спр.ЭтоГруппа() = 1 Тогда
Продолжить;
КонецЕсли;
Спис.Код = Спр.Код;
Спис.ДатаПоступ = Спр.ДатаПоступ;
КонецЦикла;
ИмяФайла = "НашиРеквизиты"+".txt";
ИФ = "C:\" + ИмяФайла;
Сообщить(""""+ИФ);
ЗначениеВФайл (СокрЛП(ИФ), Спис);
КонецПроцедуры
"
- 1
- 2
Читают тему
(гостей: 1)