Импорт из Excel

  • Автор темы roddik
  • Дата начала
R

roddik

#1
Привет! Нужно стандартизировать накладные, которые приходят на мыло в xls-е, и ввести их базу. Вопрос в том, как это правильно реализовать, создать новый документ было бы наверное неправильно, хотелось бы добавить кнопочку, которая бы вызывала формочку, в формочке выбирался бы экселевский файл, данные с него как-то обрабатывались бы и открывалась формочка создания новой накладной, с уже вбитыми данными, каким-то образом распарсенные из файла, чтобы далее проверить правильность разбора и подтвердить-провести. Как можно это сделать? Спасибо! ЗЫ: в 1с я новичек
 

gorlanovmax

Well-known member
19.06.2008
286
0
#2
Если Вы новичек, то за это лучше не хвататься. Много нюансов
 

vbs

Well-known member
18.02.2007
1 708
1
#3
проблем-то с импортом глобальных нет. Остается только сесть и сделать. Но по моему опыту, во внешних файлах чаще всего прибывают приходные-расходные накладные или их аналоги. Тогда первый вопрос - как привязать товар к уже имеющемуся справочнику (поиск по наименованию вряд ли сработает корректно). Да и вообще, нюансов много, как сообщил предыдущий оратор, но все они легко обходятся (к примеру, в дробных числах почти наверняка придется при чтении менять формат, иначе число получится обрезанным и т.п.).
PS. А новичок в 1С все же должен учиться при задании вопроса конкретизировать задачу, хотя бы платформу указать - высший пилотаж ?
 
R

roddik

#4
да, да, приходные-расходные-налоговые накладные и счета-фактуры надо тянуть, хотя, думаю, это мне по силам, я только с 1с недавно познакомился, есть кое-какой опыт в вба, и более-менее солидный в пхп/перле, сорри, что не указал версию (она 7.7), тогда еще не знал, что есть отличия в языке... в общем, спасибо за ответ, будем работать:)
 

vbs

Well-known member
18.02.2007
1 708
1
#5
Справишься, и уже можешь не считать себя совсем новичком
 
R

roddik

#6
В продолжение... Дали несколько примеров входных файлов, сразу поубавилось оптимизма :rolleyes: В общем, они все разного типа, то есть могут быть в нескольких приходных накладных в разных ячейках данные, может быть вообще разное количество ячеек (бух-дизайн :rolleyes: ), может быть несколько данных (например, номер и дата) как в одной, так и в нескольких ячейках. Теперь вот сижу думаю как это все правильно вынуть, выдумал два варианта: 1. парсить ячейки в коде программы, тут все более-менее ясно, кроме такой детали: некоторые умельцы шлют в накладной данные в надписях, а не в ячейках, то есть вариант "посмотреть тип, потом слева прочесть значение" вроде как отпадает - надписи разбросаны в произвольном порядке, брать что-ли расположение на экране как-то и смотреть самую подходящую надпись, ну это тот еще геммор 2. отрыть буху окошко с экселевской страницей, чтобы он по порядку клацнул мышкой по нужным местам (скажем сделать окошечко с "нажмите на номер документа" и т.д.), это вроде будет попроще, но вот каким образом это делать, как подгружать нужные реквизиты при выборе типа документа и т.д., что-то совсем смутно ... что бы вы посоветовали делать?
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#8
roddik
Мне тоже кажется - нада нах посылать с такими запросами! или пусть все типизируют или проще пускай ручками все забивают в програму
 

vitfil

IT-интегратор
02.04.2004
2 062
0
#9
roddik
Не пытайтесь автоматизировать хаос. Получите автоматизированный хаос! Для начала наведите порядок - типизируйте файлы или заставьте сразу вносить в 1С.
ОФФ: был недавно в Литве - вот где раздолье для автоматизаторов! Типизация электронных документов сделана на уровне государства, т.е. принят стандарт, в котором описаны все варианты электронных документов.
 
R

roddik

#10
Спасибо за советы) объяснился с начальством, сделал в экселе шаблоны документов, так что сейчас все на порядок проще. Появилось несколько вопросов: 1. Хочу в результате импорта данных открывать формочку создания нужного документа с заполненными полями, чтобы можно было просмотреть и нажать на ок, если все нормально. Как открывать форму создания документа и в нее вписывать данные? 2. Как вообще правильно писать под 1с? Я привык к тому, что есть IDE, натворил чето, нажал f5 - попробовал, как работает, в крайнем случае запустил из браузера... пока только знаю, что запустить можно, если сохранить конфигурацию, открыть 1с и там нажать куда надо :)
 

vbs

Well-known member
18.02.2007
1 708
1
#11
После считывания данных из EXCEL можно сохранить их в таблице значений, которая располагается на экране. Если последует подтверждение, сформировать табличную часть (скорее всего, в шапке трудно ошибиться) методом ЗагрузитьТабличнуюЧасть(ТЗ)
 
R

roddik

#12
Все-таки намереваюсь попытаться полностью заполнять формочку, нашел функцию открытьформу, она принимает объект вида документ, сейчас думаю, в документе нужны ссылки на обьекты из справочника, при поиске по наименованию в справочнике, как достать ссылку на найденный обьект? или просто присвоить аттрибуту документа обьект справочника - и сработает?
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#13
Все-таки намереваюсь попытаться полностью заполнять формочку, нашел функцию открытьформу, она принимает объект вида документ, сейчас думаю, в документе нужны ссылки на обьекты из справочника, при поиске по наименованию в справочнике, как достать ссылку на найденный обьект? или просто присвоить аттрибуту документа обьект справочника - и сработает?
а в документе там и так все типы обычно проставлены. Если нет - нужно будет назначать тип. Просто создавай объект - документ, заполняй его данными, а уже после этого если нужно показывай юзеру. Хотя если много документов - я бы не показывал. Пусть потом сами заходят и смотрят и правят что надо.
 
R

roddik

#14
Ок, а когда я заполняю документ, если некоторый реквизит есть в номенклатуре, к примеру, поставщик, я ведь должен ему скормить объект соответствующего типа, а не строку с именем, правильно? Так вот, если тот нужный объект ищется в справочнике, как из объекта справочника вытянуть ссылку на последний найденный? Сейчас прописал Спр.ПолучитьЭлемент(), кз, получится ли...
 

vbs

Well-known member
18.02.2007
1 708
1
#15
СПР.НайтиПонаименованию() или СПР.НайтиПоРеквизиту() спасет отца русской демократии
 
C

Christine

#16
У меня данная задача реализована через внешнюю обработку.
Пользователь на закладке настроек указывает колонки листа excel - "товар", "количество", "цена", "сумма", а так же с какой строки начинается табличная часть с товарами и какой заканчивается.
Далее лист обрабатывается и данные выводятся в ТЗ этой же обработки, где колонки "товар" две - одна - товар из файла, а другая - товар из справочника. Товар ищется по наименованию - если не найден, то колонка "товар из справочника" остается пустой и ее нужно заполнить вручную.
То есть пользователю нужно вручную установить соответствие номенклатуры. (У нас один и тот же товар покупается у разных поставщиков и привести его наименование к единообразию не предоставляется возможным).
Затем по кнопке данные переносятся в документ.