Версия для печати темы (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)
Ты бы проверил на узле или действительно:
Я бы в данном случае искал по наименованию или по внутреннему коду.
друг, как искать то понятно. (з.ы. покоду может быт такая херь
)
вопрос совсем другой..
какого хера направление посика/сортировки разное.....или еще какой причине.
Автор: 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
спс. уже сделано
Автор: 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