|
Структура листов Excel - как хранить в 1С | ☑ | ||
---|---|---|---|---|
0
Genayo
23.10.12
✎
11:32
|
Есть задача ежемесячно импортировать в 1С данные из примерно 50-70 файлов Excel. Причем состав колонок и положение нужных строк исходных файлов может меняться без предварительного уведомления. Возникла мысль каким-либо образом хранить структуру этих файлов, а при импорте получать отчет об изменившихся файлах.
Подскажите, как бы вы подошли к решению данной задачи? |
|||
1
dk
23.10.12
✎
11:38
|
«автоматизируя хаос – получите автоматизированный хаос»
|
|||
2
shamashs
23.10.12
✎
11:39
|
Хранить структуру колонок и если кто то из поставщиков поменяет формат своего прайсы нужно в автоматическом виде отправлять сообщение об ошибке программисту.
Проверять на заполненность данных в ключевых полях как цена. Четко ставте вопрос. |
|||
3
dk
23.10.12
✎
11:39
|
какая-то формализация нужна обязательно
|
|||
4
ProProg
23.10.12
✎
11:40
|
(0) готовая система для 1Ски http://subsystems.ru/catalog/27/595/
|
|||
5
shamashs
23.10.12
✎
11:40
|
Допустим делаете загрузку из excel есть ключевые поля Цена + Напименование если в один момент при загрузке в одном из этих полей нет данных значит, у нас проблемы и мы отрабатываем исключение.
Саму структуру я думаю нет смысла хранить. |
|||
6
ProProg
23.10.12
✎
11:41
|
(0) логирование импорта.
|
|||
7
ProProg
23.10.12
✎
11:42
|
(5) если не хранить настройки как ты их автоматом то грузить будешь?) По сабжу кстати полно не 1Сных решений где все уже давно сделано. У нас автопрайс есть например. КОторый я вот в 1Ску перевожу.
|
|||
8
shamashs
23.10.12
✎
11:44
|
(7) Универсальные решение лишние бывают очень часто, допустим я занимаюсь поставкой оборудования для сельхоз техники поставщиков запчастей куча, у каждого колхоз в прайсах и необходим нормальный подчиненный регистр, нормальный отчет по этому регистру как минимум, а загрузить из excel я смогу из zronet.ru
|
|||
9
shamashs
23.10.12
✎
11:47
|
(7) Никому из клиентов не нужно 500 кнопок, максимум что можно заставить сделать это выбрать файл где лежит файл.
|
|||
10
shamashs
23.10.12
✎
11:47
|
*Выбрать каталог.
|
|||
11
Genayo
23.10.12
✎
11:48
|
Еслиб это были прайсы - вопросов бы не было. Это отчеты примерна десятка различных отделов и служб колонок на 20-30 на тысячи строк, из которых нужно грузить дай бог процентов 10. Поменять бизнес-процессы не предлагать, я там не штатный программист.
|
|||
12
shamashs
23.10.12
✎
11:49
|
(11) А полуавтоматический вариант не предлагать?
|
|||
13
ProProg
23.10.12
✎
11:50
|
(9) какие то фантастическии истории. Если у вас есть откуда залить структуризированно все - не надо всех под свою гребенку ставить. Не у всех ваша отрасль и не у всех заливка с zronet.ru
|
|||
14
Genayo
23.10.12
✎
11:50
|
(2) Колонок недостаточно, нужны еще конкретные диапазоны строк с единым заголовком.
|
|||
15
zladenuw
23.10.12
✎
11:51
|
если в екселе только ТЗ. и 1 строка наименование колонок.
Читаем 1 строку в ТЗ нашу. в тз колонки (Имяколонки,использовать,типприемника) типприемника - можешь придумать все что угодно. аля алгоритм поиска. и потом процедуру ВсеЗабацать :) ну и самое главное хранить эту настройку можно как угодно. как то так. |
|||
16
ProProg
23.10.12
✎
11:51
|
(11) ну тогда нечего и предлагать. если ты нештатный - то нам и подавно вообще пофигу.
|
|||
17
mikecool
23.10.12
✎
11:51
|
(7) я хранил настройки, автоматом подгружал по каждому клиенту, никаких проблем
|
|||
18
Genayo
23.10.12
✎
11:51
|
(11) В смысле грузить, а если не загрузится - то значит файл изменился? Так оно и сейчас сделано, хочется упростить себе работу...
|
|||
19
shamashs
23.10.12
✎
11:51
|
(14) Конкретно какая ситуация, есть человек ему приходят отчеты, он может форму этих отчетов утвердить? Может заставить отправлять в бланке который он будет всем отправлять?
|
|||
20
ProProg
23.10.12
✎
11:52
|
Ща сек. может подойдет. на ИС есть публикашка
http://infostart.ru/public/156276/ Наверное твой вариант. |
|||
21
zladenuw
23.10.12
✎
11:53
|
(20) прикольно
|
|||
22
Genayo
23.10.12
✎
11:53
|
(19) Люди, составляющие эти отчеты, вообще могут не знать, что они еще куда-то там грузятся...
|
|||
23
shamashs
23.10.12
✎
11:53
|
(20) Это надо ему свои алгоритмы под правила переписать
|
|||
24
ProProg
23.10.12
✎
11:53
|
(19) а вдруг они отчеты эти получают от конкурентов путем промышленного шпионажа. хотят грузить и анализировать.
|
|||
25
shamashs
23.10.12
✎
11:55
|
Уникальный идентификатор нужен какой то. Если сам специалист не сможет сделать именованую ячейку Форма 1, то только по (15)
|
|||
26
shamashs
23.10.12
✎
11:57
|
(25) Можно брать диагональный срез данных по листу, чтобы туда попадали ячейки с названием колонок. и шапки с подвалом. Не меняющихся время от времени.
|
|||
27
Genayo
23.10.12
✎
11:57
|
(20)Это конечно интересно, но процедуры загрузки уже написаны. Пока задача отслеживать изменения исходных файлов, с 0 всю загрузку переписывать бюджет никто не выделит.
|
|||
28
ProProg
23.10.12
✎
11:59
|
(27) тогда попытка исключение. Неудачная загрузка - лог. выдача юзеру для перенастройки и повторной загрузки.
|
|||
29
Genayo
23.10.12
✎
12:03
|
(28) Перенастройку пользователь делать не будет, будет программист (т.е. я) изменять алгоритмы загрузки. И потом, данные могут быть удачно загружены, но совсем не те, которые нужны. А это выяснится только уже после загрузки...
|
|||
30
ProProg
23.10.12
✎
12:07
|
(29) ну чо сказать....ничо.
|
|||
31
Genayo
23.10.12
✎
12:20
|
Ну ладно, спасибо за советы, походу буду изобретать свой велосипед...
|
|||
32
mikecool
23.10.12
✎
12:23
|
есть у экселя функция Find - решает большинство проблем с определением - толи, что надо в этом файле
|
|||
33
ProProg
23.10.12
✎
12:25
|
у нас тоже порядка 80 прайсов в автозапчстях. и у очень многих надо загружать не все. а например у конкретных производителей из прайса конкретного контрагента.
Поэтому все очень просто - условие на колонку и пипец. Включения/исключения. Либо если что то лишнее - ну и уй с ним. в отчетах то все равно выбирают что надо. |
|||
34
ProProg
23.10.12
✎
12:26
|
Те даже не диапазоны строк, а справочник условий. в котором указано по какому фильтру конкретного партнера и конкретных условий должен быть импорт. Ничего сложного.
|
|||
35
ProProg
23.10.12
✎
12:27
|
Нашел по колонке нужного производителя - грузим строку, какой то левый - наух.
|
|||
36
ProProg
23.10.12
✎
12:28
|
Все что тебе нужно сделать справочники настроек, условий, фильтров. которые будут задавать юзеры.
|
|||
37
Genayo
23.10.12
✎
12:39
|
(32) Да, это мысль, спасибо...
|
|||
38
shamashs
23.10.12
✎
12:53
|
(36) не будут пользователи этим заниматься.
|
|||
39
ProProg
23.10.12
✎
12:54
|
(38) будут. еще как будут. вопрос в том насколько 1Сник умеет доводить до умов то что это не работа программиста.
|
|||
40
ProProg
23.10.12
✎
12:55
|
Я бы вообще послал бы нафиг если бы мне кто то сказал в обязанности сидеть прайсы заливать.
|
|||
41
ProProg
23.10.12
✎
12:56
|
Либо пусть девочку ищут которая будет пользоваться инструментами. Или это не работа а черт знает что.
Разве что за 5 тыщ евра в месяц согласился бы. |
|||
42
vmv
23.10.12
✎
13:01
|
(0) я решал подобную задачу на РС, т.е. регистры хранили данные
1. РССоставЭксель Измерения -ВариантФайла: Справочник вариантов(Отчет такой-то, Отчет сякой-то) -НомерЛиста-лист колонка значение -НомерКолонки Ресурсы - НаименованиеКолонки Регистр периодический и как видино, позволяет собрать макеты листов в СКД 2. РСДанныеЭксель Измерения -ВариантФайла: Справочник вариантов(Отчет такой-то, Отчет сякой-то) -НомерЛиста-лист колонка значение -НомерКолонки Ресурсы - ЗначениеЯчейки вообщем понятно, далее тупое СКД по этим регистрам строит аналоги эксель со всеми няхами компоновки |
|||
43
shamashs
23.10.12
✎
13:02
|
(41) Перебирая резюме из 8 девушек, только 2 знали как делать автофильтр в екселе, и только одна из них работал в 1с 10.2, как она сказала. Лично у меня нет времени по пол года выбирать и общаться с девушками мне надо, что работа была сделана, поэтому и автоматизируется все.
|
|||
44
ProProg
23.10.12
✎
13:04
|
(43) надо делать программы чтобы даже обезъянка смогла работать. У нас вот берут таких. учат и нормально сидят работают.
|
|||
45
ProProg
23.10.12
✎
13:05
|
ПОэтому на ткую работу надо брать не парясь что кто умеет. а учить. Если бы все умные были наверное хрен бы кто согласился.
|
|||
46
Genayo
23.10.12
✎
13:10
|
(42) Тоже вариант, спасибо. От примера как "тупое СКД по этим регистрам строит аналоги эксель" не отказался бы, в программной работе с СКД пока не очень силен...
|
|||
47
shamashs
23.10.12
✎
13:11
|
(44) Именно поэтому и надо делать без автофильтров и настроек, а чтобы кнопку 1 нажала,
(45) Научишь и фьють ушла на повышение или зарплату уже давай сопоставимую с зам. глав буха ей давай. Вы Как маленький не понимаете таких вещей. У нас настоящая компьютерная грамотность стоит зарплаты в 25-30т.р не в москве. Такие деньги не всякий глав. бух получает. Соответственно, что вы ожидаете от девочки за 12-15т.р? |
|||
48
vmv
23.10.12
✎
13:15
|
(47) ожидание классическое "я бы вдул"
|
|||
49
Genayo
23.10.12
✎
13:16
|
(44) Если будет поставлена задача и выделен бюджет сделать программу для обезьяны - это будет сделано. Пока же мне платят не почасовую, а фиксированную сумму за фиксированную работу. И в моих интересах минимизировать свои трудозатраты.
|
|||
50
Genayo
23.10.12
✎
13:18
|
(47) Таки людей надо учить, но это нифига не задача программистов...
|
|||
51
vmv
23.10.12
✎
13:18
|
(49) т.е. ты лодырь и дармоед, да?
|
|||
52
shamashs
23.10.12
✎
13:22
|
(50) Программистов...
я прямо фигею, а кто кроме нас будет учить?) Дяда вася петров?) Обучальщиков никто не нанимает учит либо старший сотрудник, либо человек который знает систему не снимайте с себя ответственности. |
|||
53
Genayo
23.10.12
✎
13:24
|
Яж грю, я не в штате. По договору разрабатываю ПО только если будет ТЗ и выделен бюджет.
|
|||
54
Genayo
23.10.12
✎
13:25
|
Дело программистов - писать хорошие программы и инструкции к ним. Обучение - вопрос кадровых служб.
|
|||
55
ProProg
23.10.12
✎
13:25
|
Если 1Сник хочет избавится от работы которую навешают на него - то лучше все таки ему учить)
|
|||
56
ProProg
23.10.12
✎
13:25
|
особенно своим программам
|
|||
57
ProProg
23.10.12
✎
13:26
|
(54) фирмы в которых есть такие кадровые службы. заморачиваются вопросом чтобы 1Сник делал не свою работу.
|
|||
58
ProProg
23.10.12
✎
13:26
|
не делал не вою работу.
|
|||
59
Genayo
23.10.12
✎
13:31
|
(55) Т.е учить пользователей работе с тестовыми редакторами, архиваторами и т.п. - работа программиста? Нет, спасибо. Мое дело написать понятную инструкцию (если таковой нет). А что потом будут пользователи с этой инструкцией делать - не моя забота.
|
|||
60
ProProg
23.10.12
✎
13:44
|
(59) епт. а что по твоему ПО? программное обеспечение. а программист кто ? Сотрудник отдела ИТ.
|
|||
61
ProProg
23.10.12
✎
13:45
|
или по твоему бухи и кадровички должны выполнять работу программиста и учить юзеров 1Ске?
|
|||
62
Genayo
23.10.12
✎
13:54
|
(61) Они должны либо подбирать людей со знанием необходимых программ, либо посылать их на соответствующие курсы с последующим тестированием, от результатов которого зависит их з/п.
Когда ко мне подходили пользователи с просьбой рассказать, как работать в экселе, в лучшем случае я предлагал им почитать соответствующую литературу. И те, кто поумнее - таки читали... |
|||
63
Genayo
23.10.12
✎
13:55
|
(60) А что, сотрудник отдела ИТ должен в совершенстве владеть всем ПО, используемым на предприятии? Мда...
|
|||
64
ProProg
23.10.12
✎
13:58
|
(63) В данном случае обсуждается конкретная задача связанная тестно с 1С. не надо придумывать отмазки лишь бы ничего не делать. Это и без того известно что 1Сники все тупые, ленивые и жадные.
|
|||
65
Genayo
23.10.12
✎
14:05
|
(64) Разработал ПО, написал к нему инструкцию, инструкцию отдал пользователям. Какое еще обучение нужно то???
|
|||
66
HeroShima
23.10.12
✎
14:21
|
О! Есть идея...
|
|||
67
Genayo
23.10.12
✎
14:25
|
(66) Ну так не молчи, поделись...
|
|||
68
HeroShima
23.10.12
✎
22:06
|
(67) просто в тему заглянул и по моей частной задачке осенило вдруг. Эврика, типа
|
|||
69
vmv
23.10.12
✎
22:30
|
(68) не будь как все "тупым и жадным", будь лучьше
|
|||
70
zladenuw
23.10.12
✎
23:56
|
(69) это явно не про 1есовцев.
|
|||
71
HeroShima
24.10.12
✎
00:11
|
:) Вот, послушайте мою историю.
Из набора имеющихся данных нужно подготовить отчет в Экселе. Отчёт формируется на основе шаблона, подготавливаемого так же в виде экселевской книжки. Имеющаяся в наличии, более-менее работающая библиотечка читает и пишет из/в *.xls практически всё, но, не читает формулы, хотя умеет их писать. Времени на поиск замены библиотеке нет, с СОМ изначально решено не связываться. Решение: добавить формулам в шаблоне маркер, например "!" перед "=" и читать их как обычние текстовые значения ячеек, но на основе уникальности префикса "!=" обрабатывать как формулы. И, да: это всё не в 1С. |
|||
72
HeroShima
31.10.12
✎
02:42
|
Мы славно поработали и славно отдохнём!)
def corrfunc(f, r, bsr, ontail=False, first=0, last=0): rws = re.compile('\s') rcell = re.compile('\$?[A-Za-z]+\d+') rparts = re.compile('(\$?[A-Za-z]+)(\d+)') def process(m): v = m.group() ci, ri = rparts.match(v).groups() if ontail: s, e = m.start(), m.end() if f[e:][:1] == ':': return '%s%s' % (ci, int(ri) - bsr + first) elif f[:s][-1:] == ':': return '%s%s' % (ci, int(ri) - bsr + last) return '%s%s' % (ci, bsr - int(ri) + r) f = rws.sub('', f) return rcell.sub(process, f) def process_row_info(i, proc=None, ontail=False): if i in ts.rowinfo_map: ws.row(self.m_cri).height = ts.rowinfo_map[i].height for c in xrange(dcols): pv = None if proc: pv = proc(i, c) # returns None if not modified if not pv: pv = ts.cell(i, c).value #print ts.cell(i, c).ctype if unicode(pv)[:2] == '!=': if ontail: pv = xlwt.Formula(corrfunc(pv[2:], self.m_cri + 1, 3, ontail, self.m_bdstart + 1, self.m_bdend + 1)) else: pv = xlwt.Formula(corrfunc(pv[2:], self.m_cri + 1, 3)) ws.write(self.m_cri, c, pv, copy_style(ts, i, c)) |
|||
73
Genayo
31.10.12
✎
07:41
|
Это на чем код?
|
|||
74
ДенисЧ
31.10.12
✎
07:43
|
(73) это не код, это копрокод :-)
на каком нибудь хаскеле... |
|||
75
HeroShima
31.10.12
✎
10:17
|
(74) Это питон и код вполне нормальный
|
|||
76
Genayo
31.10.12
✎
10:25
|
(75)А... Ну слава богу, а то я уж испугался, что это Perl :))
|
|||
77
HeroShima
31.10.12
✎
10:26
|
(76) неужели похож?)
|
|||
78
Genayo
31.10.12
✎
10:29
|
Не... Perl ищщо непонятней... Первый раз код на питоне вижу :)
|
|||
79
HeroShima
31.10.12
✎
10:37
|
То же самое на любом другом наречье было бы как минимум раза в два объёмнее.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |