Здравствуйте!
Я только начинаю постигать мир программирования 1С, и пока не все понимаю. Поэтому заранее извиняюсь за ошибки в терминах или недостаток информации по задаче.
И собственно, какая задача:
Есть внешняя обработка, как на скриншоте. Нужно, чтобы по нажатию кнопки выгрузить любой произвольный заранее выбранный документ выгружался в txt файл. После чего должна быть возможность загрузить файл обратно в базу, получив таким образом например копию документа, но уже с другим номером.
Что у меня на данный момент получилось сделать:
1) Создание диалога для выбора текстового файла
2) Получение документыссылки с помощью реквизита Документ типа "ДокументСсылка"
3) Запись в текстовый файл этого документа.
И в этот момент я обнаружил, что в текстовый файл записывается только полное название документа, никаких других реквизитов нет.
Я часа 4 гуглил что с этим делать, пробовал разные запросы и так далее, но в итоге у меня ничего не получилось. Что я делаю не так? Как получить все данные из документа, как хотя бы к нему обратиться после получения ДокументСсылки.
Возможно это какой-то очень простой вопрос и вы сможете посоветовать мне базовые книги по 1С программированию? Буду очень благодарен.
Я только начинаю постигать мир программирования 1С, и пока не все понимаю. Поэтому заранее извиняюсь за ошибки в терминах или недостаток информации по задаче.
И собственно, какая задача:
Есть внешняя обработка, как на скриншоте. Нужно, чтобы по нажатию кнопки выгрузить любой произвольный заранее выбранный документ выгружался в txt файл. После чего должна быть возможность загрузить файл обратно в базу, получив таким образом например копию документа, но уже с другим номером.
Что у меня на данный момент получилось сделать:
1) Создание диалога для выбора текстового файла
2) Получение документыссылки с помощью реквизита Документ типа "ДокументСсылка"
3) Запись в текстовый файл этого документа.
И в этот момент я обнаружил, что в текстовый файл записывается только полное название документа, никаких других реквизитов нет.
Я часа 4 гуглил что с этим делать, пробовал разные запросы и так далее, но в итоге у меня ничего не получилось. Что я делаю не так? Как получить все данные из документа, как хотя бы к нему обратиться после получения ДокументСсылки.
Возможно это какой-то очень простой вопрос и вы сможете посоветовать мне базовые книги по 1С программированию? Буду очень благодарен.
Прикрепленные файлы:

По теме из базы знаний
- Универсальный обмен в формате XML - автоматическое разделение выгрузки на части / загрузка всех файлов XML из каталога (управляемые формы)
- Выгрузка и загрузка Вводов начальных остатков из УТ 11.1 - 11.5 в БП 3 (товары, задолженности и прочее)
- Загрузка документов из Excel в 1С: УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы
- Правила переноса из УТ 10.3 в БП 3.0 синхронизация и перенос данных, выгрузка (перенос остатков, документов и справочников)
- Выгрузка и загрузка документов / элементов справочников через XML-файл. ЗУП 3.1
Найденные решения
(10)
Все это делаете в цикле по метаданным, пока реквизиты не кончатся - только так можно "получить все данные из документа".
В итоге все равно получите что-то вроде XML - теги, значения, атрибуты и т.д.
Вы бы лучше открыли секрет - для чего вам нужна такая выгрузка-загрузка? А то пока постановка задачи на уровне: "Как начинающему слесарю сделать пятиколесный велосипед с овальными колесами?"
А куда и зачем вам именно на таком надо ездить - молчок.
понял почему их нужно использовать, но пока не понимаю как
Несложно, но долго и нудно: по ссылке на документ определяете его вид, по виду обращаетесь к метаданным и получаете из них описание всех реквизитов, которые надо выгрузить в ваш txt. А после этого - считываете значения полученных реквизитов и их тоже пишете в txt.
Все это делаете в цикле по метаданным, пока реквизиты не кончатся - только так можно "получить все данные из документа".
В итоге все равно получите что-то вроде XML - теги, значения, атрибуты и т.д.
получаю ДокументСсылку, а как по ней получить возможность скопировать что то или записать (например через запрос)
Записать (как вариант - скопировать) запросом нельзя - запрос предназначен для того, чтобы что-то прочитать из базы.
Вы бы лучше открыли секрет - для чего вам нужна такая выгрузка-загрузка? А то пока постановка задачи на уровне: "Как начинающему слесарю сделать пятиколесный велосипед с овальными колесами?"
А куда и зачем вам именно на таком надо ездить - молчок.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Вообщем делайте лучше так
Вообщем делайте лучше так
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("С:\Тест\МойМаленькийXML.Xml","UTF-8");
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("Документы");
ВыгружаемыйОбъект= Документ.ПолучитьОбъект();
ЗаписатьXML(ЗаписьXML,ВыгружаемыйОбъект);
ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.Закрыть();
Показать
(8)
А вообще, задачка далеко не для начинающих: разные виды документов имеют очень разные наборы реквизитов, а поскольку вид документа у вас заранее не оговорен, то надо работать с метаданными. Вы хоть в курсе, что это такое?
выгрузить , причем придумать потом способ загрузить обратно. То есть фактически создать свой text формат экспорта импорта документов
XML, в конце концов, тоже всего лишь текст.
А вообще, задачка далеко не для начинающих: разные виды документов имеют очень разные наборы реквизитов, а поскольку вид документа у вас заранее не оговорен, то надо работать с метаданными. Вы хоть в курсе, что это такое?
(9)в курсе, даже понял почему их нужно использовать, но пока не понимаю как
Даже пока не понимаю как получить доступ к некой базе с документами, получаю ДокументСсылку, а как по ней получить возможность скопировать что то или записать (например через запрос) - не понимаю. Можете хотя бы этот момент объяснить, если не сложно?
Даже пока не понимаю как получить доступ к некой базе с документами, получаю ДокументСсылку, а как по ней получить возможность скопировать что то или записать (например через запрос) - не понимаю. Можете хотя бы этот момент объяснить, если не сложно?
(10)
Все это делаете в цикле по метаданным, пока реквизиты не кончатся - только так можно "получить все данные из документа".
В итоге все равно получите что-то вроде XML - теги, значения, атрибуты и т.д.
Вы бы лучше открыли секрет - для чего вам нужна такая выгрузка-загрузка? А то пока постановка задачи на уровне: "Как начинающему слесарю сделать пятиколесный велосипед с овальными колесами?"
А куда и зачем вам именно на таком надо ездить - молчок.
понял почему их нужно использовать, но пока не понимаю как
Несложно, но долго и нудно: по ссылке на документ определяете его вид, по виду обращаетесь к метаданным и получаете из них описание всех реквизитов, которые надо выгрузить в ваш txt. А после этого - считываете значения полученных реквизитов и их тоже пишете в txt.
Все это делаете в цикле по метаданным, пока реквизиты не кончатся - только так можно "получить все данные из документа".
В итоге все равно получите что-то вроде XML - теги, значения, атрибуты и т.д.
получаю ДокументСсылку, а как по ней получить возможность скопировать что то или записать (например через запрос)
Записать (как вариант - скопировать) запросом нельзя - запрос предназначен для того, чтобы что-то прочитать из базы.
Вы бы лучше открыли секрет - для чего вам нужна такая выгрузка-загрузка? А то пока постановка задачи на уровне: "Как начинающему слесарю сделать пятиколесный велосипед с овальными колесами?"
А куда и зачем вам именно на таком надо ездить - молчок.
(11) да на самом деле большого секрета нет, это первое тренировочное задание для получения стажировки в одном месте. В принципе запретов на обращение к интернету не было, даже есть куратор, но к нему сказали идти в последнюю очередь. Если честно я не ожидал что будет так сложно - я в вузе вроде хорошо учит и джаву, и плюсы, и sql, а здесь ничего не понимаю. Правда я только 2 дня как учу 1с , и вы меня немного успокоили что ситуация нестандартная и в лоб не гуглится.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот