|
Загрузка документа и txt | ☑ | ||
---|---|---|---|---|
0
ПростоМишаня
18.09.19
✎
21:05
|
Делаю внешнюю обработку которая на входе получает файл .txt а на выходе должен получиться документ со значениями из файла. Первая строка файла это тип документа "РеализацияТоваровИУслуг". Последующие строчки файла это реквизиты этого типа документа.
&НаКлиенте Процедура ЗагрузитьОбъект(Команда) ЗагрузитьОбъектНаСервере(); КонецПроцедуры &НаСервере Процедура ЗагрузитьОбъектНаСервере() ТекстовыйФайл = Новый ТекстовыйДокумент; ТекстовыйФайл.Прочитать("C:\1с\Primer.txt"); // Определяем какой тип документа Имясправочника = ТекстовыйФайл.ПолучитьСтроку(1); //Будет мешаться в дальйшем при чтении реквизитов Текстовыйфайл.УдалитьСтроку(1); //создаем документ Док = Документы.Имясправочника.СоздатьДокумент(); //Построчно переносим информацию из файла в новый документ Для каждого Реквизит Из Док.Метаданные().Реквизиты Цикл Док[Реквизит.Имя] = Текстовыйфайл.ПолучитьСтроку(Реквизит); КонецЦикла; КонецПроцедуры В 1С я полный ламер, сильно не ругайти, подскажите что не так я делаю. Почему код не работает? |
|||
1
ДенисЧ
18.09.19
✎
21:20
|
А кто сказал, что он не работает? Он создаёт документ...
Просто не записывает его... |
|||
2
ПростоМишаня
18.09.19
✎
21:25
|
Конкретно в таком виде выдает ошибку Поле объекта не обнаружено (Имясправочника). Могли бы пожалуйста посмотреть код и сказать в чем моя ошибка, скорее всего это синтаксическая ошибка.
|
|||
3
MakaMaka
18.09.19
✎
21:53
|
Вот за это:
Док = Документы.Имясправочника.СоздатьДокумент(); Тебе надо по рукам линейкой ребром, ногой в печень и с клавы в голову прописать. Потом добить монитором! У тебя нет в метаданных документа такого, как ты создать хочешь |
|||
4
ПростоМишаня
18.09.19
✎
21:57
|
Я хочу создать, просто заранее не известно к какому типу документов мы будем обрашаться, но первая строка файла должна нам это сообщить.
То есть вопрос такой!! Как из типа Строка получить тип СсылкаДокумент? |
|||
5
MakaMaka
18.09.19
✎
21:59
|
Документы[Имясправочника]СоздатьДокумент() ногой тебе в яйцо и с кулака в печень
|
|||
6
MakaMaka
18.09.19
✎
21:59
|
точку поставь там еще двоечник. ногой мне в печень
|
|||
7
Franchiser
гуру
18.09.19
✎
22:02
|
Документы[ИмяСправочника].Создатьдокумент()
|
|||
8
MakaMaka
18.09.19
✎
22:03
|
(7) Так точно, ногой в печень ему.
|
|||
9
mikecool
18.09.19
✎
22:04
|
а еще всем ногой в печень - откуда на сервере возьмется файл для загрузки?
|
|||
10
Franchiser
гуру
18.09.19
✎
22:05
|
(9) пусть положит
|
|||
11
ПростоМишаня
18.09.19
✎
22:06
|
Спасибо, теперь вопрос номер два "несоответствие типов (параметр номер '1')"
Вот в этом месте кода Для каждого Реквизит Из Док.Метаданные().Реквизиты Цикл Док[Реквизит.Имя] = Текстовыйфайл.ПолучитьСтроку(Реквизит); КонецЦикла; P.S. Если бы меня всего лишь били в печень за каждый ответ на мой вопрос, я был бы самым умным человеком) |
|||
12
mikecool
18.09.19
✎
22:07
|
Текстовыйфайл.ПолучитьСтроку(Реквизит)
вот здесь неверно |
|||
13
ПростоМишаня
18.09.19
✎
22:11
|
А как тут поступить? Сделать счетчик какой-то внутри цикла или как обратиться по другому к строкам записанным в файле?
|
|||
14
MakaMaka
18.09.19
✎
22:13
|
(9) Сначала сынок должен научиться обращаться к разным документам. Потом мы ему через тычки и зуботычины будем пояснять за клиентсерверную архитектуру, что то он написал &НаСервере еще не дает гарантии УФ на 100%. Он мог просто нахвататься верхов в ютюбе ногой ему под задницу
|
|||
15
MakaMaka
18.09.19
✎
22:14
|
Док[Реквизит.Имя] ? ЧЭЗД? Расшифровать?
ЧТО ЭТО ЗА ДЕРЬМО? |
|||
16
MakaMaka
18.09.19
✎
22:15
|
Зачем ты реквизитам разных типов присваешь значения строка? что у тебя в голове парень? ты здоров?
|
|||
17
MakaMaka
18.09.19
✎
22:17
|
Что ты хочешь нам сказать? Что ты самый умный? это не так, ты это и сам знаешь.
Для каждого Реквизит Из Док.Метаданные().Реквизиты Цикл Док[Реквизит.Имя] = Текстовыйфайл.ПолучитьСтроку(Реквизит); КонецЦикла; Зачем ты это породил? Кто ты? с какой планеты? Ты точно человек? ориентации нормальной? Вижу что нет. К сожалению. |
|||
18
mistеr
18.09.19
✎
22:30
|
(16) (17) Ты сам-то поостынь. Что с тобой, девушка бросила? Личные проблемы не стоит выплескивать на окружающих.
|
|||
19
ПростоМишаня
18.09.19
✎
22:35
|
Я же говорю что второй день занимаюсь программированием на 1С и прошу помощи, подскажите как синтаксически грамотно сделать эту часть кода:
Нужно приравнять значения данных из файла значениям реквизитов нового документа. Заранее извиняюсь и спасибо. |
|||
20
Kashey
18.09.19
✎
22:42
|
(19) Разберись для начала с тем, что передаётся в метод ПолучитьСтроку() и что он возвращает. Синтакс-помощник почитай что-ли.
|
|||
21
ПростоМишаня
18.09.19
✎
22:43
|
Мне нужно получать строки по порядку сверху вниз все подряд
|
|||
22
MakaMaka
18.09.19
✎
22:45
|
(18) Это хорошо, когда мужчине есть что сказать мужчине. Я отвечу: с девушкой все ок. Закаливаю парня в троллическом стиле мисты. Тут иначе не выжить. Одни умники, ногой им в печень. )))))
(19) Парень. Тут на форуме одни троли, кодить из них умеют 10-15 человек. Остальные притворяются. Смотри, если у тебя есть организация то твой код: Документ.Организация = "Рога и копыта" Не пройдет. ты должен будешь написать минимум: Документ.Организация = Справочники.Организации.НайтиПонаименованию("Рога и копыта") тем самым получив ссылку на элемент справочника, и в реквизит документа подставишь найденную ссылку ногой тебе в печень )))))) А вообще ты этот файл где взял? Почему грузишь TXT? Обычно грузят табличные документы типа XLSX и ему подобные? Ты давай колись почему текстовый документ в документ грузишь ? |
|||
23
Сияющий в темноте
18.09.19
✎
22:48
|
так в цикле счетчик строк,и это,метаданные тоже можно пл счетчику получать.
и,как реквизиты в файл записывались? |
|||
24
ПростоМишаня
18.09.19
✎
22:50
|
У меня задание такое в учебных целях. Задача называется перегрузка документа. Во внешней обработке осуществляется выгрузка в TXT файл и загрузка из него же. Причем выгрузка должна быть ИСЧЕРПЫВАЮЩЕЙ вот я не уверен что моя выгрузка достаточно исчерпывающая, но это сейчас не первостепеная задача.
|
|||
25
MakaMaka
18.09.19
✎
22:53
|
Выложи сюда свой ТХТ файл, прям скопируй сюда этого монстрика своего. яви миру свою мощь!
|
|||
26
ПростоМишаня
18.09.19
✎
22:59
|
РеализацияТоваровУслуг
Товары Конфетпром ООО Основной склад Нет Кафе Сказка Основной договор Автоматически руб. 1 1 Да Нет 62.01 62.02 Счет покупателю КП00-000010 от 08.02.2016 12:00:01 40702810000000000007, ПАО СБЕРБАНК 34 000 <Не указан> Нет Абрамов Геннадий Сергеевич Ларионова Светлана Викторовна 01.01.0001 0:00:00 Товарная накладная Нет Нет Нет Нет |
|||
27
ПростоМишаня
18.09.19
✎
23:00
|
Я специально убрал названия реквизитов чтобы не мучиться с разделителями.
|
|||
28
ПростоМишаня
18.09.19
✎
23:02
|
РеализацияТоваровУслуг
ВидОперации = Товары Организация = Конфетпром ООО Склад = Основной склад ПодразделениеОрганизации = ДеятельностьНаПатенте = Нет Патент = Контрагент = Кафе Сказка ДоговорКонтрагента = Основной договор СпособЗачетаАвансов = Автоматически ТипЦен = ВалютаДокумента = руб. КурсВзаиморасчетов = 1 КратностьВзаиморасчетов = 1 СуммаВключаетНДС = Да УдалитьУчитыватьНДС = Нет СчетУчетаРасчетовСКонтрагентом = 62.01 СчетУчетаРасчетовПоАвансам = 62.02 СчетУчетаРасчетовПоТаре = УдалитьСчетУчетаДоходовПоТаре = УдалитьСчетУчетаРасходовПоТаре = УдалитьСтатьяДоходовИРасходовПоТаре = СчетНаОплатуПокупателю = Счет покупателю КП00-000010 от 08.02.2016 12:00:01 Грузоотправитель = Грузополучатель = АдресДоставки = БанковскийСчетОрганизации = 40702810000000000007, ПАО СБЕРБАНК СуммаДокумента = 34 000 Ответственный = <Не указан> Комментарий = РучнаяКорректировка = Нет Руководитель = Абрамов Геннадий Сергеевич ГлавныйБухгалтер = Ларионова Светлана Викторовна ОтпускПроизвел = УдалитьЗаРуководителяПоПриказу = УдалитьЗаГлавногоБухгалтераПоПриказу = ЗаЗаказчикаНаОсновании = ДоверенностьНомер = ДоверенностьДата = 01.01.0001 0:00:00 ДоверенностьВыдана = ДоверенностьЧерезКого = ВидЭлектронногоДокумента = Товарная накладная ДокументБезНДС = Нет ЗаРуководителяНаОсновании = ЗаГлавногоБухгалтераНаОсновании = Перевозчик = МаркаАвтомобиля = РегистрационныйЗнакАвтомобиля = Водитель = ВодительскоеУдостоверение = КраткоеНаименованиеГруза = СопроводительныеДокументы = ДеятельностьНаТорговомСборе = Нет ОтветственныйЗаОформление = СведенияОТранспортировкеИГрузе = ПеревозкаАвтотранспортом = Нет ЕстьМаркируемаяПродукцияГИСМ = Нет |
|||
29
ПростоМишаня
18.09.19
✎
23:02
|
А так вообще могу и так
|
|||
30
Сияющий в темноте
18.09.19
✎
23:14
|
короче,забудь про txt и учи сразу html.
если у тебя хоть в одном реквизите попадется перевод строки,то вся твоя выгрузка-пушистому домашнему животному под хвост. в файл нужно не только наименования реквизитов писать,но и их тип и самому приводить этот тип в строку. |
|||
31
MakaMaka
18.09.19
✎
23:24
|
Мой тебе совет, смотри как твое чудо говнокодится:
Ты узнать что такое рекурсия, потом что такое xml; Потом ты выгружаешь в xml тот кал, что ты выложил; Потом ты грузишь его обратно в базу. Но это ты быстро не сделаешь. Поэтому бедная твоя печень )))))) ногой тебе в нее. |
|||
32
MakaMaka
18.09.19
✎
23:26
|
||||
33
MakaMaka
18.09.19
✎
23:27
|
||||
34
MakaMaka
18.09.19
✎
23:28
|
(30) это вообще не та опера. Ты ему еще предложи через библиотеку на С++ распарсить файл.
|
|||
35
ПростоМишаня
18.09.19
✎
23:54
|
По условию задачи TXT) я бы с удовольствием использовал xml)
|
|||
36
MakaMaka
19.09.19
✎
00:00
|
Тогда сделай все реквизиты в документе текстовые и заполняй через попытку. И да, сделай строки неограниченной длины, пусть прикол оценят.
|
|||
37
catena
19.09.19
✎
05:34
|
(26)А если какой-то из реквизитов будет составного типа?
А как ты определяешь, в каком реквизите справочника нужно искать "40702810000000000007"? А почему ты уверен, что порядок реквизитов в файле и в твоей выборке будет одинаковым? |
|||
38
hhhh
19.09.19
✎
05:57
|
(37) Он же только что выгрузил.конечно у него порядок будет одинаковый.это ведь тест.
|
|||
39
catena
19.09.19
✎
06:03
|
(38)Это тестовое задание, не факт, смотря как принимать будут. Но при наличии слов "исчерпывающая выгрузка/загрузка", я бы придралась к отсутствию реквизитов и типов.
|
|||
40
тарам пам пам
19.09.19
✎
08:27
|
(39) ну тут не только типы - ссылки-то тоже надо в виде GUIDов выгружать, а не в виде текстового представления.
|
|||
41
catena
19.09.19
✎
08:37
|
(40)Ну, это смотря в какую базу грузить будут. Если просто в идентичную, то гуид мало поможет.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |