Проблема обмена в распределенной базе #467963


#0 by solnce
Доброе время суток. У нас стоит распределенная УПП 8.1(32 битная), были проблемы при расчете себестоимости, вылетала ошибка " не хватает памяти", решили проблему написанием внешней обработки,но возникла необходимость в доработки плана обмена, нужно выгружать/загружать измененные записи (регистрацию)региста "Затраты на выпуск продукции", в случае, если объем записей больше 200 000, в общем модуле"Процедуры обмена данными" дописала код:, что не так сделала? Код        Если ЭтоРИБ Тогда и еще вот в этом месте вылетает: Код
#1 by kitt
а с какой ошибкой и на какой строчке вылетает? //////////////////// этот запрос вообще возвращает записи? тут в параметр суется тип ДокументМенеджер, а должен по идее ДокументСсылка.
#2 by solnce
Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата) это по 2 запросу И по 1 запросу ошибка: Ошибка при записи изменений при обмене:  Ошибка при вызове метода контекста (Выполнить): {(29, 39)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых типов.
#3 by kitt
попробуйте в первом запросе в качестве параметра Регистратор указать ссылку на какой нибудь конкретный документ. Или если нужно выбрать записи сделанные документами с типом Расчет себестоимости выпуска, тогда нужно в условии написать |ИЗ
#4 by solnce
что касается 1 запроса, тут наверное нельзя так писать [code]  Если результат.НомерСтроки < 200000 Тогда [/code] пробовала так: [code]        ПО ЗатратыНаВыпускПродукцииИзменения.Регистратор = ЗатратыНаВыпускПродукции.Регистратор            И (ЗатратыНаВыпускПродукцииИзменения.Регистратор ССЫЛКА Документ.РасчетСебестоимостиВыпуска) СГРУППИРОВАТЬ ПО [/code] Но выдается ошибка, что не так? а по 2 запросу ошибка я думаю как раз в строчке ЗапросПоРегистру.УстановитьПараметр("Регистратор",Документы.РасчетСебестоимостиВыпуска);
#5 by solnce
спасибо большое за совет,а не могли бы подсказать еще такую вещь, у меня по 2 запросу, в условие должно быть, что если записей меньше 200 000 мы сбрасываем регистрацию, я это описала как: [code] [/code] правильноли так делать? я просто первый раз столкнулась с распределенной базой, еще не доконца разобралась что к чему
#6 by kitt
вообще, чтобы переотправить данные в другие узлы без извращений, по моему, достачно перезаписать регистратор без проведения. При этом документ и все его ссылочные данные, включая движения должны зарегистрировать для обмена
#7 by kitt
очепятался
#8 by kitt
вручную изменения ПланаОбмена никогда не удалял Но думаю, при они автоматически удалятся и заменятся на более поздние
#9 by solnce
у нас  в условиях цикла загружается не одна запись, а набор и у меня получается, что записи не заменяются, а задваиваются,то есть было 400, стало 800, как правильно поставить условие обхода, что если запись встречается первый раз, тогда заменить, если нет пропустить
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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