|
v7: Загрузка Excel файла в 1С 7.7. | ☑ | ||
---|---|---|---|---|
0
Amazing
15.08.22
✎
23:43
|
Здравствуйте!
Есть список в Excel: Ф.И.О, сумма начисления, сумма подоходного налога. Как сделать так, чтобы списки могли загружаться из Excel в виде бухгалтерской справки в 1С? Наверное нужно ещё добавить в список табельный номер? Для этого нужна обработка? |
|||
1
Злопчинский
16.08.22
✎
00:24
|
1. нужна обработка
2. нужен некий ИД, который прочитали из Экселя и по этому ИДу нашли нужный объект в базе. ИД - д.б. уникальным в пределах базы. Что это будет за ИД - зависит от конфигурации, скорее всего у вас речь идет о 1С Бухгалтерия 7.7 3. Будет геморно, так как бухсправка - это проводки. в проводках нужно задавать субконто-аналитику (в вашей эксельной табличке этого нет). плюс к этому кроме балансовых счетов надо разложить еще правильно по забалансовым счетам, например забалансовый счет исчисления дохода. Возмможно загрузку проводок сделать с пуствми субконт о на корреспондирующих счетах, и уже бух ручками будет прсотавлять нужные субконто. 4. нихрена непонятно зачем это вам надо. таким образом вы пытаетесь подменить расчет зарплаты и исчисления НДФЛ? - ну так нахрена это делать бухсправкой? грузите эти цифры в документ "начисление ЗП". Правда там вроде как нет отдельной колонки НДФЛ, ибо ндфл считается вполне четко по правилам и отдельно его ручками ставить смысла нет.. . мне идея кажется гунявой. используйте штатный документ начисления ЗП, заказчиваете туда суммы начисления, НДФЛ посчитается автоматом. если вам не нравится как НДФЛ считается автоматом и вы пытаетесь в (0) таким образом "считать правильно" - нихера не получится, ибо вам придется полностью переписать в Бухии "зарплатный блок". . как-то так. . могу ошибаться, в бухию 77 давно не смотрел, описал как помню. |
|||
2
victuan1
16.08.22
✎
05:24
|
Имхо, обычное задание на курсовую работу.
|
|||
3
bolder
16.08.22
✎
06:41
|
(2) Да, это не похоже на реальную работу.Потому что пытаться самим все рассчитывать в Excel при наличии даже 7.7, я не говорю о ЗУП 8 выглядит как детсад, а не студенческая работа.
|
|||
4
Amazing
16.08.22
✎
07:39
|
(1) Доброе утро!)
Да, речь о 1С Бухгалтерия 7.7. Иксель делает расчёт, который не может сделать 1С - всё просто, там определённый алгоритм, а мы хотим забирать готовые суммы. Если нужно будет в загруженной бух.справке подправить или проставить что-то руками - не проблема, в любом случае это меньше, чем делать её с нуля. |
|||
5
Amazing
16.08.22
✎
07:39
|
(2) для профи - да, скорее всего!)
|
|||
6
Amazing
16.08.22
✎
07:40
|
(3) 1С не может сделать именно такой расчёт, ответил выше.
|
|||
7
andrewalexk
16.08.22
✎
07:44
|
:) есть готовая обработка преобразования xls в ТЗ называется FromExcel.ert
а потом уже превращаешь таблицу в документ |
|||
8
Kigo_Kigo
16.08.22
✎
09:34
|
(6) 1С не может сделать такой расчет который может Ексель? вот умора Бббгггггг
|
|||
9
andrewalexk
16.08.22
✎
10:01
|
(8) :) возможно он имел ввиду что вместо ведения учета в экселе лучше вести учет в 1с77
|
|||
10
Amazing
16.08.22
✎
10:09
|
(8) в типовой конфигурации - не может. А специально никто не станет ничего переделывать в отношении расчёта.
|
|||
11
Fynjy
16.08.22
✎
10:14
|
Заканчивался 2022 год, приложение появившиеся в 1998 с официальным релизов в 1999 году продолжало успешно использоваться.
Кстати только в этом году фирма 1С ограничила поддержку 1С 7.7 кардинально. |
|||
12
Amazing
16.08.22
✎
10:39
|
(11) что Вас удивляет?) Ну не у всех установлены восьмёрки, что теперь - людям не работать?)
|
|||
13
andrewalexk
16.08.22
✎
10:57
|
(11) :) ключевое слово успешно?
|
|||
14
bolder
16.08.22
✎
11:19
|
(6) Вы хотите сказать, что начисление с точностью до рубля в рассчитываете а Excel,а результаты начисления и налоги , сумму на руки будете в 1с не считать а вность бух справкой?
Вы же понимаете, что давая в руки бухгалтеру такой инструмент, как бухсправка - всю ответственность за правильное начисление налогов ( а это не только НДФЛ) вы берете на себя( ну может разделяя с бухом).А больничные?А отпуска?Да вас живьем сьедят с этой хотелкой. Поэтому максимум - предложенное в (1) решение по занесению одного столбца. А если там меньше 10 человек то вообще проблема надумана, ну 100-1000 еще другое дело)) Но как то троллингом тянет...в 7.7 считать ЗП даже 100 человек..Там точно всяких исключений и чудес будет немеряно... |
|||
15
Amazing
16.08.22
✎
11:40
|
(13) это вопросы к их руководству.)
|
|||
16
Amazing
16.08.22
✎
11:42
|
(14) кто Вас сказал, что это считается зарплата?) Это выплата, но совершенно другого характера и всё там идеально считается, только нужно провести в 1С начисление этой выплаты и удержание с него подоходного налога...
|
|||
17
GrayS19
16.08.22
✎
12:23
|
По-хорошему - 2 часа работы, 80 бел.руб. Но ТС умудряется все вопросы решить нахаляву. Наверное, и в этот раз решит
|
|||
18
Amazing
16.08.22
✎
12:32
|
(17) это Вы сейчас пытаетесь кинуть камень в мою сторону?
Что такое "ТС". Ну и так для справки: ничего бесплатно не решали и это априори невозможно с злыми людьми.) |
|||
19
andrewalexk
16.08.22
✎
12:34
|
(18) :) тупикстартер
|
|||
20
Amazing
16.08.22
✎
12:52
|
(19) как злостно.))))
|
|||
21
Злопчинский
16.08.22
✎
12:54
|
(16) Обясните куроводству что НДФЛ считается не с выплаты, а с дохода с начала года. и если по остальным "выплатам" вы недобрали или перебрали НДФЛ, то с этой выплаты НДФЛ надо будет взять больше или меньше. Есть особенности если выплаты идут за счет разных источников финансирования типа часть с бюджета, часть с коммерца.
|
|||
22
GrayS19
16.08.22
✎
12:55
|
(18) "ничего бесплатно не решали и это априори невозможно с злыми людьми" - со злыми бесплатно невозможно, с добрыми бесплатно возможно ? значит все, кому платили деньги за решения - злые ?
|
|||
23
GrayS19
16.08.22
✎
12:56
|
(21) Сергей, он твой земляк, в Беларуси НДФЛ нету
|
|||
24
andrewalexk
16.08.22
✎
12:58
|
(20) :) априори злые люди такие...
|
|||
25
NorthWind
16.08.22
✎
13:21
|
(0) написать обработку. Семерка позволяет читать эксель с помощью ADO или через OLE обьекты Microsoft Office. Читаете файлик, заполняете справку, профит. Могут быть определенные вопросы с привязкой сотрудников по ФИО к справочнику сотрудников 1С - дубликаты в справочнике, орфографические ошибки при написании в Excel и т.д. могут приводить к тому что сотр не привяжется или привяжется не к тому элементу, к которому надо.
|
|||
26
victuan1
17.08.22
✎
05:34
|
(4) Ну в принципе, задача мне понятна и она реальна. По сути в Бух загруженные проводки по ЗП нужны для правильного ведения бух. баланса.
Сделать мог бы я за оплату и даже ТЗ мог бы составить вменяемое для этой задачи. Но к сожалению, времени совсем нет. Как вариант искать ТС-у вменяемого кодера-семерочника, со знанием бух. учета. Он эту задачу сделает. Я со своей стороны могу только выслать бесплатно обработку - образец как загружать данные из Эксель в 1С 7.7 в принципе. |
|||
27
victuan1
17.08.22
✎
05:41
|
Надо сказать, что в свое время (в начале 00-ых годов) полностью поддержал через Эксель расчет зарплаты бюджетного учреждения на 400 сотрудников. С поддержкой КЛАДРа и выгрузкой рег. отчетности в ФНС и ПФР. Т.к. у 1С в то время не было вменяемых решений для расчета ЗП.
Бухгалтер была счастлива, т.к. считала зарплату со всей рег. отчетности от силы 2 недели в месяц, остальное время она была свободна (до перехода на Эксель у нее уходил весь месяц со сверхурочными до поздней ночи). Когда пришло время - успешно мигрировал им данные по ЗП из Эксель в КАМИН 2.0. Я там не работаю уже давно, но знаю, что сидят на Камине до сих пор. Думаю с 2023 года будут переходить на ЗБУ, ибо Камин прекращает поддержку 7.7 с 2023 года https://www.kaminsoft.ru/images/kamin/others/Ogranichennaya_podderzhka_tipovyh_konfiguracij_KAMIN_na_platforme%20_1SPredpriyatie_7.pdf |
|||
28
VoditelKobyly
17.08.22
✎
07:08
|
Если интересно, то подключение и получение данных в ТЗ если есть 1срр
СтрокаПодключения = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\t\Акт.xls;Extended Properties=""Excel 12.0;HDR=NO"""; РСЭксел = СоздатьОбъект("ODBCRecordSet"); ДБ = СоздатьОбъект("ODBCDatabase"); ДБ.DriverConnect(СтрокаПодключения); Если ДБ.ЕстьСоединение() = 0 Тогда Если ПустаяСтрока(ДБ.ПолучитьОписаниеОшибки()) = 0 Тогда Предупреждение("Ошибка ODBCDataBase: " + РазделительСтрок + ДБ.ПолучитьОписаниеОшибки()); Возврат; КонецЕсли; Иначе РСЭксел.УстБД(ДБ); КонецЕсли; ТестЗапроса="SELECT * FROM [Sheet1$]"; ТЗ_Ексель=РСЭксел.ВыполнитьИнструкцию(ТестЗапроса); Далее крути ТЗ и формируй с нее свою справку |
|||
29
Amazing
17.08.22
✎
11:28
|
(22) не нужно мои слова интерпретировать так буквально.)
|
|||
30
Amazing
17.08.22
✎
11:30
|
(26) (27) Благодарю!)
|
|||
31
Amazing
17.08.22
✎
11:30
|
(28) Спасибо!
|
|||
32
Amazing
17.08.22
✎
11:31
|
(25) Спасибо!)
|
|||
33
mistеr
17.08.22
✎
11:31
|
(10) Если вам все равно кто-то будет делать обработку, пусть заодно и расчет сделает. :)
|
|||
34
Amazing
17.08.22
✎
11:34
|
(26) Написал на почту.)
|
|||
35
Amazing
17.08.22
✎
11:36
|
(33) нет, расчёт уже сделан там, где он сделан.)
|
|||
36
victuan1
17.08.22
✎
11:54
|
(34) Ответил.
|
|||
37
Arbuz
17.08.22
✎
17:26
|
(28) А есть ли ODBC для OpenDocument Spreadsheet?
|
|||
38
GrayS19
18.08.22
✎
13:38
|
(37) попробовал пример из (28). Сообщение об ошибке 1С: Ошибка ODBCDataBase: Источник данных не найден и не указан драйвер, используемый по умолчанию. Глубже пока не копал.
|
|||
39
VoditelKobyly
18.08.22
✎
13:45
|
(38) Надеюсь буковки Source=D:\t\Акт.xls; поменял на свои?
|
|||
40
GrayS19
18.08.22
✎
14:10
|
поменял, файл есть, даже через ADO его загрузил
|
|||
41
GrayS19
18.08.22
✎
14:11
|
Win 7 32 бита, надо в список установленных ODBC лезть, пока совсем некогда, злые быхи задач накидали
|
|||
42
GrayS19
18.08.22
✎
14:12
|
(41) *бухи :)
|
|||
43
Arbuz
18.08.22
✎
14:20
|
(38) Microsoft Access Database Engine 2010 Redistributable установлен?
https://www.microsoft.com/en-us/download/details.aspx?id=13255 |
|||
44
GrayS19
18.08.22
✎
14:41
|
(43) установил. то же сообщение https://drive.google.com/file/d/1gRfNZ-1Aaox8mrpmXLtRAnfaNVaggJYZ/view?usp=sharing (43)
|
|||
45
GrayS19
18.08.22
✎
14:45
|
установленные в системе драйвера ODBC https://drive.google.com/file/d/1ovHpZHSolR1iGwHFsLNGbJKhIZVxx7D7/view?usp=sharing
|
|||
46
Lazy Stranger
18.08.22
✎
15:01
|
Можно по-простому, хоть и, вероятно, менее эффективно:
Excel=СоздатьОбъект("Excel.Application"); Попытка SourceTable=Excel.Workbooks.Open(СокрЛП(ФайлXLS)); ЛистXLS=SourceTable.Sheets(1); Исключение Предупреждение("Не удалось открыть файл "+СокрЛП(ФайлXLS)+":"+РазделительСтрок+ОписаниеОшибки(),30); Возврат; КонецПопытки; текНомерСтроки=НомерПервойСтроки-1; Пока 1=1 Цикл текНомерСтроки=текНомерСтроки+1; состояние(текНомерСтроки); Артикул=СокрЛП(ЛистXLS.Cells(ТекНомерСтроки,НомКолАртикул).Value); Если ПустаяСтрока(Артикул)=1 Тогда Прервать; КонецЕсли; |
|||
47
Arbuz
18.08.22
✎
15:07
|
(46) Не, ну хочется же через ODBC селектом
(45) А операционка 64 бит? |
|||
48
GrayS19
18.08.22
✎
15:29
|
(47) 32 бита Windows 7
|
|||
49
NorthWind
18.08.22
✎
20:54
|
Если файлы xls (не xlsx), то лучше использовать драйвер Jet 4. Он есть в любой винде начиная с Windows 98, не нужно ничего доустанавливать.
СтрокаПодключения = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + ИмяФайла + "; Extended Properties = " + """Excel 8.0" + ";HDR=NO;IMEX=1"";" ; Соединение = СоздатьОбъект ("ADODB.Connection"); Попытка Соединение.Open(СтрокаПодключения); Исключение Сообщить ("Ошибка открытия файла средствами ADO. Возможно, OLE DB провайдер Jet 4.0 не установлен или файл не имеет формат Excel 97-2003"); Сообщить ("Текст ошибки : " + ОписаниеОшибки ()); Соединение = ""; Возврат; КонецПопытки; Попытка НаборЗаписей = Соединение.Execute("SELECT * FROM [" + СокрЛП (ИмяЛиста) + "$A" + Строка (СтрокаНачало) + ":CZ" + Строка (СтрокаКонец) + "] "); Исключение Сообщить("Не удалось выполнить запрос к файлу Excel средствами ADO, ошибка " + ОписаниеОшибки ()); Соединение.Close (); Соединение = ""; Возврат; КонецПопытки; |
|||
50
andrewalexk
18.08.22
✎
21:53
|
(49) :) если xls еще и актуален то только из-за 1с77
|
|||
51
Злопчинский
18.08.22
✎
22:54
|
Если XLS - то проще всего Йокселем прочитать в ТЗ.
|
|||
52
Arbuz
19.08.22
✎
15:29
|
в (28) некорректная строка подключения объекта ODBCDatabase. Должно быть что-то вроде
База = СоздатьОбъект("ODBCDataBase"); Имя = "d:\path\file.xls"; Стр = " |DRIVER=Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb); |ReadOnly=1; |FIL=excel 14.0; |DBQ=" + Имя + " |"; Если База.Соединение(Стр) = 1 Тогда Запрос = СоздатьОбъект("ODBCRecordSet"); Запрос.УстБД(База); Текст = "select * |from [Лист1$A1:AZ]"; Запрос.ВыполнитьИнструкцию(Текст, ТЗ_Ексель); База.Закрыть(); Иначе Сообщить("Нет " + База.ПолучитьОписаниеОшибки()); КонецЕсли; Но проблема в препроцессоре 1срр - знак доллара chr(36), так и не смог победить. Можно попробовать параметризованные запросы. (49) Да, но ADODB не возвращает ТЗ(ИТЗ). Надо в цикле ковырять, что "неаккуратненько, дохтур". (51) Неее, дяденька, надо селектом сразу во внутреннюю структуру... Сразу можно ещё сджойнить несколько таблиц/файлов и отфильтровать по группировке. Так-то инструментов из Экселя завались. |
|||
53
Злопчинский
19.08.22
✎
15:46
|
"сразу во внутреннюю структуру..." - не понял...
|
|||
54
Злопчинский
19.08.22
✎
15:48
|
но для клюшек простого варинта у меня нет, такого чтобы типа
ТЗ = ПолучитьДанные(тутфайлxlsилиxlsx,номерИлиИмяЛиста) |
|||
55
Arbuz
19.08.22
✎
16:11
|
(53) Ну, я имел ввиду, что ты ему скл запрос, он тебе ТЗ (или даже ИТЗ). Красивое. Иначе смысл в этой 1срр'шной ODBC прокладке, кроме как родные скуль-базы?
(54) дык, я именно об этом. |
|||
56
GrayS19
19.08.22
✎
16:32
|
(52) а в ADODB можно узнать, сколько первых пустых столбцов в файле ? а то перебор по № столбца есть, но если в столбце "А" есть информация, то его №=1, столбца "В" №=2. А если в "А" пусто-пусто до конца файла, то уже столбца "В" №=2. Понятно, что RecordSet обрезал пустую информацию, а сколько столбцов обрезал ?
|
|||
57
GrayS19
19.08.22
✎
16:33
|
(56) 8А если в "А" пусто-пусто до конца файла, то уже столбца "В" №=1
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |