|
v7: Как лучше организовать список исключений при проверке контрагентов | ☑ | ||
---|---|---|---|---|
0
vova1122
16.11.12
✎
12:54
|
Постараюсь понятно объяснить техническое задание.
В другой программе и в другом месте формируются два файла из списком контрагентов. Назовем их УРОВЕНЬ_0 и УРОВЕНЬ_1. Причем в основной массе (99%) контрагенты в этих списках разные. НО ПРИМЕРНО 1% ПРИСУТСТВУЮТ В ДВУХ СПИСКАХ. Эти файлы формируются по несколько раз в день. Каждый раз проводится синхронизация из 1С с этими файлами. Цель задачи установить дату перехода контрагента между Уровнями. Что сделано: В Справочнике контрагенты создал периодический реквизит «Уровень» (тип «число», длинна 1 символ) и поместил в виде флажка на форму. Правила установки флажка при синхронизации: а) если в 1С нет такого контрагента то создается новый контрагент и для него устанавливается Уровень в соответствии с тем из какого файла идет загрузка; б) если в Контрагента уровень установлен другой, то устанавливается нужный уровень Текущей датой. в) если уровень тот что нужно, то никаких действий не происходит. г) если Контрагент есть в двух файлах, то считать что у него Уровень_1. В соответствии с этими правилами я сначала загружаю файл Уровня_0 а потом Уровня_1. В таком случае все происходит так как нужно: Если контрагент есть в двух списках то для него устанавливается сначала Уровень0 а потом Уровень1. А так как в 1С в пределах дня может быть только один периодический реквизит, то пункт *г* устанавливается верно. Меня только одно не устраивает Для контрагентов которые есть в двух списках каждый день устанавливается один и тот самый периодический реквизит. Что мне нужно: Я хочу реализовать список исключений в который записать тех контрагентов которые есть в двух списках и их не проверять. (пояснение: Контрагенты, которые есть в дух списках относительно постоянные – могут присутствовать там по 0,5-2 месяца, но время от времени появляются новые, а некоторые потом остаются только в одном из списков) Как лучше организовать этот список исключений? 1. Создать файл со списком таких контрагентов и вручную время от времени его редактировать. (недостаток: необходимость ручного редактирования) 2. Делать синхронизацию сначала для Уровня_1 и всех контрагентов из файла Уровня_1 заносить в СисокЗначений для исключения. И потом при синхронизации с файлом Уровня_0 проверять наличие в таком списке исключений (недостаток: при такой реализации обработка будет долго работать) 3. Ваш вариант |
|||
1
2S
16.11.12
✎
12:55
|
фигня какая-то
|
|||
2
Нуф-Нуф
16.11.12
✎
12:55
|
не читал, но осуждаю
|
|||
3
vova1122
16.11.12
✎
12:55
|
(1) но всеже нужно сделать....
|
|||
4
Морковка
16.11.12
✎
12:58
|
загружай сначала оба файла в какое-то временное хранилище, таблицу значений например, и потом анализируй и расставляй все как тебе надо в справочнике, в чем проблема-то?
|
|||
5
del123
16.11.12
✎
12:59
|
(4) +1
|
|||
6
vova1122
16.11.12
✎
13:03
|
(4) загрузил все в одну таблицу значений. В ней всеравно контрагекты будут повторятся....
|
|||
7
Морковка
16.11.12
✎
13:06
|
(6) ну так сверни таблицу или при загрузке анализируй на наличие контрагента в таблице. Блин, у тебя проблема не в задаче, а в другом месте
|
|||
8
Voronve
16.11.12
✎
13:07
|
(6) Код загрузки в студию
|
|||
9
vova1122
16.11.12
✎
13:08
|
(4) хотя это мысль. Загрузить в общую таблицу значений (с колонками Контрагент и Уровень) Отсортировать по контрагенту и свернуть таблицу значений. А так как Уровень - это число, то Просуммируются значения Уровня при свертке ТЗ. В итоге я получу нужный мне Уровень_1 (если будут в двух списках)
|
|||
10
ale-sarin
16.11.12
✎
13:08
|
(6) Делаешь ТЗ с двумя колонками "Контрагент", "Уровень"
Заполняешь данными из файлов. Сворачиваешь по контрагентам, суммируешь по "Уровень". Обход в цикле и сравнение с реквизитом на текущую дату, если отличается перезаписываешь. Вариант? |
|||
11
ЧеловекДуши
16.11.12
✎
13:13
|
Много буковок, не осилил :)
|
|||
12
ЧеловекДуши
16.11.12
✎
13:17
|
+ >>>> 3. Ваш вариант
В Вопросе, так и не смог раскрыть "Тему Сисек", хоть и прочитал. Все оба варианта, какие-то натянутые + >>> Постараюсь понятно объяснить техническое задание. Лучше давай со слов заказчика. А то тебя трудно понять :) |
|||
13
Mikeware
16.11.12
✎
13:17
|
(7) Причем, в каком именно месте ошибка - доподлинно известно...
|
|||
14
vova1122
16.11.12
✎
13:18
|
(4)(6) Вот что значит коллективный разум. так и сделаю. Спасибо
|
|||
15
Mikeware
16.11.12
✎
13:19
|
(14) ога. "битва коллективного разума с индивидуальным идиотизмом..."©
|
|||
16
vova1122
16.11.12
✎
13:27
|
(15) может я так объяснял по идиотски. Ну как смог так объяснил...
|
|||
17
vova1122
16.11.12
✎
16:41
|
(4)(6) Так и сделал. Работает так как нужно. Спасибо.
|
|||
18
vova1122
16.11.12
✎
16:42
|
(10) Спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |