|
Работа с деревом значений | ☑ | ||
---|---|---|---|---|
0
Ly_Alena
19.01.15
✎
08:51
|
Доброе утро, у кого-то уже день. Сразу сто раз извиняюсь за глупые вопросы.
Как в дереве значений добавить колонку? Пишу так: Если ПолучатьЦены Тогда ДеревоОстатков.Колонки.Добавить("Номенклатура"); СтрокаНоменклатуры = ДеревоОстатков.Строки.Добавить(); СтрокаНоменклатуры.Номенклатура = Номенклатура; Пока ПолучисьЦенушка.Следующий() Цикл ЗаполнитьПоляСумм(СтрокаСклад, ПолучисьЦенушка, СписокЦенОстатков, КурсыВалют); КонецЦикла; КонецЕсли; Выдает ошибку - "Ошибка при вызове метода контекста "Добавить"" |
|||
1
Ly_Alena
19.01.15
✎
08:55
|
* ЗаполнитьПоляСумм(СтрокаНоменклатуры, ПолучисьЦенушка, СписокЦенОстатков, КурсыВалют);
|
|||
2
Asmody
19.01.15
✎
08:55
|
(0) если дерево на форме, то может проще колонку невидимой делать?
|
|||
3
Fedor-1971
19.01.15
✎
08:57
|
(0)Сделать то что хочешь?
Обычные управляемые формы? Дерево будешь фомировать или это режим отображения табличного поля? |
|||
4
Ly_Alena
19.01.15
✎
08:58
|
И в догонку вопрос, как скрыть колонку дерева значений? Пишу
ДеревоОстатков.ХарактеристикаСклад.Видимость - Ложь; Тоже выдает ошибку, что поле не обнаружено. |
|||
5
butterbean
19.01.15
✎
09:00
|
(4) видимо надо ДеревоОстатков.Колонки.ХарактеристикаСклад...
|
|||
6
Ly_Alena
19.01.15
✎
09:01
|
У меня выборка по складам идет. Раньше задача стояла - показывать плановую цену, только той номенклатуре которая есть на складе. Теперь нужно чтобы цена выходила на все.
Поэтому условие - если остатка на складе нет - то добавляем колонку - номенклатура в ней выводим номенклатуру и рядом цену, а колонку "Склад" прячем. |
|||
7
Ly_Alena
19.01.15
✎
09:01
|
(5) так тоже пробовала
|
|||
8
vicof
19.01.15
✎
09:01
|
(0) ПолучисьЦенушка :))) умиляет
|
|||
9
vicof
19.01.15
✎
09:02
|
(7) ЭлементыФормы.ДеревоОстатков....
|
|||
10
Ly_Alena
19.01.15
✎
09:02
|
(8) я старалась )
|
|||
11
Ly_Alena
19.01.15
✎
09:02
|
(9) Ах да, это процедура в общем модуле. Элементыформы - не пойдет.
|
|||
12
Peltzer
19.01.15
✎
09:04
|
Видимостью можно управлять только в форме. Для объекта ДеревоЗначений нет такого свойства.
|
|||
13
Ly_Alena
19.01.15
✎
10:05
|
(12) Хорошо - пусть не видимость. Тогда вернемся к первому вопросу. Как создать столбец, т.е. колонку.
|
|||
14
Ly_Alena
19.01.15
✎
10:06
|
(12) если в модуле объекта то видимостью можно управлять.
|
|||
15
_KaA
19.01.15
✎
10:11
|
Тип у ДеревоОстатков скорее всего ДанныеФормыДерево?
|
|||
16
Ly_Alena
19.01.15
✎
10:12
|
(15) тип дерево значений
|
|||
17
vicof
19.01.15
✎
10:14
|
(13) ДеревоОстатков.Колонки.Добавить("Номенклатура");
|
|||
18
DrZombi
гуру
19.01.15
✎
10:14
|
(16) СП, продам не дорого :)
ДеревоЗначений (ValueTree) Свойства: Колонки (Columns) Строки (Rows) Методы: ВыбратьСтроку (ChooseRow) Скопировать (Copy) Конструкторы: По умолчанию Описание: Используется для доступа к свойствам и методам дерева значений в целом. Объект, представляющий собой древовидную структуру, обладает сходной функциональностью с таблицей значений, а также обладает возможностью добавлять подчиненные строки к какой-либо строке дерева. Внимание! В толстом клиенте (обычное приложение) передача значений данного типа с клиента на сервер и обратно приводит к возникновению исключения. Доступность: Сервер, толстый клиент, внешнее соединение. Сериализуется. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data/core}. Имя типа XDTO: ValueTree Пример: ДеревоРезультатов = Новый ДеревоЗначений; Для Каждого Колонка ИЗ ТаблицаРезультатов.Колонки Цикл ДеревоРезультатов.Колонки.Добавить(Колонка.Имя); КонецЦикла; См. также: ДеревоЗначений, метод Скопировать РезультатАнализаДанныхПоискАссоциаций, метод ВыгрузитьПравила СтрокаДереваЗначений, метод Владелец |
|||
19
DrZombi
гуру
19.01.15
✎
10:15
|
+(16) А коль вы пытаетесь изменить не набор данных, а Интерфейс, то там другой подход :)
|
|||
20
GRAF_84
19.01.15
✎
10:15
|
||||
21
Ly_Alena
19.01.15
✎
10:16
|
(15) На форме есть дерево значений - ОстаткиДляНовогоКлиента. В функции
Функция СоздатьКолонкиДереваОстатков(ТаблицаПоиска = Неопределено, ВсеТипыЦен = Ложь) Экспорт ДеревоОстатков = Новый ДеревоЗначений; МассивБазовыхТиповЦен = Новый Массив; МассивРасчитываемыхЦен = Новый Массив; СформироватьМассивБазовыхТиповЦен(ТаблицаПоиска, МассивБазовыхТиповЦен, МассивРасчитываемыхЦен, ВсеТипыЦен); ДеревоОстатков.Колонки.Добавить("ХарактеристикаСклад", Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры,СправочникСсылка.Склады")); //ДеревоОстатков.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("Строка")); ДеревоОстатков.Колонки.Добавить("ГВ", Новый ОписаниеТипов("СправочникСсылка.ГодВыпуска")); ДеревоОстатков.Колонки.Добавить("МестоХранения" , Новый ОписаниеТипов("Строка")); ДеревоОстатков.Колонки.Добавить("Общий" , Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15,3))); ДеревоОстатков.Колонки.Добавить("Свободный" , Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15,3))); ДеревоОстатков.Колонки.Добавить("СвободныйОжидаемый" , Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15,3))); ДеревоОстатков.Колонки.Добавить("ВРезерве" , Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15,3))); // Тут колонки добавляются в том порядке в котором они идут в списке типов цен Если МассивБазовыхТиповЦен.Количество() > 0 Тогда // колонки для Каждого типа цены Для Каждого Элемент Из МассивБазовыхТиповЦен Цикл ПрефиксИмени = ОпределитьПрефиксИмениКолонки(ТаблицаПоиска, Элемент); СоздатьКолонкиСуммДерево(ДеревоОстатков, ПрефиксИмени); КонецЦикла; Для Каждого Элемент Из МассивРасчитываемыхЦен Цикл ПрефиксИмени = ОпределитьПрефиксИмениКолонки(ТаблицаПоиска, Элемент); СоздатьКолонкиСуммДерево(ДеревоОстатков, ПрефиксИмени); КонецЦикла; КонецЕсли; Возврат ДеревоОстатков; КонецФункции |
|||
22
Ly_Alena
19.01.15
✎
10:17
|
(17) Самое первое сообщение так и есть.
|
|||
23
Ly_Alena
19.01.15
✎
10:17
|
(18) я читала справку.
|
|||
24
Ly_Alena
19.01.15
✎
10:19
|
Кажись тапки полетят...
|
|||
25
_KaA
19.01.15
✎
10:21
|
(16) Докеж*!
Перевод: можно увидеть картинку из отладчика как доказательство?! |
|||
26
DrZombi
гуру
19.01.15
✎
10:21
|
(24) У тебя код в (0) приведен, так как он есть?
В (0) написан бред :) Попробуй сделать, как в СП. И добавление колонок в цикле, не есть хорошо, там должны быть ошибка "Идентификатор колонки не уникален". Лена, вы бы хоть привели бы полный текст ошибки :) |
|||
27
DrZombi
гуру
19.01.15
✎
10:23
|
+(24) Сохрани Обработку в файли, и выложи на Файло помойку. Дай посмотреть, что ты там пишешь :)
|
|||
28
Ly_Alena
19.01.15
✎
10:25
|
(26) Алена. Не могу обработку дать. Ком тайна )) Все отслеживается. Могу только фрагменты кода. Картинку и полный код ошибки - сейчас дам.
|
|||
29
_KaA
19.01.15
✎
10:27
|
(28) Весь в предвкушении. Даж в чистое переоделся :)))
|
|||
30
DrZombi
гуру
19.01.15
✎
10:27
|
(28) Давайте картинку. Полный код ошибки.
И это УФ или Толстый Клиент? |
|||
31
Ly_Alena
19.01.15
✎
10:34
|
||||
32
Ly_Alena
19.01.15
✎
10:35
|
123456 пароль
|
|||
33
Ly_Alena
19.01.15
✎
10:36
|
скрин в конфиге http://www.fayloobmennik.net/4487412 пароль тот же
|
|||
34
Ly_Alena
19.01.15
✎
10:36
|
Обработку не могу (
|
|||
35
DrZombi
гуру
19.01.15
✎
10:38
|
(34) А теперь полный код, где вы заполняете. Древо :)
|
|||
36
DrZombi
гуру
19.01.15
✎
10:39
|
+(35) Переменная "ДеревоОстатков" как то не соответствует "ОстаткиДляНовогоКлиента"
|
|||
37
Ly_Alena
19.01.15
✎
10:40
|
{ОбщийМодуль.УправлениеЗапасами.Модуль(2289)}: Ошибка при вызове метода контекста (Добавить)
ДеревоОстатков.Колонки.Добавить("Номенклатура"); по причине: Неверное имя колонки |
|||
38
Ly_Alena
19.01.15
✎
10:41
|
(35) полный код в (21) сообщении
|
|||
39
DrZombi
гуру
19.01.15
✎
10:41
|
(37) Молодец, Алена. И код, процедуры заполнения, пожалуйста.
В (0) приведен невнятный фрагмент, заведомо ошибочный :) |
|||
40
Ly_Alena
19.01.15
✎
10:43
|
(39) Хм... могу только фрагмент запроса и фрагмент кода.
Невнятный код - потому как не умею работать с деревомзначений. Сейчас |
|||
41
DrZombi
гуру
19.01.15
✎
10:43
|
+(37) "Неверное имя колонки", попробуй сменить Имя колонки, на другое.
Сдается мне ,что там уже эта колонка есть. Отладчиком пройдись. |
|||
42
DrZombi
гуру
19.01.15
✎
10:43
|
(40) Не надо.
|
|||
43
Ly_Alena
19.01.15
✎
10:44
|
(41) пробовала
|
|||
44
Ly_Alena
19.01.15
✎
10:45
|
Хотя сейчас попробую назвать чтобы не могло совпасть ни с чем.
|
|||
45
DrZombi
гуру
19.01.15
✎
10:46
|
(44) И код в (21) отличается от (0) :)
|
|||
46
DrZombi
гуру
19.01.15
✎
10:48
|
+(44) Переменную "ДеревоОстатков", объяви через "Перем ДеревоОстатков;" :)
|
|||
47
Ly_Alena
19.01.15
✎
10:50
|
(45) я объясню почему. В 21 функция, которая формирует структуру, а в 1 процедура с запросами, по которым выводятся данные и добавляется и удаляются столбцы.
|
|||
48
Ly_Alena
19.01.15
✎
10:51
|
Теперь когда, назвала столбец по-другому - ошибку не выдает, но и столбец не добавляет.
|
|||
49
Ly_Alena
19.01.15
✎
10:55
|
Через отладчик как будто бы все проходит, но в отладчики ничего не видно.
|
|||
50
DrZombi
гуру
19.01.15
✎
10:56
|
(49) На форму добавь колонку.
|
|||
51
Ly_Alena
19.01.15
✎
10:57
|
Если на форму добавляю, то он выводит все нормально. Но дело в том что мне эта колонка нужна только если остатков нет. а видимость - как выяснилось из общего модуля не отключишь.
|
|||
52
DrZombi
гуру
19.01.15
✎
10:57
|
+(49) Вообще добавь колонки на форму Руками.
А в коде избавься от создания новых колонок. И оставь только заполнение. Если если так надо, то вообще спрячь колонки. |
|||
53
Ly_Alena
19.01.15
✎
10:57
|
(50) (52) спрятать - спрячу, вопрос выше был - а как потом показать?
|
|||
54
DrZombi
гуру
19.01.15
✎
10:58
|
(51) Кто тебе сказал? Отключай на форме диалога.
Ну а так, тогда и на форму добавляй свои колонки. Так же нужно анализировать, а добавила ли ты эти колонки. |
|||
55
DrZombi
гуру
19.01.15
✎
10:59
|
(53) Показать, так же, как и спрячешь. Условия тебе известны.
|
|||
56
DrZombi
гуру
19.01.15
✎
10:59
|
+(55) В чем проблема? Ты же все делаешь в одном справочнике :)
|
|||
57
Ly_Alena
19.01.15
✎
11:01
|
(56) Сообщения (4), (12)
|
|||
58
DrZombi
гуру
19.01.15
✎
11:03
|
(57) Не путай Элемент Диалога и Реквизит на форме!!!
|
|||
59
DrZombi
гуру
19.01.15
✎
11:03
|
Через "ЭлементыФормы". А далее отладчиком :)
|
|||
60
Ly_Alena
19.01.15
✎
11:04
|
ЭлементыФормы в общем модуле не понимает
|
|||
61
Ly_Alena
19.01.15
✎
11:05
|
Я конечно извиняюсь. Первый раз все-таки колонку видимо добавляет, но ее почему-то невидно.
Потому как при повторном выборе номенклатуры ругается что такая колонка уже есть. |
|||
62
DrZombi
гуру
19.01.15
✎
11:06
|
(60) У тебя "Общий Модуль" Содержит галочку "Клиент (обычное приложение)"?
|
|||
63
DrZombi
гуру
19.01.15
✎
11:07
|
(61) Анализируй, что уже когда-то добавляла колонку :)
Через "Попытку" самое быстрое :) |
|||
64
DrZombi
гуру
19.01.15
✎
11:07
|
+(62) Если содержит, то передай туда "ЭтаФорма" :)
|
|||
65
Ly_Alena
19.01.15
✎
11:11
|
(62) нет галочки
|
|||
66
Ly_Alena
19.01.15
✎
11:14
|
Ну ДеревоОстатков.Колонки.Добавить("Несовподалушка1"); едва ли кто-то добавлял, и тем не менее - первый раз без ошибки проходит - второй раз с ошибкой.
|
|||
67
Ly_Alena
19.01.15
✎
11:15
|
Какая заморочка с этим деревом значений - добавить столбец такой головняк
|
|||
68
_KaA
19.01.15
✎
11:16
|
> первый раз без ошибки проходит - второй раз с ошибкой
2 колонки с одним именем добавить нельзя... |
|||
69
DrZombi
гуру
19.01.15
✎
11:16
|
(65) Тогда, заполняя значения В общем модуле.
Потрудись еще в Диалоге Формы, обработать все как надо :) |
|||
70
DrZombi
гуру
19.01.15
✎
11:17
|
(67) Нет там мороки, это у тебя какое-то видиние на уровне 1С 7.7. Ты не разделяешь, Сервер и Приложение :)
И не делишь понятие "Элемент формы" и "Реквизит на форме" :) |
|||
71
Ly_Alena
19.01.15
✎
11:24
|
(68) это понятно - но почему я в таком случае первый раз не вижу столбец
|
|||
72
DrZombi
гуру
19.01.15
✎
11:26
|
(71) Потому, что его нет. Ты же его не добавила на форму?
В последующие разы, у тебя оченно часто обращается за Остатками. И ты все время пытаешься тупо создавать колонки. Если попробуешь закрыть форму и открыть по новой, то первый раз тоже не сругается :) |
|||
73
Ly_Alena
19.01.15
✎
11:31
|
(70) видЕние на уровне 1С 7.7 расценю как комплимент в моем случае...
|
|||
74
DrZombi
гуру
19.01.15
✎
11:32
|
(73) Как хочешь, я могу с таким же успехом звать вас Леной. Мне так больше нравится :)
Без правки Справочника вам не обойтись. |
|||
75
Ly_Alena
19.01.15
✎
11:38
|
(74) А вот Леной не надо - это не мое имя )
|
|||
76
Ly_Alena
20.01.15
✎
11:36
|
Добрый день. Продолжая тему дерева значений. Как проверить заполнена ли строка дерева значений?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |