|
Вопрос про ТЗ | ☑ | ||
---|---|---|---|---|
0
егаис
25.08.20
✎
11:48
|
Кроме перебора колонок в ТЗ можно узнать номер (индекс) колонки?
Есть найденнаястрока, но в каких колонках находится то и иное значение неизвестно, есть продвинутый способ? |
|||
1
Ёпрст
25.08.20
✎
11:50
|
[] ?
|
|||
2
Ёпрст
25.08.20
✎
11:51
|
и..у колонки так то .Имя есть
|
|||
3
Волшебник
25.08.20
✎
11:53
|
Индекс = ТЗ.Колонки.Индекс(Колонка);
|
|||
4
ДенисЧ
25.08.20
✎
12:02
|
(1) (2) (3) Смешные вы....
Человек не знает, в какой именно колонке находится значение... А вы предлагаете обращаться к конкретной... (0) Придётся тебе разочароваться в 1с. И сделать перебор колонок. У тебя что, их там 100500? |
|||
5
Garykom
гуру
25.08.20
✎
12:13
|
Теоретически разрабам платформы 1С надо бы допилить:
Вместо просто НайденнаяСтрока = ТаблицаЦен.Найти(ВыбТовар, "Товар"); Чтобы можно было делать Колонки = ""; НайденнаяСтрока = ТаблицаЦен.Найти(ВыбТовар, Колонки); И в переменную "Колонки" возвращаются имена колонок в которых нашли |
|||
6
Ёпрст
25.08.20
✎
12:15
|
(5) Вот никогда в своём коде не использовал поиск во всех колонках. Всегда только в конкретной.
|
|||
7
Ёпрст
25.08.20
✎
12:15
|
Даже не могу придумать задачу, где это надо вообще
|
|||
8
Garykom
гуру
25.08.20
✎
12:16
|
(6) (7) Когда ТЗ используется как массив, где пофиг на имена колонок
|
|||
9
2S
25.08.20
✎
12:26
|
(7) легко, загрузка какая-нибудь
|
|||
10
Ёпрст
25.08.20
✎
12:26
|
(9) например ?
|
|||
11
Ёпрст
25.08.20
✎
12:28
|
Покажите, где вы в своём коде используете поиск по ТЗ без учета колонки
|
|||
12
Bigbro
25.08.20
✎
12:33
|
у меня бывает динамическая ширина ТЗ в зависимости от выбранного периода - с колонками по дням.
но к счастью в тех данных искать ничего не надо)) |
|||
13
2S
25.08.20
✎
12:34
|
Загрузка регламентирована по именам колонок, расположение колонок на усмотрение юзеров
|
|||
14
Ёпрст
25.08.20
✎
12:36
|
(13) см(11)
|
|||
15
егаис
25.08.20
✎
13:39
|
(14) сделано так
НайденнаяСтрока = ТаблицаФайла.Найти("УИН"); //позиционирование на строке КоличествоКолонок = ТаблицаФайла.Колонки.Количество(); НомерКолонкиПлан = ОпределитьИндексКолонки(НайденнаяСтрока, "ПлановыйПоказатель", КоличествоКолонок); /////////// функция определения Функция ОпределитьИндексКолонки(СлужебнаяСтрокаТаблицыФайла, Поле, КоличествоКолонок) ИмяКолонки = ""; Для НомерКолонки = 0 По КоличествоКолонок - 1 Цикл ЗначениеПоля = СлужебнаяСтрокаТаблицыФайла[НомерКолонки]; Если ЗначениеПоля = Поле Тогда Возврат НомерКолонки КонецЕсли; КонецЦикла; Возврат ИмяКолонки; КонецФункции |
|||
16
Classic
25.08.20
✎
13:48
|
(15)
А не проще сразу (по первой строке) преобразовать ТЗ в нормальный вид, чтоб потом не искать? ТаблицаИменованная = ТаблицаФайла.Скопировать(); Для Каждого Колонка ИЗ ТаблицаФайла.Колонки Цикл ТаблицаИменованная.Колонки[Колонка.Имя].Имя = НайденнаяСтрока[Колонка.Имя]; КонецЦикла; И дальше работать без извратов? |
|||
17
егаис
25.08.20
✎
13:53
|
(16) тоже вариант
|
|||
18
Classic
25.08.20
✎
14:00
|
(16)
Либо если там названия кривые сделать через соответствие. СоответствиеКолонок = Новый Соответствие; Для Каждого Колонка Из ТаблицаТоваров Цикл СоответствиеКолонок.Вставить(НайденнаяСтрока[Колонка.Имя], Колонка.Имя); КонецЦикла; И дальше получаем значение таким образом: НужноеЗначение = СтрокаТЗ[СоответствиеКолонок.Получить(ИмяНужнойКолонки)] |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |