|
Конвертация данных - произвольный код. | ☑ | ||
---|---|---|---|---|
0
d3N4eGG
06.09.13
✎
17:15
|
Добрый день!
Разбираюсь с конфигурацией "Конвертация данных". Была поставлена задача: реализовать перенос данных из одной "торговли" в другую. Конфигурации абсолютно одинаковые. Нужно перенести некоторые справочники, регистры и тд. С правилами обмена вроде разобрался, с обработчиками тоже. Сейчас столкнулся со следующей проблемой: Допустим, есть у нас регистр сведений "ЦеныНоменклатуры", в нем миллион миллионов записей. Мне же нужно из него вытащить срез последних и завести эти данные в новой базе документом "УстановкаЦенНоменклатуры". Вопрос следующий, а где такой код мне писать? Я предполагаю, что должен быть какой-то общий модуль для таких операция, но не нашел такого, может плохо искал. Подскажите, пожалуйста. |
|||
1
Alex S D
06.09.13
✎
17:18
|
копай ПВД произвольный запрос
|
|||
2
Абыр
06.09.13
✎
17:19
|
(0) ПВД. Произвольный запрос. ВыгрузитьПоПравилу(), либо заполняете ВыборкаДанных.
|
|||
3
d3N4eGG
06.09.13
✎
17:21
|
спасибо, буду дальше разбираться
|
|||
4
Крошка Ру
06.09.13
✎
17:39
|
ПКО - Обработчики событий, не подойдут? Собственно можно писать практически любой код, который будет запускаться в нужный момент(перед выгрузкой, при выгрузки, после выгрузки в файл и т.д.)
|
|||
5
d3N4eGG
09.09.13
✎
14:16
|
Хочу снова поднять вопрос. Так и не могу понять, и найти ответа.
Я разобрался как работают алгоритмы, запросы, ВыгрузитьПоПравилу(). Но не понимаю следюещее: у меня задача такая, есть регистр накопления "ТоварыНаСкладах", мне нужно взять остатки из этого регистра и в новой базе создать документ "Оприходование", куда внести остатки. По моей логике, где-то должен быть общий модуль, к примеру, в Правилах выгрузки данных, где я уже пропишу следующий код: РезультатЗапроса = Запросы.ОстаткиТоваровНаСкладах.Выполнить().Выгрузить(); НовДок = Документы.Оприходование.СоздатьДокумент(); НовДок.УстановитьНовыйНомер(); НовДок.УстановитьВремя(); Для Каждого Стр Из РезультатЗапроса Цикл НовСтр = НовДок.Товары.Добавить(); НовСтр.Товар = Стр.Товар; НовСтр.Количество = Стр.Количество(); КонецЦикла; НовДок.Записать(); Как правильно реализовать такой фрагмент? есть ли такой общий модуль? |
|||
6
d3N4eGG
09.09.13
✎
14:27
|
up. ребят помогите
|
|||
7
d3N4eGG
09.09.13
✎
14:27
|
пожалуйста
|
|||
8
mxs089
09.09.13
✎
14:36
|
создаешь ПВД, называешь остатки по регистру, перед выгрузкой получаешь остатки и вызываешь правило, без источника, где приемник документ оприходования
|
|||
9
mxs089
09.09.13
✎
14:37
|
(8) вызываешь ПКО
|
|||
10
Шурик71
09.09.13
✎
14:37
|
Все неправильно.
Тебе не надо создавать документ. Тебе надо создать структуру данных, аналогичную документу. На стороне базы - источника. Т.е. примерно так: ТЗ = Запросы.ОстаткиТоваровНаСкладах.Выполнить().Выгрузить(); ДанныеВыгрузки = Новый Структура; ДанныеВыгрузки.Вставить("Дата",ДатаДокумента); ДанныеВыгрузки.Вставить("Склад", СкладОприходования); ДанныеВыгрузки.Вставить("Ответственный", ПараметрыСеанса.ТекущийПользователь); ..... ДанныеВыгрузки.Вставить("Товары",ТЗ); ... ВыгрузитьПоПравилу(ДанныеВыгрузки, , , ,"ТребованиеНакладная"); (или ВыгрузитьПоПравилу( , ,ДанныеВыгрузки , ,"ТребованиеНакладная"); - в этом случае все получать из входящих данных Это все будет в произвольном алгоритме правил выгрузки данных. |
|||
11
Шурик71
09.09.13
✎
14:38
|
*ВыгрузитьПоПравилу(ДанныеВыгрузки, , , ,"ТутНазваниеПравилаОприходования");
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |