список значений

1. etorpov 17.02.14 10:52 Сейчас в теме
Здравствуйте, подскажите плс
1. Есть реквизит справочника
2. Есть реквизит формы(того же справочника) - поле ввода
Нужно когда выбираешь в поле ввода вылезал список значение, тоесть можно было выбрать больше 1 элемента (ТипЗначение - список значений поставил, ТипЗначенияСписка - ссылка на нужный справочник поставил)
И соответственно нужно чтобы это где то хранилось при сохранении, например в реквизите, который под пунктом 1. какой тип данных там поставить чтобы ничего не сбросилось в списке значений и норм отрабатывалось ??
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. Rothschild 17.02.14 11:31 Сейчас в теме
(1) percofka,
два варианта:
1. хранить список непосредственно в реквизите типа "ХранилищеЗначения".
при открытии в форме - извлекать список из хранилища значений:
сзЧегото = ХранилищеЧегото.Получить();

перед записью в форме - помещать в хранилище значений:
ХранилищеЧегото = Новый ХранилищеЗначений(сзЧегото);
+
8. Rothschild 17.02.14 11:37 Сейчас в теме
(7)
2. - как предлагается в (3) - хранить список в табличной части:
при открытии формы заполнять список по табчасти:
сзЧегото.Очистить();
Для каждого Стр из ТабчастьЧегото Цикл
   сзЧегото.Добавить(Стр.<ИмяРеквизитаЧегото>);
КонецЦикла;

а перед записью в форме - заполнять табчасть по списку:
ТабчастьЧегото.Очистить();
Для каждого СтрСЗ из сзЧеготоЦикл
   Стр = ТабчастьЧегото.Добавить();
   Стр.<ИмяРеквизитаЧегото> = СтрСЗ.Значение;
КонецЦикла;
+
12. etorpov 17.02.14 12:18 Сейчас в теме
(7) Rothschild, про 1 вариант вопрос, на примере справочника любого и реквизита любого можешь написать а то не очень понятно где что писать
+
13. Rothschild 17.02.14 12:32 Сейчас в теме
(12) percofka,
а что непонятного?
в (7) в общем-то все написано (для общего случая)...

сзЧегото - это реквизит формы элемента справочника с типом значения "СписокЗначения"
ХранилищеЧегото - это реквизит шапка самого справочника с типом значения "ХранилищеЗначения"

"Хранилище значения" может "хранить" значение практически любого типа,
в том числе многих объектов, единственное ограничение -
- значение объекта должно быть сереализуемым.

подробней про "Хранилище значения" читай в мануале.
+
14. Rothschild 17.02.14 12:33 Сейчас в теме
(13)
Недостаток хранилища -
- не поддерживается контроль ссылочной целостности контента,
который в него помещен
+
16. etorpov 17.02.14 12:41 Сейчас в теме
(14) Rothschild, тоесть если имя реквизита формы(тип СписоЗначений, ТипЗначенияСписка ссылка на справочник) - РеквизитФормы
имя реквизита справочника(ХранилищеЗначений) - РеквизитСправочника, код:


ПриОткрытии
РеквизитФормы = РеквизитСправочника.Получить();

ПередЗаписью
РеквизитСправочника= Новый ХранилищеЗначений(РеквизитФормы );

// Так ? не работает.

Показать
+
20. Rothschild 17.02.14 12:55 Сейчас в теме
(16) да ... именно так.
только для управляемых форм могут быть ньюнсы для тонкого клиента:

ХранилищеЗначения.Получить (ValueStorage.Get)
ХранилищеЗначения (ValueStorage)
Получить (Get)

Синтаксис:

Получить()
Возвращаемое значение:

Тип: Произвольный.
Значение, содержащееся в хранилище.
Описание:

Получает из хранилища сохраненное в нем значение.

Доступность:
Сервер, толстый клиент, внешнее соединение.
Показать
+
21. etorpov 17.02.14 12:57 Сейчас в теме
(20) Rothschild, ругается что хранилищезначений тип не определен
Данные в реквизите формы пустые ведь ?

Попроавил на ХранилищеЗначения , теперь ругается что РеквизитФормы переменная не определена
+
22. jigourt 31 17.02.14 13:03 Сейчас в теме
(21) percofka, сформулируй еще раз задачу нормально, потому что сейчас опять тема разрастется
Rothschild; +1
23. Rothschild 17.02.14 13:07 Сейчас в теме
(22) jigourt, правильная формулировка задачи содержит 50% ее решения.
;)))
+
25. jigourt 31 17.02.14 13:27 Сейчас в теме
(23) Rothschild, если не все 100%
(24) percofka, понятное дело, что поле ввода не может хранить несколько значений (точнее может, но это извращение), а следовательно, учитывая, что речь вроде как идет о форме справочника, то добавь табличную часть, а на форму размести табличное поле с данными табличной части
+
2. etorpov 17.02.14 11:08 Сейчас в теме
тоесть по другому для реквизита справочника сделать тип СписокЗначений
+
3. jigourt 31 17.02.14 11:13 Сейчас в теме
(2) percofka, ну как вариант, используй ТЧ с одним реквизитом ТЧ )))
+
4. etorpov 17.02.14 11:19 Сейчас в теме
(3) jigourt, реквизит ТЧ не имеет тип СписокЗначений, да и нет у меня в справочнике ТЧ
+
5. jigourt 31 17.02.14 11:28 Сейчас в теме
(4) percofka,
реквизит ТЧ не имеет тип СписокЗначений

а ему и не надо, у него ссылка будет на справочник
да и нет у меня в справочнике ТЧ

добавь
+
6. etorpov 17.02.14 11:29 Сейчас в теме
(5) jigourt, ну там если потом я для реквизита формы укажу данные и этот реквизит то у меня ТипЗначения станет сразу ссылка этот справочник который указан в реквизите ТЧ
+
10. Rothschild 17.02.14 11:46 Сейчас в теме
(2) percofka,
тебе действительно нужно хранить в данных объекта какой-то список выбранных значений,
или тебе надо выбирать значение в поле выбора из какого - фиксированного
(возможно запоминаемого в настройках пользователя) списка значений ???
+
11. etorpov 17.02.14 12:17 Сейчас в теме
(10) Rothschild, хранить нужно обязательно, с этими значениями потом работают другие проверки, отчеты и т.д.
+
9. oldfornit 17.02.14 11:38 Сейчас в теме
Реквизит на форме: поле выбора, данные - РеквизитыОбъекта

При открытии:
Список = Новый СписокЗначений;
Список.Добавить();
ЭлементыФормы.НашеПоле.СписокВыбора = Список;

Если Не ЭтоНовый() Тогда
    ЭлементыФормы.НашеПоле.Значение = РеквизитОбъекта;
    Модифицированность = Ложь;
КонецЕсли;
Показать
+
15. Скиминок 17.02.14 12:39 Сейчас в теме
Хм... Не очень понятна задача - если нужно хранить список значений как реквизит - то это и получается табличная часть с одной колонкой. Если просто нужен список для выбора значения реквизита - не проще перечисление новое создать?
+
17. etorpov 17.02.14 12:44 Сейчас в теме
(15) Скиминок, нужно хранить список значений как реквизит
+
18. etorpov 17.02.14 12:47 Сейчас в теме
сделал через реквизит ТЧ, спс всем, не сразу понял
+
19. etorpov 17.02.14 12:53 Сейчас в теме
хотя нет, нельзя же к реквизиту формы указать данные и этот реквизит ТЧ
+
24. etorpov 17.02.14 13:12 Сейчас в теме
есть реквизит формы поле ввода, со сылкой на справочник, нужно чтобы этот реквизит выбирал несколько значений и хранил эти несколько значений где нибудь, например в реквизите того же справочника где реквизит формы
+
26. etorpov 20.02.14 11:30 Сейчас в теме
вопрос поднимается, добавлять ТЧ и выводить ее на форму не вариант, нужно сделать все более незаметно для пользователя, был у него выбор 1 элемента а щас все также должно быть только можно выбирать несколько
+
27. saiten 246 20.02.14 11:37 Сейчас в теме
(26) Создать реквизит формы типа СписокЗначений и табличную часть объекта. При создании формы перегонять данные из таб. части в реквизит формы, при записи объекта - наоборот из реквизита в таб.часть.
+
28. dedBanzay 17.11.14 16:21 Сейчас в теме
Можно проблему отсутствия в реквизитах справочника типа СписокЗначения решить более простым способом. Для этого создайте реквизит справочника типа Строка, например СтрокаИзСпискаЗначения. Затем создайте необходимый вам реквизит формы типа СписокЗначения с подтипом нужного справочника, например СписокЗначенияПоСправочнику. В процедуру ПередЗаписью(Отказ) добавьте строки инициализирующие поле СтрокаИзСпискаЗначения:
Если СписокЗначенияПоСправочнику.Количество() > 0 Тогда
СтрокаИзСпискаЗначения = ЗначениеВСтрокуВнутр(СписокЗначенияПоСправочнику);
Иначе
СтрокаИзСпискаЗначения = "";
КонецЕсли;
Восстановить список значения при открытии формы справочника можно, если в процедуру ПередОткрытием(Отказ, СтандартнаяОбработка) вставить следующие строки:
Если НЕ СтрокаИзСпискаЗначения = "" Тогда
СписокЗначенияПоСправочнику = ЗначениеИзСтрокиВнутр(СтрокаИзСпискаЗначения);
КонецЕсли;
mirrr; freeek; meola; nlvhome; SergeyKo69; virtmon; sandybaev; +7
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот