|
Обмен данными посредством dbf | ☑ | ||
---|---|---|---|---|
0
Wefast
29.10.18
✎
08:48
|
Есть некая база(не обязательно 1С)
Есть новая самописная база на 1С Нужно сделать периодическую загрузку из dbf файла. Например загружать документ. В ней есть номенклатура. Если этой номенклатуры нет в базе, то создавать ее Т.е. нужно вместе с документом выгружать и справочную информацию в нем целиком. Как это вообще сделать удобнее и правильнее? Dbf же по сути таблица. Делать Миллион колонок? Документ | Номенклатура| ТипНоменклатуры | КодНоменклатуры | ВидТипаНоменклатуры | Контрагент | ИНН Контрагента | ТипКонтрагета и .т.д Т.е. в одну строку все все данные. Или может как то еще? Или лучше получить выгрузку в отдельный файл по каждому справочнику. Считывать их все и при обходе файла с документами обращаться к файлам выгрузки справочника? |
|||
1
lodger
29.10.18
✎
08:52
|
(0) чем вам json или xml не мил?
|
|||
2
Cool_Profi
29.10.18
✎
09:03
|
(1) Зачем использовать это убожество?
(0) Сделай несколько файлов. Ибо контрагент один, а документов много.. Так же и с номенклатурой. |
|||
3
Остап Сулейманович
29.10.18
✎
09:13
|
(0) Я бы отказался от ДБФ. Оно обалденно подходит для плоских таблиц. Но для сложных структур народ уже давно придумал ХМЛ.
|
|||
4
Cool_Profi
29.10.18
✎
09:14
|
(3) ХМЛ не нужен. Для таких задач - это убожество
|
|||
5
Garikk
29.10.18
✎
09:15
|
по нынешним временам, это dbf убожество
хотя на больших объемах данных он незаменим |
|||
6
Остап Сулейманович
29.10.18
✎
09:23
|
(4) (5) Не нужно меряться 22 см.
Каждый из ДБФ vs ХМЛ имеет свою сферу применения. Например ДБФ отлично индексируется в отличии от ХМЛ. Но ДБФ абсолютно не подходит для хранения сложных структур в одном месте. Там для этого - для каждой сущности своя таблица, реляционные зависимости, ссылочная целостность, триггеры... Короче для передачи сложных структур данных лучше ХМЛ (и потомок его JSON) пока ничего не придумали. |
|||
7
Cool_Profi
29.10.18
✎
09:24
|
(6) А зачем сложные структуры хранить в одном месте? 3НФ уже отменили?
|
|||
8
Остап Сулейманович
29.10.18
✎
09:26
|
(7) Например для передачи целостного пакета в случае обмена.
ЗЫ. Что есть ЗНФ? |
|||
9
Остап Сулейманович
29.10.18
✎
09:27
|
+ (8) 3-я нормальная форма?
|
|||
10
Cool_Profi
29.10.18
✎
09:36
|
(8) Обмен должен быть транзакционным. Или всё, или ничего.
(9) да |
|||
11
Wefast
29.10.18
✎
15:29
|
Как с помощью xml сделать то же самое в ручную не представляю.
И какая при этому должна быть структура файла. Пока я склоняюсь к конвертации и написанию правил, если у клиента будет 1С база источник. С ней я более менее знаком. Потому как в требованиях что дошли до меня указано именно использование DBF |
|||
12
kubik_live
29.10.18
✎
16:05
|
(0) 6 лет назад разработал обмен между нетиповыми и типовыми базами, используя DBF.
Основное преимущество: скорость обмена, просмотр и анализ файлов обмена. |
|||
13
Garykom
гуру
29.10.18
✎
16:13
|
(0) Тебя кто заставляет в один dbf все пихать?
Сделай несколько файлов разной структуры, по сути передаешь часть базы (как оно в 1С 77 когда то хранилось). Т.е. реквизиты шапки/справочника одни, табличные части другие dbf файлики. |
|||
14
kubik_live
29.10.18
✎
16:14
|
(13) +1
|
|||
15
ZDenis
29.10.18
✎
16:16
|
(13) тогда не понятно что передается и где это искать.Хорошо если всегда одно и тоже, тогда - да, а если структура всегда разная?
|
|||
16
Garykom
гуру
29.10.18
✎
16:18
|
Но я бы извратился похуже (но только для прикола чтобы соблюсти "обмен через DBF"):
Засовывал бы стандартный XML (да еще и сжатый в ZIP) в строки в DBF (учитывая ограничения на длину строковых полей в 254 с разбивкой по полям;) |
|||
17
kubik_live
29.10.18
✎
16:19
|
(15) Создать файл типа ддэшника (хочешь тоже дбф), описывющего перечень выгружаемых данных
|
|||
18
Garykom
гуру
29.10.18
✎
16:20
|
(16)+ Кстати там еще фишка в dbf что в строках можно хранить и непечатные символы (любые коды аскии) но вот работать с ними большинством штатных методов не выйдет и придется свой драйвер dbf ваять или foxpro досовский брать ))
|
|||
19
kubik_live
29.10.18
✎
16:21
|
+(17) перечень = состав файлов
|
|||
20
VladZ
29.10.18
✎
16:21
|
(0) Почему именно dbf?
|
|||
21
opus70
29.10.18
✎
16:21
|
лучше разбирайся с xml или json
сам когда то был ярым стороником dbf но сложные структуры однозначно проще через xml или json |
|||
22
VladZ
29.10.18
✎
16:22
|
+20 Если в одном "пакете данных" нужно передавать разнородные данные - я бы использовал XML.
|
|||
23
Гад
29.10.18
✎
16:27
|
я в тхт обмен делал
|
|||
24
Wefast
29.10.18
✎
16:33
|
(20) такое требование заказчика
(17) Можно пример? В одном файле я выгружаю документ Номер документа | КодКонтрагента | КодНоменклатуры | Сумма В другом файле я храню Контрагентов, а в третьем номенклатуру. Первым делом обхожу файл с документами. Если по коду контрагента не нахожу контрагента, обращаюсь к файлу контрагентов. И там ищу строку по коду и создаю нового. Если в контрагенте есть другие реквезиты ссылочного типа, то это другой файл. И так добиваюсь создания документа. Правильно? Что за "файл типа ддэшника "? (22) Как? Какова структура? Вложенность "бесконечная"? Т.е. если "Свернуть" по документу теги, то внутри будет вся нужная информация? |
|||
25
Wefast
29.10.18
✎
16:34
|
(24) А можно справочники сначала все загрузить. А потом документы. И в документе уже будет доступна вся информация из базы.
|
|||
26
Wefast
29.10.18
✎
16:35
|
Т.к. база будет самописная, ее структура и количество метаданных не очень большое. Какая ни-будь номенклатура будет состоять из 2-3 реквизитов.
|
|||
27
kubik_live
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. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |