Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Использование Метаданных для получения всей информации из документа

Использование Метаданных для получения всей информации из документа
Я
   Hammond
 
17.10.20 - 19:58
Добрый Вечер, господа!

Есть задание, сделать внешнюю обработку, на которой есть формы "Документ", где пользователь выбирает документ, "Файл", куда выбранный документ должен записываться. Также кнопки "Просмотр файла" "Выгрузить Документ" "загрузить Документ"
суть работы такая:
Нужно как-то считать все данные из выбранного пользователя документа. не могу разобраться, как это сделать. в задании написано "обязательно использовать метаданные". также нельзя использовать "ЗначениеВСтрокуВнутр()", "УникальныеИдентификатор()" и подобный функции. Загрузка должна производиться ТОЛЬКО в файл TXT.

Формы я создал эти, но вот как выбрать через метаданные всю информацию из выбранного документа не знаю
   acht
 
1 - 17.10.20 - 20:07
Как, однако, у тебя много заданий-то... И со всеми на форум приходишь, да?
   МихаилМ
 
2 - 17.10.20 - 20:08
из Вашего сообщения понятно , что задание 
вы должны сделать самостоятельно.
   Hammond
 
3 - 17.10.20 - 20:11
Я и делаю, просто нуждаюсь в некоторых подсказках, так как только знакомлюсь с 1с, и каждое задание для меня имеет определенные сложности, так как содержит еще неизвестные мне аспекты, которые я изучаю. а в таком нелегком задании пригодится любая помощь
   PR2
 
4 - 17.10.20 - 20:13
(0) А в чем сложность-то?
   МихаилМ
 
5 - 17.10.20 - 20:15
   Hammond
 
6 - 17.10.20 - 20:17
я не знаком с метаданными вообще. я представляю, что это такое, поскольку весь день изучаю это. но все равно не понимаю, как получить именно информацию из документа
то есть я понял, как получить имена, синонимы всех документов в конфигурации через цикл, но как получить информацию из выбранного документа не понимаю
   Hammond
 
7 - 17.10.20 - 20:18
я понимаю, что не первый, но так и не нашел нигде помощи
   PR2
 
8 - 17.10.20 - 20:20
(6) Вообще обычно помогает почитать СП и посмотреть типовые
Ну или накопить денег и платить тем, кто будет тебе все это рассказывать вместо СП и типовых
   МихаилМ
 
9 - 17.10.20 - 20:21
   Жан Пердежон
 
10 - 17.10.20 - 20:22
можно и без метаданных, это даже проще
   Hammond
 
11 - 17.10.20 - 20:22
к сожалению, обязательно использование метаданных, с которыми я встречаюсь первый раз
   Hammond
 
12 - 17.10.20 - 20:22
(8) я ограничен во времени, поэтому и сижу на формах
   acht
 
13 - 17.10.20 - 20:31
(12) А мог бы потратить время на учебу, т-щ хитрожопый студент.

Сдается мне, что это задание при приеме на работу в Новосибирске: v8: "Перегрузка документа" Изучаю 1С четвёртый день :)
А мысль о том, что твои работодатели тоже читают этот форум, тебе не приходила?
   Hammond
 
14 - 17.10.20 - 20:34
Нет, вы не угадали, далеко не в Новосибирске, но суть задания достаточно похожая
к сожалению, ответа там я так и не нашел
а насчет чтения работодателем, то такое может быть. но мне главное выполнить задание и понимать, как это работает.
   acht
 
15 - 17.10.20 - 20:39
(14) Ну ответ там и не дали ровно по той же причине.
   Hammond
 
16 - 17.10.20 - 21:23
Знатоки, такой вопрос:
а я могу вообще получить список реквизитов документа?
то есть я пишу метаданные.документ.авансовыйотчет.реквизиты и выдает "КоллекцияОбъектовМетаданных"
а получить получить именно имена реквизитов?
   mistеr
 
17 - 17.10.20 - 21:24
(0) По-моему, с этой задачей раз в год приходят, если не чаще.

Подсказка. Через метаданые нужно получить имена всех реквизитов документа. Потом обратиться к каждому реквизиту по имени, получить его значение и записать в файл.
   Hammond
 
18 - 17.10.20 - 21:25
(17) Да, я так и подумал, но не удается получить имена реквизитов. (16)
   mistеr
 
19 - 17.10.20 - 21:25
(16) Слово "Коллекция" намекает на то, что у нее есть методы, чтобы получить содержимое.
   Hammond
 
20 - 17.10.20 - 21:29
я понимаю, но что это за метод не могу найти
то есть я пишу метаданные.документ.авансовыйотчет.реквизиты. и должен что-то выбрать, но что - загадка. скорее всего f(x) какую-то
   hhhh
 
21 - 17.10.20 - 21:47
(20) попробуй почитать про   Для Каждого
   Hammond
 
22 - 17.10.20 - 21:51
я знаком с циклами
   Hammond
 
23 - 17.10.20 - 21:55
нашел в интернете функцию перебратьметаданные:
КоллекцияОбъектов = Метаданные.Документы;
//Перебрать коллекцию объектов метаданных    

    Для каждого Метаданное Из КоллекцияОбъектов Цикл
                
        Имя = Метаданное.Имя;
        Синоним = Метаданное.Синоним;
        Комментарий = Метаданное.Комментарий;
КонецЦикла;

я немного его изменил, КоллекцияОбъектов = Метаданные.Документы.АвансовыйОтчет.реквизиты
в конце сообщить(имя); сообщить(синоним); и программа выдает имя ТОЛЬКО одного реквизита
   acht
 
24 - 17.10.20 - 21:57
(23) Ну ты же знаком с циклами
   Cthulhu
 
25 - 17.10.20 - 22:00
нахрена изобретать велосипед?????? "все уже украли до нас" (с)
вариант текста - xml. никаких метаданных не надо. выгрузка - вполпинка. загрузка - вполпинка.
   acht
 
26 - 17.10.20 - 22:03
(25) Т-щ курсант, мне не надо лучше, мне надо, чтобы вы замучились.
   МихаилМ
 
27 - 17.10.20 - 22:26
(25) тс не описал всего задания . по условиям нельзя использовать хмл джсан и пр. и внутренние идентификаторы.
   Конструктор1С
 
28 - 18.10.20 - 07:30
(0) для данной задачи не нужны метаданные, XDTO рулит
   Конструктор1С
 
29 - 18.10.20 - 07:32
(11) видимо авторы задачи сами рукозады
   hhhh
 
30 - 18.10.20 - 09:07
(28) задача так сформулирована, использовать метаданные,  XDTO запрещено
 
 Рекламное место пустует
   ProxyInspector
 
31 - 18.10.20 - 09:23
Что вы мучаете человека. Это же ваша смена
    
МетаданныеДокумента = ДокументСсылка.Метаданные();
Для Каждого МетаданныеДокументаРеквизит Из МетаданныеДокумента.Реквизиты Цикл
   ИмяРеквизита = МетаданныеДокументаРеквизит.Имя;
   СинонимРеквизита = МетаданныеДокументаРеквизит.Синоним;
КонецЦикла;

Для Каждого МетаданныеТабличнаяЧастьДокумента Из МетаданныеДокумента.ТабличныеЧасти Цикл
    ИмяТабличнойЧасти = МетаданныеТабличнаяЧастьДокумента.Имя;
КонецЦикла;

   Ну и тае далее и тому подобное. Таким образом можно добраться до любого реквизита документа, определенного в конфигурации
   hhhh
 
32 - 18.10.20 - 09:31
(31) он так уже делал в (23). Не получилось. Наверно, родился под несчастливой звездой.
   ProxyInspector
 
33 - 18.10.20 - 09:32
(32) Я думаю он победит
   mistеr
 
34 - 18.10.20 - 11:37
(31) Лучше пусть он сейчас помучается, чтобы потом не мучить нас.
   PR2
 
35 - 18.10.20 - 11:49
(12) Тот, кто ограничен во времени, должен быть неограничен в деньгах
Ну или самостоятельно укладываться в ограниченное время
   PR2
 
36 - 18.10.20 - 11:52
(31) Что ты лезешь со своим говнокодом, ТС знаком с циклами


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.