#0
by il0
Есть конвертация 2.1, в ней настроена выгрузка из ЕРП в Розницу, в том числе и регистра сведений НоменклатураСегментов. У нас так получается, что периодически объем изменений в этом регистре достигает нескольких сотен тысяч записей, соответственно, при загрузке в розницу одним пакетом это все грузится часами, если не сутками. И пока не загрузится, следующие изменения в розницу не попадают, что неприемлемо. Решил ограничить объём выгружаемых за один раз записей, в ПКО РС НоменклатураСегментов, в процедуре ПередВыгрузкой если счётчик превышает порог пишу Отказ=Истина. Прикол в том, что, оказывается, записи РС выгружаются не сами по себе, а в составе набора записей. Т.е. выгружается узел с набором записей, а в этом наборе находится одна запись. Там, где отрабатывает Отказ=Истина, узел с набором записей всё равно создается, просто не пишется вложенный узел с самой записью. Почему так, мне не понятно. Из-за этого при обратной синхронизации из розницы регистрация изменений снимается всё равно со всех записей, и выгруженных и не выгруженных. Есть идеи, как по другому выгружать записи РС порциями? Сорри за многобукв.
#2
by il0
Нет, изменения регистрируются программно при изменении элемента справочника СегментыНоменклатуры
#3
by Zhuravlik
Я о правилах) ПВД как работает? Штатно все выбирается, не запросом? Можно поизвращаться с запросом, в общем, но тогда квитирование ляжет на плечи разработчика
#5
by тарам пам пам
Погугли еще флажок "основной отбор" в измерении регистра НоменклатураСегмента - он на регистрацию влияет. Скорее всего, на номенклатуре он снят - в этом случае как раз регистрируется и выгружается весь регистр одним набором. Если его поставить, то регистр будет регистрироваться и выгружаться по одной записи, в разрезе каждой номенклатуры.
#6
by тарам пам пам
+ по крайней мере, так он для РИБ работает. По идее, конвертация тоже должна его учитывать.
#7
by il0
У регистра три измерения - Сегмент, Номенклатура, Характеристика, и у всех стоит флаг "основной отбор". Не знал, что это может влиять на характер выгрузки. У меня как раз на каждую запись создаётся по отдельному набору. Т.е. 700000 записей - 700000 наборов
#8
by тарам пам пам
хм, выходит в конвертации он не учитывается. А почему изменений так много? Номенклатура действительно постоянно "плавает" между сегментами?
#9
by Zhuravlik
может имеет смысл попробовать его снять с какого-нибудь измерения, чтобы наборы выгружать по 2, а не по трем
#10
by il0
Отдел маркетинга таким образом скидки назначает, здесь довольно запутанный механизм ценообразования, пока не вникал, можно ли это по-другому организовать. Думал с технической стороны проблему по-быстрому решу, а в результате зарылся что-то.
#11
by тарам пам пам
если в лоб - можно действительно попробовать снять этот флаг с номенклатуры и характеристик, как в предложили, чтобы сегменты выгружались целиком. Обычно целый набор пишется гораздо быстрее кучи мелких записей. Но тогда к обмену будет регистрироваться по сути всегда весь сегмент, даже если в нем изменили только одну позицию номенклатуры.
#12
by kudlach
Они сегмент обработкой что ли присваивают в таких количествах ? Это же как Планы обмена с регистрацией то перегружаются.... И база уже в Террабайтах меряется...
#13
by il0
В общем, коллеги, итог суточных изысканий: по наводке уважаемого Zhuravlik сначала игрался с ПВД, и на первый взгляд даже получилось. Код в обработчике ПередВыгрузкой действительно выгружал только 3 записи. Но проблема оказалась в том, что выгруженными считались всё равно все записи регистра, и при обратном ответе от розницы регистрация изменений снималась со всех записей, а не только с трёх реально выгруженных. Аналогичная история произошла и с обработчиком ПередОбработкой, в нем я пытался выбирать измененные записи и запросом к таблице РегистрСведений.НоменклатураСегмента.Изменения, и с помощью ПланыОбмена.ВыбратьИзменения(Узел,1,Метаданные.РегистрыСведений.НоменклатураСегмента) но в этих случаях всё равно выгрузка продолжала считать все записи выгруженными, а не только реально обработанную часть.
#14
by il0
Продолжаю. В итоге решил отказаться от использования ПВД, отключил его, чтобы оно не "портило" информацию о выгруженности записей. В самой конвертации в обработчике ПослеВыгрузкиДанных вставил следующий код: "ВЫБРАТЬ ПЕРВЫЕ 3 И оно заработало. Обратите внимание на две вещи: 1) Для выгрузки записей регистра сведений нельзя пользоваться процедурой ВыгрузитьПоПравилу - она тупо создает узел с записью регистра, а такой узел не понимает процедура загрузки, и дает ошибку. Процедура ВыгрузитьРегистр создает корректный узел с набором записей, содержащий коллекцию строк из одной строки 2) Оказывается, в качестве фильтра для метода ВыбратьИзменения можно использовать не только метаданные, но, в случае с регистром сведений, и набор записей. Тогда метод возвращает только те записи которые есть в переданном наборе, и ТОЛЬКО ДЛЯ НИХ проставляет номер отправленного сообщения. Т.о. я в ручном режиме выполняю то, что делает ПВД, но только в той части, в которой мне надо.
#15
by il0
Ещё поправка - в запросе сначала нужно выбирать ранее выгруженные изменения, чтобы повторно их выгружать, чтобы они не терялись, если не загрузились в предыдущие итерации "ВЫБРАТЬ ПЕРВЫЕ 10000
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Конвертация справочников из 77 в УПП 80? Конфа конвертация данных 2.0. КАК7
- Конвертация данных - конвертация реквизитов дока.
- Как быстро удалить записи из регистра сведений
- Конвертация Значений. (Конвертация данных 2.0)
- Есть ключ записи регистра сведений. Как получить имя этого регистра?
- Открыть форму записи регистра сведений с выбранным в документе имерением
- Как получить имя регистра сведений из формы записи этого же регистра?
- При обновлении УТ записи регистра сведений стали не уникальными
- Удаление записи регистра сведений в форме списка регистра
- Свойства НОВОЙ записи при копировании записи Регистра Сведений
- Конвертация данных 2, V8.1, конвертация периодических реквизитов
- Как выбрать записи из регистра сведений записи
В этой группе 1С
- Бух 3.0, Реализация с нулевой суммой
- Нужна помощь в запросе - сравнить результат выборки со значением
- ЗУП 3.1. Утверждение позиции в штатном расписании
- Как в запросе получить значение массива?
- Управляемые формы - командная панель Таблиц значений
- УТ 10.3 работа с эквайрингом Vx 805.
- Записи книги продаж из Приходно-кассового ордера (БП 3.0)
- Подвисшие сеансы. Не удается убить. 8.3.
- Пропала команда Печать
- УФ. Какое событие возникает при поиске в табличной части
- РЛС к документу. Как можно разрешить чтение при построении отчета ?
- Ищутся обучающие приложения по математике с игровым и соревновательным контекстом
- Выгрузка двух типов цен на сайт.
- СКД на УФ. Как поместить параметры отчета в нужное место на форме
- Как в Эвотор загрузить цену закупки?
- Можно ли подписать договор при помощи эцп без провайдеров?
- Задваиваются обороты в отчете на СКД
- (ЗУП 3.1) т13 - зачем убрали шапкуТаблицы с каждого листа?
- Отчет ВаловаяПрибыль (скд)
- Закрыть несколько месяцев в БП 3.0 сразу