Имя: Пароль:
1C
1С v8
Конвертация данных
0 Paradox
 
10.02.12
12:12
Блин, понимаю тупой вопрос, но что-то не получается никак.
Есть ПКО ЦеныНоменклатуры (УТ 11, Регистр сведений, подчинен регистратору. Надо из этого регистра выгрузить данные в независимый такой же регистр в УНФ с отбором по виду цены.
Как связать ПВД и ПКО?
У ПВД указал свойство "Произвольный алгоритм", написал запрос,далее запрос передал в
ВыборкаДанных = Запрос.Выполнить();
Но при выгрузке попадают цены все...почему то не происходит передача запроса в ПКО, либо вообще не корректно делаю?
Подскажите люди добрые, плиз
1 Paradox
 
10.02.12
12:13
запрос написал в событии Перед обработкой данных у ПВД
2 Paradox
 
10.02.12
12:23
/
3 Жан Пердежон
 
10.02.12
12:28
используй ВыгрузитьПоПравилу
4 Paradox
 
10.02.12
12:58
видимо руки кривые, но не получается через ВыгрузитьПоПравилу(). Вс равно приходят все цены. Вот текст обработчика ПередОбработкой у ПВД:

Запрос = Новый Запрос();
Запрос.Текст =
"ВЫБРАТЬ
|    ЦеныНоменклатурыСрезПоследних.Период,
|    ЦеныНоменклатурыСрезПоследних.Активность,
|    ЦеныНоменклатурыСрезПоследних.ВидЦены,
|    ЦеныНоменклатурыСрезПоследних.Номенклатура,
|    ЦеныНоменклатурыСрезПоследних.Характеристика,
|    ЦеныНоменклатурыСрезПоследних.Цена
|ИЗ
|    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних";

ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Розничные");
Дата = ТекущаяДата();

Запрос.УстановитьПараметр("ВидЦены", ВидЦены);
Запрос.УстановитьПараметр("Дата", Дата);

ВыборкаДанных = Запрос.Выполнить().Выбрать();
Пока ВыборкаДанных.Следующий() Цикл
   ВыгрузитьПоПравилу(ВыборкаДанных, , , , "ЦеныНоменклатуры");
КонецЦикла;
5 Paradox
 
10.02.12
12:59
может не правильно передаю параметры в ВыгрузитьПоПравилу() ?
6 Paradox
 
10.02.12
13:38
\
7 Поpyчик-4
 
10.02.12
13:41
Отказ - Булево. Если установить значение Истина, то выгрузка данных по данному правилу не производится
8 Paradox
 
10.02.12
13:49
Так в запросе я выбираю нужный мне вид цены. Но тем неменее приходят все виды цен, зарегестрированные по текущей номенклатуре.
В книге по конвертации данных в разделе конвертация регистров, пишут вообще что достаточно инициализировать переменную ВыборкаДанных, т.е передать запрос в нее ВыборкаДанных = Запрос.Выполнить().Выбрать();
Тоже нифига так не получилось.
Походу пятница расслабляет...вообще на быстрый взгляд задача то простяцкая, перенести только розничный вид цены в базу приемник...пипец
9 Paradox
 
10.02.12
13:50
Это я к посту (7), имею ввиду, зачем мне Отказ устанавливать, когда в запросе по идее и есть вся нужная мне инфа.
Спасибо
10 Поpyчик-4
 
10.02.12
13:55
(9) Отказ отставить.

ПередОбрабткой

ВыборкаДанных - Запрос, Результат запроса, Выборка из результата запроса или произвольная коллекция выгружаемых объектов. Используется, когда способ выгрузки данных - Произвольный алгоритм. Если определить данную переменную, то обход коллекции и выгрузка объектов будет осуществляться автоматически

Важно:
Если для выборки данных ПВД используется произвольный алгоритм и в обработчике ПВД "Перед обработкой" инициируется параметр ВыборкаДанных, то для ПКО следует установить признак "Не запоминать выгруженные объекты".


Это выбросить.
Пока ВыборкаДанных.Следующий() Цикл
   ВыгрузитьПоПравилу(ВыборкаДанных, , , , "ЦеныНоменклатуры");
КонецЦикла;
11 Paradox
 
10.02.12
14:13
ух и тупняк какой-то. То ли не догоняю чего то в конвертации, то ли х.з.
начал смотреть регистрацию объектов, отладку, и содержимое файлика выгрузки.
Изменили у товара1 оба вида цен. В обработке регистраций у регистра отобразились два набора записей.
В конвертации запрос выбирает только нужные, но в файлик выгрузки попадает пустой набор)
Содержимое файла выгрузки:
1. НаборЗаписей1 (тут находится нужная мне цена по отбору)
2. НаборЗаписей2 (пустой)
при загрузке сначала грузится нормальный набор, затем пустой, который тупо очищает регистр)
надо в отпуск в общем...конвертация из регистра в регистр меня убила)

Как же избавиться то от пустого набора....
12 Paradox
 
10.02.12
14:16
получается такое, что даже без отборов, если просто хочу перекинуть из одного регистра УТ11 ЦеныНоменклатуры(подчинен регистратору) в другой регистр УНФ ЦеныНоменклатуры(независимый), получается что записывается в итоге последний набор...
Если поменяли у Товара1 цены Оптовую и розничную, то поэтапно выгрузка:
1. Выгружается в приемник Розничная цена
2. Выбгружается Оптовая, и этот же набор затирает запись с розничной ценой...
13 Поpyчик-4
 
10.02.12
14:30
Найди правила обмена УТ 10.3 - БП 2.0, там есть близко похожий пример переноса цен.

Если не справишься, могу сделать за деньги. Аська в профиле.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс