Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 ноя 2024, 21:18

Перебор реквизтов документа

Автор Bitaxa, 02 мар 2018, 18:18

0 Пользователей и 1 гость просматривают эту тему.

Bitaxa


Есть вот такая форма. В поле "документ" на форме пользователь выбирает один из документов в информационной базе. Нужно, чтобы из выбранного документа были взяты определенные реквизиты и записаны в txt. Не понимаю что мне в модуле формы нужно написать, чтобы получить документ, выбранный пользователем, и начать перебирать его реквизиты <_<
Знаю, что надо метаданные использовать, но не понимаю как это все связать.

Bitaxa

Цитата: Bitaxa от 02 мар 2018, 18:18

Есть вот такая форма. В поле "документ" на форме пользователь выбирает один из документов в информационной базе. Нужно, чтобы из выбранного документа были взяты определенные реквизиты и записаны в txt. Не понимаю что мне в модуле формы нужно написать, чтобы получить документ, выбранный пользователем, и начать перебирать его реквизиты <_<
Знаю, что надо метаданные использовать, но не понимаю как это все связать.
Вообще задание звучит следующим образом:Разработать внешнюю обработку "ПерегрузкаДокументов". На ней должна быть возможность выбрать один из документов. При нажатии на кнопку информация, содержащиеся в выбранном документе, должна выгрузиться в указанный файл txt. Все сделать через Метаданные.
Готовое решение не нужно. просто хочу понять, какие темы для этого надо читать и что нужно понимать.

AIFrame

Документ = Документы.РеализацияТоваровУслуг.ПустаяСсылка();
МетаданныеДокумента = Документ.Метаданные().Реквизиты;
Для Каждого Реквизит из МетаданныеДокумента Цикл
Сообщить(Реквизит.Имя);
КонецЦикла;


Bitaxa

Цитата: AIFrame от 02 мар 2018, 19:01
Документ = Документы.РеализацияТоваровУслуг.ПустаяСсылка();
МетаданныеДокумента = Документ.Метаданные().Реквизиты;
Для Каждого Реквизит из МетаданныеДокумента Цикл
Сообщить(Реквизит.Имя);
КонецЦикла;

Я так понимаю здесь идет обращение к конкретному документу?

AIFrame

Цитата: Bitaxa от 02 мар 2018, 18:36информация, содержащиеся в выбранном документе, должна выгрузиться в указанный файл txt
ТекстДляЗаписи = Новый ТекстовыйДокумент;
Документ = Документы.РеализацияТоваровУслуг.ПустаяСсылка();
МетаданныеДокумента = Документ.Метаданные().Реквизиты;
Для Каждого Реквизит из МетаданныеДокумента Цикл
ТекстДляЗаписи.ДобавитьСтроку("" + Реквизит.Имя + ":" + Документ[Реквизит.Имя]);
КонецЦикла;
ТекстДляЗаписи.Записать("C:\test.txt");

Чо еще надо то?



Bitaxa

Цитата: AIFrame от 03 мар 2018, 00:25
Цитата: Bitaxa от 02 мар 2018, 18:36информация, содержащиеся в выбранном документе, должна выгрузиться в указанный файл txt
ТекстДляЗаписи = Новый ТекстовыйДокумент;
Документ = Документы.РеализацияТоваровУслуг.ПустаяСсылка();
МетаданныеДокумента = Документ.Метаданные().Реквизиты;
Для Каждого Реквизит из МетаданныеДокумента Цикл
ТекстДляЗаписи.ДобавитьСтроку("" + Реквизит.Имя + ":" + Документ[Реквизит.Имя]);
КонецЦикла;
ТекстДляЗаписи.Записать("C:\test.txt");

Чо еще надо то?
Просто не понимаю, здесь для конкретного документа или нет?)
У меня документ выбирается пользователем.
Добавлено: 03 мар 2018, 10:37


Цитата: AIFrame от 03 мар 2018, 00:25
Цитата: Bitaxa от 02 мар 2018, 18:36информация, содержащиеся в выбранном документе, должна выгрузиться в указанный файл txt
ТекстДляЗаписи = Новый ТекстовыйДокумент;
Документ = Документы.РеализацияТоваровУслуг.ПустаяСсылка();
МетаданныеДокумента = Документ.Метаданные().Реквизиты;
Для Каждого Реквизит из МетаданныеДокумента Цикл
ТекстДляЗаписи.ДобавитьСтроку("" + Реквизит.Имя + ":" + Документ[Реквизит.Имя]);
КонецЦикла;
ТекстДляЗаписи.Записать("C:\test.txt");

Чо еще надо то?

&НаКлиенте
Процедура Выгрузить(Команда)
ТекстДляЗаписи = Новый ТекстовыйДокумент;
//Документ = Документы.ОказаниеУслуг.ПустаяСсылка();
Документ = ЭтаФорма.Элементы.Документ.ПутьКДанным;

МетаданныеДокумента = Документ.Метаданные().Реквизиты;
Для Каждого  Реквизит из МетаданныеДокумента Цикл
   ТекстДляЗаписи.ДобавитьСтроку("" + Реквизит.Имя + ":" + Документ[Реквизит.Имя]);
КонецЦикла;
ТекстДляЗаписи.Записать("C:\test.txt")
КонецПроцедуры


Вот что сделал. Пишет "Свойство недоступно"

AIFrame

Цитата: Bitaxa от 03 мар 2018, 10:06Документ = ЭтаФорма.Элементы.Документ.ПутьКДанным;
Откуда вы такие ужасы вообще берете?
Док = Документ;
Или если это реквизит объекта
Док = Объект.Документ;
Не страдай ерундой.

Bitaxa


Откуда вы такие ужасы вообще берете?
Док = Документ;
Или если это реквизит объекта
Док = Объект.Документ;
Не страдай ерундой.
[/quote]
Спасибо)))вот что пишет:{ВнешняяОбработка.ВнешняяОбработка1.Форма.ПерегрузкаДокумента.Форма(9)}: Метод объекта не обнаружен (Метаданные)
МетаданныеДокумента = Док.Метаданные().Реквизиты;

AIFrame

Цитата: Bitaxa от 03 мар 2018, 11:25Док
Потому что не ссылка или не объект?
Потому что не на сервере?
Потому что СП лень читать?

Bitaxa

Цитата: AIFrame от 03 мар 2018, 14:10
Цитата: Bitaxa от 03 мар 2018, 11:25Док
Потому что не ссылка или не объект?
Потому что не на сервере?
Потому что СП лень читать?
Спасибо огромное!
А запись в файл я так понимаю надо на клиенте делать?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск