Обработка выгрузки в dbf файл #454643


#0 by vosk
Всем привет, заранее признаюсь скорее всего туплю!!!! Но проблема вот в чем!!! Создал обработку выгрузки выгружает замечетельно, создает файл dbf и т.д.. Но проблема вот в чем сотрудники могут внести изменения в документ, эти изменения при выгрузке перезаписывались. людям которые получаю этот файл нужно проверять каждую строчку файла что бы понять где изменения, это долго. Тогда было решено, что нужно внести еще одно поле Status, в которой 0 если данные не менялись, 1 если менялись. Так проблема, как сравнить данные из файла с данными с запроса??? Что бы было более понятно с низу приведен код.   ИначеЕсли  ФС.СуществуетФайл(ПутьВыгрузки + ФайлВыгрузки + ".dbf")=1 тогда
#1 by vosk
Да это семерка!!!
#2 by zak555
где сравнить ?
#3 by filh
сильно!
#4 by Ёпрст
жесть какая-то..
#5 by vosk
Вот полученные элементы из файла
#6 by filh
В файле только 1 элемент?
#7 by vosk
Нет просто мне нужно 1 элемент получаемый в запросе сравниь с первым элементом из файла, второй со втором и т.д.
#8 by vosk
Пока Ф.ВКонце=0 Цикл вот этот цикл должен по идеи идти по файлу
#9 by vosk
Следующие два цикла Пока Запрос.Группировка = 1 Цикл Пока Запрос.Группировка = 1 Цикл получают элементы из документа
#10 by filh
это только 1 раз отработает
#11 by filh
+ в смысле цикл по групировке 1 раз отработает
#12 by filh
А потом останется только цикл  Пока Ф.ВКонце=0 Цикл
#13 by vosk
Я просто хрен его знает как добиться того что эти циклы работали одновременно первый элемент этого цикла Пока Ф.ВКонце=0 Цикл сравнивался с певым элементом Пока Запрос.Группировка = 1 Цикл Пока Запрос.Группировка = 1 Цикл Следующих циклов, второй со вторым. останавливать цикл Пока Запрос.Группировка = 1 Цикл Пока Запрос.Группировка = 1 Цикл после получения каждого элемента, и автоматически будет переходить на Пока Ф.ВКонце=0 Цикл тогда все будет впорядке но как это сделать? Здесь нет метки go to
#14 by filh
можно позвать вменяемого программера. Прервать еще есть...но это не в ту сторону...
#15 by vosk
Пока Запрос.Группировка = 1 Цикл  Данный цикл будет работать равно столько сколько документов было введено за один день, а следующий цикл, Пока Запрос.Группировка = 1 Цикл будет работать ровно столько сколько записей в самом документе!!!
#16 by dedmoroz777
Запрос в ТЗ выгрузи
#17 by vosk
В тз суть не помяется
#18 by vosk
Короче есть какая нибудь операция , который при отработке первого круга выходила из цикла?
#19 by filh
есть, только другой алгоритм. Скажем, если будет добавлен новый док в начало запроса, что тогда? А если в середине? не взлетит при таком решении как в
#20 by Timaaa
Всегда поражаюсь, как некоторые люди на этом форуме могут моментально поинмать проблему, которую автор хочет решить... Если я правильно понял, то подумай в сторону: Синтаксис: Прервать; Назначение: Прерывает выполнение цикла. Заведи доп. переменные-флаги, вызывай условно Прервать при нужных значениях флагов. Но вообще я не уверен на все 100, что правильно тебя понял :) ЗЫ в университете на младшем курсе доказывали, что не существует алгоритма, в котором нельзя обойтись без go to.
#21 by Timaaa
в файле и запросе одинаковое количество элементов?
#22 by Иду
какие прервать, какие двойные пробеги... никто тильду воткнуть в цикл не предлагал? Чтобы быстро искать, для dbf нужен индекс. а при пробеге по Запросу сооружать ключик "налету" и искать строку в dbf. И менять там чего надо и быстренько.
#23 by Rabbit
1. Загрузить старые данные из дбф в ТЗ 2. Свернуть её 3. Стереть всё в дбф 4. Записывать, сверяясь с ТЗ и проставляя флаги какось так
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С