Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Neophyte1C
6 / 6 / 5
Регистрация: 18.08.2016
Сообщений: 80
#1

Определённая последовательность строк в ТП

17.08.2017, 13:31. Просмотров 300. Ответов 8
Метки нет (Все метки)

Здравствуйте, подскажите пожалуйста, как это можно сделать?

Есть элемент номенклатуры с табличным полем (Номенклатура поставщика), в котором введены контрагенты, требуется:
вне зависимости в каком порядке были забиты контрагенты в закладке «Номенклатура поставщика» необходимо, чтобы с помощью обработки (желательно ежедневной) контрагенты имели следующую очередность
1) BS
2) SP
3) GM
4) VIT
5) WA
(очередность этих 5 тоже можно подчинить алфавиту, но они должны быть выше всех остальных!)

Остальные поставщики должны идти следом в алфавитном порядке.

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

0
Миниатюры
Определённая последовательность строк в ТП  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2017, 13:31
Ответы с готовыми решениями:

Определённая последовательность строк в ТП. Продолжение
Приветствую всех, то как сделано тут - сказали переделать надо, так как...

В DataGridView загружается определённая строка и с ней появляются 5 пустых строк - как их удалить
Здравствуйте. Имеется: DataGridView на форме. Текстовый файл (6 строк). В...

Ввести последовательность строк. Подсчитать количество совпадающих строк.
Доброго времени суток. Помогите пожалуйста с данной задачей. Каким должен быть...

Определённая ячейка таблицы
Здравствуйте. Возникла следующая проблема - предположим команда должна...

Выполнить действие , если нажата определённая клавиша
Как можно сделать так, что бы при нажатии на клавишу , определённую, в...

8
Neophyte1C
6 / 6 / 5
Регистрация: 18.08.2016
Сообщений: 80
25.08.2017, 14:37  [ТС] #2
Апну тему, подскажите хотя бы, как текущую колонку отсортировать, выставить в алфавитном порядке?
0
Phil
Эксперт 1С
242 / 243 / 74
Регистрация: 28.05.2014
Сообщений: 913
25.08.2017, 15:53 #3
Neophyte1C, добавь колонку аля "номерДляСортировки", скрой её и сортируй по ней, а для своих сделай соответственно номера, а при выводе сортируй по новому полю, и наименованию
1) BS -1
2) SP -2
3) GM -3
4) VIT -4
5) WA -5

или же при открытии формы Заполнять ТЧ как-то так:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
ВЫБРАТЬ
    Контрагенты.Наименование КАК Наименование,
    Контрагенты.Код,
    ВЫБОР
        КОГДА Контрагенты.Наименование = "BS"
            ТОГДА 1
        КОГДА Контрагенты.Наименование = "SP"
            ТОГДА 2
        КОГДА Контрагенты.Наименование = "GM "
            ТОГДА 3
        КОГДА Контрагенты.Наименование = "VIT "
            ТОГДА 4
        КОГДА Контрагенты.Наименование = "WA "
            ТОГДА 5
        ИНАЧЕ 6
    КОНЕЦ КАК Поле1
ИЗ
    Справочник.Контрагенты КАК Контрагенты
 
УПОРЯДОЧИТЬ ПО
    Поле1,
    Наименование
1
Neophyte1C
6 / 6 / 5
Регистрация: 18.08.2016
Сообщений: 80
25.08.2017, 15:55  [ТС] #4
Phil, спасибо за ответ, попробую, ещё тут нарыл код, который добавляет сортировку.

1C
1
ЭлементыФормы.НоменклатураКонтрагентов.НастройкаПорядка.Контрагент.Доступность = Истина;
0
Neophyte1C
6 / 6 / 5
Регистрация: 18.08.2016
Сообщений: 80
13.09.2017, 10:13  [ТС] #5
Вышел из отпуска и забуксовал с этим кодом...

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Процедура НоменклатураКонтрагентовПриПолученииДанных(Элемент, ОформленияСтрок)
 
Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл
            Номер = ОформлениеСтроки.Ячейки.НСтроки;
            Номер.ОтображатьТекст = Истина;
            НСтроки = НСтроки + 1;
            
            Контрагент = ОформлениеСтроки.Ячейки.Контрагент;
            Контрагент.ОтображатьТекст = Истина;
 
            Если Контрагент.Текст = "BS" Тогда
                Номер.Текст = "1";
            КонецЕсли;
            Если Контрагент.Текст = "SP" Тогда
                Номер.Текст = "2";
            КонецЕсли;
            Если Контрагент.Текст = "GM" Тогда
                Номер.Текст = "3";
            КонецЕсли;
            Если Контрагент.Текст = "VIT" Тогда
                Номер.Текст = "4";
            КонецЕсли;
            Если Контрагент.Текст = "WA" Тогда
                Номер.Текст = "5";
            КонецЕсли;
 
ТабПоле=ЭтаФорма.ЭлементыФормы.НоменклатураКонтрагентов;
        Порядок=ТабПоле.НастройкаПорядка.Найти("НСтроки");
        Порядок=ТабПоле.НастройкаПорядка.Найти("Контрагент");
 
        Если Порядок=Неопределено Тогда
            Порядок=ТабПоле.НастройкаПорядка.Добавить("НСтроки", Истина);
            Порядок=ТабПоле.НастройкаПорядка.Добавить("Контрагент", Истина);
        КонецЕсли;
        Порядок.Доступность = Истина;
 
        ЭлементыФормы.НоменклатураКонтрагентов.НастройкаПорядка.Контрагент.Доступность=Истина;
 
КонецЦикла;
Так он мне выводит привязанные номера к номенклатуре, но не идёт сортировка по ним, так как я два раза кликаю на строке с номером "1" и вижу, что она по факту не заполнена, вписав её (цифру 1), только тогда по ней идёт сортировка.
Как сделать так, чтобы при открытии были уже вписаны цифры в колонке "№"?
0
Миниатюры
Определённая последовательность строк в ТП   Определённая последовательность строк в ТП   Определённая последовательность строк в ТП  

Neophyte1C
6 / 6 / 5
Регистрация: 18.08.2016
Сообщений: 80
13.09.2017, 15:33  [ТС] #6
Отвечаю сам себе, вот так правильно значения заполняется и сортировка происходит.

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Если Контрагент.Текст = "BS" Тогда
                ЭлементыФормы.НоменклатураКонтрагентов.Колонки.НомерПоПорядку.ЭлементУправления.Значение = "1";
            КонецЕсли;
            Если Контрагент.Текст = "SP" Тогда
                ЭлементыФормы.НоменклатураКонтрагентов.Колонки.НомерПоПорядку.ЭлементУправления.Значение = "2";
            КонецЕсли;
            Если Контрагент.Текст = "GM" Тогда
                ЭлементыФормы.НоменклатураКонтрагентов.Колонки.НомерПоПорядку.ЭлементУправления.Значение = "3";
            КонецЕсли;
            Если Контрагент.Текст = "VIT" Тогда
                ЭлементыФормы.НоменклатураКонтрагентов.Колонки.НомерПоПорядку.ЭлементУправления.Значение = "4";
            КонецЕсли;
            Если Контрагент.Текст = "WA" Тогда
                ЭлементыФормы.НоменклатураКонтрагентов.Колонки.НомерПоПорядку.ЭлементУправления.Значение = "5";
            КонецЕсли;
1
GreenkA
(◉‿◉)
Эксперт 1С
1965 / 1513 / 474
Регистрация: 25.06.2009
Сообщений: 5,426
13.09.2017, 17:24 #7
Neophyte1C, отлично, а со значением "DB" что?) Неужели будет только 5-6 строковых значений?) странная задача...
0
Neophyte1C
6 / 6 / 5
Регистрация: 18.08.2016
Сообщений: 80
13.09.2017, 19:04  [ТС] #8
GreenkA, а это уже следующий этап, которым я занимаюсь, все последующие контрагенты, в частности "DB", будут идти ниже первых пяти основных)
0
Neophyte1C
6 / 6 / 5
Регистрация: 18.08.2016
Сообщений: 80
20.09.2017, 07:33  [ТС] #9
Вот полноценный код для данной задачи, вдруг кому-то подобное пригодится.

НомерПоПорядку и НомерПоПорядку1 - реквизиты в регистре сведений НоменклатураКонтрагента и колонки в табличном поле.

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Процедура НоменклатураКонтрагентовПриПолученииДанных(Элемент, ОформленияСтрок)
                            
    Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл
                    
        Контрагент = ОформлениеСтроки.Ячейки.Контрагент;
        Контрагент.ОтображатьТекст = Истина;
            
        Если Контрагент.Текст = "BS" Тогда
            Элемент.Колонки.НомерПоПорядку.ЭлементУправления.Значение = "1";
        ИначеЕсли Контрагент.Текст = "SP" Тогда
            Элемент.Колонки.НомерПоПорядку.ЭлементУправления.Значение = "2";
        ИначеЕсли Контрагент.Текст = "GM" Тогда
            Элемент.Колонки.НомерПоПорядку.ЭлементУправления.Значение = "3";
        ИначеЕсли Контрагент.Текст = "VIT" Тогда
            Элемент.Колонки.НомерПоПорядку.ЭлементУправления.Значение = "4";
        ИначеЕсли Контрагент.Текст = "WA" Тогда
            Элемент.Колонки.НомерПоПорядку.ЭлементУправления.Значение = "5";
        Иначе
            Элемент.Колонки.НомерПоПорядку.ЭлементУправления.Значение = "6";
        КонецЕсли;      
            
        Если Контрагент.Текст = "BS" Тогда
            Элемент.Колонки.НомерПоПорядку1.ЭлементУправления.Значение = Неопределено;
        ИначеЕсли Контрагент.Текст = "SP" Тогда
            Элемент.Колонки.НомерПоПорядку1.ЭлементУправления.Значение = Неопределено;
        ИначеЕсли Контрагент.Текст = "GM" Тогда
            Элемент.Колонки.НомерПоПорядку1.ЭлементУправления.Значение = Неопределено;
        ИначеЕсли Контрагент.Текст = "VIT" Тогда
            Элемент.Колонки.НомерПоПорядку1.ЭлементУправления.Значение = Неопределено;
        ИначеЕсли Контрагент.Текст = "WA" Тогда
            Элемент.Колонки.НомерПоПорядку1.ЭлементУправления.Значение = Неопределено;
        Иначе
            Элемент.Колонки.НомерПоПорядку1.ЭлементУправления.Значение = Элемент.Колонки.Контрагент.ЭлементУправления.Значение;
        КонецЕсли;      
 
        ЭлементыФормы.НоменклатураКонтрагентов.НастройкаПорядка.НомерПоПорядку.Доступность = Истина;
        ЭлементыФормы.НоменклатураКонтрагентов.НастройкаПорядка.НомерПоПорядку1.Доступность = Истина;
        НоменклатураКонтрагентов.Порядок.Установить("НомерПоПорядку Возр, НомерПоПорядку1 Возр");
        
    КонецЦикла;
        
КонецПроцедуры
1
20.09.2017, 07:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2017, 07:33

Как в экселе узнать открыта ли определённая книга?
Подскажите как в экселе узнать открыта ли определённая книга? Private Sub...

Определённая вкладка Tpagecontrol при создании формы
Всем привет. Мне нужно, чтобы при создании формы открывалась первая вкладка. Я...

Получение групп, в которые входит определённая группа
Добрый день. Рассмотрим пример вложенности групп (Отделы продаж(Отдел продаж...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru