Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Неправильная сортировка таблицы значений с украинскими наименованиями (7.7). 2 страниц V   1 2 >          
miha74 Подменю пользователя
сообщение 01.04.16, 8:56
Сообщение #1

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 153
Спасибо сказали: 81 раз
Рейтинг: 0

Всем привет. Есть у меня давняя нерешенная проблема. В таблице значений есть колонка со строчными значениями на украинском языке, допустим фамилии сотрудников. При сортировке строк таблицы получаем "Є Ї І А Б В Г Д" и т.д., а надо бы "А Б В Г Д Є І Ї".
Windows XP SP3, платформа 7.70.027
Региональные установки в системе - укр
Порядок сортировки в базе - укр
В конце поста даю ссылку на пример обработки, сами попробуйте.
Есть ли какое-то простое решение этой проблемы? Надеюсь на коллективный разум.


[необходимо зарегистрироваться для просмотра ссылки]

Batchir Подменю пользователя
сообщение 01.04.16, 9:25
Сообщение #2

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1427 раз
Рейтинг: 0

Сортировка то идет не по букве, а по коду символа.
Код символа "А" равен 1040
Код символа "Є" равен 1028
т.е. укр буквы в символьном представлении находятся ниже русских.


Сообщение отредактировал Batchir - 01.04.16, 9:26

miha74 Подменю пользователя
сообщение 01.04.16, 9:51
Сообщение #3

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 153
Спасибо сказали: 81 раз
Рейтинг: 0

Тоесть так и должно быть?

Batchir Подменю пользователя
сообщение 01.04.16, 10:19
Сообщение #4

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1427 раз
Рейтинг: 0

Это кирилица 47046430.gif

miha74 Подменю пользователя
сообщение 01.04.16, 10:37
Сообщение #5

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 153
Спасибо сказали: 81 раз
Рейтинг: 0

Ок. А как по-красивше можно обойти этот косяк? Я думаю надо создать строку-алфавит типа "абвгдеєжзиіїйк...." и перебором оного искать значения в тз, это будет медленно...

Alex007 Подменю пользователя
сообщение 01.04.16, 13:12
Сообщение #6

Говорящий
***
Группа: Пользователи
Сообщений: 50
Спасибо сказали: 1 раз
Рейтинг: 0

А у меня вот такая байда имеется, которая бесит до немогу. Делаю перекидку новых элементов справочников через ДБФ. В файл украинская і выгружается как подчеркивание, но что самое смешное- ї переносится нормально. т.е. например "претензії"="претенз_ї". Соответственно так же и заносится потом. Возможно ли побороть это? Есть ли такая функция, которая перебирала бы буквы в строке например, чтобы править уже в перенесенном элементе что ли?

miha74 Подменю пользователя
сообщение 01.04.16, 13:23
Сообщение #7

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 153
Спасибо сказали: 81 раз
Рейтинг: 0

Сдается мне, что Вам поможет принудительная установка Windows-кодировки при создании файла дбф. Ибо по умолчанию там DOS-кодировка. Ферштейн?

Alex007 Подменю пользователя
сообщение 01.04.16, 13:26
Сообщение #8

Говорящий
***
Группа: Пользователи
Сообщений: 50
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(miha74 @ 01.04.16, 14:23) *
Сдается мне, что Вам поможет принудительная установка Windows-кодировки при создании файла дбф. Ибо по умолчанию там DOS-кодировка. Ферштейн?


Т.е. средствами 1С? Подскажите как я не совсем ферштейн.

miha74 Подменю пользователя
сообщение 01.04.16, 13:31
Сообщение #9

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 153
Спасибо сказали: 81 раз
Рейтинг: 0

Это уже оффтоп пошел конечно... Я конечно извиняюсь, у Вас документация по 1С есть? Могу дать 1C_Описание встроенного языка.chm.

    
    Файл = создатьОбъект("XBASE"); //создаем ссылку на файл DBF
    Файл.КодоваяСтраница(0); //0-виндоуз кодировка, 1-ДОС кодировка
    
    //определяем структуру файла
    //Синтаксис: ДобавитьПоле(<Название>,<Тип>,<Длина>,<Точность>)
    Файл.ДобавитьПоле("KB_A","S",12,0);
    Файл.ДобавитьПоле("KK_A","S",15,0);
        //и т.д.


Из описания по 1С:
КодоваяСтраница
Установить режим кодировки.

Синтаксис:

КодоваяСтраница(<Режим>)

Англоязычный синоним:

SetCodePage

Параметры:

<Режим>
Необязательный параметр. Числовое выражение: 0 — Windows-кодировка; 1 — DOS-кодировка. Если параметр не задан, то режим кодировки не меняется (используется для определения текущего режима кодировки без его смены).


Возвращаемое значение:

Текущее числовое значение режима кодировки (на момент до исполнения метода).

Описание:

Метод КодоваяСтраница позволяет установить режим кодировки для чте­ния и записи значений строковых полей в файл базы данных.

Сообщение отредактировал miha74 - 01.04.16, 13:39

Alex007 Подменю пользователя
сообщение 01.04.16, 13:41
Сообщение #10

Говорящий
***
Группа: Пользователи
Сообщений: 50
Спасибо сказали: 1 раз
Рейтинг: 0

miha74 @ Сегодня, 14:31 *,
Нет. Можно было просто написать- использовать функцию КодоваяСтраница(0), у меня звезда во лбу от преизбытка знаний не горит.

Vofka Подменю пользователя
сообщение 01.04.16, 13:54
Сообщение #11

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13956
Из: Киев
Спасибо сказали: 4523 раз
Рейтинг: 3646.4

Цитата(Alex007 @ 01.04.16, 14:41) *
у меня звезда во лбу от преизбытка знаний не горит

От чтения правил, похоже, тоже. Зачем влазить в чужую тему с левым вопросом? faceoff.gif

Acid Подменю пользователя
сообщение 01.04.16, 14:13
Сообщение #12

Про1С-ник
Иконка группы
За заслуги на форуме в 2010 году
Группа: Местный
Сообщений: 2104
Из: Занзибар
Спасибо сказали: 378 раз
Рейтинг: 262

Добавте в ТЗ колонку "Порядок", и сделайте ее невидимой. В нее записывайте номер по порядку, и сортируйте по этой колонке.


Signature

Документируйте Код! мать вашу...


miha74 Подменю пользователя
сообщение 01.04.16, 14:20
Сообщение #13

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 153
Спасибо сказали: 81 раз
Рейтинг: 0

Как-то не очень. Надо будет постепенно добавлять строки с новыми людьми. Придется вручную порядковый номер вычислять перед этим или как?
А вообще, странно как-то дело обстоит. Семерке уже 100 лет, а в инете ничего нет по сути по моему вопросу. Такое впечатление, что на это никто не обращал внимание.

Ну а как же тогда 1С-ка правильно сортирует объекты по украинским наименованиям? Парадокс.

Сообщение отредактировал miha74 - 01.04.16, 14:25

pablo Подменю пользователя
сообщение 01.04.16, 14:36
Сообщение #14

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

Цитата
Семерке уже 100 лет, а в инете ничего нет по сути по моему вопросу.

Потому как это проблема не семерки, а кодовой страницы ОС.


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Acid Подменю пользователя
сообщение 01.04.16, 16:23
Сообщение #15

Про1С-ник
Иконка группы
За заслуги на форуме в 2010 году
Группа: Местный
Сообщений: 2104
Из: Занзибар
Спасибо сказали: 378 раз
Рейтинг: 262

Цитата(miha74 @ 01.04.16, 15:20) *
Надо будет постепенно добавлять строки с новыми людьми. Придется вручную порядковый номер вычислять перед этим или как?

вручную??? Вы не знаете порядковый номер буквы Є в алфавите?


Signature

Документируйте Код! мать вашу...


miha74 Подменю пользователя
сообщение 01.04.16, 17:24
Сообщение #16

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 153
Спасибо сказали: 81 раз
Рейтинг: 0

Не, ну на крайний случай можно конечно. Но ведь это будет сортировка по первой букве.

Есть у меня еще одна бредовая идея. Допустим все буквы текста закодировать кодами символов СР1251 чтоб были по порядку, сортируем и раскодируем обратно, все символы кроме букв заменить пробелами.

Сообщение отредактировал miha74 - 01.04.16, 17:34

Acid Подменю пользователя
сообщение 04.04.16, 8:31
Сообщение #17

Про1С-ник
Иконка группы
За заслуги на форуме в 2010 году
Группа: Местный
Сообщений: 2104
Из: Занзибар
Спасибо сказали: 378 раз
Рейтинг: 262

новый велосипед - это здорово.

я вообще не вижу проблемы - пусть набирают фамилию с клавиатуры. Секунда дела.

miha74 Подменю пользователя
сообщение 05.04.16, 8:34
Сообщение #18

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 153
Спасибо сказали: 81 раз
Рейтинг: 0

И в тоже время объекты справочников образцово сортирует по наименованию. Как? Доколе?! smile.gif


Еще вопрос. Я в 8-ке никогда не работал. Скажите, в 8-ке так же хреново сортируется таблица значений?

volodya1122 Подменю пользователя
сообщение 07.04.16, 20:40
Сообщение #19

Оратор
Иконка группы
Группа: Местный
Сообщений: 341
Из: Тернопіль
Спасибо сказали: 137 раз
Рейтинг: 139.7

Вирішив заради спортивного інтересу відсортувати список контрагентів по своєму: в тому порядку як ідуть букви на клавіатурі.
Получилось цікаво.

Ссилка на звіт:
[необходимо зарегистрироваться для просмотра ссылки]

Спасибо сказали: miha74,

miha74 Подменю пользователя
сообщение 07.04.16, 21:02
Сообщение #20

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 153
Спасибо сказали: 81 раз
Рейтинг: 0

Браво! Оригінально. 32541510.gif

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


2 страниц V   1 2 >
Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.05.24, 12:17
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!