Имя: Пароль:
1C
1С v8
Вывод документа в .txt
0 Tea Drinker
 
05.08.19
17:07
Доброго времени суток
Есть задачка, одним пунктом из которой является написать код для формы внешней обработки. При помощи этого кода должен производиться поиск документа по названию (Пример названия документа: "Поступление наличных ТД00-000004 от 09.03.2013 12:00:02"), а также вывестись в txt-файл содержащаяся в нём информация (количество информации должно быть исчерпывающим, чтобы потом из txt-файла, с этой самой информацией, можно было создать такой же документ в базе данных). Прошу помочь универсализировать алгоритм так, чтобы с его помощью можно было бы вывести в txt-файл любой документ из базы данных.
И, если не трудно, в кратце объяснить как можно создать документ из txt-файла, содержащего всю информацию о документе, спасибо.
1 azernot
 
05.08.19
17:11
Вношу рац.предложение пусть это будет не txt, а xml
2 azernot
 
05.08.19
17:12
Ну и если предложение будет поддержано, порекомендую вбить в гугл "выгрузка и загрузка данных xml ", найти стандартную обработку с ИТС и не пудрить мозги сообществу.
3 Fish
 
05.08.19
17:20
(0) А что уже пробовал, что не получается? Или ты хочешь готовое решение, да ещё и с обучением?
4 Fish
 
05.08.19
17:21
" в кратце объяснить как можно создать документ из txt-файла, содержащего всю информацию о документе" - Хотя, если вкратце, то читаешь файл, и по содержащейся в нём информации создаёшь документ. Как-то так.
5 dka80
 
05.08.19
17:30
Где-то тут совсем недавно была похожая тема...
6 ptiz
 
05.08.19
17:34
(0) Такое и "не вкратце" не объяснить.
7 Скиурус
 
05.08.19
17:37
(1) xml - это вообще-то частный случай txt.
8 Tea Drinker
 
05.08.19
18:30
(1) да я бы и рад, но суть задачи в том, что нельзя использовать форматы XML и JSON
9 Tea Drinker
 
05.08.19
18:41
(3) Я пытался таким образом: "Выборка = ЖурналыДокументов.Документы.Выбрать()", а затем прогонял Выборку по циклу с выводом в файл, получалось вывести только названия документа как на примере в первом сообщении. Также пытался выводить по отдельности информацию, содержащуюся в документе, обращаясь к ней как "Выборка.Дата", "Выборка.Организация" и т.д. И да, в принципе я могу выводить таким образом документы, но тогда вся универсализация алгоритма вообще исчезает. Если вдруг документ будет выглядеть по другому, то придётся переписывать код. Собственно в этом и проблема
10 ДенисЧ
 
05.08.19
18:57
(9) Метаданные? не, никогда не слышал...
11 Tea Drinker
 
05.08.19
19:20
(10) Слышал и пробовал, но совершенно не понял как через них работать. Расскажи как можно использовать Метаданные в данном случае
12 shuhard
 
05.08.19
19:22
(11) что-то мешает использовать поиск и мозг ?
13 ДенисЧ
 
05.08.19
19:26
(11) "Слышал и пробовал, но совершенно не понял как через них работать"

Для тебя есть более интуитивный интерфейс. очень рекомендую опробовать.

http://www.sibelectrod.ru/upload/iblock/b01/b01be6ce290f642707a5a506a8efe659.jpeg
14 Tea Drinker
 
05.08.19
19:26
(12) Что-то мешает писать по делу?
Я бы не задавал здесь вопросов, если бы гугл мне на них ответил
15 shuhard
 
05.08.19
19:30
(14) т.е. мозга нет и поиск не освоил,
топик закрыт
16 Garykom
 
гуру
05.08.19
19:30
(0) Для начала как искать среди любых видов документов собираешься?

Через запросы с объединить по метаданным или через полнотекстовый поиск?
17 Garykom
 
гуру
05.08.19
19:34
Парсить входящее название документа (чтобы понять какой вид метаданных) не советую, хрень выйдет
18 Tea Drinker
 
05.08.19
19:39
(16) Сейчас мыслей о написании поиска нет, т.к. не могу решить проблему с универсализацией. Твоё предложение как-то связано с методом поиска?
19 Garykom
 
гуру
05.08.19
20:04
(18) Да.

Выводить (строку внутрь txt) любой документ "универсально" легко через ЗаписатьJSON()
"Сериализация прикладных типов 1С:Предприятия в JSON"
20 Garykom
 
гуру
05.08.19
20:06
Но имхо задачка пока для твоего уровня сложновато, хотя правильное и удачное решение (самостоятельное а не слизанное) даст просто овердофига опыта.
21 azernot
 
06.08.19
10:38
(8) Компьютером-то можно пользоваться?
Если это учебная задача - то учится надо самостоятельно.

Для начала нужно в принципе научиться записывать и читать текстовые файлы. Хотя бы просто записать "Hello world!" в файл. Потом нужно прочитать этот файл построчно и хотя бы просто вывести сообщение в стиле "Строка файла №1: Hello world!".

Далее, нужно научиться писать и читать строку с разделителями, выбери себе любой разделитель, например "&" (разделитель может быть любой, главное уметь различать разделитель и такой же символ в каких-то строковых данных), запиши любой массив (например месяцы года, числа от 1 до 10 и т.п.) в строку с разделителями, чтобы получилось "Январь&Февраль&Март&Апрель..."
Потом научись разбирать эту строку по отдельным значениям, чтобы получать по отдельности "Январь", "Февраль", "Март" и т.п.

Потом придумай такую структуру, в которую сможешь укладывать объекты 1С. Каждый объект состоит из стандартных реквизитов (GUID, ИмяПредопределенного, Наименование, Код, Родитель, Владелец, Номер, Дата и т.п.), пользовательских реквизитов, табличных частей и т.п. При этом сами реквизиты могут быть в свою очередь объектами. Нужно научиться записывать объекты так, чтобы разделять реквизиты базовых типов (булево, строка, число, дата и т.п.) и реквизиты ссылочного типа. Объекты ссылочного типа идентифицировать по GUID (Уникальный идентификатор). Заранее подскажу, что нужно организовать структуру файла так, чтобы не допустить записывания одного объекта дважды. Т.е. отдельно записываются, например,  справочники, отдельно документы, регистры. И в момент разбора какого-то реквизита документа, если это справочник, искать его данные в отдельном месте файла.

Ну а далее уже дело техники организовать выборку объектов, перебрать их метаданные, определить тип/вид каждого реквизита, записать его в своей структуре, а потом считать его.
22 Salimbek
 
06.08.19
10:56
(21) Я бы добавил немного пунктов, типа - как хранить Ссылки, например, на Номенклатуру, через ГУИД-ы, Артикула или по Коду или Наименованию? Еще есть такая штука в некоторых документах, как прицепленное Хранилище - тоже весьма весело обрабатывать. Ну и для (0) надо еще понимать, что в базе, из которой выгружаешь документ, может быть совсем другая структура данных, чем в той базе, куда будешь загружать.
23 catena
 
06.08.19
11:18
(18)Нет тут универсализации. Для подобной задачи умные люди уже несколько лет пишут отдельную КД, а вы хотите без практики наскоком решить. Для того, чтобы что-то выгрузить и потом такое же что-то по выгруженным данным создать, нужно сначала описать правила выгрузки/загрузки для каждого объекта.

И да, точь-в-точь тема была уже этим летом. Тестовое задание такое, чтоли?
24 catena
 
06.08.19
11:21
25 dka80
 
06.08.19
11:35
(24) говорю же был сарайчик (с) особенности национальной (то ли рыбалки, то ли охоты)
Закон Брукера: Даже маленькая практика стоит большой теории.