Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
18 апр 2024, 15:56

Есть Справочник. В нем есть группа. Как в этой группе создать еще группу?

Автор СсылкаНаОбъект, 09 фев 2011, 17:51

0 Пользователей и 1 гость просматривают эту тему.

СсылкаНаОбъект

Вот мой код:

Процедура ЭКСЕЛЬ() Экспорт
Перем КодТовара;
Перем НаименованиеТовара;
xlLastCell=11;
Эксель = ПолучитьCOMОбъект("", "Excel.Application");
Книга = Эксель.WorkBooks.Open("C:\Users\А-Систем\Documents\NS11-01-27.xls");
Лист = Книга.WorkSheets(1);
ActiveCell = Эксель.ActiveCell.SpecialCells(xlLastCell);
RowCount = ActiveCell.Row;
ColumnCount = ActiveCell.Column;

Нули = "";

Для Строка = 1 ПО 200 Цикл  //RowCount
   Если Строка = 14 Тогда Продолжить; КонецЕсли;
   //
   Товар = Справочники.Номенклатура.СоздатьЭлемент();
   //
   КодТовара = СокрЛП(Лист.Cells(Строка,2).Value);
   НаименованиеТовара = СокрЛП(Лист.Cells(Строка,3).Value);
   Проверка = СокрЛП(Лист.Cells(Строка,4).Value);            //доп. поле
   Проверка2 = СокрЛП(Лист.Cells(Строка,8).Value);           //доп. поле
   //
   Если СтрДлина(НаименованиеТовара) <> 0 И КодТовара = "" И Проверка = "" И Проверка2 = "" Тогда
      НовГр = Справочники.Номенклатура.СоздатьГруппу();
      НовГр.Наименование = НаименованиеТовара;                   //создание группы в справочнике
      НовГр.Записать();   
      СсылкаНаНовГр = НовГр.Ссылка;
      //Сообщить("Создана новая группа.");
      Продолжить;
   КонецЕсли;
   //
   Если Проверка = "" Тогда
      //Сообщить("Это не товар.");                            //проверка на пустоту поля
      Проверка = "";
      Продолжить;
   КонецЕсли;
   //
   Если Проверка2 = "" Тогда
      //Сообщить("Это не товар.");                            //проверка на пустоту поля
      Проверка = "";
      Продолжить;
   КонецЕсли;
   
   ДлинаКода = СтрДлина(КодТовара);
   Если ДлинаКода < 11 Тогда
      Для А = 1 ПО 11-ДлинаКода Цикл      
         Нули = Нули + "0";
      КонецЦикла;   
   КодТовара = Формат(Нули + КодТовара, "ЧГ=0");
   Нули = "";
   КонецЕсли;   
   //
   Спр = Справочники.Номенклатура.НайтиПоКоду(КодТовара);
   Если Спр.Пустая() = Ложь Тогда
      Сообщить(КодТовара + " " + НаименованиеТовара + ". Такой товар уже есть.");
      Спр = "";
      Продолжить;
   КонецЕсли;
   //
   Спр2 = Справочники.НоменклатурныеГруппы.НайтиПоКоду(КодТовара);
   Если Спр2.Пустая() = Ложь Тогда
      Сообщить(КодТовара + " " + НаименованиеТовара + ". У группы такой же код. Товар не будет добавлен.");
      Спр2 = "";
      Продолжить;
   КонецЕсли;
   //
   Спр3 = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеТовара);
   Если Спр3.Пустая() = Ложь Тогда
      Сообщить(КодТовара + " " + НаименованиеТовара + ". Такой товар уже есть.");
      Спр3 = "";
      Продолжить;
   КонецЕсли;
   //
   Товар.Родитель = СсылкаНаНовГр;
   Товар.Код = Формат(КодТовара, "ЧГ=0");
   Товар.Наименование = НаименованиеТовара;
   Товар.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("796");
   Товар.Записать();
   //Сообщить("Товар добавлен.")

КонецЦикла;   
//Сообщить(RowCount);
Эксель.Application.Quit();
Эксель=0;
КонецПроцедуры

cska-fanat-kz

у группы есть тот же самый реквизит Родитель что и у элемента.

Добавление Группы2 в Группу1:
Группа2.Родитель = Группа1;

И стоило ради этого всю эту "портянку" приводить? ;)
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск