|
v7: Импорт из XLS- составить цикл. | ☑ | ||
---|---|---|---|---|
0
Aldnepr
11.04.16
✎
17:02
|
Переделал обработку(стандартную) для импорта одного дока из Ексель. Шапку заношу нормально, а вот Мн.ч. не могу завязать в цикл. Пока составил топорно, работает, но надо сделать цивилизованно и на будущее так сказать. Как правильно Зациклить?
//---------------------------------------------------------- Åñëè ×èñëî(Excel.Cells(ÑòðÒîâ1, ÑòëáÒîâ1).Value)<>0 òîãäà Äîê.ÍîâàÿÑòðîêà(); Äîê.Êîëè÷åñòâî=×èñëî(Excel.Cells(ÑòðÒîâ1, ÑòëáÒîâ1).Value); // Äîê.ÖåíàÁåçÍÄÑ=×èñëî(Excel.Cells(ÑòðÖåíà, ÑòëáÒîâ1).Value); Êîä =Ñòðîêà (Excel.Cells(ÑòðÒîâ1,ÑòëáÊîä).Value); Òîâ.ÍàéòèÏîÊîäó(Êîä,0); Òîâàð=Òîâ.ÒåêóùèéÝëåìåíò(); Äîê.Òîâàð =Òîâàð; Ñïð.ÈñïîëüçîâàòüÄàòó(ÄàòàÄîê); Ñïð.ÈñïîëüçîâàòüÂëàäåëüöà(Òîâàð); Ñïð.ÂûáðàòüÝëåìåíòû(); Äîê.Åäèíèöà=Ñïð.ÒåêóùèéÝëåìåíò(); Äîê.Êîýôôèöèåíò=Ñïð.Êîýôôèöèåíò; ÊîíåöÅñëè; //------------------------------------------------------ Åñëè ×èñëî(Excel.Cells(ÑòðÒîâ2, ÑòëáÒîâ1).Value)<>0 òîãäà Äîê.ÍîâàÿÑòðîêà(); Äîê.Êîëè÷åñòâî=×èñëî(Excel.Cells(ÑòðÒîâ2, ÑòëáÒîâ1).Value); // Äîê.ÖåíàÁåçÍÄÑ=×èñëî(Excel.Cells(ÑòðÖåíà, ÑòëáÒîâ1).Value); Êîä =Ñòðîêà (Excel.Cells(ÑòðÒîâ2,ÑòëáÊîä).Value); Òîâ.ÍàéòèÏîÊîäó(Êîä,0); Òîâàð=Òîâ.ÒåêóùèéÝëåìåíò(); Äîê.Òîâàð =Òîâàð; Ñïð.ÈñïîëüçîâàòüÄàòó(ÄàòàÄîê); Ñïð.ÈñïîëüçîâàòüÂëàäåëüöà(Òîâàð); Ñïð.ÂûáðàòüÝëåìåíòû(); Äîê.Åäèíèöà=Ñïð.ÒåêóùèéÝëåìåíò(); Äîê.Êîýôôèöèåíò=Ñïð.Êîýôôèöèåíò; ÊîíåöÅñëè; //------------------------------------------------------ |
|||
1
ДенисЧ
11.04.16
✎
17:03
|
Это не топорно, это перанально...
|
|||
2
Aldnepr
11.04.16
✎
17:04
|
(1) у меня код в сообщении вобще с глюками по кодировке. Он читается у тебя?
|
|||
3
Paul_Nevada
11.04.16
✎
17:05
|
надо сходить все же на Хардкор будет)
|
|||
4
Aldnepr
11.04.16
✎
17:08
|
(1) наверное. Я поменял назначение столбцов и строк и все работает. а хочу сделать как положено. А хардкор это или что мне пох
|
|||
5
Paul_Nevada
11.04.16
✎
17:10
|
(4) и это правильно!)
|
|||
6
mingw
11.04.16
✎
17:15
|
Цивилизованно это через КД из екселя грузить, насчет перанально не уверен, тут больше спец (1)
|
|||
7
Aldnepr
11.04.16
✎
17:20
|
(6) Ну это еще КД надо выкурить нормально так. А просто обработкой -не кошерно получается?
|
|||
8
mingw
11.04.16
✎
17:22
|
(7) Написанной самостоятельно с 0 вполне кошерно. А вот когда берут чужой код и не понимая его начинают править?
|
|||
9
Aldnepr
11.04.16
✎
17:25
|
(8) Ну почему же? Понимая, если бы не понимал то не работало бы ничего. Знаний не хватает- это другой вопрос
|
|||
10
Aldnepr
11.04.16
✎
17:26
|
(8) нахрена б я тут у вас что-то спрашивал?
|
|||
11
Ёпрст
11.04.16
✎
17:34
|
(0) Ошибка в 24 строке
|
|||
12
Aldnepr
11.04.16
✎
17:40
|
(11) в 23,5 нету?
|
|||
13
Ёпрст
11.04.16
✎
17:53
|
Нет
|
|||
14
Ёпрст
11.04.16
✎
17:54
|
и это, при копировании чего либо, научись наконец, переключать раскладку клавиатуры
|
|||
15
Aldnepr
11.04.16
✎
17:55
|
(13) У меня еще вот так отображается код. Что произошло не пойму. До этого нормально вставлялся и отображался
http://s42.radikal.ru/i096/1604/9f/f0f8aac44b89.jpg |
|||
16
Aldnepr
11.04.16
✎
17:59
|
(14) Чего наконец? Я скопировал код мышью и вставил же ею.
|
|||
17
Ёпрст
11.04.16
✎
18:02
|
(16) перед копированием, переключи расскладку клавиатуры на русский язык, чего непонятного ?
|
|||
18
Mikeware
11.04.16
✎
18:04
|
"-армянские ученые поймали наконец снежного человека!
-- Вай-вай! Вечно эти армяне кого-нибудь на конец ловят." © |
|||
19
Ёпрст
11.04.16
✎
18:04
|
Могу, подробнее:
открываешь пофигуратор, открываешь своё изделие в нём, выделяешь ныжный фрагмент г-кода в нём. Переключаешь на русскую раскладку в клавиатуре (значок такой в трэе справа внизу) далее, копируешь, далее вставляешь в сообщение форума, отправляешь, наслаждаешься, кушаешь печенки |
|||
20
Aldnepr
11.04.16
✎
19:18
|
Если Число(Excel.Cells(СтрТов1, СтлбТов1).Value)<>0 тогда
Док.НоваяСтрока(); Док.Количество=Число(Excel.Cells(СтрТов1, СтлбТов1).Value); // Док.ЦенаБезНДС=Число(Excel.Cells(СтрЦена, СтлбТов1).Value); Код =Строка (Excel.Cells(СтрТов1,СтлбКод).Value); Тов.НайтиПоКоду(Код,0); Товар=Тов.ТекущийЭлемент(); Док.Товар =Товар; Спр.ИспользоватьДату(ДатаДок); Спр.ИспользоватьВладельца(Товар); Спр.ВыбратьЭлементы(); Док.Единица=Спр.ТекущийЭлемент(); Док.Коэффициент=Спр.Коэффициент; КонецЕсли; //------------------------------------------------------ Если Число(Excel.Cells(СтрТов2, СтлбТов1).Value)<>0 тогда Док.НоваяСтрока(); Док.Количество=Число(Excel.Cells(СтрТов2, СтлбТов1).Value); // Док.ЦенаБезНДС=Число(Excel.Cells(СтрЦена, СтлбТов1).Value); Код =Строка (Excel.Cells(СтрТов2,СтлбКод).Value); Тов.НайтиПоКоду(Код,0); Товар=Тов.ТекущийЭлемент(); Док.Товар =Товар; Спр.ИспользоватьДату(ДатаДок); Спр.ИспользоватьВладельца(Товар); Спр.ВыбратьЭлементы(); Док.Единица=Спр.ТекущийЭлемент(); Док.Коэффициент=Спр.Коэффициент; КонецЕсли; //------------------------------------------------------ |
|||
21
Aldnepr
11.04.16
✎
19:23
|
(19) дождешься от вас печенек-зубы сломаешь нафиг). Впервые сталкиваюсь с такой методикой копирования
|
|||
22
Злопчинский
11.04.16
✎
20:32
|
(21) либо в реестре подправить мелочевочку и будет копироваться норм без переключения раскладок
|
|||
23
Ёпрст
12.04.16
✎
07:31
|
(20)
ну, вот это , Спр.ИспользоватьДату(ДатаДок); Спр.ИспользоватьВладельца(Товар); Спр.ВыбратьЭлементы(); Док.Единица=Спр.ТекущийЭлемент(); Док.Коэффициент=Спр.Коэффициент; сразу в топку |
|||
24
Ёпрст
12.04.16
✎
07:32
|
и... зачем 2 раза писать одно и тоже ?
Обычный цикл по строкам(или столбцам в экселе, чего там у тебя за структура- хз) и привет |
|||
25
Мэс33
12.04.16
✎
08:00
|
(0) я уж подумал - новый язык программирования придумали: 1cfuck.
|
|||
26
Aldnepr
12.04.16
✎
09:04
|
(24)так потому и спрашиваю, что не знаю. Структура как структура СтлбКод=КодТовара; СтлбТов1=Количество; Далее перебираем строки Ексел СтрТов1,СтрТов2 и т.д. и переносим их в мн.ч. документа. Пока строк не много- то играл как умел, но их может быть и 100 и 200 когда нибудь.
|
|||
27
Aldnepr
12.04.16
✎
09:06
|
(23) Пробовал влоб назначать типа Док.Единица=Спр.ЕдиницаПоУмолчанию; //не работает
как правильно тогда |
|||
28
Ёпрст
12.04.16
✎
09:21
|
(27)
Для к = НачальнаястрокаВЭкселе По КонечнаяСтрокаВЭкселе Цикл Док.НоваяСтрока(); Док.Количество=0+Excel.Cells(к, 10).Value; Док.Товар=ВернутьТоварПоКоду(Excel.Cells(к,11).Value); Док.Единица = Док.Товар.ОсновнаяЕдиницаИзмерения; //или Док.Единица = ВернутьЕдиницуПоОКЕИ(Excel.Cells(к,12).Value); КонецЦикла; |
|||
29
Aldnepr
12.04.16
✎
10:01
|
(28) 1.Док.Единица = Док.Товар.ОсновнаяЕдиницаИзмерения; //- НЕ работает. Может надо Док.Товар.ОсновнаяЕдиницаИзмерения.Получить(ДатаДок);?
2.Док.Количество=0+Excel.Cells(к, 10).Value; //- для чего 0+ тут поясни 3.ВернутьТоварПоКоду() и ВернутьЕдиницуПоОКЕИ() - это функции надо прописать до цикла, или может с 8.х встроенные написал по ошибке? (я в 8 вообще не заглядывал даже, предполагаю просто) |
|||
30
Mikeware
12.04.16
✎
10:02
|
(29) основная единица - периодическая? сильно...
|
|||
31
Ёпрст
12.04.16
✎
10:11
|
(29) я без идей, че у тебя за конфа, это просто пример, что не надо искать единицу измерения перебором. Её просто либо брать из реквизита номенклатуры, или, искать по классификатору.
Брать первую попавшуюся единицу измерения из справочника единиц.. ну ты понял |
|||
32
Aldnepr
12.04.16
✎
10:20
|
(31) )) Она у меня не первая попавшаяся, а единственная у каждого элемента, поэтому и прописал так. Пробовал и из справочника и из классификатора- не прописывает, ПОЧЕМУ?
т.е. не Док.Товар.ОсновнаяЕдиницаИзмерения; не Док.Товар.ЕдиницаПоУмолчанию; не вытаскиваются. Вот кто сильный- поясните какого х? Конфа ТиС, т.е. с классификатором едИзм. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |