Здравствуйте, подскажите плс
1. Есть реквизит справочника
2. Есть реквизит формы(того же справочника) - поле ввода
Нужно когда выбираешь в поле ввода вылезал список значение, тоесть можно было выбрать больше 1 элемента (ТипЗначение - список значений поставил, ТипЗначенияСписка - ссылка на нужный справочник поставил)
И соответственно нужно чтобы это где то хранилось при сохранении, например в реквизите, который под пунктом 1. какой тип данных там поставить чтобы ничего не сбросилось в списке значений и норм отрабатывалось ??
1. Есть реквизит справочника
2. Есть реквизит формы(того же справочника) - поле ввода
Нужно когда выбираешь в поле ввода вылезал список значение, тоесть можно было выбрать больше 1 элемента (ТипЗначение - список значений поставил, ТипЗначенияСписка - ссылка на нужный справочник поставил)
И соответственно нужно чтобы это где то хранилось при сохранении, например в реквизите, который под пунктом 1. какой тип данных там поставить чтобы ничего не сбросилось в списке значений и норм отрабатывалось ??
По теме из базы знаний
- Пример использования реквизита с типом Список значений
- Список значений параметра в конвертации данных 2.0 (подключаемые обработки)
- Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов
- Отбор на список значений из файла (или любой другой)
- Автоматизация импорта значений в отбор типовых отчетов конфигурации 1С: Бухгалтерия предприятия 3.0
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) percofka,
два варианта:
1. хранить список непосредственно в реквизите типа "ХранилищеЗначения".
при открытии в форме - извлекать список из хранилища значений:
перед записью в форме - помещать в хранилище значений:
два варианта:
1. хранить список непосредственно в реквизите типа "ХранилищеЗначения".
при открытии в форме - извлекать список из хранилища значений:
сзЧегото = ХранилищеЧегото.Получить();
перед записью в форме - помещать в хранилище значений:
ХранилищеЧегото = Новый ХранилищеЗначений(сзЧегото);
(7)
2. - как предлагается в (3) - хранить список в табличной части:
при открытии формы заполнять список по табчасти:
а перед записью в форме - заполнять табчасть по списку:
2. - как предлагается в (3) - хранить список в табличной части:
при открытии формы заполнять список по табчасти:
сзЧегото.Очистить();
Для каждого Стр из ТабчастьЧегото Цикл
сзЧегото.Добавить(Стр.<ИмяРеквизитаЧегото>);
КонецЦикла;
а перед записью в форме - заполнять табчасть по списку:
ТабчастьЧегото.Очистить();
Для каждого СтрСЗ из сзЧеготоЦикл
Стр = ТабчастьЧегото.Добавить();
Стр.<ИмяРеквизитаЧегото> = СтрСЗ.Значение;
КонецЦикла;
(12) percofka,
а что непонятного?
в (7) в общем-то все написано (для общего случая)...
сзЧегото - это реквизит формы элемента справочника с типом значения "СписокЗначения"
ХранилищеЧегото - это реквизит шапка самого справочника с типом значения "ХранилищеЗначения"
"Хранилище значения" может "хранить" значение практически любого типа,
в том числе многих объектов, единственное ограничение -
- значение объекта должно быть сереализуемым.
подробней про "Хранилище значения" читай в мануале.
а что непонятного?
в (7) в общем-то все написано (для общего случая)...
сзЧегото - это реквизит формы элемента справочника с типом значения "СписокЗначения"
ХранилищеЧегото - это реквизит шапка самого справочника с типом значения "ХранилищеЗначения"
"Хранилище значения" может "хранить" значение практически любого типа,
в том числе многих объектов, единственное ограничение -
- значение объекта должно быть сереализуемым.
подробней про "Хранилище значения" читай в мануале.
(14) Rothschild, тоесть если имя реквизита формы(тип СписоЗначений, ТипЗначенияСписка ссылка на справочник) - РеквизитФормы
имя реквизита справочника(ХранилищеЗначений) - РеквизитСправочника, код:
имя реквизита справочника(ХранилищеЗначений) - РеквизитСправочника, код:
ПриОткрытии
РеквизитФормы = РеквизитСправочника.Получить();
ПередЗаписью
РеквизитСправочника= Новый ХранилищеЗначений(РеквизитФормы );
// Так ? не работает.
Показать
(16) да ... именно так.
только для управляемых форм могут быть ньюнсы для тонкого клиента:
ХранилищеЗначения.Получить (ValueStorage.Get)
ХранилищеЗначения (ValueStorage)
Получить (Get)
Синтаксис:
Получить()
Возвращаемое значение:
Тип: Произвольный.
Значение, содержащееся в хранилище.
Описание:
Получает из хранилища сохраненное в нем значение.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Показать
только для управляемых форм могут быть ньюнсы для тонкого клиента:
ХранилищеЗначения.Получить (ValueStorage.Get)
ХранилищеЗначения (ValueStorage)
Получить (Get)
Синтаксис:
Получить()
Возвращаемое значение:
Тип: Произвольный.
Значение, содержащееся в хранилище.
Описание:
Получает из хранилища сохраненное в нем значение.
Доступность:
Сервер, толстый клиент, внешнее соединение.
(23) Rothschild, если не все 100%
(24) percofka, понятное дело, что поле ввода не может хранить несколько значений (точнее может, но это извращение), а следовательно, учитывая, что речь вроде как идет о форме справочника, то добавь табличную часть, а на форму размести табличное поле с данными табличной части
(24) percofka, понятное дело, что поле ввода не может хранить несколько значений (точнее может, но это извращение), а следовательно, учитывая, что речь вроде как идет о форме справочника, то добавь табличную часть, а на форму размести табличное поле с данными табличной части
(2) percofka,
тебе действительно нужно хранить в данных объекта какой-то список выбранных значений,
или тебе надо выбирать значение в поле выбора из какого - фиксированного
(возможно запоминаемого в настройках пользователя) списка значений ???
тебе действительно нужно хранить в данных объекта какой-то список выбранных значений,
или тебе надо выбирать значение в поле выбора из какого - фиксированного
(возможно запоминаемого в настройках пользователя) списка значений ???
Реквизит на форме: поле выбора, данные - РеквизитыОбъекта
При открытии:
При открытии:
Список = Новый СписокЗначений;
Список.Добавить();
ЭлементыФормы.НашеПоле.СписокВыбора = Список;
Если Не ЭтоНовый() Тогда
ЭлементыФормы.НашеПоле.Значение = РеквизитОбъекта;
Модифицированность = Ложь;
КонецЕсли;
Показать
Хм... Не очень понятна задача - если нужно хранить список значений как реквизит - то это и получается табличная часть с одной колонкой. Если просто нужен список для выбора значения реквизита - не проще перечисление новое создать?
есть реквизит формы поле ввода, со сылкой на справочник, нужно чтобы этот реквизит выбирал несколько значений и хранил эти несколько значений где нибудь, например в реквизите того же справочника где реквизит формы
вопрос поднимается, добавлять ТЧ и выводить ее на форму не вариант, нужно сделать все более незаметно для пользователя, был у него выбор 1 элемента а щас все также должно быть только можно выбирать несколько
Можно проблему отсутствия в реквизитах справочника типа СписокЗначения решить более простым способом. Для этого создайте реквизит справочника типа Строка, например СтрокаИзСпискаЗначения. Затем создайте необходимый вам реквизит формы типа СписокЗначения с подтипом нужного справочника, например СписокЗначенияПоСправочнику. В процедуру ПередЗаписью(Отказ) добавьте строки инициализирующие поле СтрокаИзСпискаЗначения:
Если СписокЗначенияПоСправочнику.Количество() > 0 Тогда
СтрокаИзСпискаЗначения = ЗначениеВСтрокуВнутр(СписокЗначенияПоСправочнику);
Иначе
СтрокаИзСпискаЗначения = "";
КонецЕсли;
Восстановить список значения при открытии формы справочника можно, если в процедуру ПередОткрытием(Отказ, СтандартнаяОбработка) вставить следующие строки:
Если НЕ СтрокаИзСпискаЗначения = "" Тогда
СписокЗначенияПоСправочнику = ЗначениеИзСтрокиВнутр(СтрокаИзСпискаЗначения);
КонецЕсли;
Если СписокЗначенияПоСправочнику.Количество() > 0 Тогда
СтрокаИзСпискаЗначения = ЗначениеВСтрокуВнутр(СписокЗначенияПоСправочнику);
Иначе
СтрокаИзСпискаЗначения = "";
КонецЕсли;
Восстановить список значения при открытии формы справочника можно, если в процедуру ПередОткрытием(Отказ, СтандартнаяОбработка) вставить следующие строки:
Если НЕ СтрокаИзСпискаЗначения = "" Тогда
СписокЗначенияПоСправочнику = ЗначениеИзСтрокиВнутр(СтрокаИзСпискаЗначения);
КонецЕсли;
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот