Имя: Пароль:
1C
1С v8
Загрузить более 600 тысяч позиций в справочник номенклатуры в 1с
0 Shrek_yar
 
29.01.14
20:12
Добрый вечер, есть справочник номенклатуры в базе Access, надо раз в неделю загружать/обновлять записи по нему в 1С  базе, 1С на SQl, настроен РИБ с другими базами.
Как лучше сделать загрузку? будет 1С тормохить при загрузки >600 тыс позиций, и как потом обмен будет.
База УТ 11
1 Fuas4
 
29.01.14
20:14
Грузи пакетами. В обед и ночью
2 Shrek_yar
 
29.01.14
20:17
+100 хороший совет
3 Shrek_yar
 
29.01.14
20:18
Просто хотелось какой нибудь более красивый способ
4 jsmith82
 
29.01.14
20:18
я 100 тыс. гружу где-то минут 15
это 9 мс на позицию
5 jsmith82
 
29.01.14
20:18
600 тыс это 1,5 часа
грузи в воскресенье
6 jsmith82
 
29.01.14
20:19
более красивый способ это репликация
7 Shrek_yar
 
29.01.14
20:20
(6)ясно, спасибо, сейчас пробую.
Главное на сколько файл обмена будет тяжелый после такого
8 jsmith82
 
29.01.14
20:22
(7) 100 мегабайт будет, наверно
9 Eugeneer
 
29.01.14
20:25
красивый способ это не грузить в 1с вообще ничего, и получать в 1С запросами к внешнему источнику.
10 jsmith82
 
29.01.14
20:28
через какого провайдера?
11 jsmith82
 
29.01.14
20:31
>>не грузить в 1с вообще ничего, и получать в 1С запросами к внешнему источнику
ну дык хрен он там что в 1с загрузит, кроме как через внешний источник
это же Access
12 МишельЛагранж
 
29.01.14
20:32
(4) чем грузишь?
(0) ну и грузите, сначала все, потом - что только отличается.
А файлик с номенклатурой не сбросите?
Или могу за вменяемые деньги сделать загрузку из текста в 1С. Или откуда там у вас...
13 Aprobator
 
29.01.14
20:38
Каждый раз по 600 000 обновлять? Нафиг так издеваться то?
14 Shrek_yar
 
29.01.14
20:41
(13)потом обновлять конечно
15 Shrek_yar
 
29.01.14
20:43
(11)типо того грузить хочу

СтрокаПодключения  =   "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Файл + ";""";
    Connection = Новый COMОбъект("ADODB.Connection");
16 GANR
 
29.01.14
20:43
(0) Если коротко - нужно сделать некий способ, который позволит грузить только изменения, а не весь список махом, а уж как такое сделать - вам должно быть виднее.
17 МишельЛагранж
 
29.01.14
20:44
(15) ну так файликом поделитесь?
а то тестировать загрузку надо...
18 ILM
 
гуру
29.01.14
20:46
Цель уже спросили?
19 Shrek_yar
 
29.01.14
20:46
(17) о_О ???
для теста может мне скинуть [email protected], файлик для служебного пользования.
20 Shrek_yar
 
29.01.14
20:48
(18)Какая цель бывает????
Представь есть две базы, одна на Access, другая в 1С.
На Access эталон справочника номенклатуры, надо их синхронизировать раз в неделю.
21 thezos
 
29.01.14
20:54
Предлагаю полностью отказаться от аксеса и весь учет вести в 1С. Либо настроить прямую интеграцию, а то через файлики уже как то совсем мохнато..
22 Snovy
 
29.01.14
20:55
600 тыс. позиций? mdb-файл? уж больно корпоративный справочник материалов РН напоминает. Если это так, то в Вашу базу нужно грузить только коды КСМ SAP, больше ничего не нужно...
23 Snovy
 
29.01.14
20:57
(22)+ А если раз в неделю, то скорее всего так - потому что в РН справочник обновляется раз в неделю :)
24 ILM
 
гуру
29.01.14
21:03
Что прямо все 600 тысяч постоянно нужны или конструкторы понты кидают?
25 Aprobator
 
29.01.14
21:03
(14) не поверю, что столько элементов номенклатуры каждый раз меняется. Запили в аксессе контрольку изменения позиции номенклатуры.
26 ILM
 
гуру
29.01.14
21:06
Максимум видел 40 тыс. Торговля радиодеталями.
27 sapphire
 
30.01.14
00:03
(0) Завязать надо со спайсами и менять архитектуру решения вцелом.
28 sapphire
 
30.01.14
00:06
Таблицы Access перевести на SQL, вкючить для них CDT,
переносить измененные.
29 zladenuw
 
30.01.14
00:06
(28) опередил блин.
30 sapphire
 
30.01.14
00:07
(29) Да?
31 sapphire
 
30.01.14
00:09
(29) он может получать файло ацессовское из внешнего источника, тогда, при реплике в скулевую базу определять, что изменялось. Не, там есть тонкости.

Я так понимаю, чувак связался с Philip Morris...
там вся табачка и Nestle
32 sapphire
 
30.01.14
00:10
Из транскорпараций, только оне сидят на акцессе
33 zladenuw
 
30.01.14
00:11
(31) так можно скулем хранимкой проверять на изменение. пусть лучше sql делает,а в 1с подсовывает таблицу то что надо изменить. не ?
34 sapphire
 
30.01.14
00:12
(33) Можно, но это вельми криво
35 zladenuw
 
30.01.14
00:13
(34) ну так послали с 1с прочитать файл. скл грузанул, сравнил и выплинул таблицу изменений. не ?

ну а как тогда ?

ну тогда в другой 1с хранить то что было. и грузить туда.а потом в робочию заливать только изменения
36 zladenuw
 
30.01.14
00:14
а у нас другая шняга. нужно хранить все акции по авто. таблица уже 1,5 ляма записей и растет. так как надо при заезде авто проверять или нет акций по нем :(
37 sapphire
 
30.01.14
00:15
(33) Грубо, надо знать структуру каталога в Access, если там элементы сериализованы не абы как, то через преобразование ключа в UID 1C можно получить классический XML справочника и грузить его, например через SELECT-EXCEPT.
Ну или сделать вьюхой
38 sapphire
 
30.01.14
00:16
(36) 1,5 ляма записей это фигня, поверь. Даже для 77 :)
39 zladenuw
 
30.01.14
00:17
(37) так если структура не меняется и есть сериализация то надо попотеть. за то потом будет летать.
SELECT-EXCEPT это через что ?
40 sapphire
 
30.01.14
00:23
(39)
SELECT 1 [Ключ Записи]
EXCEPT
SELECT 1 [Ключ Записи]
41 sapphire
 
30.01.14
00:24
(39) EXCEPT - обратная операция UNION, дословно, "ИСКЛЮЧАЯ"
42 zladenuw
 
30.01.14
00:25
(40) то через ADODB.Connection ?
43 sapphire
 
30.01.14
00:27
(39) EXCEPT - разность множеств, т.е
если мы говорим, что для коллекции однотипных полей {F},
SELECT {F} FROM [Подмножество А]
EXCEPT
SELECT {F} FROM [Подмножество Б]

вернет все записи {F} из [Подмножество А], которых нет в [Подмножестве Б]
44 sapphire
 
30.01.14
00:28
(42) ???
ADO DB работает через драйвер, собсно, все что работает через дрова ODBC, работает с нативным диалектом.
45 sapphire
 
30.01.14
00:29
- ушло спать -
46 zladenuw
 
30.01.14
00:30
спасибо за разжёвывание
47 echo77
 
30.01.14
07:26
Доплить бд в аксесс - добавить регистрацию изменений. Загружать только изменения
Мы у себя так сдлали на фокспро
48 Balabass
 
30.01.14
07:33
Отказатся от  1с и вести весь учет в аксессе предлагали?
49 strange2007
 
30.01.14
07:39
Автор, если всё таки надумаешь большие объёмы таскать в 1С и надо, что бы всё работало круглые сутки 7 дней в неделю, то поделюсь личным опытом:
- Ни какого кома или оле извне!
- Загружать транзакционно, с паузами хотя бы пару секунд. Да, дольше, но ни кто не заметит даже на тормозном оборудовании при максимальной загрузке пользователями.
- Можно грузить на другой комп, который будет подчиненным сегментом и средствами обмена потом передавать в общую базу. Т.о. на загрузке будет висеть служебный комп, а обмен более гибок к производительности. Хотя тут много своих подводных камней
50 dk
 
30.01.14
07:41
(43) except сравнивает по списку полей? или по одному ключевому?
51 МишельЛагранж
 
02.02.14
11:43
Что-то не в ту сторону уехало все.
А 1С потянет столько? Прикидывали? Или дата-центр будете покупать?
(38) с 7.7 не сравнивай, 8-ка в этом плане - два шага назад.
52 Ярус
 
02.02.14
12:10
через Адо запросом тянуть + в аксессе дабавить таб изменений, чтобы грузить только измененные. первая загрузка будет минут 60-90 и то в основном на всякие приблуды типа приЗаписи, передзаписью в 1с большая часть времени уйдет