Имя: Пароль:
1C
1С v8
8.2 Документ на 1 000 000 строк - можно?
,
0 RomaH
 
naïve
03.04.12
09:16
Гружу из екселя "классификатор"
похоже висит пока на записи документа в базу
1.5 гига памяти отъел

документ загружается раз в месяц
стоит ли делить его на части?
1 asady
 
03.04.12
09:17
(0) делить обязательно - за такой документ убивать надо
2 patapum
 
03.04.12
09:18
в 8.1 помнится было ограничение 99999 строк. в 8.2 не уверен...
3 Defender aka LINN
 
03.04.12
09:18
Макс. номер строки - 99999, ЕМНИП. Что символизирует.
4 golden-pack
 
03.04.12
09:19
Почему не РС ?
5 Balabass
 
03.04.12
09:19
ну и проведение документа - годами будет длиться
6 Ненавижу 1С
 
гуру
03.04.12
09:19
[_LineNo3361] [numeric](5, 0) NOT NULL
7 Астероид
 
03.04.12
09:20
да, не забудь его провести!
8 lxs
 
03.04.12
09:22
(0) Разрешаю. Потом расскажешь о том, как база раком встала.
9 RomaH
 
naïve
03.04.12
09:23
блин, т.е. даже 100 000 не влезет

обработка - там есть долговременные операции по обработке исходных данных

т.е. загрузил, сделал сопастовление (1-2 дня) - провел по РС


ок, буду думать
10 Ranger_83
 
03.04.12
09:23
Окончание нумерации строк в табличной части еще ничего не значит.В 7-ке помню после окончания нумерации ничего не мешало добавлять новую строку,просто счетчик строки не наращивается.Как в 8.2 не проверял
11 lxs
 
03.04.12
09:25
(10) че еще "хорошего" посоветуешь?
12 МихаилМ
 
03.04.12
09:25
(6)

там за главного
_KeyField 4 байта.
13 Толич
 
03.04.12
09:25
(0) А можно узнать, что конкретное находится в этих 1 000 000 строках?
14 patapum
 
03.04.12
09:27
и почему нельзя сделать 20 доков по 50000 строк? и так уже хрен документ выверишь...
15 lxs
 
03.04.12
09:27
(9) Что думать? Сделай регистр сведений, тебе же сказали. Неужели ты сам не представляешь последствий такой глупости, как заполнение тч миллионом строк? Для примера закинь в бухне в ручную операцию тысяч 200000 и запиши - результат будет меньшим из зол.
16 Ненавижу 1С
 
гуру
03.04.12
09:28
(12) это не отменяет (6)
17 МихаилМ
 
03.04.12
09:28
помнится кто-то проводил эксперимент

прервал загрузку строк в документ на > 3 000 000
18 Толич
 
03.04.12
09:30
По моему если нужен документ в 1 000 000 строк, тогда у кого то не корректно с реализацией хранения и обработкой данных.
19 lxs
 
03.04.12
09:31
(18) с ДНК некорректно скорее
20 Толич
 
03.04.12
09:32
(17) Это не возможно, т.к. максимальное количество строк табличной части в 8 ке у документов и справочников не более 99 999
21 Serg_1960
 
03.04.12
09:35
(19) ммм... скажу мягче: единственный документ, где может быть "много" строк - корректировка регистров (имхо). Остальное...ммм... недостатки методики :)
22 МихаилМ
 
03.04.12
09:36
(20)
ветку искать лень

не вижу техничекого ограничения внутренняя нумерация идет по _KeyField

не помню как нумеровались строчки больше 99999
23 RomaH
 
naïve
03.04.12
09:36
а как тогда реализовать

справочник полисов мед страхования, - ФИО, дата рождения, номер, серия, дата рождения, место работы, СМО

место работы и СМО надо сопастовлять (в файле - строка, - нужна ссылка на справочник) - 100 и 10 шт, соотвественно

.... по сути можно только таблицы сопастовления в документ писать, а сами строки - напрямую из файла писать при проведении в регистр?
24 RomaH
 
naïve
03.04.12
09:37
процесс вроде кончился - 2 метра в памяти, - но не отвечает теперь
25 lxs
 
03.04.12
09:38
(23) что тебе мешает заполнять периодический регистр сведений, объясни?
26 RomaH
 
naïve
03.04.12
09:38
(25) перед заполнение нужна ручная обработка
27 lxs
 
03.04.12
09:38
аналог - штатноое расписание - никаких документов, периодичность.
28 lxs
 
03.04.12
09:39
(26) ну и обрабатывай каждую строку, какие проблемы?
29 lxs
 
03.04.12
09:39
у регистра тоже есть менеджер и обработчики.
30 Толич
 
03.04.12
09:41
(23) У вас миллион полисов выдают за месяц?
31 lxs
 
03.04.12
09:41
Если мыслить твоей логикой, то весь кладр надо было разработчикам хирачить в документ, однако он почему-то пишется в РС напрямую.
32 RomaH
 
naïve
03.04.12
09:41
(30) не выдают - а действующих на область
33 RomaH
 
naïve
03.04.12
09:42
(31) ты КЛДАР вручную обрабатываешь?
34 lxs
 
03.04.12
09:42
(33) млять, какая разница, где обрабатывать?
35 Толич
 
03.04.12
09:42
(32) И вы таким образом обновляете информацию?
36 Толич
 
03.04.12
09:43
+35 По миллиону полисов?
А почему не загружать только изменившиеся?
37 lxs
 
03.04.12
09:43
вопрос в том, как хранить. Хранить лимон записей в документе - тупо и неоптимально.
38 AF
 
03.04.12
09:44
(0) А что, использовать справочник религия не позволяет? ))))
39 Fish
 
03.04.12
09:45
(37) А им думать не надо. Им грузить надо :)))
40 RomaH
 
naïve
03.04.12
09:46
допустим чисто РС - появляются поля внафиг не нужные - место работы строкой, и СМО строкой

загрузили - поставили активность - ложь

потом обработкой выбираем не активные записи и далаем сопоставление
а если ошиблись ...  

(36) - это задача номер ДВА - для начала надо первоначальные сведения загрузить
41 patapum
 
03.04.12
09:46
(23) пишешь необработанные записи в один регистр, обработанные в другой. обработал все - из регистра необработанных удалил. или в процессе
42 lxs
 
03.04.12
09:48
(40) Во-первых, от ошибок никто не застрахован. Во-вторых, чем тебе документ в этом случае поможет? не нашел сопоставления - запись деактивировал - все. Ошибочно сопоставить ты можешь и в регистре, и в документе - это сути не изменит.
43 lxs
 
03.04.12
09:49
(41) Да не надо этого делать. Есть понятие активности записи.
44 RomaH
 
naïve
03.04.12
09:49
(42) в документе я поменял и перепровел
а в регисре что бы поменять надо сначала как -то вычленить эти неправильные записи
45 lxs
 
03.04.12
09:50
блеать, в реистре ты одну запись "вычленил" и набором записал, а в документе "вычленил", а херанул проведение на полдня, повесив всю базу.
46 Толич
 
03.04.12
09:50
Да. Вам скорее всего необходимо писать в периодический регистр сведений с отслеживанием измененных данных.
Если памяти xml жрет, то в текстовик пихай перенос.
47 lxs
 
03.04.12
09:51
Так и скажи, что ты не знаешь как работать с набором записей.
48 alxxsssar
 
03.04.12
09:55
(47) да там и знать то нечего
49 lxs
 
03.04.12
09:57
(48) к чему написал?
50 alxxsssar
 
03.04.12
09:58
(49) к (47) про наборы записей
51 alxxsssar
 
03.04.12
09:58
+(50) там речь не про тебя, а про ТС
52 lxs
 
03.04.12
09:58
(50) просто так? отметиться?
53 alxxsssar
 
03.04.12
10:00
(52) ага. у меня обработка пашет, делать пока нечего))) Тут уже написали - регистр сведений и обновлять из файла сразу наборами
54 RomaH
 
naïve
03.04.12
10:01
ок
тогда как?

документ оставляем - как факт загрузки классификатора - и к нему же цепляем файл

ТЧ - сопоставление строки со ссылкой

сопоставили - "проводим" документ - грузим напрямую из файла в РС

если ошибка в сопастовлении или еще где - отмена проведения и заново

движения отображаем дин списком

ТЗ выдержит такой объем? (ну что бы визуализировать то что хотим загрузить) или лучше и не заморачиваться с визуализацией?

в движениях документа 1 000 000 - не страшно?
55 RomaH
 
naïve
03.04.12
10:02
т.е. практически тоже самое что сейчас, но без ТЧ
56 patapum
 
03.04.12
10:05
(54) такой объем не выдержит юзер, даже если выдержит ТЗ
вместо отмены проведения - можно просто напрямую с записями регистра работать. или тебе нравится делать охренительно большие операции с базой? тогда запасай бизнес-гель...
57 patapum
 
03.04.12
10:06
а юзеру надо показывать выборку с отборами какими-нибудь, что ли
58 RomaH
 
naïve
03.04.12
10:07
(56) что значит напрямую с записями РС?
59 lxs
 
03.04.12
10:07
1. Запретить операцию проведения документа - только запись, ибо в данном случае проведение не требуется логически.
2. Что за сопоставление?
60 RomaH
 
naïve
03.04.12
10:10
(59) блин, ты я вижу часто грузил номрники ОМС
сопоставление строковых переменных ссылочным из нашей базу нужно передд загрузкой

сначала соспоставили, потом записали в базу для работы
как я буду соспоставлять не записанные данные? или обозвать операцию проведения другм словом - запись после сопоставления?
61 Толич
 
03.04.12
10:11
Смысла в документе нет. Кроме того, что можно сделать документ не проведенным и отменить движения регистров.
ТЗ выдержит.))
62 lxs
 
03.04.12
10:11
(60) причем здесь я, епт? у меня покруче задачки были с загрузкой данных, и мне ни разу не пришло в голову использовать документ для хранения миллиона записей.
63 RomaH
 
naïve
03.04.12
10:12
(61) смысл как раз есть - объект для отбора "набора записей" РС - загрузка классификатора как бы каждый месяц и хотелось бы видеть факт присутсвия классификатора актуального
64 Толич
 
03.04.12
10:13
(60) Б.я, да ты же считаешь строчку проверь есть ли такие данные и все ли совпадает, если что то не совпадает, то записываем в регистр сведения, иначе не добавляем информацию в БД.
65 alxxsssar
 
03.04.12
10:13
Я в независимый регистр сведений обработкой формирую наборы записей и гружу их в регистр. Документ мне не нужен. Зачем в базе плодить огроменные документы и тем самым увеличивать ее размер?
66 Irbis
 
03.04.12
10:14
если набирать или править вручную по 1 с на строку то 1 000 000 / 3600 / 24 = 11,5 суток понадобится. Ишак, который начнет это делать сдохнет раньше чем закончит.
67 lxs
 
03.04.12
10:15
+(62)
У тебя есть исходный файл с данными. Пишешь обработчик, который его парсит. В регистре рисуешь измерения по образу и подобию ФизикСсылка, ФизикСтрока, СМОСсылка, СМОСтрока и т.д.
Если ФизикСсылка при обработке строки файла не Пустая(), значит делаешь запись активной (или ставишь любой другой признак того, что данная запись корректна).
68 lxs
 
03.04.12
10:17
+(67) Поскольку на физика в случае замены или утери полиса будет приходиться уже не одна запись, то регистр нужен периодический, периодичности в 1 день хватит за глаза.
69 rsv
 
03.04.12
10:18
(0) Если этот документ ничего не двигает то почему нет .
70 lxs
 
03.04.12
10:18
+(68) Я имел дело кстати с ОМС. И эта хня реализована в ЗУПе. Не знаю, правда, довели 1С до ума эту подсистему, я ее допиливал сам. И именно на регистрах. Никаких документов.
71 lxs
 
03.04.12
10:19
(69) Обоснуй логически целесообразность хранения в документе миллиона записей, а насчет "двигает" почитай тему сначала, и не пиши хню всякую.
72 lxs
 
03.04.12
10:21
+(70) у меня объемы были поменьше, 600-750 тысяч.
73 rsv
 
03.04.12
10:25
+(71) Почитал. И ваш  пост тоже

"Что думать? Сделай регистр сведений, тебе же сказали. Неужели ты сам не представляешь последствий такой глупости, как заполнение тч миллионом строк? Для примера закинь в бухне в ручную операцию тысяч 200000 и запиши - результат будет меньшим из зол. "  

Ну т.е. вы ставите в один ряд бух. операцию с ее хвостом записи в N число таблиц тоталов и корреспонденций и просто запись двух таблиц документа :)
74 rsv
 
03.04.12
10:26
+(73) Скорее всего чисто ограничение длины поля как в (6)
75 rsv
 
03.04.12
10:29
И примешивать методологическую составляющую тут не нужно. Просто "документ с миллионом" это одно , а "он у меня еще проводится и двигает х...у тучу еще чего то " это другое.
76 lxs
 
03.04.12
10:30
(73) Пример для получения представления о скорости прямой записи в БД. Ты хочешь возразить? Это раз. Ограничение на количество строк в табличной части тебя не волнует? Это два. "Просто "документ с миллионом" это одно , а "он у меня еще проводится и двигает х...у тучу еще чего то " это другое." - я как-то до этого не додумался..
77 lxs
 
03.04.12
10:33
Короче, вся суть в том, что для реализации данной задачи использовать документ с МНОГОСТРОЧНОЙ тч - нецелесообразно. Здесь уместно использовать только справочники и регистры - все. Все остальное будет неоптимальным.
78 Jaffar
 
03.04.12
12:38
Лет 10 назад участвовал в проекте на 7.7 для телефонной компании (когда на Украине ввели тарификацию городских разговоров). Их оборудование выдавало Эксель-файлы с информацией обо всех звонках за месяц. Нужно было загрузить их в 1С, привязать к абонентам и протарифицировать с учетом вида абонента (физ.лицо/юр.лицо) и льгот (спаренный телефон, инвалид, и т.п.).
В качестве реализации рассматривали и тестировали 3 варианта.
1) Вариант загрузить в 1 документ все звонки по 1 номеру за месяц (как это делали в предыдущем проекте по междугородним звонкам) отпал сразу - слишком много документов, и слишком много ссылок на них (1sjournal, 1scrcdoc, dhYYY, dtYYY).
2) Вариант загрузить в 1 документ все звонки за один день по всем номерам тоже отпал - как раз из-за ограничения на количество строк (9999).
3) Остановились на варианте загрузки в 1 документ всех звонков за один день по "номерной группе" - диапазону номеров с ХХХ-ХХ-00 по ХХХ-ХХ-99.

Затем по данным в документах рассчитывались движения по взаиморасчетам, но печать детализации звонков выполнялась по документам.

При реализации на 8.2 рассматривали бы вариант 2, хотя отборы по РС могли бы перевесить.
79 vde69
 
03.04.12
12:46
(78) да в любом случае дробить нужно. В твоем случае можно было-бы дробить по часам, например 1 документ = 1час, или по городам, или по первым 3м цифрам.

и искать проще и дополнительная аналитика.

для документов необходимо старатся поддерживать проведение в режиме "сейчас", психика человека реальность воспринимает примерно 5-10сек, значит любой документ дожен проводится не более этого времени. иначе для пользователя начало проведения лежит в "прошлом" и он это воспринимает как "очень долго", реально документов более 1000 строк не должно быть (хотя конечно есть исключения, например "комплектация")
80 Jaffar
 
03.04.12
12:58
(79) там городов нет - собраны все городские и междугородние звонки абонентов маленькой телефонной компании (порядка 10.000 номеров).
дробить по дням и первым 5 цифрам оказалось самым эффективным (и искать проще потом) - минимум служебных ссылок на документы, база росла менее критично.