|   |   | 
| 
 | Конвертация данных из регистра в документ | ☑ | ||
|---|---|---|---|---|
| 0
    
        vsgprog1c 13.10.20✎ 11:36 | 
        Добрый день, уважаемые коллеги!
 Стоит следующая задача. Мне нужно из регистра бухгалтерии выбрать запрос (остатки по счету склада), и загрузить это все в документ в УПП "Оприходование товаров". Подскажите пожалуйста последовательность действий. Я в конвертации разбираюсь, но вот с этим моментом никогда не сталкивался. То есть, беру до выгрузки из источника запросом нужные данные и заполняю после загрузки в приемнике новый документ. | |||
| 1
    
        MadJhey 13.10.20✎ 12:15 | 
        В чем проблема посмотреть стандартные переносы тот же УТ в УПП.     | |||
| 2
    
        MadJhey 13.10.20✎ 12:23 | 
        СпрЦены = СоздатьОбъект("Справочник.Цены");
 ТабТовары = СоздатьОбъект("ТаблицаЗначений"); ТабТовары.НоваяКолонка("Номенклатура"); ТабТовары.НоваяКолонка("Количество"); ТабТовары.НоваяКолонка("ЕдиницаИзмерения"); ТабТовары.НоваяКолонка("Коэффициент"); ТабТовары.НоваяКолонка("Цена"); Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ДатаОстатков по ДатаОстатков; |ЮрЛицо = Регистр.ОстаткиТМЦ.Фирма.ЮрЛицо; |Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура; |Склад = Регистр.ОстаткиТМЦ.Склад; |ЦенаПрод = Регистр.ОстаткиТМЦ.ЦенаПрод; |Количество = Регистр.ОстаткиТМЦ.Количество; |Функция КоличествоКонОст = КонОст(Количество); |Группировка ЮрЛицо без групп; |Группировка Склад без групп; |Группировка Номенклатура без групп; |Условие(ЦенаПрод = 0); |Условие(Количество > 0); |"; ДатаОстатков = Параметры.ДатаВводаОстатков; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Сообщить("Не удалось выполнить запрос по остаткам на складах"); КонецЕсли; Пока Запрос.Группировка(1) = 1 Цикл // Заполнение полей ЮрЛицо Пока Запрос.Группировка(2) = 1 Цикл // Заполнение полей Склад Склад = СоздатьОбъект("СписокЗначений"); Склад.Установить("Наименование","Вспомогательный склад для конвертации (Опт.)"); Склад.Установить("ВидСклада", "Оптовый"); Склад.Установить("Розничный", 0); Склад.Установить("Комментарий","Вспомогательный склад для переноса остатков партий в опте"); ТабТовары.УдалитьСтроки(); Пока Запрос.Группировка(3) = 1 Цикл // Заполнение полей Номенклатура ТабТовары.НоваяСтрока(); ТабТовары.Номенклатура = Запрос.Номенклатура; ТабТовары.Количество = Запрос.КоличествоКонОст; ТабТовары.ЕдиницаИзмерения = Запрос.Номенклатура.БазоваяЕдиница; ТабТовары.Коэффициент = Запрос.Номенклатура.БазоваяЕдиница.Коэффициент; ТабТовары.Цена = 0; Если Запрос.Склад.РозничныйСклад = 1 Тогда Если ПустоеЗначение(Константа.РозничныйТипЦен) = 0 Тогда СпрЦены.ИспользоватьВладельца(Запрос.Номенклатура); СпрЦены.ВыбратьЭлементыПоРеквизиту("ТипЦен", Константа.РозничныйТипЦен); Пока СпрЦены.ПолучитьЭлемент() = 1 Цикл Если (СпрЦены.Единица.Получить(Параметры.ДатаВводаОстатков) = Запрос.Номенклатура.БазоваяЕдиница) и (СпрЦены.Цена.Получить(Параметры.ДатаВводаОстатков) > 0) Тогда ТабТовары.Цена = СпрЦены.Цена.Получить(Параметры.ДатаВводаОстатков); Прервать; КонецЕсли; КонецЦикла; КонецЕсли; КонецЕсли; КонецЦикла; ВходящиеДанные = СоздатьОбъект("СписокЗначений"); ВходящиеДанные.Установить("Организация", Запрос.ЮрЛицо); ВходящиеДанные.Установить("СкладОтправитель", Склад); ВходящиеДанные.Установить("СкладПолучатель", Запрос.Склад); ВходящиеДанные.Установить("Товары", ТабТовары); ВходящиеДанные.Установить("Дата", Параметры.ДатаВводаОстатков); ВыгрузитьПоПравилу(,, ВходящиеДанные,, "ПеремещениеТоваров"); КонецЦикла; КонецЦикла; | |||
| 3
    
        MadJhey 13.10.20✎ 12:23 | 
        Это из 7.7 но смысл думаю понятен     | |||
| 4
    
        mistеr 13.10.20✎ 13:04 | 
        (0) Создать ПКО с пустым источником и приемником - целевой документ.
 Создать ПКС для нужных реквизитов и ТЧ. Все, что можно заполнять константами, заполнять в ПКС. Создать ПВД. В нем: Запрос по остаткам. Обходишь выборку, заполняешь ТЗ или сразу выгружаешь в ТЗ. Создаешь Структуру соответствующую ПКО. В качестве ТЧ передаешь полученную ТЗ. Вызываешь ВыгрузитьПоПравилу(), указав ПКО. Всё. | |||
| 5
    
        vsgprog1c 19.10.20✎ 11:10 | 
        (4) (2) Спасибо большое! Сработало!     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |