![]() |
|
Программно сгенерировать имя переменной | ☑ | ||
---|---|---|---|---|
0
Web00001
01.09.12
✎
07:33
|
Делаю несколько табличных полей на форме, этому табличному полю надо указать путь к данным, по понятным причинам не могу указать: ТабличноеПоле.Данные = "ТабличноеПоле"; потому, что сколько их будет (табличных полей) заранее неизвестно, то есть надо как то генерировать объекты, не задавая их имена явно, попробовал так:
ДвиженияПоСкладам = Новый Структура; ДвиженияПоСкладам.Вставить(ТекущийСклад, Новый ТаблицаЗначений); ДвиженияПоСкладам[ТекущийСклад].Колонки.Добавить("Номенклатура"); Для Каждого СкладВТЧ ИЗ СписокСкладов Цикл ДвиженияПоСкладам[ТекущийСклад].Колонки.Добавить("Склад"+СкладВТЧ.НомерСклада,НовоеЧисло,""+Склад.Наименование,10); КонецЦикла; но при указании источника данных: ТабличноеПоле.Данные = ДвиженияПоСкладам[ТекущийСклад]; получаю ошибку: Неправильный путь к данным что еще можно придумать? |
|||
1
Wobland
01.09.12
✎
07:35
|
задавать данные строкой можно придумать
|
|||
2
1C-band
01.09.12
✎
07:38
|
"Склад"+СкладВТЧ.НомерСклада,НовоеЧисло,""+Склад.Наименование,10
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ в отладчике что даёт? |
|||
3
1C-band
01.09.12
✎
07:40
|
НовоеЧисло,""+Склад.Наименование,10
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ вообще убрать бы. |
|||
4
Web00001
01.09.12
✎
07:46
|
(1) Чуть чуть поподробнее можно?
(2)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ что это? (2)В отладчике дает все прекрасно, ТЗ создается и заполняется, вопрос не про это |
|||
5
Wobland
01.09.12
✎
07:47
|
(4) подробнее в СП. кстати, не купишь?
|
|||
6
1C-band
01.09.12
✎
07:49
|
(5) Ой, блин, не проснулся ещё. :)) У тебя ж на форме дело происходит...
|
|||
7
Web00001
01.09.12
✎
07:51
|
(5)там уже смотрел, ТабличноеПоле.Данные = "ТабличноеПоле" делать не могу почему говорил уже в (0), хотелось бы узнать, что ты имеешь ввиду под фразой "задавать данные строкой", если возможно, если нет, то можно не умничать а просто промолчать
|
|||
8
Wobland
01.09.12
✎
07:53
|
(7) данные - это строка
|
|||
9
Vladal
01.09.12
✎
07:55
|
наглядный профиль... нет только "атстатыщ". Лови:
//_________________________________________________________________________________ // // © Владимир - начало // Название НаименованиеКолонки // // Назначение: // Пребразует строку наименования в строку идентификатора колонки ТЗ // Аргументы: // Наименование товара, которое будет преобразовано в наименование колонки ТЗ в соответствии с правилами именования переменных. // Символ - символ, на который будут заменятся символы, не соответствующие правилам именования переменных. Функция глНаименованиеКолонки(Элемент, Символ="_") Экспорт Перем Результат; Результат = "_"+СтрЗаменить(Элемент," ",Символ); Результат = СтрЗаменить(Результат,"/",Символ); Результат = СтрЗаменить(Результат,"\",Символ); Результат = СтрЗаменить(Результат,".",Символ); Результат = СтрЗаменить(Результат,",",Символ); Результат = СтрЗаменить(Результат,"+",Символ); Результат = СтрЗаменить(Результат,"-",Символ); Результат = СтрЗаменить(Результат,"!",Символ); Результат = СтрЗаменить(Результат,"@",Символ); Результат = СтрЗаменить(Результат,"#",Символ); Результат = СтрЗаменить(Результат,"$",Символ); Результат = СтрЗаменить(Результат,"%",Символ); Результат = СтрЗаменить(Результат,"^",Символ); Результат = СтрЗаменить(Результат,"&",Символ); Результат = СтрЗаменить(Результат,"*",Символ); Результат = СтрЗаменить(Результат,"(",Символ); Результат = СтрЗаменить(Результат,")",Символ); Результат = СтрЗаменить(Результат,"№",Символ); Результат = СтрЗаменить(Результат,";",Символ); Результат = СтрЗаменить(Результат,":",Символ); Результат = СтрЗаменить(Результат,"?",Символ); Возврат Результат; КонецФункции //НаименованиеКолонки // © Владимир - конец //_________________________________________________________________________________ // |
|||
10
Vladal
01.09.12
✎
07:58
|
||||
11
Wobland
01.09.12
✎
07:59
|
(10) он ещё спит. кстати, ты тоже
|
|||
12
Vladal
01.09.12
✎
08:01
|
(0) Используй так:
ДвиженияПоСкладам[ТекущийСклад].Колонки.Добавить("Склад"+глНаименованиеКолонки(СкладВТЧ.НомерСклада),НовоеЧисло,глНаименованиеКолонки(Склад.Наименование),10); |
|||
13
Web00001
01.09.12
✎
08:02
|
Если с Wobland еще можно попробовать догадаться, что он намекает, наверно на что то вроде "Выполнить"(хотя хрен его знает на что он намекает), то с (9) извините совсем непонятно о чем это и зачем.
|
|||
14
Мимохожий Однако
01.09.12
✎
08:02
|
Завалялся в загашниках фрагмент кода:
. Для каждого ВыбЗначение из РеквизитДляТаблиц Цикл //ДляНадписи = ""+ВыбЗначение.Значение; Имя = ""+ВыбЗначение.Значение;//ДляНадписи; Представление = Имя; Страницы = ЭлементыФормы.ПанельОтчета.Страницы; Если Не Страницы.Найти(Имя) = Неопределено Тогда Сообщить("Страница "+Имя+" уже есть на панели"); Возврат; КонецЕсли; СтраницаПанели = Страницы.Добавить(Имя, Представление); ЭлементыФормы.ПанельОтчета.ТекущаяСтраница = СтраницаПанели; НазваниеТаблПоля = "ТабличноеПоле"+Имя; //Добавить(<Тип>, <Имя>, <Видимость>, <Поместить на>) НовоеТаблПоле = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"),НазваниеТаблПоля,Истина,ЭлементыФормы.ПанельОтчета); ... |
|||
15
Web00001
01.09.12
✎
08:02
|
(12) у меня нет там недопустимых символов
|
|||
16
Web00001
01.09.12
✎
08:04
|
(14)этот код есть и работает
|
|||
17
Vladal
01.09.12
✎
08:04
|
Web00001 z ntve xbnf. @cutythbhjdfnm bvz gthtvtyyjq@? f e nt,z jib,rb? ytdhfpevbntkmyj yfgbcfyj/ Djn b gjkexfq/
|
|||
18
Wobland
01.09.12
✎
08:04
|
(13) берём ТабличноеПоле.Данные = ДвиженияПоСкладам[ТекущийСклад]. ДвиженияПоСкладам[ТекущийСклад] какого типа?
|
|||
19
Web00001
01.09.12
✎
08:08
|
(17) Извините буду аккуратней в след раз, но ты как бы тоже, (0) то читай прежде чем постить )
|
|||
20
Web00001
01.09.12
✎
08:13
|
(18)да я понял, там должна быть строка и ничего другого а я туда ТЗ леплю, а делать теперь что? Я так понял что нужны таблицы и генерировать им имена, которые потом можно будет указывать строкой. Только вот как сделать ТЗ со сгенерированныи именем? И как в случае чего к ней обращаться?
|
|||
21
Vladal
01.09.12
✎
08:15
|
(19) ок
|
|||
22
Wobland
01.09.12
✎
08:17
|
(20) тупо пронумеровать? Выполнить("ТЗ"+н+"=Новый ТЗ")?
|
|||
23
Vladal
01.09.12
✎
08:17
|
Я в какой-то конфе видел отчет ДвижениеТовараПоРегистрам, который каждый регистр выводил на отдельной вкладке в виде ТЗ. А типовой выводит в табличный документ
|
|||
24
Мимохожий Однако
01.09.12
✎
08:20
|
(23)Например, ЗУП или КА в документах по вводу остатков при переносах из 77
|
|||
25
Web00001
01.09.12
✎
08:21
|
(22)Да я уже так и подумал, когда думал про выполнить, а потом просто с помощью выполнить получать пронумерованную таблицу во временную и делать то что надо
|
|||
26
Мимохожий Однако
01.09.12
✎
08:23
|
ИМХО, удобнее один раз разложить по отдельным закладкам Табличное поле и работать по отдельности.
|
|||
27
Vladal
01.09.12
✎
08:23
|
(25) Проясни для меня, пожалуйста, ты эти табличный части куда девать будешь? Т.е. где размещать?
|
|||
28
Web00001
01.09.12
✎
08:35
|
(27)Есть выборка данных по складам, продажи, остатки, заявки, отгружено, получено и еще некоторые показатели, все это в разрезе складов, я делаю программно на каждый склад закладочку, туда программно ложу табличное поле, и заполняю его данными из общей таблички но только по конкретному складу, собственно все
|
|||
29
Vladal
01.09.12
✎
08:36
|
ага, понял!
Вопрос в "как создать демонически вкладочки с табличками"? |
|||
30
Wobland
01.09.12
✎
08:38
|
(28) я так консоль запросов делал для дбф
|
|||
31
Vladal
01.09.12
✎
08:39
|
каждый склад в отдельную ТЧ... Дошло.
Тебе надо как-то обозвать таблицу, не зная заранее количество и наименования складов" |
|||
32
Web00001
01.09.12
✎
08:39
|
(31) точно
|
|||
33
Wobland
01.09.12
✎
08:42
|
+(30) а обработка потерялась. у меня каждая вкладка носила имя файла
|
|||
34
Web00001
01.09.12
✎
08:46
|
Выполнить("Таблица1 = Новый ТаблицаЗначений");
Не делает почему то ничего, в чем может быть причина? |
|||
35
Wobland
01.09.12
✎
08:50
|
(34) перем сделай
|
|||
36
Web00001
01.09.12
✎
08:53
|
(35) Как сделать перем к "Таблица"+НомерСклада?
|
|||
37
Vladal
01.09.12
✎
09:01
|
Вот... Первая ГруппировкаЗапроса по складам?
что приходит на ум: создать ТЗ с колонками "Склад", тип склад и "ТаблицаСклада", тип ТЗ. Заполнить их и обращаться к нудному складу по перевой колонке, а данные - ТЗ из второй колонки. |
|||
38
Web00001
01.09.12
✎
09:07
|
Нет вопроса как хранить данные, если у меня не будет нескольких ТЧ, был вопрос как сделать объект не зная заранее его имени, а как хранить данные... так это вопрос номер два
|
|||
39
Web00001
01.09.12
✎
09:13
|
(38) Как я понимаю "такова селяви" и сей фокус, просто невозможен, буду наверно тогда грузить в одну ТЧ разные данные в зависимости от того какая закладка активная
|
|||
40
Мимохожий Однако
01.09.12
✎
09:15
|
Задай любое удобное имя, а потом переименуй.
|
|||
41
Web00001
01.09.12
✎
09:20
|
Не имеет смысла, ибо тогда во всех закладках будут одни и те же данные, только если заговонокодить типа:
перем Таблица1; перем Таблица2; ... перем Таблица50; Тогда все пойдет в заданном ключе |
|||
42
Мимохожий Однако
01.09.12
✎
09:22
|
Имя таблицы может быть одно и то же, а страницы разные. Как вариант
|
|||
43
Vladal
01.09.12
✎
09:23
|
(39) Когда-то на семерке был копрокод, имитирующий вторую таблицу документа, состав продукции.
Всё хранилось в одной ТЗ, а потом показывались связанные с текущей строкой данные. |
|||
44
Web00001
01.09.12
✎
09:26
|
(42) я это и имел ввиду в (39)
(43) я так тоже делал в 7ке, тут хотелось бы уйти от перезаполнения таблиц на каждый чих, потому что в них будут вводиться данные |
|||
45
Мимохожий Однако
01.09.12
✎
09:35
|
(44)Данные откуда берешь для табличных полей? Может быть, обращаться напрямую к источникам для правки?
|
|||
46
Wobland
01.09.12
✎
09:38
|
а, может не заводить переменные, а общаться непосредственно с табличными полями?
|
|||
47
Web00001
01.09.12
✎
09:43
|
(44) Из нескольких таблиц значений
(46) Может, надо попробовать, только сложно будет обрабатывать результаты ввода данных с таблицей то как то удобнее |
|||
48
Web00001
01.09.12
✎
09:47
|
(46) Нет возможности указать тип колонки, ширину, Свернуть, найти, найтиСтроки, выгрузить
|
|||
49
Web00001
01.09.12
✎
10:20
|
кхм все гораздо проще, не надо лепить таблиц, выполнить и иже с ним можно сразу сказать: ТабличноеПоле.Значение = НужнаяТаблицаЗначений;
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |