Имя: Пароль:
1C
1С v8
Как определить уровень группировки Excel (VB)
0 PQT
 
26.01.13
06:34
1 PQT
 
26.01.13
06:35
Импортирую следующим способом, с большинством прайсов было все ок, но в очередном не у всех Групп есть Подгруппы
2 PQT
 
26.01.13
06:35
ТекГруппа1 = Неопределено;
       ТекГруппа2 = Неопределено;
       ТекГруппа3 = Неопределено;
       ТекГруппаФикЗнаетКакогоУровня2 = Неопределено;
       ТекГруппаФикЗнаетКакогоУровня3 = Неопределено;
       Для Строка = ТекИндексы.ПерваяСтрока по КоличествоСтрок цикл
           Индикатор = Строка;
           
           СтрокаДанных = ВременнаяТаблица.Добавить();
           СтрокаДанных.КодПоставщика = СтрЗаменить(Sheet.Cells(Строка,НастройкиКолонок.КодПоставщика).Value, Символы.НПП, "")+СуффиксКода;
           СтрокаДанных.Наименование = СокрЛП(Sheet.Cells(Строка,НастройкиКолонок.Наименование).Value);
           Если СтрокаДанных.Наименование = "" Тогда
               Продолжить;
           КонецЕсли;
           Если СтрокаДанных.КодПоставщика = СуффиксКода Тогда // значит группа
               
               Если ТекГруппаФикЗнаетКакогоУровня3 = Неопределено Тогда // * ******* уровень 1
                   ТекГруппаФикЗнаетКакогоУровня3 = СтрокаДанных.Наименование;
               ИначеЕсли ТекГруппаФикЗнаетКакогоУровня2 = Неопределено Тогда // ***** уровень 2
                   ТекГруппаФикЗнаетКакогоУровня2 = ТекГруппаФикЗнаетКакогоУровня3;
                   ТекГруппаФикЗнаетКакогоУровня3 = СтрокаДанных.Наименование;
               Иначе                                                    // ************ уровень 3
                   ТекГруппа1 = ТекГруппаФикЗнаетКакогоУровня2;
                   ТекГруппа2 = ТекГруппаФикЗнаетКакогоУровня3;
                   ТекГруппа3 = СтрокаДанных.Наименование;
                   ТекГруппаФикЗнаетКакогоУровня2 = Неопределено;
                   ТекГруппаФикЗнаетКакогоУровня3 = Неопределено;
               КонецЕсли;
               
               ВременнаяТаблица.Удалить(СтрокаДанных);
               Продолжить;
           ИначеЕсли (Не ТекГруппаФикЗнаетКакогоУровня3 = Неопределено)и(Не ТекГруппаФикЗнаетКакогоУровня2 = Неопределено) Тогда
               ТекГруппа2 = ТекГруппаФикЗнаетКакогоУровня2;
               ТекГруппа3 = ТекГруппаФикЗнаетКакогоУровня3;
               ТекГруппаФикЗнаетКакогоУровня2 = Неопределено;
               ТекГруппаФикЗнаетКакогоУровня3 = Неопределено;
           ИначеЕсли (Не ТекГруппаФикЗнаетКакогоУровня3 = Неопределено) Тогда
               ТекГруппа3 = ТекГруппаФикЗнаетКакогоУровня3;
               ТекГруппаФикЗнаетКакогоУровня3 = Неопределено;
           КонецЕсли;
           СтрокаДанных.Группа1 = ТекГруппа1;
           СтрокаДанных.Группа2 = ТекГруппа2;
           СтрокаДанных.Группа3 = ТекГруппа3;
           Если ИспользоватьФильтрГрупп Тогда
               Если Не КэшГруппИсключений.Найти(СтрокаДанных.Группа2) = Неопределено Тогда
                   ВременнаяТаблица.Удалить(СтрокаДанных);
                   Продолжить;
               КонецЕсли;
           КонецЕсли;
           Попытка
               СтрокаДанных.Цена = Число(СтрЗаменить(Sheet.Cells(Строка,НастройкиКолонок.Цена).Value, Символы.НПП, ""));
           Исключение
               СтрокаДанных.Цена = 0;
           КонецПопытки;
           СтрокаДанных.ОстатокПоставщика = СокрЛП(Sheet.Cells(Строка,НастройкиКолонок.ОстатокПоставщика).Value);
           ОбработкаПрерыванияПользователя();
       КонецЦикла;
   КонецЕсли;
3 PQT
 
26.01.13
06:37
если в вижл бейсике можно получить уровень группы, код бы значительно оптимизировался)
4 PQT
 
26.01.13
06:38
В указанной выше ветке был вопрос "Зачем?", так вот отвечаю:
Справочник 1 - содержит прайсы поставщиков, Справочник 2 - наша номенклатура в которую товары попадают после настройки пользователями структуры каталогов.
5 PQT
 
26.01.13
06:43
т.е. после настройки соответствия выгрузки товаров каталогов из справочника 1 в справочник 2)
6 PQT
 
26.01.13
06:58
Или второй вопрос: Как при "сплошном" расположении групп определить уровень в ситуации когда некоторые группы не имеют подгрупп?
7 PQT
 
26.01.13
07:07
вроде нашел, Sheet.Cells(Строка).OutlineLevel - но почемуто не работает(
Ошибка при получении значения атрибута контекста
8 PQT
 
26.01.13
07:13
ВСЕ! СООБРАЗИЛ!! Sheet.Rows(Строка).OutlineLevel
9 PQT
 
26.01.13
07:13
ТЕМА ЗАКРЫТА СПАСИБО ЗА ВНИМАНИЕ))