#0
by ildary
Уважаемые специалисты, подскажите пожалуйста, как правильно пользоваться функцией НайтиСтроку и ПолучитьСтроку, чтобы потом перебрать все найденные варианты? Для примера - чтобы обработать найденные строки, придется обработчик писать в двух местах, а хочется в одном:
#2
by ildary
спасибо за идею, а если переборов будет несколько, то надо будет в конце перебора сделать ИТЗСкидок.ВыключитьФильтр( "ЭтоБонус" )?
#3
by ildary
+ я имею в виду, если индексов несколько и перебор будет вестись по разным индексам, то надо будет предыдущий отключать через ВыключитьФильтр? p.s. до того приятно, что на мой нубский вопрос отвечает один из авторов семерочного счастья 1cpp :)
#5
by ADirks
не, выключать не надо вот ни разу в жизни не было случая, чтоб это понадобилось. Так, для полноты интерфейса сделали.
#7
by ildary
есть ИТЗ с разными индексами (ну пусть это будут "Контрагент" и "Товар"). Хочу перебрать все строки в ИТЗ, в которых Контрагент = заданному, и потом перебрать все строки, в которых Товар = заданному. Надо ли после первого перебора убрать фильтр по первому индексу?
#10
by Ёпрст
можно и без подмножества, тупо бегать по индексам.. а можно еще проще - сгруппировать ИТЗ..
#11
by ildary
а как правильно бегать по индексам, особенно если они составные? Я нашел только НайтиСтроку, но вот как сделать полный перебор в одном цикле?
#12
by ildary
+ допустим в ИТЗ есть 2 колонки - Товар и Контрагент и составной индекс "ТоварКонтрагент", как перебрать все строки и что-то сделать в один проход? Подмножество - похоже работает по простому индексу.
#13
by Ёпрст
дык кидаешь в СЗ 2 значения ключа и находишь все пары Клиентос-Товар с этими значениями ключа.
#14
by ildary
еще небольшой вопрос - как в табличном поле сделать самостоятельную сортировку: табличное поле выводит справочник "Действия", с реквизитоом Контрагент, тип "справочник.Контрагенты". 1С сортирует эту колонку по внутреннему идентификатору, а хочется, чтобы сортировал по наименованию. Пытался сделать дополнительное текстовое поле (чтобы сортировать по нему), вот так: Данные.ДобавитьСоединениеДанных( "Справочник_Контрагенты","JOIN Справочник.плнДействия as СпрДействия |ON СпрДействия.id = ТекущийОбъект.id но по нему вообще не сортирует. Есть ли способы отсортировать кроме перехода на Табличное поле ИТЗ?
#20
by ildary
+ и эта строка будет работать, когда пользователь нажмет по залоговку колонки "НаимКонтрагента"?
#25
by ildary
разве ТипБыстрогоПоиска работает для тп справочника? В документации это поле есть только у ПоставщикДанныхODBC.
#28
by Serginio1
Если нужное поле первое в индексе то НайтиБлижайшуюБольше или НайтиБлижайшуюМеньше в зависимости от того как создашь ключ.
#31
by ildary
мне надо получить все записи с нужным мне индексом и перебрать их одним циклом. К сожалению НайтиБлижайшуюБольше и НайтиБлижайшуюМеньше - не сработают.
#35
by Serginio1
Обычно индекс составляют так. Искомое значение + минимальные значения в следующих индексах. При нахождении НайтиБлижайшуюБольше должна спозиционироваться на первыю запись. Вообще обычно существуют методы БольшеИлиРавно
#36
by Salimbek
Что касается задачи в то варианты уже приводили, еще один вариант (которым пользовался я) - это использовать "Группировать" с параметром 1 в конце, т.е. кроме сгруппированной таблицы, которую перебираешь, в каждой строке будет Индексированная таблица ТЗПотомки (с выборкой только отфильтрованных по группируемому полю строк), которую далее можно проиндексировать как угодно, перебрать и т.д. Что же задачи в , то, по идее, как то оно должно работать. Если очень надо, могу завтра выкроить немного время, посмотреть на внутренности поставщика.
#39
by Salimbek
Так тоже можно, только придется самостоятельно следить, началась ли новая цепочка бонусов. Т.е. варианты: ИТЗ.ДобавитьИндекс("индБонус","ЭтоБонус,Номенклатура");
#40
by ildary
я с индексированными таблицами только начинаю работать и я надеялся, что их функционал позволит накладывать фильтр по значению индекса с последующим перебором только отфильтрованного, а получается, что ИТЗ будет перебираться как обычная ТЗ?
#43
by ildary
я дико извиняюсь, но вот я смотрю в и вижу: чем это отличается от полного перебора обычной ТЗ?
#46
by ildary
"так и есть" = "ИТЗ будет перебираться как обычная ТЗ"? если да, то остается только группировка с обращением к ТЗ_Потомки.
#47
by Salimbek
Ну как же, добавив индекс по двум полям, как предложено в , мы же не накладываем фильтр по первому полю, верно?
#48
by Ёпрст
нет, будет отбираться по установленному фильтру или, например, можно бегать только по уникальным записям индекса..
#49
by ildary
я бы не отказался от простейшего примера. устал искать рабочий вариант методом научного тыка.
#51
by Ёпрст
Это, установи фильтр по нужному индексу и обходи тз с установленным фильтром по этому индексу.. Тебе это надо в итоге ?
#53
by ildary
попутно ковыряясь с ИТЗ нашел еще одну непонятку: есть у нее метод Группировать. Решил испытать его: Берем ИТЗ с колонками "Фирма", "СуммаРуб", "Контрагент" (так она из регистра выгрузилась). СуммаРуб- числовой, первые два - справочники. Далее: хочу увидеть в ИТЗ свертку - и вижу, что таблица не сгруппировалась (т.е. как шли колонки Фирма, СуммаРуб, Контрагент, так и осталось, добавленная колонка ТЗ_Потомки - пустая). Единственное, что смущает - порядок колонок в ИТЗ не совпадает с тем, как я ее группирую, но разве это должно влиять?
#55
by Salimbek
Чтобы была тзПотомки надо ИТЗ.Группировать( "Контрагент: Контрагент; Фирма: Фирма", "СуммаРуб" , 1);
#56
by ildary
пардону прошу, но у меня и без 1 в параметрах получилось, надо было только не создавать индексы.
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- v7: v7 : НДС при возврате
- v7: Что нужно чтоб подключить ККМ Меркурий 112F к 1с V7 Торговля + склад
- v7: v7.7 премещение элемента справочника
- v7: v8: v7: Кто-нибудь сумел скачать комплект отчетности за I квартал 2007 года
- v7: 1С V7.7 в сети
- v7: 1C:V7 starter program (for SQL) - обнаружена ошибка
- v7: 1с++ Индексированная таблица - скорость создания индексов
- v7: Перенос данных Бухгалтерия из v7 в v8
- v7: Индексированная таблица
- v7: 1С++ Индексированная таблица, метод Группировать тормозит
- v7: Индексированная таблица: 2 выборки по разным индексам, можно ли?
- v7: Индексированная Таблица значений
В этой группе 1С
- БП 3.0 Корректировка реализации (прошлым/текущим периодом)
- v7: Ошиб:HTTPxml.Send( Text ); ..ХЪ.. msxml3.dll: Системная ошибка: -2146697208.
- Найти элемент справочника по Идентификатору -Уникальному
- Параметр = ТекущаяДата() минус неделя
- подключение к firebird
- Условие по планам счетов в запросе(предопределенные элементы)
- Заполнение поля табличной части
- И снова СКД... система округления "ВВЕРХ"
- v7: Многоотраслевое ЖКХ
- Обмен данными между ЗУП 2.0 и КА
- Проблема с ККМ и АТОЛ
- 1С 8.3: Как сделать командный раздел текущим при старте?
- Необязательные параметры динамического списка, фигурные скобки
- БП 3.0. Не могу включить учет расчетов по зарплате во внешней программе!?!?!?
- Как Выгрузить Документ в Макет?/Как Загрузить данные из Макет в Документа?
- Изменение цвета фона ячейки табличной части документа в управляемых формах
- Запрос по поступлениям у которых нет счет-фактур
- Получение результата закрытия формы в немодальном режиме
- Объединение нескольких полей в запросе
- УПП. Определение фин.результат. Новые проводки