Выгрузка и загрузка документа в txt

1. biryuzabear 03.09.18 19:09 Сейчас в теме
Здравствуйте!
Я только начинаю постигать мир программирования 1С, и пока не все понимаю. Поэтому заранее извиняюсь за ошибки в терминах или недостаток информации по задаче.

И собственно, какая задача:
Есть внешняя обработка, как на скриншоте. Нужно, чтобы по нажатию кнопки выгрузить любой произвольный заранее выбранный документ выгружался в txt файл. После чего должна быть возможность загрузить файл обратно в базу, получив таким образом например копию документа, но уже с другим номером.

Что у меня на данный момент получилось сделать:
1) Создание диалога для выбора текстового файла
2) Получение документыссылки с помощью реквизита Документ типа "ДокументСсылка"
3) Запись в текстовый файл этого документа.

И в этот момент я обнаружил, что в текстовый файл записывается только полное название документа, никаких других реквизитов нет.

Я часа 4 гуглил что с этим делать, пробовал разные запросы и так далее, но в итоге у меня ничего не получилось. Что я делаю не так? Как получить все данные из документа, как хотя бы к нему обратиться после получения ДокументСсылки.

Возможно это какой-то очень простой вопрос и вы сможете посоветовать мне базовые книги по 1С программированию? Буду очень благодарен.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
11. Cooler 22 04.09.18 01:02 Сейчас в теме
(10)
понял почему их нужно использовать, но пока не понимаю как
Несложно, но долго и нудно: по ссылке на документ определяете его вид, по виду обращаетесь к метаданным и получаете из них описание всех реквизитов, которые надо выгрузить в ваш txt. А после этого - считываете значения полученных реквизитов и их тоже пишете в txt.

Все это делаете в цикле по метаданным, пока реквизиты не кончатся - только так можно "получить все данные из документа".

В итоге все равно получите что-то вроде XML - теги, значения, атрибуты и т.д.
получаю ДокументСсылку, а как по ней получить возможность скопировать что то или записать (например через запрос)
Записать (как вариант - скопировать) запросом нельзя - запрос предназначен для того, чтобы что-то прочитать из базы.

Вы бы лучше открыли секрет - для чего вам нужна такая выгрузка-загрузка? А то пока постановка задачи на уровне: "Как начинающему слесарю сделать пятиколесный велосипед с овальными колесами?"

А куда и зачем вам именно на таком надо ездить - молчок.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. Doreng 28 03.09.18 21:04 Сейчас в теме
(1)
Что я делаю не так?

пихаете в .txt Чем Вам xml не угодил или ёксель на худой конец. Если Вы хотите скопировать документ, то может его лучше просто скопировать?
6. Doreng 28 03.09.18 21:45 Сейчас в теме
(1)
Вообщем делайте лучше так
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("С:\Тест\МойМаленькийXML.Xml","UTF-8");
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("Документы");
ВыгружаемыйОбъект= Документ.ПолучитьОбъект();
ЗаписатьXML(ЗаписьXML,ВыгружаемыйОбъект);
ЗаписьXML.ЗаписатьКонецЭлемента(); 
ЗаписьXML.Закрыть();
Показать
14. plebedinskiy 51 04.09.18 22:59 Сейчас в теме
(1) Если Вам срочно, то предпочтите решения предложенные выше, если располагаете временем для разработки уделите внимание json, язык намного оптимизированный нежели xml.
15. user1431108 05.08.20 15:43 Сейчас в теме
(1)Привет, столкнулся с такой же задачей, можешь помочь плез? А то я скоро вены вскрою(((
16. user1579798 12.04.21 13:27 Сейчас в теме
(1) У меня такая же проблема. Можно посмотреть на вашу обработку ?
2. harvester_sorrow 24 03.09.18 19:21 Сейчас в теме
Если совсем "похабно" то можно воспользоваться ЗначениеВСтрокуВнутр и ЗначениеИзСтрокиВнутр .А так желательно в xml или json пихать все
Fox-trot; +1 Ответить
7. biryuzabear 03.09.18 23:35 Сейчас в теме
(2) это задача и к сожалению в ее условии сказано решить всё без использования всего, что вы перечислили

Может есть какие-то запросы чтобы получить любой документ построчно?

И как на форме получить доступ к этому документу в запросе?
3. DarkUser 03.09.18 19:24 Сейчас в теме
Так задача выгрузить или просто скопировать?

Насчет книг, почитайте Практическое пособие разработчика (Радченко), очень доступная книга.
8. biryuzabear 03.09.18 23:36 Сейчас в теме
(3) выгрузить , причем придумать потом способ загрузить обратно. То есть фактически создать свой text формат экспорта импорта документов
9. Cooler 22 03.09.18 23:48 Сейчас в теме
(8)
выгрузить , причем придумать потом способ загрузить обратно. То есть фактически создать свой text формат экспорта импорта документов
XML, в конце концов, тоже всего лишь текст.

А вообще, задачка далеко не для начинающих: разные виды документов имеют очень разные наборы реквизитов, а поскольку вид документа у вас заранее не оговорен, то надо работать с метаданными. Вы хоть в курсе, что это такое?
10. biryuzabear 04.09.18 00:17 Сейчас в теме
(9)в курсе, даже понял почему их нужно использовать, но пока не понимаю как

Даже пока не понимаю как получить доступ к некой базе с документами, получаю ДокументСсылку, а как по ней получить возможность скопировать что то или записать (например через запрос) - не понимаю. Можете хотя бы этот момент объяснить, если не сложно?
11. Cooler 22 04.09.18 01:02 Сейчас в теме
(10)
понял почему их нужно использовать, но пока не понимаю как
Несложно, но долго и нудно: по ссылке на документ определяете его вид, по виду обращаетесь к метаданным и получаете из них описание всех реквизитов, которые надо выгрузить в ваш txt. А после этого - считываете значения полученных реквизитов и их тоже пишете в txt.

Все это делаете в цикле по метаданным, пока реквизиты не кончатся - только так можно "получить все данные из документа".

В итоге все равно получите что-то вроде XML - теги, значения, атрибуты и т.д.
получаю ДокументСсылку, а как по ней получить возможность скопировать что то или записать (например через запрос)
Записать (как вариант - скопировать) запросом нельзя - запрос предназначен для того, чтобы что-то прочитать из базы.

Вы бы лучше открыли секрет - для чего вам нужна такая выгрузка-загрузка? А то пока постановка задачи на уровне: "Как начинающему слесарю сделать пятиколесный велосипед с овальными колесами?"

А куда и зачем вам именно на таком надо ездить - молчок.
12. biryuzabear 04.09.18 02:47 Сейчас в теме
(11) да на самом деле большого секрета нет, это первое тренировочное задание для получения стажировки в одном месте. В принципе запретов на обращение к интернету не было, даже есть куратор, но к нему сказали идти в последнюю очередь. Если честно я не ожидал что будет так сложно - я в вузе вроде хорошо учит и джаву, и плюсы, и sql, а здесь ничего не понимаю. Правда я только 2 дня как учу 1с , и вы меня немного успокоили что ситуация нестандартная и в лоб не гуглится.
13. catena 110 04.09.18 06:20 Сейчас в теме
(12) к (11) можно еще добавить: не понятно, база для загрузки синхронизирована с базой выгрузки по ссылкам или другим ключевым реквизитам. Создать структуру - первая задача. Вторая - расшифровать при загрузке ссылочные типы.
5. Fox-trot 164 03.09.18 21:17 Сейчас в теме
и как пример, если есть любая типовая, глянь обработку ВыгрузкаЗагрузкаXML
Оставьте свое сообщение

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