|
СтруктураОтбора для ТаблицыЗначений | ☑ | ||
---|---|---|---|---|
0
yavasya
26.07.14
✎
08:50
|
НомерСтроки = 1;
Пока НомерСтроки < 30000 Цикл Х1 = Sheet.Cells(НомерСтроки, 1).Value; Х2 = Sheet.Cells(НомерСтроки, 2).Value; Х3 = Sheet.Cells(НомерСтроки, 3).Value; Х4 = Sheet.Cells(НомерСтроки, 4).Value; СтруктураОтбора = Новый Структура; СтруктураОтбора.Вставить("НаименованиеДокумента", Х1); СтруктураОтбора.Вставить("НомерДокумента", Х2); НайденнаяСтрока = ТаблицаЗначенийЭксель.Найти(СтруктураОтбора); попытка ТекстДляПроверки=""+НайденнаяСтрока.НаименованиеДокумента; попытка НайденнаяСтрока.НаименованиеДокумента=Х1 и НайденнаяСтрока.НомерДокумента=Х2 и НайденнаяСтрока.ДатаДокумента=Х3 и НайденнаяСтрока.СуммаДокумента=Х4 исключение Сообщить(НомерСтроки); ТекстСообщения=""+ "Есть различия"+ НайденнаяСтрока.НаименованиеДокумента+НайденнаяСтрока.НомерДокумента+НайденнаяСтрока.ДатаДокумента+ НайденнаяСтрока.СуммаДокумента; Сообщить(ТекстСообщения); конецпопытки; исключение ТекстСообщения=""+ "Новый документ"+ Х1+Х2+Х3+Х4; КонецПопытки; НомерСтроки = НомерСтроки +1; КонецЦикла; |
|||
1
yavasya
26.07.14
✎
08:50
|
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("НаименованиеДокумента", Х1); СтруктураОтбора.Вставить("НомерДокумента", Х2); НайденнаяСтрока = ТаблицаЗначенийЭксель.Найти(СтруктураОтбора); |
|||
2
yavasya
26.07.14
✎
08:51
|
нужно найти строку в ТаблицеЗначений по двум полям .
Проще запрос сделать ? Что будет работать быстрее? |
|||
3
Drac0
26.07.14
✎
08:53
|
(2) запоос дольше. У ТЗ есть свои индексы.
|
|||
4
yavasya
26.07.14
✎
08:55
|
(2)в данной конструкции я получу массивСтрок, а как получить одну строку ?
|
|||
5
Drac0
26.07.14
✎
08:59
|
(4) Найтм возвращает строку. Но там нельзя использовать структуру ,вроде. Чем тнбе НайтиСтроки и массив не устраивает?
|
|||
6
yavasya
26.07.14
✎
08:59
|
потом массивстрок обойти циклом ?
для каждого найденнаястрока из массивстрок цикл конецЦикла; |
|||
7
yavasya
26.07.14
✎
09:00
|
в структуре вид и номер дока , то есть тока одна строка , попробую выбрать
|
|||
8
yavasya
26.07.14
✎
09:04
|
взлетело. но думаю написал коряво код , можете поправить?
НомерСтроки = 1; Пока НомерСтроки < 30000 Цикл Х1 = Sheet.Cells(НомерСтроки, 1).Value; Х2 = Sheet.Cells(НомерСтроки, 2).Value; Х3 = Sheet.Cells(НомерСтроки, 3).Value; Х4 = Sheet.Cells(НомерСтроки, 4).Value; СтруктураОтбора = Новый Структура; СтруктураОтбора.Вставить("НаименованиеДокумента", Х1); СтруктураОтбора.Вставить("НомерДокумента", Х2); НайденныйМассивСтрок = ТаблицаЗначенийЭксель.НайтиСтроки(СтруктураОтбора); Для каждого НайденнаяСтрока из НайденныйМассивСтрок цикл попытка ТекстДляПроверки=""+НайденнаяСтрока.НаименованиеДокумента; попытка НайденнаяСтрока.НаименованиеДокумента=Х1 и НайденнаяСтрока.НомерДокумента=Х2 и НайденнаяСтрока.ДатаДокумента=Х3 и НайденнаяСтрока.СуммаДокумента=Х4 исключение Сообщить(НомерСтроки); ТекстСообщения=""+ "Есть различия"+ НайденнаяСтрока.НаименованиеДокумента+НайденнаяСтрока.НомерДокумента+НайденнаяСтрока.ДатаДокумента+ НайденнаяСтрока.СуммаДокумента; Сообщить(ТекстСообщения); конецпопытки; исключение ТекстСообщения=""+ "Новый документ"+ Х1+Х2+Х3+Х4; КонецПопытки; КонецЦикла; НомерСтроки = НомерСтроки +1; КонецЦикла; |
|||
9
Drac0
26.07.14
✎
09:08
|
(7) Тогда синтаксис другой Найти (х1, "НаименованиеДокумента"). Но он вернет первую такую строку. (6) зачем циклом? Массив[0] после проверки на количество ().
|
|||
10
Drac0
26.07.14
✎
09:08
|
(8) не, лень.
|
|||
11
yavasya
26.07.14
✎
09:09
|
(9) нужночтобы 2 условия совпадали, тип дока и номердока
|
|||
12
Drac0
26.07.14
✎
09:25
|
(11) Тогда только НайтиСтроки()
|
|||
13
alle68
26.07.14
✎
09:35
|
(8) Зачем так много "Попытка"?
Почему ограничение 30000 строк? Не удобней ли выгрузить в ТЗ, а не в Excel? |
|||
14
yavasya
26.07.14
✎
09:37
|
я из эксель загружаю и сравниваю с таблицей значений,
попытка проверяет только одно условие? |
|||
15
alle68
26.07.14
✎
09:47
|
(14) Функция "ЗначениеВФайл(,)" знакома?
"Попытка проверяет условие." Это как? Что в СП про неё сказано? |
|||
16
yavasya
26.07.14
✎
10:01
|
сверяю две базы . из одной в эксель, затем читаю файл
|
|||
17
alle68
26.07.14
✎
10:31
|
(16) И задача, и её решение мне известны.
Не получено ответа ни на один наводящий вопрос. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |