На форме имеется поле ввода, на котором активна кнопка списка. Пользователь должен выбирать из списка любой документ из базы данных, чтобы тот заносился на поле ввода, причем не строкой, а именно как документ (для дальнейшей работы с его полями). Тип значения поля ввода выставил на ДокументСсылка (самое подходящее вроде).
Список заполняется след. образом:
При выборе значений из списка, поле ввода остается пустым. Как быть? Какой тип значения тогда использовать вообще?
Список заполняется след. образом:
Для каждого Документ из Метаданные.Документы цикл
ЭлементыФормы.ПолеВвода1.СписокВыбора.Добавить(Документ.Имя, Документ.Имя);
КонецЦикла;
При выборе значений из списка, поле ввода остается пустым. Как быть? Какой тип значения тогда использовать вообще?
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)
(3)
(4)
У пользователя должна быть возможность выбрать любой документ из базы, а для разработчика это поле должно быть заполнено может не "ДокументСсылка", как я написал, но во всяком случае так, чтобы я мог обращаться к этому полю ввода следующим образом:
Может даже нужен не список, а форма выбора, не знаю. Меньше недели копаюсь, наведите на мысль. Благодарю
(3)
(4)
У пользователя должна быть возможность выбрать любой документ из базы, а для разработчика это поле должно быть заполнено может не "ДокументСсылка", как я написал, но во всяком случае так, чтобы я мог обращаться к этому полю ввода следующим образом:
СЗ.Добавить(ПолеВвода1.Номер ,"Номер");
СЗ.Добавить(ПолеВвода1.Дата ,"Дата");
Может даже нужен не список, а форма выбора, не знаю. Меньше недели копаюсь, наведите на мысль. Благодарю
(5) как я понял нужны не метаданные, а конкретные ссылки на документы?
Т.е. в поле выбора выбирает из всех доступных документов один конкретный?
Тогда конечно список не нужен. Нужна форма выбора.
Делаете общую форму. Делаете реквизит формы тип "ДинамическийСписок". Произвольный запрос, в котором делаете выборку Ссылка из всех возможных/нужных документов.
Выводите на форму.
Далее смотрите информацию по открытию нужной формы выбора и получение значения при выборе.
Т.е. в поле выбора выбирает из всех доступных документов один конкретный?
Тогда конечно список не нужен. Нужна форма выбора.
Делаете общую форму. Делаете реквизит формы тип "ДинамическийСписок". Произвольный запрос, в котором делаете выборку Ссылка из всех возможных/нужных документов.
Выводите на форму.
Далее смотрите информацию по открытию нужной формы выбора и получение значения при выборе.
(1) Я не пойму что требуется.
В поле ввода, тебе надо вводить ссылки на любые документы базы. Не физически метаданные документы, а ссылки на объекты документов, которые навводили пользователи. Реализация 0001, Реализация 0002 и т.п.
Ты же пытаешся, перебрать метаданные самой конфигурации, и добавляешь физические имена документов..что по сути является строкой а не ссылкой.
Естественно поле остается пустым.
В поле ввода, тебе надо вводить ссылки на любые документы базы. Не физически метаданные документы, а ссылки на объекты документов, которые навводили пользователи. Реализация 0001, Реализация 0002 и т.п.
Ты же пытаешся, перебрать метаданные самой конфигурации, и добавляешь физические имена документов..что по сути является строкой а не ссылкой.
Естественно поле остается пустым.
ДокументСсылка и ОбъектМетаданных - это совершенно разные типы.
Если пользователь хочет открыть конкретный документ, то и добавлять в список выбора ты должен не Метаданные.Документы, а ссылки на все типы документов.
Я так понимаю, что это просто задача для обучения программированию, так как в реальной жизни такая задача не востребована.
Если пользователь хочет открыть конкретный документ, то и добавлять в список выбора ты должен не Метаданные.Документы, а ссылки на все типы документов.
Я так понимаю, что это просто задача для обучения программированию, так как в реальной жизни такая задача не востребована.
(6)
(3)
Алгоритм выгрузки и загрузки у меня есть, но получается так, что когда я обращаюсь к полю ввода и пытаюсь достать из него, анпример, номер документа, обработка падает с ошибкой:
Надеюсь, сейчас понятно объяснил))))
(3)
Необходимо с помощью программных средств языка 1С написать внешнюю обработку «Перегрузка документа».
На форме находятся 2 поля: в одном выбираем документ, в другом файл; и две кнопки: "Выгрузить" и "Загрузить"
По кнопке «Выгрузить» информация, содержащая в выбранном документе, выгружается в указанный файл.
По кнопке «Загрузить», из указанного файла, в базе создается копия исходного документа (за исключением номера документа, так как номера документов в системе уникальные).
При написании обработки необходимо использовать элемент языка «Метаданные.…».
На форме находятся 2 поля: в одном выбираем документ, в другом файл; и две кнопки: "Выгрузить" и "Загрузить"
По кнопке «Выгрузить» информация, содержащая в выбранном документе, выгружается в указанный файл.
По кнопке «Загрузить», из указанного файла, в базе создается копия исходного документа (за исключением номера документа, так как номера документов в системе уникальные).
При написании обработки необходимо использовать элемент языка «Метаданные.…».
Алгоритм выгрузки и загрузки у меня есть, но получается так, что когда я обращаюсь к полю ввода и пытаюсь достать из него, анпример, номер документа, обработка падает с ошибкой:
{ВнешняяОбработка.task1.Форма.Форма_Перегрузка.Форма(42)}: Значение не является значением объектного типа (Номер)
СЗ.Добавить(ПолеВвода1.Номер ,"Номер");
Надеюсь, сейчас понятно объяснил))))
(12)
начит выгружа
выгружается обязательно в .txt, причем нельзя использовать функции, выгружающие уникальные идентификаторы объектов, такие как "ЗначениеВСтрокуВнутр()" или "УникальныеИдентификатор()". У меня есть алгоритм для данной задачи, но для версии 7.7, адаптировать код на 8.3 не так сложно. Сейчас главная проблема возникает с полем ввода. Нужно делать форму выбора вместо списка?
(16)
Так, хорошо, кнопка выбора нарисовалась, теперь могу выбрать любой документ из базы, однако при выборе значение формы не заполняется. И такой вопрос: смогу ли я с таким типом значения поля ввода потом обращаться так:
Так, хорошо, кнопка выбора нарисовалась, теперь могу выбрать любой документ из базы, однако при выборе значение формы не заполняется. И такой вопрос: смогу ли я с таким типом значения поля ввода потом обращаться так:
СЗ.Добавить(ПолеВвода1.Номер ,"Номер");
СЗ.Добавить(ПолеВвода1.Дата ,"Дата");
(17) При каком выборе не заполняется?
Сначала у тебя в ПолеВвода1 неопределено. В этот момент ПолеВвода1.Номер даст ошибку.
Потом выбираешь тип, в ПолеВвода1 становится пустая ссылка выбранного типа. После этого ПолеВвода1.Номер ошибку не даст, но будет пустая строка (или там 0, если номер числовой).
Потом выбираешь документ выбранного типа. После этого у тебя будет нужный номер.
Сначала у тебя в ПолеВвода1 неопределено. В этот момент ПолеВвода1.Номер даст ошибку.
Потом выбираешь тип, в ПолеВвода1 становится пустая ссылка выбранного типа. После этого ПолеВвода1.Номер ошибку не даст, но будет пустая строка (или там 0, если номер числовой).
Потом выбираешь документ выбранного типа. После этого у тебя будет нужный номер.
(18)
Я в свойствах поля ввода выбрал тип его значения "ДокументСсылка". Добавил кнопку выбора, когда нажимаю - открывается форма выбора, в которой есть список всех документов формы. А когда я хочу выбрать какой-нибудь отчет, например, я кликаю на него и нажимаю "ОК", при этом форма выбора закрывается, а полеввожа остается пустым.
Я в свойствах поля ввода выбрал тип его значения "ДокументСсылка". Добавил кнопку выбора, когда нажимаю - открывается форма выбора, в которой есть список всех документов формы. А когда я хочу выбрать какой-нибудь отчет, например, я кликаю на него и нажимаю "ОК", при этом форма выбора закрывается, а полеввожа остается пустым.
(17) к стандартным реквизитам типа ДокументСсылка можно.
Вся изюминка "При написании обработки необходимо использовать элемент языка «Метаданные.…»." состоит в том, что нужно получить все реквизиты конкретного типы выбранного документа. Это как раз можно получить через метаданные. Причем для тонкого клиента только на сервере.
А еще могут быть табличные части. Причем не одна.
Доступ к ним через: "ПолеВвода1.Метаданные().ТабличныеЧасти;"
И да, замените имя реквизита ПолеВвода1 на понятное.
Вся изюминка "При написании обработки необходимо использовать элемент языка «Метаданные.…»." состоит в том, что нужно получить все реквизиты конкретного типы выбранного документа. Это как раз можно получить через метаданные. Причем для тонкого клиента только на сервере.
СЗ = Новый Структура;
Для каждого Реквизит Из ПолеВвода1.Метаданные().Реквизиты Цикл
СЗ.Добавить(Реквизит.Имя, ПолеВвода1[Реквизит.Имя]);
КонецЦикла;
А еще могут быть табличные части. Причем не одна.
Доступ к ним через: "ПолеВвода1.Метаданные().ТабличныеЧасти;"
И да, замените имя реквизита ПолеВвода1 на понятное.
(21)
В текстовом файле отправил модуль для этой же задачи на 7.7 версии + прикрепил свою обработку. Пойдет такой код мне?
В текстовом файле отправил модуль для этой же задачи на 7.7 версии + прикрепил свою обработку. Пойдет такой код мне?
Прикрепленные файлы:
Новый текстовый документ.txt
task1.epf
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот