перенос справочника ТМЦ из *.txt

1. dgentex 16.07.08 11:24 Сейчас в теме
помогите найти обработку по переносу справочника ТМЦ из *.txt
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. dgentex 16.07.08 19:08 Сейчас в теме
Спр=СоздатьОбъект(«Справочник.Номенклатура»);Текст = СоздатьОбъект(«Текст»);Список = СоздатьОбъект(«СписокЗначений»);Текст.Открыть(«exp_imp.txt»);Для Ном=1 По Текст.КоличествоСтрок() Цикл Стр = Текст.ПолучитьСтроку(Ном); Список.ИзСтрокиСРазделителями(Стр); //преобразуем строку в список значений
Если Спр.НайтиПоКоду(Список.ПолучитьЗначение(1))=0 Тогда
Спр.Новый(); Спр.Код= Список.ПолучитьЗначение(1); Спр.Наименование= Список.ПолучитьЗначение(2); Спр.Записать(); КонецЕсли;КонецЦикла

Вот нашел на мисте буду пробовать сделать внешнюю обработку,
может кто поможет????
2. Vitek 16.07.08 11:31 Сейчас в теме
3. dgentex 16.07.08 18:58 Сейчас в теме
пример
название;пол;артикул;размер;рост;цвет;цена;штрихкод;страна;состав;ставка ндс
ДЖАЗ;жен;315217J1601;50;170;белый;615;2020163977962;Россия;95% Вискоза 5% Эластан;18
в спр.номенклатура и обратно

сз=создатьобъект("Текст");
5. Vitek 17.07.08 14:46 Сейчас в теме
пробуй сделай, появятся вопросы тогда и спрашивай.
6. dgentex 17.07.08 23:28 Сейчас в теме
Перем ИмяФайлаОтчета,ТекТовар;

//*******************************************
Процедура Сформировать()

ФайлОтчета = СоздатьОбъект("Текст");
ФС.ВыбратьФайл(0,ИмяФайлаОтчета,КаталогИБ());
ФайлОтчета.Открыть(КаталогИБ()+ИмяФайлаОтчета);

Табл=СоздатьОбъект("ТаблицаЗначений");
Табл=Табл1;
Табл.НоваяКолонка("Название",,30,,"Наименование",30);
Табл.НоваяКолонка("Количество","Число",4,2,"Количество",6);
Табл.НоваяКолонка("Пол",,5,,"Пол",5);
Табл.НоваяКолонка("артикул",,10,,"артикул",10);
Табл.НоваяКолонка("размер",,5,,"размер",5);
Табл.НоваяКолонка("рост",,5,,"рост",5);
Табл.НоваяКолонка("цвет",,15,,"цвет",15);
Табл.НоваяКолонка("цена","Число",6,2,"цена",8);
Табл.НоваяКолонка("штрихкод",,15,,"штрихкод",15);
Табл.НоваяКолонка("страна",,6,,"страна",6);
Табл.НоваяКолонка("состав",,25,,"состав",25);
Табл.НоваяКолонка("ставка_ндс",,3,,"ставка ндс",3);

//название;пол;артикул;размер;рост;цвет;цена;штрихкод;страна;состав;ставка ндс
//ДЖАЗ;жен;315217J1601;50;170;белый;615;2020163977962;Россия;95% Вискоза 5% Эластан;18
//ДЖАЗ;жен;315217J1601;50;170;белый;615;2020163977962;Россия;95% Вискоза 5% Эластан;18
//ДЖАЗ;жен;315217J1601;50;170;белый;615;2020163977962;Россия;95% Вискоза 5% Эластан;18
//ДЖАЗ;жен;315217J1601;50;170;белый;615;2020163977962;Россия;95% Вискоза 5% Эластан;18


// одинаковый товар обработать и загнать в количество обработать количество по полю штрихкод

Для Счетчик = 2 По ФайлОтчета.КоличествоСтрок() Цикл

Стр = СтрЗаменить( ФайлОтчета.ПолучитьСтроку(Счетчик), ";", РазделительСтрок );

Табл.НоваяСтрока();
Табл.Название = СтрПолучитьСтроку( Стр, 1 );
Табл.Пол = СтрПолучитьСтроку( Стр, 2 );
Табл.артикул = СтрПолучитьСтроку( Стр, 3 );
Табл.размер = Число( СтрПолучитьСтроку( Стр, 4 ) );
Табл.рост = Число( СтрПолучитьСтроку( Стр, 5 ) );
Табл.цвет = СтрПолучитьСтроку( Стр, 6 );
Табл.цена = Число(СтрПолучитьСтроку( Стр, 7 ));
Табл.штрихкод = СтрПолучитьСтроку( Стр, 8 );
Табл.страна = СтрПолучитьСтроку( Стр, 9 );
Табл.состав = СтрПолучитьСтроку( Стр, 10 );
Табл.ставка_ндс = Число(СтрПолучитьСтроку( Стр, 11 ) );
Табл.количество =1;

КонецЦикла;

Табл.Свернуть("Название,Пол,артикул,размер,рост,цвет,цена,штрихкод,страна,состав,ставка_ндс","количество");

Для Счетчик = 1 По Табл.КоличествоСтрок() Цикл

Табл.УстановитьЗначение(Счетчик, "название", Табл.ПолучитьЗначение(Счетчик,"название")+" "+Табл.ПолучитьЗначение(Счетчик,"размер")+"-"+Табл.ПолучитьЗначение(Счетчик,"Рост")+" "+Табл.ПолучитьЗначение(Счетчик,"Цвет")+" "+Табл.ПолучитьЗначение(Счетчик,"Пол"));

КонецЦикла;

Спр=СоздатьОбъект("Справочник.Номенклатура");

Для Ном=1 По Табл.КоличествоСтрок() Цикл

Если спр.НайтиПоНаименованию(Табл.ПолучитьЗначение(Ном,"название"),1,1)=0 Тогда
Спр.Новый();
Спр.Наименование = Табл.ПолучитьЗначение(Ном,"название");
Спр.ПолнНаименование = Табл.ПолучитьЗначение(Ном,"название");
Спр.Артикул = Табл.ПолучитьЗначение(Ном,"Артикул");
Спр.Записать();
Иначе
ТекТовар=Спр.ТекущийЭлемент();
КонецЕсли;

КонецЦикла

КонецПроцедуры
7. dgentex 17.07.08 23:30 Сейчас в теме
ступор с проверкой на наличие имеющегося ТМЦ в спр.номенклатуры, основной критерий проверка по штрихкоду, если такового нет записать новый
8. Vitek 18.07.08 08:06 Сейчас в теме
ВыбратьПоРеквизиту() ?
9. dgentex 18.07.08 09:19 Сейчас в теме
Перем ИмяФайлаОтчета,ТекТовар,КаталогОбмена;

//*******************************************
Процедура Сформировать()

ФайлОтчета = СоздатьОбъект("Текст");
ФС.ВыбратьФайл(0,ИмяФайлаОтчета,КаталогОбмена);
ФайлОтчета.Открыть(КаталогОбмена+ИмяФайлаОтчета);

Табл=СоздатьОбъект("ТаблицаЗначений");
Табл=Табл1;
Табл.НоваяКолонка("Название",,30,,"Наименование",30);
Табл.НоваяКолонка("Количество","Число",4,2,"Количество",6);
//Табл.НоваяКолонка("Пол",,5,,"Пол",5);
Табл.НоваяКолонка("артикул",,10,,"артикул",10);
//Табл.НоваяКолонка("размер",,5,,"размер",5);
//Табл.НоваяКолонка("рост",,5,,"рост",5);
//Табл.НоваяКолонка("цвет",,15,,"цвет",15);
Табл.НоваяКолонка("цена","Число",6,2,"цена",8);
Табл.НоваяКолонка("штрихкод",,15,,"штрихкод",15);
Табл.НоваяКолонка("страна",,6,,"страна",6);
Табл.НоваяКолонка("состав",,25,,"состав",25);
Табл.НоваяКолонка("ставка_ндс",,3,,"ставка ндс",3);

//название;пол;артикул;размер;рост;цвет;цена;штрихкод;страна;состав;ставка ндс
//ДЖАЗ;жен;315217J1601;50;170;белый;615;2020163977962;Россия;95% Вискоза 5% Эластан;18
//ДЖАЗ;жен;315217J1601;50;170;белый;615;2020163977962;Россия;95% Вискоза 5% Эластан;18
//ДЖАЗ;жен;315217J1601;50;170;белый;615;2020163977962;Россия;95% Вискоза 5% Эластан;18
//ДЖАЗ;жен;315217J1601;50;170;белый;615;2020163977962;Россия;95% Вискоза 5% Эластан;18


// одинаковый товар обработать и загнать в количество обработать количество по полю штрихкод

Для Счетчик = 2 По ФайлОтчета.КоличествоСтрок() Цикл

Стр = СтрЗаменить( ФайлОтчета.ПолучитьСтроку(Счетчик), ";", РазделительСтрок );

Табл.НоваяСтрока();
Табл.Название = СтрПолучитьСтроку( Стр, 1 )+" "+Число( СтрПолучитьСтроку( Стр, 4 ))+"-"+Число( СтрПолучитьСтроку( Стр, 5 ))+" "+СтрПолучитьСтроку( Стр, 6 )+" "+СтрПолучитьСтроку( Стр, 2 );
//Табл.Пол = СтрПолучитьСтроку( Стр, 2 );
Табл.артикул = СтрПолучитьСтроку( Стр, 3 );
//Табл.размер = Число( СтрПолучитьСтроку( Стр, 4 ) );
//Табл.рост = Число( СтрПолучитьСтроку( Стр, 5 ) );
//Табл.цвет = СтрПолучитьСтроку( Стр, 6 );
Табл.цена = Число(СтрПолучитьСтроку( Стр, 7 ));
Табл.штрихкод = СтрПолучитьСтроку( Стр, 8 );
Табл.страна = СтрПолучитьСтроку( Стр, 9 );
Табл.состав = СтрПолучитьСтроку( Стр, 10 );
Табл.ставка_ндс = Число(СтрПолучитьСтроку( Стр, 11 ) );
Табл.количество =1;

КонецЦикла;

Табл.Свернуть("Название,Пол,артикул,размер,рост,цвет,цена,штрихкод,страна,состав,ставка_ндс","количество");

//Для Счетчик = 1 По Табл.КоличествоСтрок() Цикл
//
// Табл.УстановитьЗначение(Счетчик, "название", Табл.ПолучитьЗначение(Счетчик,"название")+" "+Табл.ПолучитьЗначение(Счетчик,"размер")+"-"+Табл.ПолучитьЗначение(Счетчик,"Рост")+" "+Табл.ПолучитьЗначение(Счетчик,"Цвет")+" "+Табл.ПолучитьЗначение(Счетчик,"Пол"));
//
//КонецЦикла;



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

Если Спр.НайтиПоНаименованию(Табл.ПолучитьЗначение(Ном,"название"),1,1)=0 Тогда
Спр.Новый();

Спр.Наименование = Табл.ПолучитьЗначение(Ном,"название");
Спр.ПолнНаименование = Табл.ПолучитьЗначение(Ном,"название");
Спр.Артикул = Табл.ПолучитьЗначение(Ном,"Артикул");
Спр.СтранаПроисхождения= Табл.ПолучитьЗначение(Ном,"страна")
Спр.ОсновноеСвойство = Табл.ПолучитьЗначение(Ном,"состав")

Спр.Записать();
//Иначе
// ТекТовар=Спр.ТекущийЭлемент();
КонецЕсли;

КонецЦикла

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


подскажите как привязать поле штрихкод к РеквШтрихкодБазовой в спр.номенклатура
10. Vitek 18.07.08 09:25 Сейчас в теме
насколько я помню, если это Тис, нужно создавать элемент справочника единицы измерения, и присваивать его реквизиту основная единица тмц
11. dgentex 18.07.08 09:50 Сейчас в теме
12. Vitek 18.07.08 10:30 Сейчас в теме
СпрЕд=СоздатьОбъект("Справочник.Единицы");
СпрЕд.Владелец = Спр.ТекущийЭлемент();
СпрЕд.ОКЕИ = <твоя океи>
....
СпрЕд.ШтрихКод = Табл.штрихкод;
СпрЕд.Записать();

Спр.БазоваяЕдиница = СпрЕд.ТекущийЭлемент();
13. dgentex 18.07.08 10:54 Сейчас в теме
Спасибо
Единицы.ИспользоватьВладельца(Спр.ТекущийЭлемент());
14. dgentex 21.07.08 13:00 Сейчас в теме

СпрЕд = СоздатьОбъект("Справочник.Единицы");
СО = СоздатьОбъект("Справочник.ОКЕИ");
Если СО.НайтиПоНаименованию("шт",0,1)=1 Тогда

Иначе
Сообщить("В справочнике ОКЕИ нет значения шт");
КонецЕсли;

СпрЕд.ИспользоватьВладельца(СпрНом.ТекущийЭлемент());
СпрЕд.Новый();
СпрЕд.ОКЕИ =СО.ТекущийЭлемент();
СпрЕд.Коэффициент =1;
СпрЕд.ШтрихКод = Отчет.Штрихкод;
СпрЕд.Записать();

теперь другая проблема встала, как в карточке товара автоматом прописать галку ФлагОсновнойЕдиницы=1 ,т.е. использовать только
Базовую


СпрНом.БазоваяЕдиница = СпрЕд.ТекущийЭлемент();
15. Vitek 21.07.08 13:59 Сейчас в теме
добавь
СпрНом.ОсновнаяЕдиница = СпрЕд.ТекущийЭлемент();
16. dgentex 21.07.08 14:32 Сейчас в теме
Дай бог тебе здоровья!!!
17. dgentex 23.07.08 08:06 Сейчас в теме
Вот что получилось
Прикрепленные файлы:
Приход.rar
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот