Имя: Пароль:
1C
1C 7.7
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) Спасибо