Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Обмен данными посредством dbf

Обмен данными посредством dbf
Я
   Wefast
 
29.10.18 - 08:48
Есть некая база(не обязательно 1С)

Есть новая самописная база на 1С

Нужно сделать периодическую загрузку из dbf файла.

Например загружать документ. В ней есть номенклатура.

Если этой номенклатуры нет в базе, то создавать ее

Т.е. нужно вместе с документом выгружать и справочную информацию в нем целиком.

Как это вообще сделать удобнее и правильнее?

Dbf же по сути таблица.

Делать Миллион колонок?
Документ | Номенклатура| ТипНоменклатуры | КодНоменклатуры | ВидТипаНоменклатуры | Контрагент | ИНН Контрагента | ТипКонтрагета и .т.д

Т.е. в одну строку все все данные. Или может как то еще?

Или лучше получить выгрузку в отдельный файл по каждому справочнику.
Считывать их все и при обходе файла с документами обращаться к файлам выгрузки справочника?
 
 
   lodger
 
1 - 29.10.18 - 08:52
(0) чем вам json или xml не мил?
   Cool_Profi
 
2 - 29.10.18 - 09:03
(1) Зачем использовать это убожество?
(0)
Сделай несколько файлов. Ибо контрагент один, а документов много.. Так же и с номенклатурой.
   Остап Сулейманович
 
3 - 29.10.18 - 09:13
(0) Я бы отказался от ДБФ. Оно обалденно подходит для плоских таблиц. Но для сложных структур народ уже давно придумал ХМЛ.
   Cool_Profi
 
4 - 29.10.18 - 09:14
(3) ХМЛ не нужен. Для таких задач - это убожество
   Garikk
 
5 - 29.10.18 - 09:15
по нынешним временам, это dbf убожество
хотя на больших объемах данных он незаменим
   Остап Сулейманович
 
6 - 29.10.18 - 09:23
(4) (5) Не нужно меряться 22 см.
Каждый из ДБФ vs ХМЛ имеет свою сферу применения.
Например ДБФ отлично индексируется в отличии от ХМЛ. Но ДБФ абсолютно не подходит для хранения сложных структур в одном месте. Там для этого - для каждой сущности своя таблица, реляционные зависимости, ссылочная целостность, триггеры...
Короче для передачи сложных структур данных лучше ХМЛ (и потомок его JSON) пока ничего не придумали.
   Cool_Profi
 
7 - 29.10.18 - 09:24
(6) А зачем сложные структуры хранить в одном месте? 3НФ уже отменили?
   Остап Сулейманович
 
8 - 29.10.18 - 09:26
(7) Например для передачи целостного пакета в случае обмена.
ЗЫ. Что есть ЗНФ?
   Остап Сулейманович
 
9 - 29.10.18 - 09:27
+ (8) 3-я нормальная форма?
   Cool_Profi
 
10 - 29.10.18 - 09:36
(8) Обмен должен быть транзакционным. Или всё, или ничего.
(9) да
 
 Рекламное место пустует
   Wefast
 
11 - 29.10.18 - 15:29
Как с помощью xml сделать то же самое в ручную не представляю.
И какая при этому должна быть структура файла.

Пока я склоняюсь к конвертации и написанию правил, если у клиента будет 1С база источник. С ней я более менее знаком.

Потому как в требованиях что дошли до меня указано именно использование DBF
   kubik_live
 
12 - 29.10.18 - 16:05
(0) 6 лет назад разработал обмен между нетиповыми и типовыми базами, используя DBF.
Основное преимущество: скорость обмена, просмотр и анализ файлов обмена.
   Garykom
 
13 - 29.10.18 - 16:13
(0) Тебя кто заставляет в один dbf все пихать?

Сделай несколько файлов разной структуры, по сути передаешь часть базы (как оно в 1С 77 когда то хранилось).

Т.е. реквизиты шапки/справочника одни, табличные части другие dbf файлики.
   kubik_live
 
14 - 29.10.18 - 16:14
(13) +1
   ZDenis
 
15 - 29.10.18 - 16:16
(13) тогда не понятно что передается и где это искать.Хорошо если всегда одно и тоже, тогда - да, а если структура всегда разная?
   Garykom
 
16 - 29.10.18 - 16:18
Но я бы извратился похуже (но только для прикола чтобы соблюсти "обмен через DBF"):

Засовывал бы стандартный XML (да еще и сжатый в ZIP) в строки в DBF (учитывая ограничения на длину строковых полей в 254 с разбивкой по полям;)
   kubik_live
 
17 - 29.10.18 - 16:19
(15) Создать файл типа ддэшника (хочешь тоже дбф), описывющего перечень выгружаемых данных
   Garykom
 
18 - 29.10.18 - 16:20
(16)+ Кстати там еще фишка в dbf что в строках можно хранить и непечатные символы (любые коды аскии) но вот работать с ними большинством штатных методов не выйдет и придется свой драйвер dbf ваять или foxpro досовский брать ))
   kubik_live
 
19 - 29.10.18 - 16:21
+(17) перечень = состав файлов
   VladZ
 
20 - 29.10.18 - 16:21
(0) Почему именно dbf?
   opus70
 
21 - 29.10.18 - 16:21
лучше разбирайся с xml или json
сам когда то был ярым стороником dbf но сложные структуры однозначно проще через xml или json
   VladZ
 
22 - 29.10.18 - 16:22
+20 Если в одном "пакете данных" нужно передавать разнородные данные - я бы использовал XML.
   Гад
 
23 - 29.10.18 - 16:27
я в тхт обмен делал
   Wefast
 
24 - 29.10.18 - 16:33
(20) такое требование заказчика
(17) Можно пример?
В одном файле я выгружаю документ
Номер документа | КодКонтрагента | КодНоменклатуры | Сумма
В другом файле я храню Контрагентов, а в третьем номенклатуру.

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

Правильно? Что за "файл типа ддэшника "?

(22) Как? Какова структура?
Вложенность "бесконечная"?
Т.е. если "Свернуть" по документу теги, то внутри будет вся нужная информация?
   Wefast
 
25 - 29.10.18 - 16:34
(24) А можно справочники сначала все загрузить. А потом документы. И в документе уже будет доступна вся информация из базы.
   Wefast
 
26 - 29.10.18 - 16:35
Т.к. база будет самописная, ее структура и количество метаданных не очень большое. Какая ни-будь номенклатура будет состоять из 2-3 реквизитов.
   kubik_live
 
27 - 29.10.18 - 16:52
(24)
Перенос данных из 1С 7.7 Камин-Общепит:
дбф - файл (состав данных: товары, рецептура, остатки товаров)

ISTOTAL    MODE    SUBMODE    DATA1    DATA2    DOCID    DOCTYPE    REFTYPE    TIMEUP    VERSION
0    1    0    01.10.2018    01.10.2018        Остатки4101            2.0.2.
0    1    0    01.10.2018    01.10.2018        Рецептура            2.0.2.
0    1    0    01.10.2018    01.10.2018            Товары        2.0.2.
1    0    0    01.10.2018    01.10.2018                11.10.18 11:00:53    2.0.2.


Список тем форума
Рекламное место пустует  Рекламное место пустует
2 + 2 = 3.9999999999999999999999999999999...
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует