Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сортировка таблицы значений
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
sypersava
Всем привет, делаю некторый отчет, из документов за период выбирается некоторая номенклатура и из нее нужно сделать остатки на дату. Создаю ТЗ и в нее помещаю товар, дату и прочее, потом сортирую и в цикле удаляю схожие наименования, проблема в том что сортировка неработает. Вот пример кода, может кто подскажет как еще можно реализовать данную задачу?

    ТабЗнач.Сортировать("Кавоварка Возр,ДатаОп Убыв");
    //ТабЗнач.Свернуть("Кавоварка","ДатаОп,Клиент,Документ,ВидОперации,ЦенаКофеварки");
    
    новзнач = "";
    старзнач = "";
    СтаршийИндексКолонок = ТабЗнач.Колонки.Количество() - 1;
    Индекс = табзнач.Количество() - 1;
    Пока Индекс >= 0 Цикл
        //старзнач = строка.Номенклатура;
        сообщить (табзнач[Индекс].Кавоварка);
        сообщить (табзнач[Индекс].ВидОперации);
        если старзнач = табзнач[Индекс].Кавоварка тогда
            //сообщить ("Удалить "+Строка(табзнач[Индекс].Кавоварка));
            табзнач.Удалить(Индекс);
            продолжить;
        Конецесли;
        старзнач=табзнач[Индекс].Кавоварка;
        //сообщить ("устновили стразнач");
        Индекс = Индекс - 1;
    КонецЦикла;


Вот пример вывода, где видно что сортировка по наименованию не работает -

Техносистем Бліц Важіль 990646
Оренда
Техносистем Бліц Важіль 990576
Оренда
Техносистем Бліц Важіль 983037
Оренда
Техносистем Бліц Важіль 983037
ИзОренды
Техносистем Бліц Важіль 983037
Оренда
Техносистем Бліц Важіль 990576
Оренда
Техносистем Бліц Важіль 983037
Оренда


Извиняюсь, не остатки, а нахожу последнюю операцию, в которой участвовала данная номенклатура.


 ! 

Правила, п.5
 
Ardi
какой тип колонки.
pablo
Операция сравнения строк работает в первую очередь по длине строки, а затем - по кодам содержимого. Строка также может содержать непечатаемые символы...

И Ardi прав, если тип колонки не строка, то сортировать будет не по представлению типа
sypersava
То есть для того чтоб правильно сортировало нужно явно указать тип СТРОКА для колонки с наименованием и датой? Пробую.

Все так же ерунда получается (. Может есть у кого мысли как сделать другим способом? То есть в таблице товар, операция, дата, нужно выбрать товар с последней датой.

Джолі Бар ДБ № 001
Оренда
Гаджия Нера Г № 001
Оренда
Віа Венеціа № 001
Оренда
Віа Венеціа № 001
ИзОренды
Віа Венеціа № 001
Оренда
Гаджия Нера Г № 001
Оренда
Віа Венеціа № 001
Замена
Віа Венеціа № 001
Замена
Віа Венеціа № 001
Замена
Гаджия Нера Г № 001
Оренда
Віа Венеціа № 001
ИзЗамены
sava1
Цитата(sypersava @ 23.01.14, 14:29) необходимо зарегистрироваться для просмотра ссылки
нужно выбрать товар с последней датой

А запрос не катит?
Ardi
наверное алгоритм удаления неправильный
sypersava
Цитата(sava1 @ 23.01.14, 16:38) необходимо зарегистрироваться для просмотра ссылки
А запрос не катит?


К сожалению в запросах несилен.

Цитата(Ardi @ 23.01.14, 18:51) необходимо зарегистрироваться для просмотра ссылки
наверное алгоритм удаления неправильный


Удаляет правильно, сортирует через одно место (.

Так, установил тип колонки Дата, вродебы сортирует правильно... Смотрю алгоритм удаления...
sypersava
Так, все таки виноваты руки, rulez.gif , нужно было сдвигать индекс после удаления строки ТЗ, я почемуто думал что оно само сдвигает ). Всем спасибо ).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.