|
Конвертация данных - загрузка цен | ☑ | ||
---|---|---|---|---|
0
d3N4eGG
18.09.13
✎
16:06
|
Добрый день!
Делаю обмен между двумя одинаковыми конфигурациями "Управление торговлей" с помощью Конвертации данных. Нужно внести кое-какие изменения при переносе и загрузить цены и остатки при помощи создания нужных документов. Разобрался со всем, кроме цен. Проблема в том, что есть даты установленные на будущие периоды. То есть, мне вместо одного документа нужно создать, как минимум, один документ для цен прошлых периодов (срез последних на дату выгрузки), и потом столько документов, сколько различных дат в регистре на будущие периоды. Сначала думал так сделать: 1) создал ПКО: источник - пустое поле, приемник - документ.УстановкаЦенНоменклатуры. 2) создал запрос, которые вытягивает цены. 3) создал ПВД: в нем описал структуру документа и ВыгрузитьПоПравилу(ДанныеВыгрузки, , , ,"УстановкаЦенНоменклатуры"); думал здесь описать алгоритм: узнать сколько нужно документов (сколько разных дат) и в цикле пройтись и создать нужное количество документов. анныеВыгрузки = Новый Структура; ДанныеВыгрузки.Вставить("Дата", ТекущаяДата()); ДанныеВыгрузки.Вставить("НеПроводитьНулевыеЗначения", Истина); ДанныеВыгрузки.Вставить("ТипДокумента", Перечисления.ТипыДокументов.УстановкаЦенНоменклатуры); Запросы.ТипыЦенНоменклатуры.УстановитьПараметр("НаДату", ТекущаяДата()); ТипЦен = Запросы.ТипыЦенНоменклатуры.Выполнить().Выгрузить(); ДанныеВыгрузки.Вставить("ТипыЦен", ТипЦен); Запросы.ЦеныНоменклатуры.УстановитьПараметр("НаДату", ТекущаяДата()); Цены = Запросы.ЦеныНоменклатуры.Выполнить().Выгрузить(); ДанныеВыгрузки.Вставить("Товары", Цены); Для п = 1 по 3 Цикл ДанныеВыгрузки.Вставить("Номер", "000000"+строка(п)); ВыгрузитьПоПравилу(ДанныеВыгрузки, , , ,"УстановкаЦенНоменклатуры"); КонецЦикла; как-то так. Тут хотел затестить и посмотреть создадутся ли 3 документа установка цен номенклатуры, но не удалось. Хотел узнать как реализовать такое? Помогите, пожалуйста. |
|||
1
d3N4eGG
18.09.13
✎
16:27
|
up. Ребят помогите, пожалуйста. Может непонятно объяснил проблему?
|
|||
2
МойКодУныл
18.09.13
✎
16:40
|
Можно и так. Формируешь структуру с нужным набором данных, потом передаеш из как ВходящиеДанные в ВыгрузитьПоПравилу - почитай справку. + Лучше создай отдельное ПКО Установкацен_ВходДанные, там у все свойств поставь галку "получить из входящих данных". Имена свойств и ключей структуры естественно совпадают.
|
|||
3
МойКодУныл
18.09.13
✎
16:41
|
Получать данные в ПВД луще запросом, а потом в цикле вызывать выгрузить по правилу, заполняя структуру данных из тек выборки.
|
|||
4
d3N4eGG
18.09.13
✎
17:10
|
я, если честно, не понял, что ты имеешь в виду.
может я непонятно объяснил, опишу еще раз в двух словах. допустим, в правиле выгрузки данных я определил, что мне нужно создать 10 документов. В правиле конвертации объекта описана структура этого файла. http://postimg.org/image/fs7w7qev1/388295c1/ есть правила выгрузки данных, где я заполняю реквизиты документа, сейчас это выглядит так. http://postimg.org/image/aayfuw8mf/full/ создается только один документ. а у меня в регистре ЦеныНоменклатуры есть цены, которые установлены, к примеру, на 01.01.2014. Следовательно мне надо создать второй документ, и указать дату 01.01.2014. я думал засунуть все правило выгрузки в цикл и выгружать по правилу столько раз сколько мне нужно, но после того, но срабатывает эта штука только один раз, то есть при первой итерации происходить выгрузка и обратно в правило выгрузки данных не заходит. |
|||
5
d3N4eGG
18.09.13
✎
17:13
|
*В правиле конвертации объекта описана структура документа.
|
|||
6
d3N4eGG
18.09.13
✎
17:30
|
Люди добрые, отзовитесь! И не добрые тоже..
|
|||
7
manti
18.09.13
✎
17:44
|
тупой совет- если кнфигарации 2 и идентичные = можно воспользоваться специльной обработкой по переносу имежду 2 типовыми. НЕ?
|
|||
8
d3N4eGG
18.09.13
✎
17:48
|
не прокатит, мне нужно записи из регистра "ЦеныНоменклатуры" записать документом.
тоже сначала подумал над таким вариантом - просто регистр перегрузить, но он подчинен регистратору, собственно, надо все документы установки цен перегружать - не катит! |
|||
9
manti
18.09.13
✎
17:51
|
(8) а ошибка какая при конвертации и на чьей стороне?
|
|||
10
scanduta
18.09.13
✎
17:54
|
(9) +1 говори где ошибка
|
|||
11
d3N4eGG
18.09.13
✎
18:00
|
нет ошибок.
http://postimg.org/image/pzi0ktpib/full/ вот такой код к примеру, хочу создать 3 документа установки цен номенклуры. а у меня создается только один, полагаю, что когда отрабатывается строка ВыгрузитьПоПравилу(ДанныеВыгрузки, , , ,"УстановкаЦенНоменклатуры"); обратно в тело цикла уже не попадает. |
|||
12
manti
18.09.13
✎
18:03
|
(11) через отладчик смотрите?
Я когда то брал данные из регистра и перемещал их в базу приемник. Вот скрины, может так прокатит http://www.ximage.ru/index.php?id=1379512832 http://www.ximage.ru/index.php?id=1379512962 Запрос = Новый Запрос; //Сообщить(Источник); Запрос.Текст = "ВЫБРАТЬ | КонтактнаяИнформация.Объект КАК Объект, | КонтактнаяИнформация.Тип, | КонтактнаяИнформация.Вид, | КонтактнаяИнформация.Представление КАК Представление |ИЗ | РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация |ГДЕ | КонтактнаяИнформация.Тип = &Тип | И КонтактнаяИнформация.Вид = &Вид | И КонтактнаяИнформация.Объект = &Объект"; Запрос.УстановитьПараметр("Вид", Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента); Запрос.УстановитьПараметр("Объект", Источник); Запрос.УстановитьПараметр("Тип", Перечисления.ТипыКонтактнойИнформации.Адрес); Результат = Запрос.Выполнить().Выбрать(); Пока Результат.Следующий() Цикл Значение = Результат.Представление; КонецЦикла; |
|||
13
d3N4eGG
18.09.13
✎
18:08
|
данные из регистра то получить можно. а вот мне нужно создавать неопределенное количество документов.
Если есть еще мысли, подскажите, пожалуйста. я пока отладчиком гляну. |
|||
14
d3N4eGG
19.09.13
✎
11:22
|
Ребят, до сих пор не получилось разобраться.
Сделал замер производительности в обработке переноса, но код написанный в правилах выгрузки не найти, в коде используется "Выполнить()". что делать? как решить данную проблему? :( |
|||
15
manti
23.09.13
✎
16:15
|
(14) возможно у Вас данные не перечитаны, раз в модуле обработки, куда Вы подключаетесь нет нужного кода.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |