Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
1 / 1 / 0
Регистрация: 28.09.2011
Сообщений: 28

Упорядочивание элементов справочника

20.08.2013, 10:07. Показов 3712. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Подскажите пожалуйста, как можно в справочнике упорядочить нумерацию так, чтобы она была не в алфавитном порядке, а в удобной для восприятия форме.
Миниатюры
Упорядочивание элементов справочника  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.08.2013, 10:07
Ответы с готовыми решениями:

Фильтр элементов справочника
Можно ли в 1С реализовать следующее: Есть два справочника. Справочник2 имеет реквизит-ссылка на Справочник1. Форма создания Документа1...

Выбор из справочника элементов
1С предприятие 8.2 Можно ли сделать так, чтобы после выбора очередного элемента справочника, этот выбранный элемент при следующем...

Отбор (выборка) элементов справочника
Добрый день, Ситуация следующая: Имеется иерархический (2 уровня) справочник "Двидения денежных средств" с элементами: ...

17
1 / 1 / 0
Регистрация: 28.09.2011
Сообщений: 28
20.08.2013, 15:07  [ТС]
Цитата Сообщение от Nykos Посмотреть сообщение
Всем привет. Подскажите пожалуйста, как можно в справочнике упорядочить нумерацию так, чтобы она была не в алфавитном порядке, а в удобной для восприятия форме.
ПС
Подумал и решил, что попробую привязать данное поле к полю Код, которое будет числовым. Должно получится так, что значению "1.1.1" будет соответствовать код "0111", значению "1.1.21" - код "1121" и так далее. А после просто делаю сортировку по коду и справочник принимает приятный вид. Надеюсь, вы меня поняли и догадка моя адекватная) Только помогите с синтаксисом....
0
Шизофреник
 Аватар для wladimir_ui
361 / 363 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
20.08.2013, 20:49
по вашей схеме элементы "1.1.21", "11.2.1", "1.12.1" и т.д. - будут иметь одинаковый код "1121"

Добавлено через 1 минуту
Цитата Сообщение от Nykos Посмотреть сообщение
Всем привет. Подскажите пожалуйста, как можно в справочнике упорядочить нумерацию так, чтобы она была не в алфавитном порядке, а в удобной для восприятия форме.
В удобной для восприятия форме - не совсем догоняю о чем вы. Может про дерево?
0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,701
Записей в блоге: 1
20.08.2013, 23:21
В типовых есть доп поле называется "Порядок" числовое поле определяющее правильный порядок
1
1 / 1 / 0
Регистрация: 28.09.2011
Сообщений: 28
21.08.2013, 11:28  [ТС]
Цитата Сообщение от wladimir_ui Посмотреть сообщение
по вашей схеме элементы "1.1.21", "11.2.1", "1.12.1" и т.д. - будут иметь одинаковый код "1121"
Точно. Внесу некоторые уточнения. Есть такая возможность - с помощью массива (насколько я понял - функция Подстрока()) перейти к виду "1.1.21"-0101021", "11.2.1"-"0110201". Где "1.1.21" - наименование, "0101021" - код. Тоесть перебором посимвольно заменить точки на нули и перед строкой дополнительно проставить "0". Ну и в цикл это загнать наверное... Код должен иметь именно такой формат, т.к. "надо"(с)руководство. )

Такое возможно?

Добавлено через 2 часа 42 минуты
И еще такой момент. Создал процедуру в ФормеЭлемента, которая меняет Код на нужный мне формат, но меняет только после того как я отредактирую поле Наименование. А мне нужно, чтобы при открытии Код был уже изменен, причем во всем справочнике. Наверное надо в ФормеСписка это прописывать.
Тут тогда еще один вопрос. Могу я в ФормеСписка сослаться на процедуру из ФормыЭлемента так, чтобы при открытии справочника везде был уже нужный мне формат. Потому как при обычном копировании процедуры куча ошибок о том, что переменные не найдены.

Добавлено через 10 минут
Или мне вообще не нужны эти формы и сделать что-то похожее на это:

1C
1
2
3
4
5
6
7
8
9
10
11
12
Запрос = Новый Запрос(" 
|ВЫБРАТЬ 
|   Код 
|ИЗ 
|   Справочник.Номенклатура 
|АВТОУПОРЯДОЧИВАНИЕ"); 
    
Результат = Запрос.Выполнить().Выбрать(); 
 
Пока Результат.Следующий() Цикл 
    //цикл для замены кода 
КонецЦикла;
?
0
Шизофреник
 Аватар для wladimir_ui
361 / 363 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
21.08.2013, 12:15
в конфигураторе:
меню файл - новый - внешняя обработка - добавте форму - готово - (автоматом сгенерится с кнопкой "выполнить") - перейдите в модуль формы, там будет:

Процедура КнопкаВыполнитьНажатие(Кнопка)
// Вставить содержимое обработчика. <-сюда пхайте свой код
КонецПроцедуры

сохраняете - запускаете 1сПредприятие - меню файл - открыть - открываете свою обработку - нажимаете кнопку выполнить

Добавлено через 1 минуту
и все это делайте на копии базы, чтобы небыло мучительно больно...

Добавлено через 4 минуты
1C
1
2
3
4
5
6
7
8
9
10
11
12
    Запрос = Новый Запрос("ВЫБРАТЬ
                          | Номенклатура.Ссылка
                          |ИЗ
                          | Справочник.Номенклатура КАК Номенклатура");
                          
    Результат = Запрос.Выполнить().Выбрать(); 
     
    Пока Результат.Следующий() Цикл 
        Объект = Результат.Ссылка.ПолучитьОбъект();
        Объект.Код = //.... вашаФормула
        Объект.Записать();
    КонецЦикла;
1
1 / 1 / 0
Регистрация: 28.09.2011
Сообщений: 28
21.08.2013, 12:38  [ТС]
Спасибо! Прописал Код="12345" и во всем справочнике код поменялся на 12345. Работает,принцип понятен.)
А вот у меня в справочнике есть поле "Номер" (внешний вид его в моем самом верхнем посте). И мне надо сделать так, чтобы Код равнялся Номеру, только вместо точек в Коде должны быть нули, ну и спереди нолик дописать. (пример: "1.1.21"-0101021"). Не подскажешь как это сделать?
0
Шизофреник
 Аватар для wladimir_ui
361 / 363 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
21.08.2013, 12:58
Объект.Код = СтрЗаменить(Объект.Номер,".","0")
1
1 / 1 / 0
Регистрация: 28.09.2011
Сообщений: 28
21.08.2013, 17:24  [ТС]
Цитата Сообщение от wladimir_ui Посмотреть сообщение
Объект.Код = СтрЗаменить(Объект.Номер,".","0")
Спасибо!

А как мне сделать так, чтобы перед кодом добавлялся ноль, потом сам код, а после кода дозаполнить строку нулями, чтобы в сумме строка состояла из 10 символов? Пример: "1.1.21" - "0101021000").

Добавлено через 2 часа 57 минут
Цитата Сообщение от Dethmontt Посмотреть сообщение
В типовых есть доп поле называется "Порядок" числовое поле определяющее правильный порядок
Не подскажете где именно?
0
Шизофреник
 Аватар для wladimir_ui
361 / 363 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
22.08.2013, 05:12
конкатенация строк
Строка1 = Строка2+Строка3+...+СтрокаN.
Объект.Код = "0"+СтрЗаменить(Объект.Номер,".","0")+"0 0000000000000000"
Вы бы хоть чуток справку встроенную поюзали, или гугл, в конце та концов
1
1 / 1 / 0
Регистрация: 28.09.2011
Сообщений: 28
22.08.2013, 10:01  [ТС]
Спасибо, буду юзать.

Добавлено через 21 минуту
Но дело в том, что я делал ровно так, как вы сказали, и строка получается 16-символьльная и фиксированная везде, а если я изменяю в последнем выражении количество нулей до необходимого мне, тогда у меня строка Кода варьируется в зависимости от количества символов в поле Номер. То восемь, то девять, то одиннадцать. Вы уж простите меня за мое непонимание, но все же.

Добавлено через 38 минут
Установка длины поля в свойствах ничего не дает...
0
Шизофреник
 Аватар для wladimir_ui
361 / 363 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
22.08.2013, 10:02
СтрДлина(<Строка>) - Получает количество символов в строке.

проверяй длину и в цикле добивай нулями до нужной длины
1
Шизофреник
 Аватар для wladimir_ui
361 / 363 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
22.08.2013, 10:12
в конце та концов откройте справку, там подробно и с примерами...
Миниатюры
Упорядочивание элементов справочника  
0
1 / 1 / 0
Регистрация: 28.09.2011
Сообщений: 28
22.08.2013, 10:39  [ТС]
А может как-то так?
1C
1
2
3
4
5
6
7
8
9
10
11
12
Запрос = Новый Запрос("ВЫБРАТЬ
                          | Номенклатура.Ссылка
                          |ИЗ
                          | Справочник.Номенклатура КАК Номенклатура");
                          
    Результат = Запрос.Выполнить().Выбрать(); 
     
    Пока Результат.Следующий() Цикл 
        Объект = Результат.Ссылка.ПолучитьОбъект();
        Объект.Код = "Лев("00000000000"+СтрЗаменить(Объект.<моя строка>, ".", "0"), <НужнаяДлина>)";
        Объект.Записать();
    КонецЦикла;
0
Шизофреник
 Аватар для wladimir_ui
361 / 363 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
22.08.2013, 11:04


Добавлено через 1 минуту
вариантов выше крыши...
я чего то не пойму: вы хотите чтоб вам кто то от и до код написал?
0
1 / 1 / 0
Регистрация: 28.09.2011
Сообщений: 28
22.08.2013, 11:53  [ТС]
Ладно. Ничего не хочу. Спасибо за помощь, без вас и с этим бы не справился.

Добавлено через 41 минуту
В общем как-то так. Добился того что нужно. Еще раз всем спасибо)

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Запрос = Новый Запрос("ВЫБРАТЬ
    | Номенклатура.Ссылка
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура");
    
    Результат = Запрос.Выполнить().Выбрать(); 
    
    Пока Результат.Следующий() Цикл 
        Объект = Результат.Ссылка.ПолучитьОбъект();
        Объект.Код = "0" + Лев(СтрЗаменить(Объект.Номер, ".", "0")+"00000000",9);//неясно как, но работает
        Объект.Записать();
    КонецЦикла;   
КонецПроцедуры
1
Шизофреник
 Аватар для wladimir_ui
361 / 363 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
22.08.2013, 11:55
1
1 / 1 / 0
Регистрация: 28.09.2011
Сообщений: 28
03.09.2013, 11:37  [ТС]
Друзья, а почему при выгрузке из экселя поле Код остается пустым в иерархическом справочнике у родителей? Хотя напротив каждого родителя в документе ексел код присутствует...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.09.2013, 11:37
Помогаю со студенческими работами здесь

Распределение элементов справочника по группам
Здраствуйте. Как можно изменить у существующего элемента справочника родителя, т.е. переместить его в определённую группу. При создании...

Выбор элементов справочника по нескольким реквизитам
Могу сделать выборку по реквизиту1, могу сделать выборку по реквизиту2 и т.д., а можно ли сделать выборку по нескольким реквизитам сразу? ...

Отображение элементов конкретной группы справочника
Добрый день! Помогите, пожалуйста, понять в чем ошибка. у меня есть иерархический справочник &quot;Предприятие&quot;, в нем у каждого...

Программное создание элементов справочника Характеристики Номенклатуры
Народ, столкнулся с такой проблемой: Работаю с УПП. Выпускаемая продукция каждый раз может быть разного цвета. Причём цвет может быть и...

Запрет на изменение редактирования элементов в группе Справочника
Делаю подписку на события ПередЗаписью. Есть справочник.МойСправочник, там есть группа &quot;не изменять&quot;-нужно запретить...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru