Имя: Пароль:
1C
1С v8
Поиск существующих документов с вопросом о замене.
0 brenli
 
13.11.16
22:07
Доброго времени.
Пишу обработку загрузки документов из xml файла.
Сначала файл xml парсится и на его основе создается массив структур со всеми загружаемыми данными.
Получили мы массив структур, запускаем серверную процедуру в которую передаем полученный массив и обходим его получая прототипы документов и сразу ищем существующие документы с такими же номерами в ИБ, если номер найден, (значит нужно что то делать с этим документом...переписать или оставить текущий) заталкиваем номер найденного документа в массив, впоследствии который мы возвращаем из процедуры на клиента.
На клиенте мы имеем массив с номерами по которым должен задаваться вопрос - если ответ на этот вопрос ДА - тогда текущий документ в БД должен быть удален и создан новый, иначе документ с этим номером должен быть удален из структуры полученной из файла xml.
Вот только как это сделать наиболее просто?
1 brenli
 
13.11.16
22:07
Или буду рад любой другой идее решения данной задачи
2 kosts
 
13.11.16
22:51
(0) Вопрос не понятен. Что сделать проще, удаление из структуры?, поиск документа?
Лучше было бы , если бы не было никаких вопросов. Надо придумать точные правила, когда документ заменяется, а когда нет.
В текущем случае перед импортом выдавайте список на экран пользователю всех конфликтных документов, что и на что будет заменено. Пользователь ставит галочки, что заменять, а что нет.
3 brenli
 
14.11.16
07:37
(2) А список конфликтных документов как правильнее реализовать? Создать еще одну форму и туда выводить их с последующим вызовом callback метода?
4 brenli
 
14.11.16
07:42
Меня в реализации всей этой задачи смущает дублирование кода.
Сначала вызываемся на сервере чтобы определить список документов которые подходят под критерии, далее отправляем этот список на клиента, там его проходим подобными условиями чтобы можно было интерактивно поработать, ... на клиенте структура должна полностью принять вид - который без лишних вопросов уже будет сформирован в документы.
Но вот как быть с дублированием....
5 Мимохожий Однако
 
14.11.16
07:54
(3) Тебе дали совет "Надо придумать точные правила, когда документ заменяется, а когда нет". Если начнёшь с него,то и не  понадобятся дополнительные действия.
6 d546
 
14.11.16
08:09
(0)
1. вместо массива структур - таблица значений (легче искать дубли и подгружать в запрос)
2. отсекаешь дубли в загружаемых данных (придумай сам и как)
3. проверяешь в базе уже имеющиеся документы, а таблице загрузки останутся только нужные для загрузки документы. в доп колонку пишешь признак дубля базы
4. или пробегаешь вначале циклом на клиенте подтверждение перезаписи, потом кидаешь на сервер для создания. или на клиенте в цикле для каждого документа (если надо) задаешь вопрос и на сервер для записи документа.

слабая сторона, нет блокировки проверки на дубли базы(если хочешь можешь заморочиться)