|
Конвертация данных из регистра в документ | ☑ | ||
---|---|---|---|---|
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) Спасибо большое! Сработало!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |