Добавить группу

1. passtools 11.04.13 23:36 Сейчас в теме
Помогите пожалуйста, как автоматически создавать группы номенклатуры, у меня их где то 100 групп. В ручную набивать долго. Слышал что через txt файл можно добавить.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. passtools 11.04.13 23:50 Сейчас в теме
Вот код

файл = Новый ТекстовыйДокумент;
адресФайла="C:\ТекстСНовымиГруппами.txt";

Попытка файл.Прочитать(адресФайла);
Исключение
Предупреждение("файл по данному адресу не найден");
КонецПопытки;
Для Сч=1 По файл.КоличествоСтрок() Цикл
ОбработкаПрерыванияПользователя();
Стр = файл.ПолучитьСтроку(Сч);
Состояние("обработка файла "+Строка(Сч));
НоваяГруппа = Справочники.Номенклатура.СоздатьГруппу();
//НоваяГруппа.Код = Строка(ТекстыЯчеек[2]);
НоваяГруппа.Наименование = СокрЛП(Стр);
НоваяГруппа.Записать();
КонецЦикла;
5. lexkex 108 12.04.13 07:58 Сейчас в теме
(2) passtools,
Код допилить
НоваяГруппа.УстановитьНовыйКод()


У объектов типа "Справочник" есть реквизит Родитель, он таки и является группой )
НоваяГруппа.Родитель = СсылкаНаНужнуюГруппу


(3) passtools,
файл = Новый ТекстовыйДокумент;
адресФайла="C:\ТекстСНовымиГруппами.txt";

Попытка файл.Прочитать(адресФайла);
Исключение
	Предупреждение("файл по данному адресу не найден");
КонецПопытки;
Для Сч=1 По файл.КоличествоСтрок() Цикл
	ОбработкаПрерыванияПользователя();
	Стр = файл.ПолучитьСтроку(Сч);
	Состояние("обработка файла "+Строка(Сч));
	
	ЭлементПоиска = Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(Стр), Истина);
	Если не ЗначениеЗаполнено(ЭлементПоиска) тогда
		НоваяГруппа = Справочники.Номенклатура.СоздатьГруппу();
		//НоваяГруппа.Код = Строка(ТекстыЯчеек[2]);
		НоваяГруппа.Наименование = СокрЛП(Стр);
		НоваяГруппа.Записать();
	Иначе
		НоваяГруппа = ЭлементПоиска.ПолучитьОбъект();
		//Делаем тут что-то если элемент найден
	Конецесли;
КонецЦикла;
Показать
3. passtools 12.04.13 00:10 Сейчас в теме
Чтобы создавал ели таких нет, еще подгруппы как создавать? как код допилить?
4. passtools 12.04.13 03:21 Сейчас в теме
Можно другой вариант из файла xls

txt создал, вот только он создает все в однну номенклатуру. Как сделать чтобы создавал в родителях?
Прикрепленные файлы:
СоздатьГруппуНоменклатур.epf
6. lexkex 108 12.04.13 08:01 Сейчас в теме
(4) passtools,

txt создал, вот только он создает все в однну номенклатуру. Как сделать чтобы создавал в родителях?


Вопрос сформулирован не корректно
7. passtools 12.04.13 13:49 Сейчас в теме
Через тхт файл он создает все номенклатуры групп в одну номенклатуру, А не с родителями. Так же при поторнов загрузке сосздает дубли. Как избежать этого? Чтобы проверял если есть группа, значит пропускал (не добавлял)

Думаю можно через xls файл доступнее, потому что там есть колонки, что последовательно по строкам можно будет указать родителей.
8. lexkex 108 12.04.13 14:03 Сейчас в теме
(7) passtools,

Строку можно сделать с разделителями выбрать какой-нить не стандартный символ и значения получается типа этого

файл = Новый ТекстовыйДокумент;
адресФайла="C:\ТекстСНовымиГруппами.txt";

Попытка файл.Прочитать(адресФайла);

Исключение
    Предупреждение("файл по данному адресу не найден");
КонецПопытки;
Для Сч=1 По файл.КоличествоСтрок() Цикл
    ОбработкаПрерыванияПользователя();
    Стр = СтрЗаменить(файл.ПолучитьСтроку(Сч), "|", Символы.ПС);
    //Состояние("обработка файла "+Строка(Сч));
	
	НаименованиеНоменклатуры = СокрЛП(СтрПолучитьСтроку(Стр, 1));
	НаименованиеРодителя = СокрЛП(СтрПолучитьСтроку(Стр, 2))
	Если не ПустаяСтрока(НаименованиеРодителя) тогда
		Родитель = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеРодителя, Истина)
	Иначе
		Родитель = Справочники.Номенклатура.ПустаяСсылка();
	КонецЕсли;
    ЭлементПоиска = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеНоменклатуры, Истина);
    Если не ЗначениеЗаполнено(ЭлементПоиска) тогда
        НоваяГруппа = Справочники.Номенклатура.СоздатьГруппу();
        //НоваяГруппа.Код = Строка(ТекстыЯчеек[2]);
        НоваяГруппа.Наименование = СокрЛП(Стр);
		Если ЗначениеЗаполнено(Родитель) тогда
			НоваяГруппа.Родитель = Родитель;
		КонецЕсли;
        НоваяГруппа.Записать();
    Иначе
        НоваяГруппа = ЭлементПоиска.ПолучитьОбъект();
        //Делаем тут что-то если элемент найден
    Конецесли;
КонецЦикла;
Показать


Строка в тхт файле должна быть такого типа:
"НаименованиеГруппы|НаименованиеРодителя"
9. passtools 12.04.13 19:46 Сейчас в теме
Полностью скопировал код и поставил в обработчик, но к сожалении не добавляет родителей. Только создает группы.
10. пользователь 13.04.13 19:49
Сообщение было скрыто модератором.
...
11. passtools 13.04.13 22:45 Сейчас в теме
НоваяГруппа = Справочники.Номенклатура.СоздатьГруппу();НоваяГруппа = Справочники.Номенклатура.СоздатьГруппу();

dalexey И что с ним делать?????
12. ma-mon-t 26.07.19 14:34 Сейчас в теме
В обработке для управляемого приложения у меня этот код не работает. "НоваяГруппа = <<?>>Справочники.Номенклатура.СоздатьГруппу(); (Проверка: Тонкий клиент)
"
13. accounting_cons 854 26.07.19 16:24 Сейчас в теме
(12) Надо создавать группу на сервере, а не на клиенте.
15. ma-mon-t 26.07.19 16:38 Сейчас в теме
14. ma-mon-t 26.07.19 16:37 Сейчас в теме
Оставьте свое сообщение

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