ПолеВвода и список выбора

1. user998353 19.06.18 18:11 Сейчас в теме
На форме имеется поле ввода, на котором активна кнопка списка. Пользователь должен выбирать из списка любой документ из базы данных, чтобы тот заносился на поле ввода, причем не строкой, а именно как документ (для дальнейшей работы с его полями). Тип значения поля ввода выставил на ДокументСсылка (самое подходящее вроде).
Список заполняется след. образом:
Для каждого Документ из Метаданные.Документы цикл
	ЭлементыФормы.ПолеВвода1.СписокВыбора.Добавить(Документ.Имя, Документ.Имя);
КонецЦикла;

При выборе значений из списка, поле ввода остается пустым. Как быть? Какой тип значения тогда использовать вообще?
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
30. spacecraft 19.06.18 19:22 Сейчас в теме
(26) нужно именно выбрать сам документ
Прикрепленные файлы:
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 19.06.18 18:18 Сейчас в теме
(1) для начала определите, что точно нужно на форме.
"Тип значения поля ввода выставил на ДокументСсылка"
"ЭлементыФормы.ПолеВвода1.СписокВыбора.Добавить(Документ.Имя, Документ.Имя);"
Это добавление типа Строка, а ожидалось тип ДокументСсылка.
5. user998353 19.06.18 18:25 Сейчас в теме
(2)
(3)
(4)
У пользователя должна быть возможность выбрать любой документ из базы, а для разработчика это поле должно быть заполнено может не "ДокументСсылка", как я написал, но во всяком случае так, чтобы я мог обращаться к этому полю ввода следующим образом:
СЗ.Добавить(ПолеВвода1.Номер ,"Номер");
    СЗ.Добавить(ПолеВвода1.Дата  ,"Дата");

Может даже нужен не список, а форма выбора, не знаю. Меньше недели копаюсь, наведите на мысль. Благодарю
7. spacecraft 19.06.18 18:31 Сейчас в теме
(5) как я понял нужны не метаданные, а конкретные ссылки на документы?
Т.е. в поле выбора выбирает из всех доступных документов один конкретный?
Тогда конечно список не нужен. Нужна форма выбора.
Делаете общую форму. Делаете реквизит формы тип "ДинамическийСписок". Произвольный запрос, в котором делаете выборку Ссылка из всех возможных/нужных документов.
Выводите на форму.
Далее смотрите информацию по открытию нужной формы выбора и получение значения при выборе.
9. user998353 19.06.18 18:33 Сейчас в теме
3. Boneman 298 19.06.18 18:18 Сейчас в теме
(1) Я не пойму что требуется.
В поле ввода, тебе надо вводить ссылки на любые документы базы. Не физически метаданные документы, а ссылки на объекты документов, которые навводили пользователи. Реализация 0001, Реализация 0002 и т.п.
Ты же пытаешся, перебрать метаданные самой конфигурации, и добавляешь физические имена документов..что по сути является строкой а не ссылкой.
Естественно поле остается пустым.
4. singlych 19.06.18 18:22 Сейчас в теме
Зачем тут вообще список выбора? Туда надо добавить все документы всех видов? Пользователь не офигеет от такого списка?
6. artgen 19.06.18 18:28 Сейчас в теме
ДокументСсылка и ОбъектМетаданных - это совершенно разные типы.
Если пользователь хочет открыть конкретный документ, то и добавлять в список выбора ты должен не Метаданные.Документы, а ссылки на все типы документов.
Я так понимаю, что это просто задача для обучения программированию, так как в реальной жизни такая задача не востребована.
8. user998353 19.06.18 18:32 Сейчас в теме
(6)
(3)
Необходимо с помощью программных средств языка 1С написать внешнюю обработку «Перегрузка документа».
На форме находятся 2 поля: в одном выбираем документ, в другом файл; и две кнопки: "Выгрузить" и "Загрузить"
По кнопке «Выгрузить» информация, содержащая в выбранном документе, выгружается в указанный файл.
По кнопке «Загрузить», из указанного файла, в базе создается копия исходного документа (за исключением номера документа, так как номера документов в системе уникальные).
При написании обработки необходимо использовать элемент языка «Метаданные.…».

Алгоритм выгрузки и загрузки у меня есть, но получается так, что когда я обращаюсь к полю ввода и пытаюсь достать из него, анпример, номер документа, обработка падает с ошибкой:
{ВнешняяОбработка.task1.Форма.Форма_Перегрузка.Форма(42)}: Значение не является значением объектного типа (Номер)
    СЗ.Добавить(ПолеВвода1.Номер ,"Номер");

Надеюсь, сейчас понятно объяснил))))
10. spacecraft 19.06.18 18:34 Сейчас в теме
(8) ясно, тестовое задание. Довольно простое, но на знание механики.
11. user998353 19.06.18 18:36 Сейчас в теме
(10) вот-вот, я понимаю, что в теории это настолько простая вигня, так как есть опыт написания кода на c++, однако резко за пару дней перескочить на 1с и проделать тоже самое проблематично немного. пока не могу разобраться, а до дедлайна два дня, хех
12. artgen 19.06.18 18:37 Сейчас в теме
(8) Что значит выгружается в указанный файл. Файл может быть разным: xml, excel и т.д.
Для выгрузки и загрузки документов в файл xml используется обработка "ВыгрузкаЗагрузкаXML".
13. user998353 19.06.18 18:40 Сейчас в теме
(12)
начит выгружа
выгружается обязательно в .txt, причем нельзя использовать функции, выгружающие уникальные идентификаторы объектов, такие как "ЗначениеВСтрокуВнутр()" или "УникальныеИдентификатор()". У меня есть алгоритм для данной задачи, но для версии 7.7, адаптировать код на 8.3 не так сложно. Сейчас главная проблема возникает с полем ввода. Нужно делать форму выбора вместо списка?
14. singlych 19.06.18 18:42 Сейчас в теме
Падает с ошибкой, потому что в ПолеВвода1 значение Неопределено.
Выбор вообще не нужно обрабатывать, платформа сама покажет выбор типа и форму выбора нужного типа.
15. user998353 19.06.18 18:43 Сейчас в теме
(14)
ообще не нужно обраба
Просто установить тип значения "ДокументСсылка" и разместить кнопку выбора?
16. singlych 19.06.18 18:45 Сейчас в теме
(15) Да просто реквизит перетаскиваешь на форму, кнопка выбора сама нарисуется.
17. user998353 19.06.18 18:48 Сейчас в теме
(16)
Так, хорошо, кнопка выбора нарисовалась, теперь могу выбрать любой документ из базы, однако при выборе значение формы не заполняется. И такой вопрос: смогу ли я с таким типом значения поля ввода потом обращаться так:
СЗ.Добавить(ПолеВвода1.Номер ,"Номер");
    СЗ.Добавить(ПолеВвода1.Дата  ,"Дата");
18. singlych 19.06.18 18:55 Сейчас в теме
(17) При каком выборе не заполняется?
Сначала у тебя в ПолеВвода1 неопределено. В этот момент ПолеВвода1.Номер даст ошибку.
Потом выбираешь тип, в ПолеВвода1 становится пустая ссылка выбранного типа. После этого ПолеВвода1.Номер ошибку не даст, но будет пустая строка (или там 0, если номер числовой).
Потом выбираешь документ выбранного типа. После этого у тебя будет нужный номер.
19. user998353 19.06.18 18:58 Сейчас в теме
(18)
Я в свойствах поля ввода выбрал тип его значения "ДокументСсылка". Добавил кнопку выбора, когда нажимаю - открывается форма выбора, в которой есть список всех документов формы. А когда я хочу выбрать какой-нибудь отчет, например, я кликаю на него и нажимаю "ОК", при этом форма выбора закрывается, а полеввожа остается пустым.
20. singlych 19.06.18 19:04 Сейчас в теме
(19) У тебя кнопка выбора была "Т". Тип ты выбрал. Кнопка выбора стала "...". Так? Теперь нужно еще раз выбрать конкретный документ.
23. user998353 19.06.18 19:11 Сейчас в теме
(20)
Кнопка была Т, я нажал - выбрал документ. она стала "...". Поле по-прежнему пустое, но при нажатии на "..." открывается сам документ
25. singlych 19.06.18 19:16 Сейчас в теме
(23)
Не документ, а форма выбора документов. Их несколько. Выбрать нужно один.
26. user998353 19.06.18 19:17 Сейчас в теме
28. singlych 19.06.18 19:20 Сейчас в теме
(26) Типов документов может быть много. Один из типов ты выбрал. Этого одного типа бывает много документов (и другого типа тоже бывает много документов). Теперь нужно выбрать один из документов выбранного типа.
29. user998353 19.06.18 19:21 Сейчас в теме
(28)
а, вот в чем проблема. Понял, спасибо
30. spacecraft 19.06.18 19:22 Сейчас в теме
(26) нужно именно выбрать сам документ
Прикрепленные файлы:
31. user998353 19.06.18 19:24 Сейчас в теме
(30) уже увидел, спасибо! Пойду разбираться с выгрузкой
22. spacecraft 19.06.18 19:08 Сейчас в теме
(19) "Я в свойствах поля ввода выбрал тип его значения "ДокументСсылка""
"А когда я хочу выбрать какой-нибудь отчет"
Это как? Там не может быть выбор Отчет.
21. spacecraft 19.06.18 19:06 Сейчас в теме
(17) к стандартным реквизитам типа ДокументСсылка можно.
Вся изюминка "При написании обработки необходимо использовать элемент языка «Метаданные.…»." состоит в том, что нужно получить все реквизиты конкретного типы выбранного документа. Это как раз можно получить через метаданные. Причем для тонкого клиента только на сервере.

СЗ = Новый Структура;
Для каждого Реквизит Из ПолеВвода1.Метаданные().Реквизиты Цикл
	СЗ.Добавить(Реквизит.Имя, ПолеВвода1[Реквизит.Имя]);
КонецЦикла;


А еще могут быть табличные части. Причем не одна.
Доступ к ним через: "ПолеВвода1.Метаданные().ТабличныеЧасти;"

И да, замените имя реквизита ПолеВвода1 на понятное.
24. user998353 19.06.18 19:13 Сейчас в теме
(21)
В текстовом файле отправил модуль для этой же задачи на 7.7 версии + прикрепил свою обработку. Пойдет такой код мне?
Прикрепленные файлы:
Новый текстовый документ.txt
task1.epf
27. spacecraft 19.06.18 19:17 Сейчас в теме
(24) ну и? все выбирается и отображается в ПолеВвода1
Оставьте свое сообщение

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