|
Как производится поиск по колонкам? | ☑ | ||
---|---|---|---|---|
0
LivingStar
19.08.13
✎
12:50
|
Имеется Тз, выгруженная из запроса, в ней, есть номенклатура, торговые точки, обороты. Мне нужно составить столбец из торговых точек, где колонки будут равны наименованию номенклатуре а значения в номенклатуре оборотам. В данной тз, всего 2 вида номенклатуры и 15 точек торговых. Как производить поиск в колонках по наименованию, если я его так задаю. А то получается у меня ни одна колонка не находится, а они все разворачиваются в право, с идентификаторами Колонка_1, Колонка_2, Колонка_3....Колонка_N ...
|
|||
1
LivingStar
19.08.13
✎
12:51
|
Для каждого Стр Из Тз Цикл
СущСтрока = ТзНов.Найти(Стр.ТорговаяТочка, "ТорговаяТочка"); Если СущСтрока = Неопределено Тогда НоваяСтрока = ТзНов.Добавить(); НоваяСтрока.ТорговаяТочка = Стр.ТорговаяТочка; НоваяСтрока.Адрес = Стр.Адрес; СущКолонка = ТзНов.Колонки.Найти(Стр.Номенклатура.Наименование); Если СущКолонка = Неопределено Тогда ТзНов.Колонки.Добавить(ИмяКолонки, ОписаниеТиповЧ, Стр.Номенклатура.Наименование); НоваяСтрока[ИмяКолонки] = Стр.Оборот; н = н + 1; ИмяКолонки = "Колонка_" + н; Иначе СущКолонка[ИмяКолонки] = Стр.Оборот; КонецЕсли; Иначе СущКолонка = ТзНов.Колонки.Найти(Стр.Номенклатура.Наименование); Если СущКолонка = Неопределено Тогда ТзНов.Колонки.Добавить(ИмяКолонки, ОписаниеТиповЧ, Стр.Номенклатура.Наименование); НоваяСтрока[ИмяКолонки] = Стр.Оборот; н = н + 1; ИмяКолонки = "Колонка_" + н; Иначе СущКолонка[ИмяКолонки] = Стр.Оборот; КонецЕсли; КонецЕсли; КонецЦикла; |
|||
2
Тролль главный
19.08.13
✎
12:52
|
а не проще ли узнать какая номенклатура попадает в выборку заранее, потом строить динамически запрос с полями, полученными из UID ссылок номенклатуры
|
|||
3
LivingStar
19.08.13
✎
12:55
|
(2) может проще я не сообразил, что за UID ссылок
|
|||
4
LivingStar
19.08.13
✎
12:57
|
так а методы что в (1) Колонки.Найти() почему не ищет? Я же при создании указываю номенклатуру.Наименование
|
|||
5
LivingStar
19.08.13
✎
13:04
|
Я реально сейчас в тупике, как мне (1) разложить
|
|||
6
LivingStar
19.08.13
✎
13:07
|
(2) Можно поподробнее ваш метод? Если не трудно?
|
|||
7
Тролль главный
19.08.13
✎
13:11
|
не трудно, но так как ты уже всех тут зае..., то это стоит денег
|
|||
8
LivingStar
19.08.13
✎
13:12
|
(7) тогда пикидай ветку мою.....
|
|||
9
LivingStar
19.08.13
✎
13:13
|
(7) видать скоро вообще в падлу будет сюда зайти
|
|||
10
mikecool
19.08.13
✎
13:14
|
(0) я ну.уя не понял. Думаю НайтиСтроки решит проблему или нет!
|
|||
11
LivingStar
19.08.13
✎
13:15
|
(10) Попробую сейчас, так она же несколько их ищет, я думал точно срабатывает наименование, но оказывается не ищет по самому наименованию, которое используется только для визуального представления.....
|
|||
12
mistеr
19.08.13
✎
13:16
|
(0) СКД тебе поможет.
|
|||
13
LivingStar
19.08.13
✎
13:18
|
(12) Как то её не использую, в ней разбираться нужно. А если я её не использую то не для меня она.
|
|||
14
Тролль главный
19.08.13
✎
13:25
|
(13\) не используй уже 1С
|
|||
15
LivingStar
19.08.13
✎
13:27
|
(10) да не, дело в поиске колонок по созданному наименованию, в поиске строк то нет проблем
|
|||
16
LivingStar
19.08.13
✎
13:28
|
(12) мне надо быстро разработать эту форму, с СКД мне нужно разбираться, давно не смотрел её
|
|||
17
Wobland
19.08.13
✎
13:29
|
поиск по колонкам производится внезапно методом Найти(). что дальше?
|
|||
18
mistеr
19.08.13
✎
13:30
|
(16) Значит в следующий раз не бери задачи не по силам.
|
|||
19
mistеr
19.08.13
✎
13:31
|
(17) Не засоряй тему, ему ж готовый код нужен. Бесплатно.
|
|||
20
LivingStar
19.08.13
✎
13:32
|
(18) у меня об этом не спрашивают
(19) код готовый мне не нужен (17) передаю наименование в поиск по колонкам, не ищет, так как там их нет наименований.... |
|||
21
Wobland
19.08.13
✎
13:34
|
(20) ты произвёл поиск //я (0) не осилил
|
|||
22
LivingStar
19.08.13
✎
13:35
|
(21) в колонках у меня не наименования, а "Колонка_1", "Колонка_2" и т.п. При добавлении наименование задаю, но оно не устанавливается....
|
|||
23
Wobland
19.08.13
✎
13:36
|
(22) ну вот, ты уже знаешь причину, это уже пол-дела
|
|||
24
LivingStar
19.08.13
✎
13:40
|
(23) Я думал наименования встают при добавлении и потом по ним можно осуществлять поиск. А если нет то нельзя ...
|
|||
25
Wobland
19.08.13
✎
13:41
|
(24) встают. "Колонка_1", "Колонка_2" и т.п. - твои наименования
|
|||
26
V01tk2010
19.08.13
✎
13:42
|
ТзНов.Колонки.Добавить(ИмяКолонки, ОписаниеТиповЧ, Стр.Номенклатура.Наименование);
А чему равно ИмяКолонки? |
|||
27
V01tk2010
19.08.13
✎
13:43
|
ТзНов.Колонки.Добавить(Стр.Номенклатура.Наименование, ОписаниеТиповЧ, Стр.Номенклатура.Наименование);
Может так? |
|||
28
LivingStar
19.08.13
✎
13:46
|
(26) Так первый параметр идентификатор колонки, он не может содежжать пробелов и символов что содержится в наименовании номенклатуры
|
|||
29
Wobland
19.08.13
✎
13:47
|
какую-то ересь автор затеял.. СКД уже предлагали?
|
|||
30
LivingStar
19.08.13
✎
13:50
|
(29) не умею я ей пользоваться.....
|
|||
31
V01tk2010
19.08.13
✎
13:50
|
тогда нужен массив соответствий именам колонки к номенкдатуре. Типа если номенклатура такая то колонка1
|
|||
32
V01tk2010
19.08.13
✎
13:54
|
А для 2 номенклатур вообще лучше так. Если Номенклатура1 то
НоваяСтрока[1] |
|||
33
hhhh
19.08.13
✎
13:54
|
надо отдельный раздел в книге знаний завести. И туда все эти темы. Типа запредельное программирование. Решение задач без использования КД, СКД и прочих там Д.
|
|||
34
LivingStar
19.08.13
✎
13:57
|
(31) Ок, учту ваш совет, а то уже думал про объекты в 1с, что нет возможности для такого алгоритма....
(33) Хотел обойтись штатными средствами ... |
|||
35
LivingStar
19.08.13
✎
14:00
|
(31) Да точно, массив или соответствие...Буду двигаться в этом направлении....
|
|||
36
LivingStar
20.08.13
✎
05:00
|
(35+) Список значений самый лучший объект для этого, с его применением как то и обрабатывал такую ситуацию
|
|||
37
LivingStar
20.08.13
✎
05:28
|
(36) А вот и нет!!! Не в этом случае, так как нужно получать идентификатор колонки, как говорили нужен двумерный массив. Но я думаю воспользоваться ещё одной таблицей значений....
|
|||
38
Wobland
20.08.13
✎
05:51
|
соо[НаименованиеНоменклатуры] - имя колонки
|
|||
39
LivingStar
20.08.13
✎
06:56
|
(38) Вот код который, формирует таблицу в нужном виде..
Но как мне сейчас её вывести? Имея вертикальные секции Шапка, Строка и горизонтальные ТорговаяТочка, Адрес, Номенклатура... Сделал параметром секцию "Шапка|Номенклатура", а как в неё помещать название номенклатуры? Которое имеется в таблице соответствий ТзКолонок? |
|||
40
LivingStar
20.08.13
✎
06:56
|
(39+)
Для каждого Стр Из Тз Цикл СущСтрока = ТзНов.Найти(Стр.ТорговаяТочка, "ТорговаяТочка"); Если СущСтрока = Неопределено Тогда НоваяСтрока = ТзНов.Добавить(); НоваяСтрока.ТорговаяТочка = Стр.ТорговаяТочка; НоваяСтрока.Адрес = Стр.Адрес; Если ТзНов.Колонки.Количество() < 3 Тогда // СтрТзКолН = ТзКолонок.Добавить(); СтрТзКолН.ИмяКолонки = ИмяКолонки; СтрТзКолН.НаименованиеКолонки = Стр.Номенклатура.Наименование; // ТзНов.Колонки.Добавить(ИмяКолонки, ОписаниеТиповЧ, Стр.Номенклатура.Наименование); НоваяСтрока[СтрТзКолН.ИмяКолонки] = Стр.Оборот; н = н + 1; ИмяКолонки = "Колонка_" + н; Иначе НайденаКолонка = ТзКолонок.Найти(Стр.Номенклатура.Наименование,"НаименованиеКолонки"); Если НайденаКолонка = Неопределено Тогда // СтрТзКолН = ТзКолонок.Добавить(); СтрТзКолН.ИмяКолонки = ИмяКолонки; СтрТзКолН.НаименованиеКолонки = Стр.Номенклатура.Наименование; // ТзНов.Колонки.Добавить(ИмяКолонки, ОписаниеТиповЧ, Стр.Номенклатура.Наименование); НоваяСтрока[СтрТзКолН.ИмяКолонки] = Стр.Оборот; н = н + 1; ИмяКолонки = "Колонка_" + н; Иначе НоваяСтрока[НайденаКолонка.ИмяКолонки] = Стр.Оборот; КонеЦЕсли; КонецЕсли; Иначе НайденаКолонка = ТзКолонок.Найти(Стр.Номенклатура.Наименование,"НаименованиеКолонки"); Если НайденаКолонка = Неопределено Тогда // СтрТзКолН = ТзКолонок.Добавить(); СтрТзКолН.ИмяКолонки = ИмяКолонки; СтрТзКолН.НаименованиеКолонки = Стр.Номенклатура.Наименование; // ТзНов.Колонки.Добавить(ИмяКолонки, ОписаниеТиповЧ, Стр.Номенклатура.Наименование); СущСтрока[СтрТзКолН.ИмяКолонки] = Стр.Оборот; н = н + 1; ИмяКолонки = "Колонка_" + н; Иначе СущСтрока[НайденаКолонка.ИмяКолонки] = Стр.Оборот; КонецЕсли; КонецЕсли; КонецЦикла; |
|||
41
Rie
20.08.13
✎
07:01
|
(40) Выкинь каку. Напрочь.
|
|||
42
LivingStar
20.08.13
✎
07:06
|
(41) И к чему ты это говоришь? С людьми вывели решение, я его реализовал, сейчас думаю как вывести это.....
|
|||
43
Rie
20.08.13
✎
07:09
|
(42) В исходном запросе -
УПОРЯДОЧИТЬ ПО ТорговаяТочка, Номенклатура И не потребуется таблица значений. Потом циклом идёшь по выборке из результата запроса. Что касается "вывести" - какие трудности при этом испытываешь? В (39) насчёт вывода ничего не сказано. |
|||
44
LivingStar
20.08.13
✎
07:44
|
(43) Честно хотелось бы допилить то что имею. А потом уже рассмотреть ваш вариант, как более адекватный, так как в своем слишком далеко защел.
Трудность с выводом заголовков номенклатуры у меня, в выводимой таблице они есть как Колонка_1, Колонка2... Колонка_N. Я могу их находить по Колонка_N в таблице соответствий, но как мне выводить в макет это в поле Номенклатура который как параметр в шапке...... Так как это поле динамически меняется, и у каких то строк там значение 0 |
|||
45
LivingStar
20.08.13
✎
07:45
|
(43) вот исходный запрос, чем это легде я не понимаю...
|
|||
46
LivingStar
20.08.13
✎
07:45
|
ЫБРАТЬ
ПродажиОбороты.Номенклатура КАК Номенклатура, ПродажиОбороты.Регистратор.ТорговаяТочка КАК ТорговаяТочка, ПродажиОбороты.КоличествоОборот КАК Оборот, ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(100)) КАК Адрес ИЗ РегистрНакопления.Продажи.Обороты(&НачДата, &КонДата, Регистратор, Номенклатура В ИЕРАРХИИ (&SKU) И ДокументПродажи.Склад = &Склад) КАК ПродажиОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация ПО ПродажиОбороты.Регистратор.ТорговаяТочка = КонтактнаяИнформация.Объект И (КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)) И (КонтактнаяИнформация.Вид.Код = "000000027") УПОРЯДОЧИТЬ ПО ПродажиОбороты.Регистратор.ТорговаяТочка, ПродажиОбороты.Номенклатура.Наименование |
|||
47
LivingStar
20.08.13
✎
07:47
|
сама проблема сейчас с выводом заголовков номенклатуры
|
|||
48
Rie
20.08.13
✎
07:49
|
(47) О запросе - потом.
В чём состоит проблема с выводом заголовков номенклатуры? |
|||
49
LivingStar
20.08.13
✎
08:04
|
(48) Проблема с выводом в том что у меня вот такая таблица, и есть таблица соответствий где именам колонок соответствуют наименования номенклатуры. Но вывожу то я эту таблицу, как наименования колонок то ей устанавливать выводя её,
http://i038.radikal.ru/1308/6a/b66d9dd2c586.jpg |
|||
50
Rie
20.08.13
✎
08:07
|
(49) Установи свойство ТекстШапки колонки табличного поля.
|
|||
51
LivingStar
20.08.13
✎
08:15
|
(50) Ок, сейчас буду пробовать!!! Это можно делать в процессе вывода строк? Я не пойму как я могу устанавливать свойство шапки когда я вывожу строки, не дойдет никак все это в совокупности...
Пока вот так вывел но без наименования колонок в табличном поле // ЭлементыФормы.ТабРезультат.Вывести(ОбластьШапка1); ЭлементыФормы.ТабРезультат.Присоединить(ОбластьШапка2); // Для Каждого Стр Из ТабЗнач Цикл ОбластьСтроки1.Параметры.ТорговаяТочка = Стр.ТорговаяТочка; ЭлементыФормы.ТабРезультат.Вывести(ОбластьСтроки1); ОбластьСтроки2.Параметры.Адрес = Стр.Адрес; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьСтроки2); Для г = 2 По ТабЗнач.Колонки.Количество()-1 Цикл ОбластьСтроки3.Параметры.Обороты = Стр[ТабЗнач.Колонки[г].Имя]; ЭлементыФормы.ТабРезультат.Присоединить(ОбластьСтроки3); КонецЦикла; КонецЦикла; |
|||
52
Rie
20.08.13
✎
08:18
|
(51) Ты выводишь в табличное поле или в табличный документ?
В (50) - это для _табличного поля_ сказано. В (51) - речь явно идёт о _табличном документе_. Для табличного документа - не так. |
|||
53
Rie
20.08.13
✎
08:19
|
+(52) В табличном документе - там цикл. С Присоединить().
|
|||
54
LivingStar
20.08.13
✎
08:19
|
(52) да я делаю вывод таблицы значений в табличный документ, тогда мне у него как то нужно устанавливать свойство шапки....
|
|||
55
LivingStar
20.08.13
✎
08:20
|
(54+) думал это у меня табличное поле....
|
|||
56
Rie
20.08.13
✎
08:20
|
(54) Не надо устанавливать никаких текстов шапок - их нет у табличного документа.
Выводишь шапку аналогично строкам. |
|||
57
LivingStar
20.08.13
✎
08:20
|
(53) С присоединить можно устанавливать текст шапки? присоединить вызывается же столько раз сколько колонок и строк???
|
|||
58
LivingStar
20.08.13
✎
08:21
|
(56) понял, спасибо за поддержку, сейчас буду собираться с мыслями.......
|
|||
59
LivingStar
20.08.13
✎
08:22
|
кажется в (56) меня осенило....
|
|||
60
Rie
20.08.13
✎
08:24
|
(57) Столько, сколько _колонок_! Строки-то тут чем виноваты?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |