1.
nicknameeee1
08.08.26 18:09
Сейчас в теме
Всем здравствуйте, решаю задачку и никак не могу разобраться и решить ее.
Необходимо написать обработку для выгрузки и загрузки любых документов (не определенного, а любого) в формате txt
Написал выгрузку, но как понимаю нужно по мимо реквизитов и их значений еще тип для последующей загрузки и как поступить с типом Ссылка, в метаданных его нет, точнее есть реквизит Тип, но что это Справочник или Документ, так еще и указано в едиственном числе, поэтому прошу помогите разобраться,
Необходимо написать обработку для выгрузки и загрузки любых документов (не определенного, а любого) в формате txt
Написал выгрузку, но как понимаю нужно по мимо реквизитов и их значений еще тип для последующей загрузки и как поступить с типом Ссылка, в метаданных его нет, точнее есть реквизит Тип, но что это Справочник или Документ, так еще и указано в едиственном числе, поэтому прошу помогите разобраться,
Процедура ВыгрузитьДокументНаСервере()
Счетчик = 0;
ДокОбъект = Объект.Документ.ПолучитьОбъект();
ТекстовыйФайл = Новый ТекстовыйДокумент;
ТекстовыйФайл.ДобавитьСтроку(Строка(Объект.Документ.Метаданные().Имя));
ТекстовыйФайл.ДобавитьСтроку("---Шапка документа---");
Для каждого РеквизитДанных из Объект.Документ.Метаданные().Реквизиты Цикл
ЗначениеРеквизита = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Документ, РеквизитДанных.Имя);
ТекстовыйФайл.ДобавитьСтроку(Строка(РеквизитДанных.Имя) + ":" + Строка(ЗначениеРеквизита));
КонецЦикла;
ТекстовыйФайл.ДобавитьСтроку("---Табличная часть документа---");
Для каждого ТЧОбъекта из Объект.Документ.Метаданные().ТабличныеЧасти Цикл
Для Каждого ЗначениеРеквизитаТЧ Из ДокОбъект[Строка(ТЧОбъекта.Имя)] Цикл
Счетчик = Счетчик + 1;
ТекстовыйФайл.ДобавитьСтроку("Строка:" + Строка(Счетчик));
Для каждого РеквизитТЧ из ТЧОбъекта.Реквизиты Цикл
ТекстовыйФайл.ДобавитьСтроку(Строка(РеквизитТЧ.Имя) + ":" + ЗначениеРеквизитаТЧ[Строка(РеквизитТЧ.Имя)]);
КонецЦикла;
КонецЦикла;
КонецЦикла;
ТекстовыйФайл.Записать(Объект.Файл);
КонецПроцедуры
Процедура ЗагрузитьДокументНаСервере(ТекстовыйФайл, КоличествоСтрок)
НовыйДок = Документы[ТекстовыйФайл.ПолучитьСтроку(1)].СоздатьДокумент();
//Для каждого РеквизитДанных из НовыйДок.Метаданные().Реквизиты Цикл
Для Индекс = 3 По КоличествоСтрок Цикл
//Сообщить(ТекстовыйФайл.ПолучитьСтроку(Индекс));
МассивДанных = СтрРазделить(ТекстовыйФайл.ПолучитьСтроку(Индекс), ": ");
НазваниеРеквизита = МассивДанных[0];
//НовыйДок[НазваниеРеквизита] =
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьДокумент(Команда)
ТекстовыйФайл = Новый ТекстовыйДокумент;
ТекстовыйФайл.Прочитать(
Объект.Файл,
КодировкаТекста.UTF8,
Символы.ВК + Символы.ПС
);
ТекстФайла = ТекстовыйФайл.ПолучитьТекст();
КоличествоСтрок = ТекстовыйФайл.КоличествоСтрок();
ЗагрузитьДокументНаСервере(ТекстовыйФайл, КоличествоСтрок);
КонецПроцедуры ПоказатьПо теме из базы знаний
- Выгрузка и загрузка данных XML с гибкими отборами
- Правила переноса из УТ 10.3 в БП 3.0 синхронизация и перенос данных, выгрузка (перенос остатков, документов и справочников)
- Выгрузка и загрузка документов / элементов справочников через XML-файл. ЗУП 3.1
- Загрузка документов из еФарма для 1С:БП 3.0
- Загрузка документов и остатков номенклатуры в 1С:БП 3.0 из аптечной программы М-Аптека+
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Чтобы записать ссылочное значение, используете ГУИД его ссылки и полное имя метаданных: Чтобы прочитать:
// Запись
ТипЗначения = ТипЗнч(Значение);
МетаданныеОбъекта = Метаданные.НайтиПоТипу(ТипЗначения);
Если МетаданныеОбъекта <> Неопределено Тогда // это ссылочный тип
ПолноеИмяМетаданных = МетаданныеОбъекта.ПолноеИмя();
СтрокаГУИД = Строка(Значение.УникальныйИдентификатор());
КонецЕсли;// Чтение
МенеджерОбъекта = Новый(СтрЗаменить(ПолноеИмяМетаданных, ".", "Менеджер."));
Значение = МенеджерОбъекта.ПолучитьСсылку(Новый УникальныйИдентификатор(СтрокаГУИД));
3.
nicknameeee1
08.08.26 22:05
Сейчас в теме
(2) К сожалению это тестовое задание, пользоваться XML, JSON и тд нельзя, только через текстовый документ нужно выгружать и загружать
9.
user_2211591
09.08.26 09:57
Сейчас в теме
(3)
это тестовое задание
Ну всё в порядке. Тест проведен, результат получен.
12.
_user2207618
09.08.26 10:02
Сейчас в теме
(3)
пользоваться XML, JSON и тд нельзя
А если бы было можно - как бы это облегчило твою задачу?
(6) Как я понял, вам надо выгрузить реквизит ссылки в txt. Вот так его можно выгрузить, а потом можно загрузить обратно. Но как уже сказали, если в другой базе объект был создан независимо, то ссылки будут разные. Но в этом случае нужно уже реализовывать поиск по полям. А это уже на правила конвертации смахивает. Для тестовой задачки по-моему чересчур.
8.
nicknameeee1
09.08.26 09:51
Сейчас в теме
(7) Вот я также считаю, смог разобраться с типом метод БСП ОбщегоНазначения.ИмяТаблицыПоСсылке(ЗначениеРеквизита)
Возвращает как раз "Справочник.Ссылка или Документ.Ссылка"
Осталось разобраться как загрузить в базу из файла
Возвращает как раз "Справочник.Ссылка или Документ.Ссылка"
Осталось разобраться как загрузить в базу из файла
10.
_user2207618
09.08.26 09:57
Сейчас в теме
(8)
Что мешает вставить такую текстовую строку сразу при выгрузке?
Возвращает как раз "Справочник.Ссылка или Документ.Ссылка"
Не прокатит в разных базах, могут разные имена и идентификаторы метаданных.
Что мешает вставить такую текстовую строку сразу при выгрузке?
15.
nicknameeee1
09.08.26 10:23
Сейчас в теме
(10) я вот так и сделал, в строке текстового файла идет
НазваниеРеквизита:Значение:Тип
Осталось это как-то загрузить
Как-то указать тип при загрузке
НазваниеРеквизита:Значение:Тип
Осталось это как-то загрузить
Как-то указать тип при загрузке
13.
user_2211591
09.08.26 10:08
Сейчас в теме
(7)
Изначально это было тестовое для студентов у алексровича, потом ушло в народ.
если это разные базы
Это одна база. И прямой запрет на XML. Топикстартер просто ссыт показать нам всё условие целиком.
Изначально это было тестовое для студентов у алексровича, потом ушло в народ.
14.
nicknameeee1
09.08.26 10:21
Сейчас в теме
(13) Это и есть тестовое для алексровича, по заданию нужно выгрузить любой документ в формате txt, запрещено использовать XML, JSON и тд.
Необходимо самому разработать формат выгрузки данных и последующую загрузку
Необходимо самому разработать формат выгрузки данных и последующую загрузку
17.
_user2207618
09.08.26 10:32
Сейчас в теме
(14)
запрещено использовать XML, JSON и тд.
Необходимо самому разработать формат выгрузки
Что мешает тебе разработать СВОЙ формат (контракт) выгрузки с типом XML или JSON? В чем конкретно запрет-то?
Необходимо самому разработать формат выгрузки
18.
nicknameeee1
09.08.26 10:52
Сейчас в теме
(17)необходимо разработать формат выгрузки в текстовый документ, а не использовать xml, json
20.
_user2207618
09.08.26 11:53
Сейчас в теме
(19) Сомнительный подход к тестовому заданию. Представляю, как на на каком-нибудь тесте по геометрии предлагают доказать теорему не используя тригонометрию, планиметрию и прочие ухищрения. Изобрести свое доказательство.
Да и чем в принципе формат банк-клиента отличается от XML? Только отсутствием разметки для ключей, и правил формирования имен ключей. А так все то же самое - Ключ-значение.
Да и чем в принципе формат банк-клиента отличается от XML? Только отсутствием разметки для ключей, и правил формирования имен ключей. А так все то же самое - Ключ-значение.
(14)
Смешно, если обычно изобретение велосипедов всячески не рекомендуется, то тут наоборот велосипед нужно переизобрести?! И что это даст, ваш формат обеспечит более быструю загрузку? Компактное хранение? Какие преимущества получит заказчик от нового формата?
Необходимо самому разработать формат выгрузки данных и последующую загрузку
Смешно, если обычно изобретение велосипедов всячески не рекомендуется, то тут наоборот велосипед нужно переизобрести?! И что это даст, ваш формат обеспечит более быструю загрузку? Компактное хранение? Какие преимущества получит заказчик от нового формата?
27.
user_2194436
11.08.26 08:21
Сейчас в теме
(26)
Это тестовая задача, чувак.
1Сники как всегда, во всей красе - тему не читай, требованиями бизнеса тупость прикрывай...
Какие преимущества получит заказчик
Заказчик поймет - стоит или не стоит тратить свой бюджет для сотрудничества с конкретным персонажем.
Это тестовая задача, чувак.
1Сники как всегда, во всей красе - тему не читай, требованиями бизнеса тупость прикрывай...
28.
_user2207618
11.08.26 08:28
Сейчас в теме
(27)
Если говорить про бизнес-заказчика, то по мне так гораздо пользительнее было бы понять - сумеет ли чувак придумать свой формат (свою структуру) XML/JSON (запретив использовать сериализацию), и умеет ли он работать с этими структурами типовым инструментарием. Потому что таких задач будет много.
А заставлять придумывать "свой" формат, под который надо писать свой личный двусторонний парсер - ну, такое. Никому не нужное.Особенно для бизнес-заказчика, как для "конечного потребителя".
стоит или не стоит тратить свой бюджет для сотрудничества с конкретным персонажем.
Это тестовая задача, чувак.
Логика есть, но не очень.
Это тестовая задача, чувак.
Если говорить про бизнес-заказчика, то по мне так гораздо пользительнее было бы понять - сумеет ли чувак придумать свой формат (свою структуру) XML/JSON (запретив использовать сериализацию), и умеет ли он работать с этими структурами типовым инструментарием. Потому что таких задач будет много.
А заставлять придумывать "свой" формат, под который надо писать свой личный двусторонний парсер - ну, такое. Никому не нужное.Особенно для бизнес-заказчика, как для "конечного потребителя".
16.
_user2207618
09.08.26 10:31
Сейчас в теме
(13)
И прямой запрет на XML
Мен вот это интересно. Что таоке "запрет на XML"? Это запрет на сериализацию? Или запрет в принципе на использование формата файла, даже если его собирать вручную?
22.
nicknameeee1
09.08.26 14:47
Сейчас в теме
(16) Нельзя использовать ничего связанного с XML, JSON, только через текстовый документ
24.
_user2207618
09.08.26 15:46
Сейчас в теме
(22) То есть и угловые скобочки со слешами под запретом в текстовобм документа? И фигурные скобки нельзя употреблять в текстовом документе? А кириллицу можно употреблять? А цифры?
Ты понимаешь разницу между "инструментарий XML", и "структура текстового документа похожая на XML"?
Ты понимаешь разницу между "инструментарий XML", и "структура текстового документа похожая на XML"?
//когда выгружаешь
.....
иначеЕсли ТипЗнч(выгружаемыйДокумент)=Тип("ДокументСсылка.ПоступлениеТоваровУслуг") Тогда
тутПроОбъект_чтоЗаОбъект = "ПТУ";
тутПроОбъект_Номер = выгружаемыйДокумент.Номер;
тутПроОбъект_Дата = выгружаемыйДокумент.Дата;
...
иначеЕсли ТипЗнч(выгружаемыйТовар)=Тип("СправочникСсылка.Номенклатура") Тогда
тутПроОбъект_чтоЗаОбъект = "НМК";
тутПроОбъект_Код = выгружаемыйТовар.Код;
тутПроОбъект_Артикул = выгружаемыйТовар.Артикул;
......
//когда грузишь
Если тутПроОбъект_чтоЗаОбъект = "ПТУ" тогда
ПТУ = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
ПТУ.Номер = тутПроОбъект_Номер;
ПТУ.Дата = тутПроОбъект_Дата;
.....
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот