Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Конвертация.Перенос из запроса в реквизит таб. части.

Конвертация.Перенос из запроса в реквизит таб. части.
Я
   servicenn
 
02.11.16 - 20:01
День добрый, может кто сталкивался. Переносится документ реализация в бухгалтерию 3.0 . Нужно перенести себестоимость чтобы она попала в колонку СебестоимостьПриемник табличной части реализации в приёмнике. В источнике себестоимость определяется запросом .  Как лучше сделать? Может вариант через параметр?
 
 
   Aleksey
 
1 - 02.11.16 - 20:05
Зачем? в ПГКС переназначь Коллекцию
   Aleksey
 
2 - 02.11.16 - 20:07
*ПКГС, т.е. стань на папочку товары и там в перед обработкой заполни КоллекцияОбъектов

КоллекцияОбъектов - Неопределено. Если в теле обработчика определить коллекцию (присвоив данной переменной значение, например, описывающее табличную часть или набор движений, например, типа ТаблицаЗначений), то стандартное получение коллекции выполняться не будет.
   yzimin
 
3 - 02.11.16 - 20:07
Если обмен с БП 3.0 настроен через EnterpriseData, то в пакете XDTO для Документ.РеализацияТоваровУслуг.Товары.Строка" есть поле "Себестоимость". В него пишите, в БП 3.0 возможно уже реализована обработка этого поля.
   servicenn
 
4 - 02.11.16 - 20:10
(3)раньше обмен был через обычные обработки с кодом
   servicenn
 
5 - 02.11.16 - 20:10
(2) щас попробую
   servicenn
 
6 - 02.11.16 - 20:12
(2) Может есть короткий пример?
   servicenn
 
7 - 02.11.16 - 20:15
А если такой вариант , в пкс источник не указываем(получаем из запроса) приёмник реквизит таб части СебестоимостьПриемник, значение = ...., сюда ставим данные из запроса, в обработчике перед выгрузкой, не пройдёт такой вариант?
   servicenn
 
8 - 02.11.16 - 20:18
там есть такая перменная объект коллекции
   servicenn
 
9 - 02.11.16 - 20:20
(2) в справке по обработчикам есть пример, попробую разобраться
Пример:
ТабличнаяЧасть = СоздатьОбъект("ТаблицаЗначений");
ТабличнаяЧасть.НоваяКолонка("Количество");
ТабличнаяЧасть.НоваяКолонка("Номенклатура");
ТабличнаяЧасть.НоваяКолонка("Сумма");

Рег = СоздатьОбъект("Регистр.Обороты");
Рег.ВыбратьДвиженияДокумента(Источник);
Пока Рег.ПолучитьДвижение() = 1 Цикл
 НомерСтроки = Рег.НомерСтроки();
 ТабличнаяЧасть.НоваяСтрока();
 ТабличнаяЧасть.Количество  = Рег.РасходКво;
 ТабличнаяЧасть.Номенклатура = Рег.ТМЦ;
 ТабличнаяЧасть.Сумма = Рег.РасходСумма;
КонецЦикла;
ТабличнаяЧасть.Свернуть("Номенклатура", "Количество, Сумма");
ВходящиеДанные = СоздатьОбъект("СписокЗначений");
ВходящиеДанные.ДобавитьЗначение(ТабличнаяЧасть, "Услуги");
   Aleksey
 
10 - 02.11.16 - 20:35
(7) мне не нравиться. По сути по каждой строки каждого документа дергаем запрос. Проще один раз на документ.
Хотя зависит где это себестоимость хранится. Допускаю что можно и вначале заполнит соответсвие товар - себестоимость и пользоваться при выгрузки этим соответсвием
 
 Рекламное место пустует
   Aleksey
 
11 - 02.11.16 - 20:37
(9) ТОлько у тебя не входящие данные, а коллекция объектов. Например

Запрос=новый Запрос;
Запрос.Текст="
|ВЫБРАТЬ
|    подзапрос.Номенклатура,
|    подзапрос.Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
|    подзапрос.СуммаОборот КАК Сумма,
|    подзапрос.КоличествоОборот КАК Количество
|ИЗ
|    (ВЫБРАТЬ
|        ВЫБОР
|            КОГДА ХозрасчетныйОбороты.Счет.Код = ""004.01""
|                ТОГДА ХозрасчетныйОбороты.Субконто2
|            ИНАЧЕ ХозрасчетныйОбороты.Субконто1
|        КОНЕЦ КАК Номенклатура,
|        ВЫБОР
|            КОГДА ХозрасчетныйОбороты.Счет.Код = ""004.01""
|                ТОГДА ХозрасчетныйОбороты.Субконто3
|            ИНАЧЕ ХозрасчетныйОбороты.Субконто2
|        КОНЕЦ КАК Склад,
|        ХозрасчетныйОбороты.СуммаОборот КАК СуммаОборот,
|        ХозрасчетныйОбороты.КоличествоОборот КАК КоличествоОборот
|    ИЗ
|        РегистрБухгалтерии.Хозрасчетный.Обороты(, , Регистратор, , , , , ) КАК ХозрасчетныйОбороты
|    ГДЕ
|        ХозрасчетныйОбороты.Регистратор = &Регистратор) КАК подзапрос
|ГДЕ
|    подзапрос.Склад = &Субконто2    
|";

Запрос.УстановитьПараметр("Регистратор",Источник);
Запрос.УстановитьПараметр("Субконто2",Параметры.Склад);
КоллекцияОбъектов = Запрос.Выполнить().Выгрузить();


что типа такого
   servicenn
 
12 - 02.11.16 - 20:42
(11)ага,подробно ,колонки выгрузки из запроса соответствуют колонкам в табличной части приёмника. А больше нигде не надо ни какаких галочек ставить или что либо прописывать?
   servicenn
 
13 - 02.11.16 - 20:45
(11)буду пробовать
   Aleksey
 
14 - 02.11.16 - 20:51
(12) Ну в крайнем случае пропишешь в ПКС
Значение=ОбъектКоллекции.ЕдиницаИзмерения;

P.S> ОбъектКоллекции - ссылка на выгружаемый объект коллекции. Например, строка табличной части или запись регистра или строка таблицы значений или строка результата запроса и т.д.
   servicenn
 
15 - 02.11.16 - 20:57
(14) спасибо ,сначала с коллекцией объектов попробую
   servicenn
 
16 - 02.11.16 - 22:20
(9) СУПЕР! РАБОТАЕТ ,ПОКА ПОПРОБОВАЛ ТЕСТОВЫЙ ЗАПРОС 

Запрос=новый Запрос; 
Запрос.Текст=" 
    |ВЫБРАТЬ
    |БУРеализацияТМЦУслугВГОТовары.Номенклатура,
    |БУРеализацияТМЦУслугВГОТовары.Цена,
    |БУРеализацияТМЦУслугВГОТовары.СуммаНДС,
    |БУРеализацияТМЦУслугВГОТовары.НомерГТД,
    |500 КАК сумма,
    |БУРеализацияТМЦУслугВГОТовары.Количество,
    |БУРеализацияТМЦУслугВГОТовары.КоличествоМест,
    |БУРеализацияТМЦУслугВГОТовары.СтавкаНДС,
    |БУРеализацияТМЦУслугВГОТовары.ДокументПартии,
    |БУРеализацияТМЦУслугВГОТовары.ЕдиницаХранения,
    |БУРеализацияТМЦУслугВГОТовары.СтранаПроисхождения,
    |2000 как СебестоимостьФУДТ_ЭР

    |ИЗ
    |Документ.БУРеализацияТМЦУслугВГО.Товары КАК БУРеализацияТМЦУслугВГОТовары
    |ГДЕ
    |БУРеализацияТМЦУслугВГОТовары.Ссылка = &Ссылка "
    ;
    
    Запрос.УстановитьПараметр("ссылка",Источник);
    КоллекцияОбъектов = Запрос.Выполнить().Выгрузить();
   servicenn
 
17 - 02.11.16 - 22:22
Дальше сделаю , рабочий запрос вытяну себестоимость из регистра и левым соединением присоеденю к этому и заменю.
   Alexor
 
18 - 02.11.16 - 22:23
Не забудь только что если себестоимость у тебя =0 то будет списывать по партии. Если себестоимость =0 то 0.01 выгружай.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует