Проблема в том как перезаписывать уже имеющиеся документы при выгрузке если там есть изменения.
Сейчас я просто сравниваю на изменение по сумме ну и по коду чтобы дублей не было.Если сумма разная делается новый документ.
То есть номер не меняется, меняться может только сумма, и если она изменилась значит перезаписываем только сумму в уже созданном.
Тут проверка
&НаСервере
Функция ПроверитьСуществованиеДокумента(Номер,СуммаДокумента, НачалоИнтервала, КонецИнтервала)
Запрос = новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|СписокЗаявокУТ.Ссылка
|ИЗ
|Документ.СписокЗаявокУТ КАК СписокЗаявокУТ
|ГДЕ
|СписокЗаявокУТ.НомерЗаявки = &ПараметрСправочныйНомер
|И СписокЗаявокУТ.Дата МЕЖДУ &ПараметрНачалоИнтервала И &ПараметрКонецИнтервала
|И СписокЗаявокУТ.СуммаДокумента = &СуммаДокумента";
Запрос.УстановитьПараметр("СуммаДокумента", СуммаДокумента);
Запрос.УстановитьПараметр("ПараметрСправочныйНомер", Номер);
Запрос.УстановитьПараметр("ПараметрНачалоИнтервала", НачалоИнтервала);
Запрос.УстановитьПараметр("ПараметрКонецИнтервала", КонецИнтервала);
Результат = Запрос.Выполнить().Выбрать();
Если Результат.Количество() = 0 Тогда
Возврат Ложь;
Иначе
Возврат Истина;
КонецЕсли;
КонецФункции
Запрос
запр = СоединениеБух.NewObject("Запрос");
запр.Текст = "ВЫБРАТЬ
| ЗаказКлиента.Номер КАК Номер,
| ЗаказКлиента.Дата,
| ЗаказКлиента.СуммаОплаты КАК СуммаОплаты,
| ЗаказКлиента.СуммаДокумента КАК СуммаДокумента,
| ЗаказКлиента.ЧислоПутевок КАК ЧислоПутевок,
| ЗаказКлиента.Санаторий.Наименование КАК Санаторий,
| ЗаказКлиента.Партнер.Наименование КАК Партнер,
| ЗаказКлиента.РуководительГруппы.Наименование КАК РуководительГруппы,
| ЗаказКлиента.Контрагент.Наименование КАК Контрагент
|ИЗ
| Документ.ЗаказКлиента КАК ЗаказКлиента
|ГДЕ
| ЗаказКлиента.Дата МЕЖДУ &НачалоПериода И &КонецПериода
| И ЗаказКлиента.Проведен = ИСТИНА
| И ЗаказКлиента.ПометкаУдаления = ЛОЖЬ";
запр.УстановитьПараметр("НачалоПериода", Объект.НачалоПериода);
запр.УстановитьПараметр("КонецПериода", Объект.КонецПериода);
Выборка = запр.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить("Загрузка документа №" + Выборка.Номер);
Если ПроверитьСуществованиеДокумента(Выборка.Номер, Выборка.СуммаДокумента, НачалоГода(Выборка.Дата), КонецГода(Выборка.Дата)) тогда
Сообщить("Загрузка №" + Выборка.Номер + " невозможна, поскольку документ уже был загружен");
Иначе
НачатьТранзакцию();
НовыйСписокЗаявокУТ = Документы.СписокЗаявокУТ.СоздатьДокумент();
НовыйСписокЗаявокУТ.Контрагент = Выборка.Контрагент;
НовыйСписокЗаявокУТ.ЧислоПутевок = Выборка.ЧислоПутевок;
НовыйСписокЗаявокУТ.СуммаДокумента = Выборка.СуммаДокумента;
НовыйСписокЗаявокУТ.НомерЗаявки = Выборка.Номер;
НовыйСписокЗаявокУТ.Санаторий = ПодобратьСанаторий(Выборка.Санаторий);
НовыйСписокЗаявокУТ.РуководительГруппы = Выборка.РуководительГруппы;
НовыйСписокЗаявокУТ.Партнер = Выборка.Партнер;
НовыйСписокЗаявокУТ.Дата = Выборка.Дата;
НовыйСписокЗаявокУТ.Оплачено = Выборка.СуммаОплаты;
НовыйСписокЗаявокУТ.Записать();
ЗафиксироватьТранзакцию();
КонецЕсли;
КонецЦикла;