Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

Помогите с сортировкой!

DarWin
читатель
офлайн
Дата регистрации: 17.05.2005
Сообщений: 7
Пост №1
 
08.06.2005 17:41

Написал внешнюю обработку, выбирает сотрудников по их дате рождения (Кадры желают знать когда, кого и главное где поздравить), но у меня не как не получается отсортировать выбраных по дате Рождения. <br><br>Посоветуйте плиз, я уже пару дней бьюсь и все без успешно.

Alexor
читатель
офлайн
Дата регистрации: 08.07.2003
Сообщений: 201
Пост №2
 
08.06.2005 18:02

Код покажи.<br><br>Такое впечатление, что у тебя дата записывается как строка, отсюда глюки.

Sklowsky
читатель
офлайн
Дата регистрации: 11.05.2005
Сообщений: 36
Пост №3
 
08.06.2005 18:03

Данные в обработке выбираешь в таблицу значений, а потом применяешь метод Сортировать("ПолеСортировки"), при чем можешь сортировать и по сложному выражению, указывая поля через запятую, например: сотрудники, родившиеся в один и тот же день -по алфавиту.

DarWin
читатель
офлайн
Дата регистрации: 17.05.2005
Сообщений: 7
Пост №4
 
08.06.2005 18:29

"Вот код. выберает и показывает в таблице как надо но только не в том порядке.<br><br>//*******************************************<br><br><br><br>Процедура Сформировать()<br><br> Таб = СоздатьОбъект("Таблица");<br><br> Таб.ИсходнаяТаблица("Список");<br><br> Таб.ВывестиСекцию("Шапка");<br><br> СпрС = СоздатьОбъект("Справочник.Сотрудники");<br><br> Нпп = 0;<br><br> СпрС.ВыбратьЭлементы();<br><br> Пока СпрС.ПолучитьЭлемент()=1 Цикл<br><br> ДатаРож = СпрС.ДатаРождения;<br><br> Если ДатаМесяц(ДатаРож) >= ДатаМесяц(НачДата) Тогда<br><br> Если ДатаМесяц(ДатаРож) <= ДатаМесяц(КонДата) Тогда<br><br> Если ДатаЧисло(ДатаРож) >= ДатаЧисло(НачДата) Тогда<br><br> Если ДатаЧисло(ДатаРож) <= ДатаЧисло(КонДата) Тогда<br><br> ЛФИО = СокрЛП(СпрС.Фамилия)+ " " +СокрП(СпрС.Имя)+ " " +СокрП(СпрС.Отчество);<br><br> ДатаР = СпрС.ДатаРождения;<br><br> Подр = СпрС.Подразделение; <br><br> Долж = СпрС.Должность;             <br><br> Нпп = Нпп + 1; <br><br> Таб.ВывестиСекцию("Строка"); <br><br>             Конецесли;<br><br> Конецесли; <br><br> Конецесли;<br><br> Конецесли; <br><br> Конеццикла;<br><br> Таб.ТолькоПросмотр(1);<br><br> Таб.Опции(0,0,0,0,"Список сотрудников");<br><br> Таб.ПараметрыСтраницы(,,,0,0,0,0,0,0);<br><br> Таб.Показать("Список сотрудников");<br><br>КонецПроцедуры <br><br>Процедура ПриОткрытии() <br><br> НачДата = НачМесяца(РабочаяДата());<br><br> КонДата = КонМесяца(РабочаяДата());<br><br>Конецпроцедуры <br><br><br><br>"

Alexor
читатель
офлайн
Дата регистрации: 08.07.2003
Сообщений: 201
Пост №5
 
09.06.2005 10:10

"Здесь сортировку тебе не сделать.<br><br>Есть 2 варианта.<br><br>Либо выгружай в таблицу значений и сортируй там, <br><br>либо делай запрос с сортировкой по датам.<br><br><br><br>Примерно так:<br><br><br><br>ТекстЗапроса=<br><br>"Сотрудник = Справочник.Сотрудники.ТекущийЭлемент();<br><br>|ДатаРождения = Справочник.Сотрудники.ДатаРождения;<br><br>|Группировка ДатаРождения Упорядочить по ДатаРождения;<br><br>|Группировка Сотрудник Упорядочить по Сотрудник.Фамилия;<br><br>|Условие ((ДатаМесяц(ДатаРож) >= ДатаМесяц(НачДата)) и (ДатаМесяц(ДатаРож) <= КонДата)) и (ДатаЧисло(ДатаРож) >= ДатаЧисло(НачДата)) и (ДатаЧисло(ДатаРож)<=ДатаЧисло(КонДата)));";<br><br><br><br>Запрос = СоздатьОбъект("Запрос");<br><br>Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда<br><br> Возврат;<br><br>КонецЕсли;<br><br><br><br>Пока Запрос.Группировка("ДатаРождения") = 1 Цикл<br><br>Пока Запрос.Группировка("Сотрудник") = 1 Цикл<br><br>ПечСотрудник=Запрос.Сотрудник;<br><br>// печать строки<br><br>КонецЦикла;<br><br>КонецЦикла;<br><br><br><br><br><br><br><br>"

GreenWarrior
читатель
офлайн
Дата регистрации: 14.07.2003
Сообщений: 77
Пост №6
 
09.06.2005 13:33

ИМХО, запрос лучше, когда в справочнике большое число элементов.

DarWin
читатель
офлайн
Дата регистрации: 17.05.2005
Сообщений: 7
Пост №7
 
09.06.2005 14:45

Как ты написал так не получилось!<br><br>Ну выгрузить разберусь а как там сортировать?

Alexor
читатель
офлайн
Дата регистрации: 08.07.2003
Сообщений: 201
Пост №8
 
09.06.2005 18:01

Писал без проверки, чтобы ясен был смысл, поэтому гарантии нет.<br><br>Если выгрузишь в таблицу значений, то<br><br>используй Сортировать(<Колонки>) (см. Синтакс-Помощник)<br><br><br><br>В таблицу значений пиши дополнительный столбец со значением<br><br>ДатаМесяц(Запрос.ДатаРож)*100+ДатаЧисло(Запрос.ДатаРож))<br><br>и сортируй по нему.

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация