#0
by tlg25
Доброго времени суток. Проблему решила "через одно место", но хотелось бы знать на будущее, как надо сделать(написать) правильно и почему она возникает. Есть 2 формы(управляемые. 8.2), между которыми происходит обмен данными. В первой форме(форма элемента справочника) реквизит типа СписокЗначений, куда я записываю нужные значения из текущей строки табличной части. Во второй форме(произвольная форма этого справочника) параметр типа СписокЗначений(галочка "ключевой параметр" стоит). Вторая форма открывается модально по кнопке с передачей в качестве параметра реквизита типа СписокЗначений. Среди передаваемых значений есть ссылки на перечисления(значения перечислений). В процедуре ПриСозданииНаСервере во второй форме, когда я просматриваю значение пришедшего параметра в отладчике, то вижу, что тип у него: ссылка на нужное мне перечисление и значение - переданное мной значение, НО когда я пытаюсь напрямую записать этот параметр в реквизит второй формы, который имеет тип ссылку на именно это перечисление, то значение НЕ ЗАПИСЫВАЕТСЯ. То есть код МойРеквизит11 = ЭтаФорма.Параметры.ИмяПараметра[11] НЕ РАБОТАЕТ. Работает только через придуманный мной изврат: Точно такая же проблема возникает, когда отдаю через процедуру "Оповестить" данные в первую форму обратно. Подскажите, отчего такое возникает, ведь реквизит и элемент списка значений одного типа? (Ссылки на нужное мне перечисление) Кстати, цифровые значения тоже не передаются просто так. Приходиться писать МойРеквизит9 = СТРОКА(ЭтаФорма.Параметры.ИмяПараметра[11]), хотя и реквизит и элемент списка значений - числа. P.S. В реальном коде реквизиты и параметры имеют другие имена, но дала "абстрактные", чтобы не запутывать терминами предметной области.
#2
by Поросенок Петр
Если Имя11 <> "<Пустое значение>" Тогда... а вот подобные строки нужно считать за мыслепреступление. Булавкой себя коли, когда вдруг захочется такое писать.
#4
by samozvanec
элемент списка содержит в себе значение, представление, пометку, картинку. делая вот так МойРеквизит11 = ЭтаФорма.Параметры.ИмяПараметра[11] ты пытаешься поместить в реквизит типа перечисление элемент списка значений в этих целях, кстати, удобно использовать структуру. и вопросов как в не будет)
#5
by samozvanec
а вот такие названия П = Новый Структура("ИмяПараметра", ИмяРеквизита); являются поводом для леща
#6
by tlg25
Во второй строке опечатка. МойРеквизит9 = СТРОКА(ЭтаФорма.Параметры.ИмяПараметра[9]). 11 - порядковый номер элемента моего параметра. Я передаю 10 числовых параметров, 1-й строковый, а вот дальше (так как нумерация с нуля номер одиннадцатый) и начитаются элементы с типами значения перечисления.
#8
by tlg25
В реальности имена другие, я ж приписала в постскриптуме. Чтобы было понятнее. Если важно, то в реальности строчка выглядит как: Спасибо за написанное в . Присмотрелась в отладчике, оказывается тип именно моего элемента какое-то абстрактное "ЭлементСпискаЗначений", а уже если отрыть дерево, то ниже строка с названием "Значение" у которой только тип - ссылка на моё перечисление. Как хитро всё устроено.
#11
by tlg25
Простите, если Вы гуру, то я только недавно начала плотно работать с 1С и не знаю многих его тонкостей, поэтому и спрашиваю на форуме, чтобы в будущем делать грамотно и знать как "устроено изнутри"
#13
by tlg25
Да, спасибо, мне написали ниже, что там тип оказывается "ЭлементСпискаЗначений", а не тот тип, который мне показывает как тип значения лежащего в этом элементе. А строку написала как заглушку, потому что ни "ЗначениеЗаполнено" ни сравнение с пустой ссылкой моего перечисления 1С не принимал. Теперь понятно почему. Если тип элемента абстрактное "ЭлементСпискаЗначений", не конкретно ссылка на моё пекречисление.
#14
by tlg25
Эта фраза не была мне понятна без развёрнутых пояснений данных ниже. Про то, что тип моего элемента, вовсе те такой, как я думаю. Кому-то достаточно полуслова(потому что он уже знает ответ), мне в данном случае было недостаточно.
#15
by tlg25
Спасибо Всем. Всё оказалось очень просто, надо писать не ЭтаФорма.Параметры.ИмяПараметра[9], а ЭтаФорма.Параметры.ИмяПараметра[9].Значение! И тогда нормлаьно передаёт-принимается без извратов.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Как получить значение перечисления через COM соединение?
- Перечисления через OLE. Как получить значение в текущей базе.
- Проблемма со сравнением перечисления при выгрузке данных через OLE
- 7.7 список значений из значений перечисления, сортировка
- 7.7 список значений из значений перечисления, сортировка
- Список через запятую в список значений?
- Как в Список Значений загрузить колонку Таблицы Значений?
- Значение перечисления по синониму перечисления?
- что работает быстрее соответствие, список значений или таблица значений
- Обмен, конвертация. Работает через V8Exchan83, через план обмена не работает
- Список имен параметров табличного документа, список именованных областей макета
В этой группе 1С
- По поводу 1С Предприятия Трактир Front office v3 Бизнес
- Изменение типового отчета УПП(Синтаксическая ошибка в СКД)
- Узнать количество строк в файле экселя
- Сортировка табличного документа
- УТ 10.3: Проведение поступления датой, больше текущей
- Комплектация номенклатуры. Нет себестоимости при реализации
- досписание себестоимости
- группировка по периодам 1с 8
- Неверный формат хранилища.
- Подключение к веб-сервису из 1с
- Сортировка Таблицы Значений по определенной дате
- УФ, Таблица::ПриНачалеРедактирования()
- ПолучитьСуммуСписанияАктивов
- обмен РИБ: приоритет узлов вносящих изменения
- Как разрешить выбирать группу в выборе?
- Публикация базы 1С на Apache (база не полностью загрузилась)
- Программная отмена проверки заполнения реквизита
- Не работает FTP на 8.1
- Выровнять по ширине экрана СКД
- Полная спецификация и распределение материалов в ОПзС