Версия для печати темы (https://pro1c.org.ua/index.php?s=9598ad09da5d45b73f920c46176cf19d&showtopic=807)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ "Спр.ВыбратьЭлементы()" Направление поиска?

Автор: zetovich 17.08.09, 18:55

Комплексная ...типовая. (почти, в данном контексте типовая).
Есть документ РКО. При вводе нового кассу получаем так:



Функция глПолучитьКассу(Фирма,Валюта) Экспорт
Спр = СоздатьОбъект("Справочник.НашиДенежныеСчета");
Спр.ИспользоватьВладельца(Фирма);
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент() = 1 Цикл
Счет = Спр.ТекущийЭлемент();
Если Счет.ЭтоГруппа() = 1 Тогда
Продолжить;
КонецЕсли;
Если (Счет.Безнал = 0) и (Счет.Валюта = Валюта) Тогда
Возврат Счет;
КонецЕсли;
КонецЦикла;
глКомментарий("Не найдена касса с валютой "+Валюта+" по фирме "+Фирма+"!",0,,"!");
Возврат 0;
КонецФункции //глПолучитьКассу

Вообщем нормально.
Есть одно НО...
База распределенная...в одном узле выбирает кассу1, в другом кассу2 (спр.НашиДенежныеСчета мигрирует весь...т.е. он одинаковый что в цента....что в перефирии)
з.ы. конфа есно одинакова
з.ы.ы. кодовая страница тож одинакова (конечно)
вопрос:
какого хрена? где какие то глобальные натсройки винды?...хз

Автор: zetovich 17.08.09, 19:09

+ забыл сказать...
при интерактвином выборе стоит сортировка по наименованию везде.

Автор: Fynjy 17.08.09, 19:13

Есть возможность указывать порядок - код, наименование, реквизит - используй.

Автор: zetovich 17.08.09, 19:16

Цитата(Fynjy @ 17.08.09, 21:13) *
Есть возможность указывать порядок - код, наименование, реквизит - используй.

не совем понял о чем речь.
то как исчпраивть то понятно (если речь об этом).
вопрос в другом...какого хрена так?

Автор: dmiter 17.08.09, 20:58

Цитата(zetovich @ 17.08.09, 21:16) *
не совем понял о чем речь.
то как исчпраивть то понятно (если речь об этом).
вопрос в другом...какого хрена так?

Кроме видимых реквизитов у всех таблиц 1с есть и невидимые по которым и строятся связи между базами (как-то ключи). Без указания сортировки выборка может происходить или по этим реквизитам или по номеру записи в таблице. Возможно две кассы (элементы справочника) в одной таблице записаны в одном порядке, а в другой (распределенной) в другом. Вот и выборка происходит по разному. В сиквеле не знаю - там по запросу порядок неважен - а вот в дбф-е уж точно. Надо просмотреть таблицы Кассы и проверить - верно ли мое предположение.

Автор: zetovich 18.08.09, 7:38

Цитата(dmiter @ 17.08.09, 22:58) *
Кроме видимых реквизитов у всех таблиц 1с есть и невидимые по которым и строятся связи между базами (как-то ключи). Без указания сортировки выборка может происходить или по этим реквизитам или по номеру записи в таблице. Возможно две кассы (элементы справочника) в одной таблице записаны в одном порядке, а в другой (распределенной) в другом. Вот и выборка происходит по разному. В сиквеле не знаю - там по запросу порядок неважен - а вот в дбф-е уж точно. Надо просмотреть таблицы Кассы и проверить - верно ли мое предположение.

Ваша идея понятна...
но это как то абсурдно....хотя у нас в жизни много абсурдов.

Автор: Кузьмич 18.08.09, 8:25

Ты бы проверил на узле или действительно:

Цитата
Если (Счет.Безнал = 0) и (Счет.Валюта = Валюта) Тогда


Я бы в данном случае искал по наименованию или по внутреннему коду.

Автор: zetovich 18.08.09, 8:52

Цитата(Кузьмич @ 18.08.09, 10:25) *
Ты бы проверил на узле или действительно:

Я бы в данном случае искал по наименованию или по внутреннему коду.

друг, как искать то понятно. (з.ы. покоду может быт такая херь wink.gif)
вопрос совсем другой..
какого хера направление посика/сортировки разное.....или еще какой причине.

Автор: zetovich 18.08.09, 9:20

вопрос снят.
dmiter был прав.
тему клоуз.

Автор: Кузьмич 18.08.09, 9:32

в догонку...
не просто "ПоКоду", а по "ЗначениеВСтроку" или "ЗначениеВСтрокуВнутр"
Тогда даже если случайно заденут код или наименование выберется правильный объект.

Автор: Fynjy 18.08.09, 15:15

ПорядокНаименований();
Синтаксис:
ПорядокНаименований()
Назначение:
Установить порядок выборки элементов справочника по возрастанию наименования.
Замечание:
Метод вызывается до вызова метода ВыбратьЭлементы.
Метод можно использовать только для объектов, созданных функцией СоздатьОбъект.

Автор: Fynjy 18.08.09, 15:15

ПорядокКодов();
Синтаксис:
ПорядокКодов()
Назначение:
Установить порядок выборки элементов справочника по возрастанию кода.
Замечание:
Метод вызывается до вызова метода ВыбратьЭлементы.
Метод можно использовать только для объектов, созданных функцией СоздатьОбъект.

Автор: Fynjy 18.08.09, 15:16

ПорядокРеквизита(<?>);
Синтаксис:
ПорядокРеквизита(<ИмяРеквизита>)
Назначение:
Установить порядок выборки элементов справочника по возрастанию значения реквизита.
Параметры:
<ИмяРеквизита> - строка с именем реквизита, по возрастанию значений которого выполняется выборка.
Замечание:
Метод может использоваться только для реквизита с установленным признаком Сортировка.
Метод вызывается до вызова метода ВыбратьЭлементы.
Метод можно использовать только для объектов, созданных функцией СоздатьОбъект.
Подробнее см. в документации, глава 'Работа со Справочниками'

Автор: zetovich 18.08.09, 15:28

Fynjy
спс. уже сделано smile.gif

Автор: W-divin 19.08.09, 10:55

у 1С все выборки, ежели не указывать явно порядок сортировки, сортируюццо по внутреннему представлению ))) попробуй на любом справочнике:



спр=создатьобъект("справочник."+идсправочника);
спр.выбратьэлементы();
пока спр.получитьэлемент()=1 цикл
сообщить(""+спр.текущийэлемент());
конеццикла

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua