Написать обработку для справочника

1. Jebick 20.05.24 18:25 Сейчас в теме
Приветствую. Нужна помощь по заданию

1. Создать конфигурацию, в которой есть справочник «Номенклатура»:
иерархический, количество уровней неограниченно или максимально возможное.
Реквизиты: Наименование и Код.
2. Написать обработку для выполнения следующей задачи:
На входе: Строка неограниченной длины, куда пользователь вводит название искомой
группы с указанием всех вышестоящих групп, используя разделитель («\»).
Результат: Если искомой группы в справочнике нет, создаем ее, если есть выводим
сообщение, что группа существует.
Например:
Пользователь вводит строку «Мебель\Шкафы\Белый цвет». Результатом будет
создание группы «Мебель», группы «Шкафы» в ней и создание группы «Белый цвет» в
группе «Шкафы».
По теме из базы знаний
Найденные решения
3. SlavaKron 20.05.24 20:45 Сейчас в теме
(1)
ИменаГрупп = СтрРазделить(ПолныйПуть, "\", Ложь);
Родитель = Справочники.Номенклатура.ПустаяСсылка();

НайденныйИндекс = Неопределено;
Для Индекс = 0 По ИменаГрупп.ВГраница() Цикл
	Группа = Справочники.Номенклатура.НайтиПоНаименованию(ИменаГрупп[Индекс], Истина, Родитель);
	Если Группа.Пустая() Тогда
		НайденныйИндекс = Индекс;
		Прервать;
	КонецЕсли;
	Родитель = Группа;
КонецЦикла;

Если НайденныйИндекс = Неопределено Тогда
	Сообщить("Группа существует");
	Возврат;
КонецЕсли;

Для Индекс = НайденныйИндекс По ИменаГрупп.ВГраница() Цикл
	НоваяГруппа = Справочники.Номенклатура.СоздатьГруппу();
	НоваяГруппа.Наименование = ИменаГрупп[Индекс];
	НоваяГруппа.Родитель = Родитель;
	НоваяГруппа.Записать();
	Родитель = НоваяГруппа.Ссылка;
КонецЦикла;
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. SlavaKron 20.05.24 20:45 Сейчас в теме
(1)
ИменаГрупп = СтрРазделить(ПолныйПуть, "\", Ложь);
Родитель = Справочники.Номенклатура.ПустаяСсылка();

НайденныйИндекс = Неопределено;
Для Индекс = 0 По ИменаГрупп.ВГраница() Цикл
	Группа = Справочники.Номенклатура.НайтиПоНаименованию(ИменаГрупп[Индекс], Истина, Родитель);
	Если Группа.Пустая() Тогда
		НайденныйИндекс = Индекс;
		Прервать;
	КонецЕсли;
	Родитель = Группа;
КонецЦикла;

Если НайденныйИндекс = Неопределено Тогда
	Сообщить("Группа существует");
	Возврат;
КонецЕсли;

Для Индекс = НайденныйИндекс По ИменаГрупп.ВГраница() Цикл
	НоваяГруппа = Справочники.Номенклатура.СоздатьГруппу();
	НоваяГруппа.Наименование = ИменаГрупп[Индекс];
	НоваяГруппа.Родитель = Родитель;
	НоваяГруппа.Записать();
	Родитель = НоваяГруппа.Ссылка;
КонецЦикла;
Показать
2. user2033930 20.05.24 18:59 Сейчас в теме
4. starjevschik 20.05.24 21:34 Сейчас в теме
Оставьте свое сообщение

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