Quad.Wiki

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

Где в программе увидеть группы из прайса?


Группы в прайсах нужны для удобного сопоставления товаров, например, чтобы можно было выбрать какую-то одну группу товаров и связывать ее + нужны для автоматического добавления товаров в свой прайс, по соответствию между вашими группами и группами поставщиков. Если ни одно ни второе вам не нужно, то не стоит тратить время на настройку групп из прайсов поставщиков, если там не какой-то простой вариант.


1. Перейти во вкладку Прайсы и выбрать слева прайс, справа над таблицей товаров должно быть установлено "1 выбранный"


2. В левом нижнем углу перейти во вкладку Группы


Как настраиваются группы?

Для настройки групп можно указать 2 колонки:

"Название группы" - это колонка, в которой находится название группы товара

"Название выш. гр." - это колонка, в которой находится вышестоящая (родительская) группа.

Если и то и то в прайсе находится в одной колонке, то загрузить целиком структуру групп можно только если в прайсе они сгруппированы средствами эксель или с помощью макроса, который разрабатывается специально под каждый прайс за дополнительную плату (т.е. нет одинакового макроса для всех прайсов).


Можно использовать так же "Код группы" - в этом случае в прайсе у каждого товара в какой-то колонке должен быть указан код группы, совпадающей с кодом здесь:


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

Для управления загрузкой групп в настройках прайса есть пункт 6. Группы.

Здесь выбирается по какому полю загружаются группы, возможные варианты:

"Не загружать группы" - из прайса не будут загружаться группы вообще, а товар попадет в группу "Без группы"

"Загружать по коду" - можно выбирать, если в прайсе присутствует код группы и поставщик его не меняет.

"Загружать по наименованию" - используется для большинства прайсов, в этом случае при загрузке группа будет проверяться по названию, есть такая в базе или еще нет.

Птичка "Группа в отдельной строке" используется для указания программе места расположения групп в прайсе.

Если установить птичку, то программа будет в прайсе искать строки в которых есть текст в колонке "Название группы" и нет текста в колонке "Цена" или "Рекомендованная цена", если в прайсе есть только РРЦ.


Если убрать птичку, то группы будет программа искать в каждой строке, а не в отдельных строках без цены, пример:

Т.е. в строках всех товаров указано название группы.


Группы в прайсе сформированы стандартной группировкой Excel


Пример прайса:


1. Нужно указать поля "Название группы" и "Название выш. гр." (название вышестоящей группы).

Обычно в таких прайсах они в одной колонке, на скриншете выше это колонка B


2. Поставить птичку "Группа в отдельной строке"


3. Поставить птичку "Загружать дерево категорий"


4. Загружать прайс нужно начиная со строки, в которой идет первая группа


В результате вы получите группы 1 в 1 как они идут в прайсе


Группы в прайсе указаны в виде 2-х колонок, в одной группа, во второй - вышестоящая группа.


Пример прайса

в поле "Название группы" можно указать колонку С

в поле "Название выш. гр." - колонку B или A, или, так как в этом прайсе 3 колонки, то можно название вышестоящей группы объединить из двух колонок A+B

Загрузить дерево групп из 3х уровней при такой структуре прайса нельзя, только группа и вышестоящая группа. Или делать специальный макрос, который из 3х колонок сделает две, на разработку макроса понадобится 1 час, что на момент подготовки инструкции стоит 14$.

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


Группа в прайсе указана в отдельной строке, без группировки средствами Excel

пример прайса:


Как видно из примера - это такой же прайс как в первом пункте этой инструкции, только он не сгруппирован в экселе.


Из такого прайса можно загрузить только самую нижнюю группу. Вышестоящую группу не получится загрузить, так как нельзя определить к какому уровню группировки относится строка с группой.

Здесь указывается просто поле "Название группы" с колонкой B. Вот такие группы будут у товаров в программе:

Нужно так же установить птичку "Группа в отдельной строке".

В колонке B в данном прайсе находится и название группы в отдельных строках и название товара - нужно одну и ту же колонку указывать и в поле "Название группы" и "Название", т.е. ничего страшного, программа определит где группа, а где товар, по колонке цены. Там где цены нет (пусто в колонке) - будет считаться группа, где есть цена - товар.


Определение группировки по форматированию

Часто в прайсах указывают группы, которые не сгруппированы средствами Excel, но текст в каждом уровне имеет разное форматирование (разный шрифт, или цвет шрифта, или цвет ячейки, или разные отступы от начала ячейки). В этом случае группы можно загрузить, но для этого нужно составить макрос.

Текст макроса:

 Текст макроса
Макрос
###DECLARE###  
    Public Type GroupLevel
        ColIndex As Integer 'номер колонки, в которой указано название группы
        InterColor As Long 'цвет ячейки
        IsBold As Integer '1 - жирный 0 - нет
        IsItalic As Integer '1 - курсив 0 - нет
        FontName As String 'название шрифта
        FontColor As Long 'цвет шрифта
        FontSize As Long 'размер шрифта
        Indent As Integer 'отступ
    End Type  
###DECLARE###      
    Dim i, j, clmnPriceIndex, clmnOutIndex, rowFirstData, lvlCount As Integer
    
    'Укажите номер колонки, в которой указана цена товара
    clmnPriceIndex = 0
    
    'Укажите номер колонки, в которую будет помещен результат
    clmnOutIndex = 0
    
    'Укажите номер первой строки с данными
    rowFirstData = 1
    
    'Укажите после "To" количество уровней группировки,
    '3 (три) означет что у группы есть подгруппы и у подгруппы есть еще вложенные подгруппы
    lvlCount = 3
    
    Dim GroupLevels(1 To 3) As GroupLevel

    'Укажите настройки для каждого уровня
    GroupLevels(1).ColIndex = 1
    GroupLevels(1).InterColor = 0
    GroupLevels(1).IsBold = 0
    GroupLevels(1).IsItalic = 0
    GroupLevels(1).FontName = ""
    GroupLevels(1).FontColor = 0
    GroupLevels(1).FontSize = 1                        
    GroupLevels(1).Indent = 0   
    
    'GroupLevels(2).ColIndex = 1
    'GroupLevels(2).InterColor = 0
    'GroupLevels(2).IsBold = 0
    'GroupLevels(2).IsItalic = 0
    'GroupLevels(2).FontName = ""
    'GroupLevels(2).FontColor = 0
    'GroupLevels(2).Indent = 0
    
    For i = rowFirstData To ActiveSheet.UsedRange.Rows.Count
        If ActiveSheet.Cells(i, clmnPriceIndex).Value = "" Then
            For j = 1 To lvlCount
                Set cel = ActiveSheet.Cells(i, GroupLevels(j).ColIndex)
                
                If (cel.Interior.Color = GroupLevels(j).InterColor) And _
                    ((-1) * CInt(cel.Font.Bold) = GroupLevels(j).IsBold) And _
                    ((-1) * CInt(cel.Font.Italic) = GroupLevels(j).IsItalic) And _
                    (cel.Font.Name = GroupLevels(j).FontName) And _
                    (cel.Font.Color = GroupLevels(j).FontColor) And _
                    (cel.Font.Size = GroupLevels(j).FontSize) And _                    
                    (cel.IndentLevel = GroupLevels(j).Indent) Then
                        
                       ActiveSheet.Cells(i, clmnOutIndex).Value = j
                       Exit For
                End If
            Next j
        End If
    Next i

 



  • No labels