|
Перебор строк массива, с условием элемента | ☑ | ||
---|---|---|---|---|
0
anisa8310
14.12.12
✎
13:38
|
1С:Предприятие 8.2 (8.2.16.368)
Бухгалтерия предприятия, редакция 2.0 (2.0.41.4) Загрузку исполняю...вот код: Услуги = НовыйДокумент.Услуги.Добавить(); Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("КодФиделио",СтрЗаменить(Массив[5],Символ(34),"")); Услуги.Номенклатура=Номенклатура.Ссылка; Услуги.Транзакция = Массив[2]; Услуги.Цена= Массив[11]; Услуги.Количество= Массив[12]; Услуги.Сумма = Массив[12]*Массив[11]; Услуги.Гость = СтрЗаменить(Массив[24],Символ(34),""); Услуги.НомерПостоянногоСчета = СтрЗаменить(Массив[33],Символ(34),""); Услуги.НомерЧека = СтрЗаменить(Массив[38],Символ(34),""); Услуги.Субконто=Номенклатура.НоменклатурнаяГруппа; Услуги.КодФиделио= Массив[5]; УСЛОВИЯ ТАКОВЫ: Если СтрЗаменить(Массив[5],Символ(34),"")<>"1" и СтрЗаменить (Массив[11], Символ(34),"")<>"0" тогда Если СтрЗаменить(Массив[5],Символ(34),"")<= "204" и СтрЗаменить (Массив[11], Символ(34),"")<>"0" тогда , теперь для элемента нужно условия ставить например больше206 меньше или равно 219 - как это в 1с прописывать? -значение между .. |
|||
1
ДенисЧ
14.12.12
✎
13:39
|
(Значение > 1111) И (Значение < 2222)
|
|||
2
anisa8310
14.12.12
✎
14:12
|
(1)Спасибо!
|
|||
3
НЕА123
14.12.12
✎
14:14
|
?(Значение>206, Значение <= 219, Ложь)
|
|||
4
Wobland
14.12.12
✎
14:16
|
(3) а прикольно
|
|||
5
Mort
14.12.12
✎
14:16
|
Жуть какая.
Писать в коде Массив[<КонстантаЧисло>] все равно что НайтиПоНаименованию(<КонстантаСтрока>) |
|||
6
kiruha
14.12.12
✎
14:23
|
(0)
Отличный код Никто тебя не заменит - фирма будет дорожить твоим присутствием |
|||
7
anisa8310
14.12.12
✎
14:34
|
(6)не поняла что за подвох?
|
|||
8
anisa8310
14.12.12
✎
14:35
|
Код услуги так хочу чтобы дальше справлялись самостоятельно понимали что если в таком то диапазоне-тогда питание, в другом диапазоне-значит проживание, в третьем диапозоне-там ещё кому реализацию сформировать..там кодов тьма..
|
|||
9
DrunkAnimal
14.12.12
✎
14:42
|
опиши еще дополнительно структуру, которая будет описывать соответствие индекса в массиве и семантики значения в соответствующей позиции
|
|||
10
НЕА123
14.12.12
✎
14:44
|
(('0001-01-01-0000'+206)-Значение) -(('0001-01-01-0000'+Значение)-219)
|
|||
11
НЕА123
14.12.12
✎
14:45
|
3
(('0001-01-01-0000'+206)-Значение) -(('0001-01-01-0000'+Значение)-219) = 0 |
|||
12
Wobland
14.12.12
✎
14:46
|
(10) (11) ещё пару раз, и ты вызовешь сатану
|
|||
13
НЕА123
14.12.12
✎
14:47
|
(12)
неа. хоть и пятница, но 13 уже вера было. |
|||
14
НЕА123
14.12.12
✎
14:48
|
*вчера
|
|||
15
anisa8310
14.12.12
✎
14:49
|
(11)не поняла....но попробую все варианты-добиваюсь быстрого обхода ..в файле 1000 строк..и все в разброс..коды услуг разбросаны по диапазонам..-менять их уже нельзя в исходной системе..Дорогие мистеры спасибо всем от всей души!!!!!!
|
|||
16
hhhh
14.12.12
✎
14:51
|
у вас там строки или числа?
|
|||
17
НЕА123
14.12.12
✎
14:51
|
(11)
+ ошибка. 206 тоже попадет (('0001-01-01-0000'+206 + 1)-Значение) -(('0001-01-01-0000'+Значение)-219) = 0 |
|||
18
DrunkAnimal
14.12.12
✎
14:57
|
(17)не надоело?
|
|||
19
kosts
14.12.12
✎
15:01
|
Символ(34) это """"
В связи с этим гуманнее смотрелось бы
И тут
Скорее всего нужно заменить на
|
|||
20
anisa8310
14.12.12
✎
15:02
|
(16)и строки и числа и даты-элементы массива могут быть
|
|||
21
anisa8310
14.12.12
✎
15:03
|
(19) да так проще гораздо..убрать их..
|
|||
22
НЕА123
14.12.12
✎
15:04
|
(18)
макс(219, Значение) - Мин(206+1,Значение)<= 219-206-1 |
|||
23
anisa8310
14.12.12
✎
15:08
|
ok
|
|||
24
НЕА123
14.12.12
✎
15:09
|
(23)
ты эта... мои посты не читай. ибо они просто пятничный флуд. |
|||
25
anisa8310
14.12.12
✎
15:21
|
(24)Хорошо)))
|
|||
26
anisa8310
17.12.12
✎
09:08
|
Мне надо такой обход строк сделать с такими условиями:
Если СтрЗаменить(Массив[5],Символ(34),"")<> "205" и СтрЗаменить(Массив[5],Символ(34),"")< "220" тогда Если СтрЗаменить(Массив[5],Символ(34),"")> "399" и СтрЗаменить (Массив[5], Символ(34),"")<"921" тогда Если СтрЗаменить(Массив[5],Символ(34),"")= "302" и СтрЗаменить (Массив[5], Символ(34),"")="311" и СтрЗаменить (Массив[5], Символ(34),"")="313" тогда Если СтрЗаменить(Массив[5],Символ(34),"")>="993" и СтрЗаменить (Массив[5], Символ(34),"")<="999" тогда |
|||
27
anisa8310
17.12.12
✎
09:09
|
Но условие сложно не обрабатывается..
|
|||
28
Fragster
гуру
17.12.12
✎
09:10
|
о мои глаза!
|
|||
29
Fragster
гуру
17.12.12
✎
09:10
|
замуж, срочно замуж!
|
|||
30
anisa8310
17.12.12
✎
09:12
|
да я знаю,надо..но не знаю как такое условие сложно написать) это я специально так написала-чтобы понятно было..что необходимо
|
|||
31
anisa8310
17.12.12
✎
09:13
|
Много "ЕСЛИ" что нельзя? а что можно вместо того? найти не могу подходящего метода....или что.цикл для каждого условия???
|
|||
32
Fragster
гуру
17.12.12
✎
09:15
|
(31) СтртЗаменить... Магические строки... это все сильно усложняет
|
|||
33
anisa8310
17.12.12
✎
09:17
|
А если передам в другой параметр СтрЗаменить-условие сработает?
|
|||
34
anisa8310
17.12.12
✎
09:17
|
Хотя нет.
|
|||
35
Fragster
гуру
17.12.12
✎
09:17
|
(33) не знаю... смотря что на входи и что на выходе хочется получить
|
|||
36
Fragster
гуру
17.12.12
✎
09:17
|
*входе
|
|||
37
anisa8310
17.12.12
✎
09:19
|
Пока Док.Sheets(1).Cells(счСтроки,1).Value <>Неопределено Цикл
Стр=Док.Sheets(1).Cells(счСтроки,1).Value; //////////////Формирование массива услуги Массив = Новый Массив(42); Для Сч=1 По 42 Цикл Позиция = Найти(Стр, ","); Массив.Вставить(сч,Сред(Стр, 1, Позиция-1)); стр = Сред(Стр, Позиция + 1); КонецЦикла; |
|||
38
anisa8310
17.12.12
✎
09:19
|
вход
|
|||
39
anisa8310
17.12.12
✎
09:19
|
Выход:
Услуги = НовыйДокумент.Услуги.Добавить(); Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("КодФиделио",СтрЗаменить(Массив[5],Символ(34),"")); Услуги.Номенклатура=Номенклатура.Ссылка; Услуги.Транзакция = Массив[2]; Услуги.Цена= Массив[11]; Услуги.Количество= Массив[12]; Услуги.Сумма = Массив[12]*Массив[11]; Услуги.Гость = СтрЗаменить(Массив[24],Символ(34),""); Услуги.НомерПостоянногоСчета = СтрЗаменить(Массив[33],Символ(34),""); Услуги.НомерЧека = СтрЗаменить(Массив[38],Символ(34),""); Услуги.Субконто=Номенклатура.НоменклатурнаяГруппа; Услуги.КодФиделио= Массив[5]; |
|||
40
Fragster
гуру
17.12.12
✎
09:21
|
ты CSV чтоли разбираешь?
|
|||
41
anisa8310
17.12.12
✎
09:21
|
да, именно
|
|||
42
Fragster
гуру
17.12.12
✎
09:22
|
вход - это не твой "код", а исходные данные
|
|||
43
kosts
17.12.12
✎
09:22
|
Так к сведению, чтобы не стало неожиданностью...
|
|||
44
anisa8310
17.12.12
✎
09:22
|
условие для элемента загрузки нужно задать такое кривое..
|
|||
45
Fragster
гуру
17.12.12
✎
09:23
|
(41) я офигеть какой телепат... грузи через ADO, ну или хотя бы экселем открывай так, чтобы в разных колонках были значения.
|
|||
46
Fragster
гуру
17.12.12
✎
09:23
|
а то твой "код" по распиливанию по запятым и замене кавычек на пусто - не подходит для парсинга CSV
|
|||
47
anisa8310
17.12.12
✎
09:25
|
ADO.. значит условие никак в csv?
|
|||
48
Fragster
гуру
17.12.12
✎
09:26
|
(47) условие - как. но у тебя изначально файл неправильно парсится.
например: "Превед, кросавчег!",5 это две колонки, а у тебя получится 3 |
|||
49
anisa8310
17.12.12
✎
09:30
|
Если СтрЗаменить(Массив[5],Символ(34),"")<> "205"
тогда Если СтрЗаменить(Массив[5],Символ(34),"")> "399" и СтрЗаменить (Массив[5], Символ(34),"")<"921" тогда Вот такое условие обрабатывается как надо загрузка происходит |
|||
50
anisa8310
17.12.12
✎
09:30
|
Ой кроме первой строки там коммен
|
|||
51
anisa8310
17.12.12
✎
09:31
|
Если СтрЗаменить(Массив[5],Символ(34),"")> "399" и СтрЗаменить (Массив[5], Символ(34),"")<"921" тогда
это загружается |
|||
52
anisa8310
17.12.12
✎
09:34
|
Если СтрЗаменить(Массив[5],Символ(34),"")<> "205"
тогда Если СтрЗаменить(Массив[5],Символ(34),"")> "100" и СтрЗаменить (Массив[5], Символ(34),"")<"921" тогда |
|||
53
anisa8310
17.12.12
✎
09:34
|
И так загружает))
|
|||
54
Fragster
гуру
17.12.12
✎
09:35
|
это потому что повезло. а если сделать правильно - то избавишься от СтрЗаменить, которое, кстати, если там есть строки с кавычками - корежит их. ну и по факту - непонятно, зачем использовать эксель, если ты используешь его ровно как ТекстовыйДокумент или ЧтениеТекста?
|
|||
55
Snorkler
17.12.12
✎
09:40
|
(0) Может, если в начале проверки добавить строку вида
КодФиделиоЧислом = Число(СтрЗаменить(Массив[5],Символ(34),"")); станет немного легче? :0) |
|||
56
anisa8310
17.12.12
✎
09:44
|
Выгрузка из другой системы в формате csv я не могу её изменить...приходится массив перебирать
|
|||
57
anisa8310
17.12.12
✎
09:45
|
(55) присвоить переменную для элемента массива? так это называется?
|
|||
58
Snorkler
17.12.12
✎
09:49
|
(57) Поскольку вся куча проверок с конструкцией СтрЗаменить(), как я понимаю, происходит в цикле, проще в начале цикла получить один раз КодФиделиоЧислом, чтобы потом не заменять каждый раз во всех проверках ковычки…
|
|||
59
kosts
17.12.12
✎
09:52
|
Может ты этого хочешь?
|
|||
60
anisa8310
17.12.12
✎
09:54
|
(59) да вот так и хочу-я сейчас попробую так -может получиться
|
|||
61
anisa8310
17.12.12
✎
09:55
|
(58)да это так
|
|||
62
anisa8310
17.12.12
✎
10:06
|
(59) вот именно так и хотела, но не грузит условие видимо длинное слишком..я попробую разбить в циклах условие пусть два раза обходит строки
|
|||
63
anisa8310
17.12.12
✎
10:06
|
быстродействие конечно отдыхает в таком случе
|
|||
64
kotletka
17.12.12
✎
10:09
|
эххх, на пенсии понаеду в МариЭл красивей девушек чем в Йошкар -Оле не видел
|
|||
65
НЕА123
17.12.12
✎
10:09
|
(63)
>быстродействие конечно отдыхает в таком случе уже работает ?! |
|||
66
kotletka
17.12.12
✎
10:09
|
дожить бы только до пенсии
|
|||
67
anisa8310
17.12.12
✎
10:11
|
(64) Девушки красивые по всей России)
|
|||
68
anisa8310
17.12.12
✎
10:12
|
(65)нет пока предположила.жаль что условие если ИначеЕсли-не хочет сложное обрабатывать...
|
|||
69
anisa8310
17.12.12
✎
10:12
|
(66)Доживете обязательно!
|
|||
70
kotletka
17.12.12
✎
10:13
|
(67)Да ладно у Вас их количество на кв метр зашкаливает
|
|||
71
anisa8310
17.12.12
✎
10:15
|
Да, я сама из родом Челябы, живу и работаю в Казани, отдыхаю в Марийке)Много не замужних и красивых-везде)
|
|||
72
kotletka
17.12.12
✎
10:15
|
по теме ты уверена что у тебя именно условия долго обрабатываются, скорее всего тормоза не в условиях, они в лет отрабатываться должны, скорее всего цикл в цикле несколько раз, либо загрузка медленная
|
|||
73
anisa8310
17.12.12
✎
10:16
|
ну да ладно...слава богу мужчины тоже отличные есть! так 1с 1с...сейчас ещё вариант накину-сообщу результат и код
|
|||
74
anisa8310
17.12.12
✎
10:16
|
Вылоу весь код-он сложный очень
|
|||
75
kosts
17.12.12
✎
10:20
|
(74) Почему-то верю, что сложный ...
|
|||
76
kotletka
17.12.12
✎
10:25
|
В челябинске кстати реально мужики суровые )). К нам в часть один из наборов оттуда приходил, я уже в запас уходил особо с ними дела не имел, но как -то услышал их спор чем отличается муха от пчелы (при этом они дружно пчелой называли шмеля, сухой трупик где то нашли), в итоге двое даже подрались(так и не решили кто больше меда дает оса или пчела) )). А дело происходило на полевом выходе в минус 25 в обледеневшей палатке. Дети с большими яйцами.
|
|||
77
anisa8310
17.12.12
✎
10:28
|
Да, мы Челябинцы суровые, но добрые)
|
|||
78
anisa8310
17.12.12
✎
10:28
|
Женщины имею ввиду-мужчины то само собой..лучше не спорить с ними
|
|||
79
anisa8310
17.12.12
✎
10:29
|
Внимание весь код:
Процедура КнопкаВыполнитьНажатие(Кнопка) //////////////////Выбор документов "Реализация" для сравнения транзакций Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслуг.Ссылка, | РеализацияТоваровУслуг.Контрагент, | РеализацияТоваровУслуг.Услуги.( | Транзакция | ) |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг |ГДЕ | РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания"; Запрос.УстановитьПараметр("ДатаНачала",НачалоДня(ЭлементыФормы.ДатаНач.Значение) ); Запрос.УстановитьПараметр("ДатаОкончания",КонецДня(ЭлементыФормы.ДатаКон.Значение) ); РезультатРеализация = Запрос.Выполнить(); /////////////открытие xls-документа Док = ПолучитьCOMОбъект(Путь); счСтроки = 1; /////////////////////////Перебор строк Пока Док.Sheets(1).Cells(счСтроки,1).Value <>Неопределено Цикл Стр=Док.Sheets(1).Cells(счСтроки,1).Value; //////////////Формирование массива услуги Массив = Новый Массив(42); Для Сч=1 По 42 Цикл Позиция = Найти(Стр, ","); Массив.Вставить(сч,Сред(Стр, 1, Позиция-1)); стр = Сред(Стр, Позиция + 1); КонецЦикла; c = СтрЗаменить(Массив[5],Символ(34),""); Если с <> "205" и с < "220" тогда ИначеЕсли с > "399" и с < "921" тогда ИначеЕсли с = "302" и с ="311" и с ="313" тогда // Сюда никогда не попадем ИначеЕсли с >= "993" и с <="999" тогда // Если СтрЗаменить(Массив[5],Символ(34),"")<> "205" и СтрЗаменить(Массив[5],Символ(34),"")<> "300" // тогда // Если СтрЗаменить(Массив[5],Символ(34),"")<> "301" тогда //Если СтрЗаменить(Массив[5],Символ(34),"")> "100" и СтрЗаменить (Массив[5], Символ(34),"")<"921" тогда // //Если СтрЗаменить(Массив[5],Символ(34),"")= "302" и СтрЗаменить (Массив[5], Символ(34),"")="311" и СтрЗаменить (Массив[5], Символ(34),"")="313" тогда // // Если СтрЗаменить(Массив[5],Символ(34),"")>="993" и СтрЗаменить (Массив[5], Символ(34),"")<="999" тогда /////////Поиск документа по транзакции ВыборкаРеализация = РезультатРеализация.Выбрать(); ДокументПрисутствует = Ложь; Пока ВыборкаРеализация.Следующий() Цикл ВыборкаУслуги=ВыборкаРеализация.Услуги.выбрать(); Пока ВыборкаУслуги.следующий() Цикл Если ВыборкаУслуги.Транзакция = Массив[2] тогда ДокументПрисутствует = Истина; КонецЕсли; КонецЦикла; КонецЦикла; ////////////////Создание нового документа Если ДокументПрисутствует = Ложь тогда ///////////////Выбираем/Создаем каонтрагента //Если Массив[20]<>(Символ(34)+Символ(34)) тогда // Если Справочники.Контрагенты.НайтиПоНаименованию(Строка(Массив[20])).Пустая()=Ложь тогда // Контрагент = Справочники.Контрагенты.НайтиПоНаименованию(Строка(Массив[20])).Ссылка; // иначе // Контрагент = Справочники.Контрагенты.СоздатьЭлемент(); // Контрагент.Наименование = Строка(СтрЗаменить(Массив[20],"#",Символ(34))); // Контрагент.КодФиделио = Строка(Массив[18]); // Контрагент.ЮрФизЛицо=Перечисления.ЮрФизЛицо.ЮрЛицо; // Контрагент.Записать(); // КонецЕсли; // иначе //Если Справочники.Контрагенты.НайтиПоРеквизиту("КодФиделио",Строка(Массив[22])).Пустая()=Ложь тогда Контрагент = Справочники.Контрагенты.НайтиПоКоду("000001153"); //("КодФиделио",Строка(Массив[22])).Ссылка; //иначе // Контрагент = Справочники.Контрагенты.СоздатьЭлемент(); // Контрагент.Наименование = Строка(СтрЗаменить(Массив[24],"#",Символ(34))); // Контрагент.КодФиделио = Строка(Массив[22]); // Контрагент.ЮрФизЛицо=Перечисления.ЮрФизЛицо.ФизЛицо; // Контрагент.Записать(); //КонецЕсли; //КонецЕсли; /////////////////////Создаем запрос для выборки документа ЗапросДок = Новый Запрос; ЗапросДок.Текст = "ВЫБРАТЬ | РеализацияТоваровУслуг.Ссылка |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг |ГДЕ | РеализацияТоваровУслуг.Дата = &Дата | И РеализацияТоваровУслуг.Контрагент = &Контрагент"; ЗапросДок.УстановитьПараметр("Дата",Дата(СтрЗаменить(СтрЗаменить(Массив[30],Символ(34),""),"-","") )); ЗапросДок.УстановитьПараметр("Контрагент",Контрагент.Ссылка); РезультатДок = ЗапросДок.Выполнить().Выбрать(); //Результат1 = Запросдок.Выполнить().Выгрузить(); Если РезультатДок.Количество()=0 тогда ///////////Создаем новый документ НовыйДокумент= Документы.РеализацияТоваровУслуг.СоздатьДокумент(); НовыйДокумент.Организация = Организация ; НовыйДокумент.Дата = Дата(СтрЗаменить(СтрЗаменить(Массив[30],Символ(34),""),"-","")); НовыйДокумент.Контрагент =Контрагент.Ссылка; НовыйДокумент.СпособЗачетаАвансов = Перечисления.СпособыЗачетаАвансов.Автоматически; /////////////Создаем / Выбираем договор под наименованием "Осмновной договор" ВыборкаДоговора = Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию("Основной договор",,,Контрагент.Ссылка); Если ВыборкаДоговора.Пустая()=Истина тогда Договор=Справочники.ДоговорыКонтрагентов.СоздатьЭлемент(); Договор.Владелец=Контрагент.Ссылка; Договор.Организация =Организация; Договор.ВалютаВзаиморасчетов = Справочники.Валюты.НайтиПоНаименованию("руб.").Ссылка; Договор.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем; Договор.Наименование="Основной договор" ; Договор.Записать(); Иначе Договор = ВыборкаДоговора; КонецЕсли; НовыйДокумент.ДоговорКонтрагента = Договор.Ссылка; НовыйДокумент.УчитыватьНДС=Истина; НовыйДокумент.ВалютаДокумента =Справочники.Валюты.НайтиПоНаименованию("руб.").Ссылка; /////////Создаем строку табличной части услуги Услуги = НовыйДокумент.Услуги.Добавить(); Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("КодФиделио",СтрЗаменить(Массив[5],Символ(34),"")); Услуги.Номенклатура=Номенклатура.Ссылка; Услуги.Транзакция = Массив[2]; Услуги.Цена= Массив[11]; Услуги.Количество= Массив[12]; Услуги.Сумма = Массив[12]*Массив[11]; Услуги.Гость = СтрЗаменить(Массив[24],Символ(34),""); Услуги.НомерПостоянногоСчета = СтрЗаменить(Массив[33],Символ(34),""); Услуги.НомерЧека = СтрЗаменить(Массив[38],Символ(34),""); Услуги.Субконто=Номенклатура.НоменклатурнаяГруппа; Услуги.КодФиделио= Массив[5]; //Услуги.СубконтоНУ=Номенклатура.НоменклатурнаяГруппа; Услуги.СтавкаНДС = Номенклатура.СтавкаНДС; /////////////Получаем счета учета номенклатуры ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(Услуги, НовыйДокумент); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СчетаУчетаНоменклатуры.Номенклатура, | СчетаУчетаНоменклатуры.СчетДоходовОтРеализации, | СчетаУчетаНоменклатуры.СчетРасходовОтРеализации |ИЗ | РегистрСведений.СчетаУчетаНоменклатуры КАК СчетаУчетаНоменклатуры |ГДЕ | СчетаУчетаНоменклатуры.Номенклатура = &Номенклатура"; Запрос.УстановитьПараметр("Номенклатура",Номенклатура.Ссылка ); РезультатСчет = Запрос.Выполнить().Выгрузить()[0]; Услуги.СчетДоходов = РезультатСчет.СчетДоходовОтРеализации; Услуги.СчетРасходов = РезультатСчет.СчетРасходовОтРеализации; //Услуги.СчетУчетаНДСПоРеализации = РезультатСчет.СчетУчетаНДСПоРеализации; //Если РезультатСчет.СчетДоходовОтРеализацииНУ<>"" тогда // Услуги.СчетДоходовНУ = РезультатСчет.СчетДоходовОтРеализацииНУ; // Услуги.СчетРасходовНУ = РезультатСчет.СчетРасходовОтРеализацииНУ; // НовыйДокумент.ОтражатьВНалоговомУчете=Истина; //КонецЕсли; //НовыйДокумент.СпособЗачетаАвансов = Перечисления.СпособыЗачетаАвансов.Автоматически; //НовыйДокумент.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.РасчетыСПокупателями; НовыйДокумент.ЗаполнитьСчетаУчетаРасчетов(); ////////////Проводим документ НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение); /////////Создаем счет-фактуру Если ЭлементыФормы.СчетФактураФлаг.Значение=Истина тогда ВвестиСчетФактуру(НовыйДокумент); КонецЕсли; Иначе ////////////////////Добавляем новую строку услуги в существующий документ РезультатДокумент = ЗапросДок.Выполнить().Выгрузить()[0]; Документ = РезультатДокумент.Ссылка.ПолучитьОбъект(); Услуги = Документ.Услуги.Добавить(); Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("КодФиделио",СтрЗаменить(Массив[5],Символ(34),"")); Услуги.Номенклатура=Номенклатура.Ссылка; Услуги.Транзакция = Массив[2]; Услуги.Цена= Массив[11]; Услуги.Количество= Массив[12]; Услуги.Сумма = Массив[12]*Массив[11]; Услуги.Гость = СтрЗаменить(Массив[24],Символ(34),""); Услуги.НомерПостоянногоСчета = СтрЗаменить(Массив[33],Символ(34),""); Услуги.НомерЧека = СтрЗаменить(Массив[38],Символ(34),""); Услуги.Субконто=Номенклатура.НоменклатурнаяГруппа; Услуги.КодФиделио= Массив[5]; //Услуги.СубконтоНУ=Номенклатура.НоменклатурнаяГруппа; Услуги.СтавкаНДС = Номенклатура.СтавкаНДС; ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(Услуги, Документ); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СчетаУчетаНоменклатуры.СчетДоходовОтРеализации, | СчетаУчетаНоменклатуры.СчетРасходовОтРеализации, | СчетаУчетаНоменклатуры.Номенклатура |ИЗ | РегистрСведений.СчетаУчетаНоменклатуры КАК СчетаУчетаНоменклатуры |ГДЕ | СчетаУчетаНоменклатуры.Номенклатура = &Номенклатура"; Запрос.УстановитьПараметр("Номенклатура",Номенклатура.Ссылка ); РезультатСчет = Запрос.Выполнить().Выгрузить()[0]; Услуги.СчетДоходов = РезультатСчет.СчетДоходовОтРеализации; Услуги.СчетРасходов = РезультатСчет.СчетРасходовОтРеализации; //Услуги.СчетУчетаНДСПоРеализации = РезультатСчет.СчетУчетаНДСПоРеализации; //СпособЗачетаАвансов = Перечисления.СпособыЗачетаАвансов.Автоматически; //Если РезультатСчет.СчетДоходовОтРеализацииНУ<>"" тогда // Услуги.СчетДоходов = РезультатСчет.СчетДоходовОтРеализации; // Услуги.СчетРасходов = РезультатСчет.СчетРасходовОтРеализации; // Документ.ОтражатьВНалоговомУчете=Истина; //КонецЕсли; ////////////Проводим документ //Документ.СпособЗачетаАвансов = Перечисления.СпособыЗачетаАвансов.Автоматически; //Документ.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.РасчетыСПокупателями; Документ.Комментарий="загрузка проживания"; Документ.Записать(РежимЗаписиДокумента.Проведение); Документ.Записать(); КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; //КонецЕсли; //КонецЕсли; //КонецЕсли; счСтроки = счСтроки + 1; КонецЦикла; //////////закрываем документ //Док.Application.Quit(); Сообщить("Загрузка документов завершена !!!"); СД=Документы.РеализацияТоваровУслуг.ПолучитьФормуСписка(); СД.Отбор.Комментарий.Значение = "загрузка проживания"; СД.Отбор.Комментарий.Использование=Истина; СД.Открыть(); Док.Application.Quit(); КонецПроцедуры |
|||
80
kotletka
17.12.12
✎
10:29
|
код даешь? через час зайду посмотреть )
|
|||
81
kotletka
17.12.12
✎
10:31
|
у тебя не условия долго работают, а ком соединение к эксель файлу, лучше подключаться по ADO
|
|||
82
anisa8310
17.12.12
✎
10:32
|
не знаю я ADO не работала с ним
|
|||
83
anisa8310
17.12.12
✎
10:33
|
Обязательно выложу я всегда выкладываю-после успешной работы)
|
|||
84
kotletka
17.12.12
✎
10:33
|
или COMSafeArray
|
|||
85
kotletka
17.12.12
✎
10:33
|
(83)не в (80) я просто опоздал, код то в (79)
|
|||
86
kotletka
17.12.12
✎
10:34
|
||||
87
kotletka
17.12.12
✎
10:35
|
в (86)примерно то же самое но надо считывать
|
|||
88
Fragster
гуру
17.12.12
✎
11:09
|
еще раз - в (79) эксель используется не как парсер CSV, а как ЧтениеТекста, а потом рубит строки средствами 1с (причем неправильно), отчего и тормозит, отчего и "СтрЗаменить"
|
|||
89
anisa8310
17.12.12
✎
14:46
|
Короче, сделала процедуру на каждое условие.
Затем общую процу где все (процы с условиями)перечисляю. последовательно происходит обход, в сущ док, добавляю строки с условиями массива. Очень красиво ровно и быстро! |
|||
90
kosts
17.12.12
✎
14:53
|
(89) Можно увидеть код?
|
|||
91
anisa8310
17.12.12
✎
16:46
|
Код один и тот же) просто процедуры разные условия.
И одна процедура кнопка которая обходит все процедуры с разными условиями. |
|||
92
anisa8310
17.12.12
✎
16:46
|
По Челябински решила проблему) сурово)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |