|   |   | 
| 
 | Конвертация данных - произвольный код. | ☑ | ||
|---|---|---|---|---|
| 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 | 
        *ВыгрузитьПоПравилу(ДанныеВыгрузки, , , ,"ТутНазваниеПравилаОприходования");     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |