8.х ОБМЕН !Конвертация проблема!

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем ХочуСпец, 19 мар 2009.

  1. TopicStarter Overlay
    ХочуСпец
    Offline

    ХочуСпец Опытный в 1С

    Регистрация:
    17 ноя 2008
    Сообщения:
    53
    Симпатии:
    0
    Баллы:
    26
    Есть два ПКО: НепроведенныйРКО, НепроведенныйАвансовыйОтчет

    Есть еще один ПКО: ОстаткиПодотчетныхЛиц, у него есть ПКС: Расчетный документ, также есть ПВД: ОстаткиПодотчетныхЛиц

    Вопрос:
    Возможно ли в обработчике ПВД программно выбирать ПКО (НепроведенныйРКО или НепроведенныйАвансовыйОтчет) для ПКС Расчетный документ?

    Проблему попробовал решить так: выбирал ИмяПКО в ПКС. а туда передавал из ПВД через параметры РКО_АО, имеющий строковый тип. Т.е в ПКС перед Выгрузкой прописал:

    Если Параметры.РКО_АО = "РКО" тогда
    ИмяПКО = "НепроведенныйРКО";
    ИначеЕсли Параметры.РасчДок = "АО"
    ИмяПКО = "НепроведенныйАвансовыйОтчет";
    КонецЕсли;

    В ПВД прописал:

    ТаблицаРегистровНакопления = Новый ТаблицаЗначений;
    ТаблицаРегистровНакопления.Колонки.Добавить("Имя");
    ТаблицаРегистровНакопления.Колонки.Добавить("Представление");

    НоваяСтрокаРН = ТаблицаРегистровНакопления.Добавить();
    НоваяСтрокаРН.Имя = "ВзаиморасчетыСПодотчетнымиЛицами";
    НоваяСтрокаРН.Представление = "Взаиморасчеты с подотчетными лицами";

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


    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();

    //Движения по РН ВСПЛ
    ВзаиморасчетыСПодотчетнымиЛицами = Новый ТаблицаЗначений;
    ВзаиморасчетыСПодотчетнымиЛицами.Колонки.Добавить("ВидДвижения");
    ВзаиморасчетыСПодотчетнымиЛицами.Колонки.Добавить("ФизЛицо");
    ВзаиморасчетыСПодотчетнымиЛицами.Колонки.Добавить("РасчетныйДокумент");
    ВзаиморасчетыСПодотчетнымиЛицами.Колонки.Добавить("СуммаВзаиморасчетов");
    ВзаиморасчетыСПодотчетнымиЛицами.Колонки.Добавить("СуммаУпр");


    Если Выборка.Количество() = 0 тогда
    Сообщить("По счету 71.01 нет остатков!");
    Иначе
    Пока Выборка.Следующий() цикл
    Если Выборка.СуммаОстаток <> 0 тогда

    Если Выборка.СуммаОстаток > 0 тогда

    //РКО
    //приход
    Параметры.РКО_АО = "РКО";
    Строка = ВзаиморасчетыСПодотчетнымиЛицами.Добавить();
    Строка.ВидДвижения = "Приход";
    Строка.ФизЛицо = Выборка.ФизЛицо;
    Строка.РасчетныйДокумент = "НепроведенныйФиктивныйРКО";
    Строка.СуммаВзаиморасчетов = Выборка.СуммаОстаток;
    Строка.СуммаУпр = Выборка.СуммаОстаток;

    Иначе

    //АО
    //расход
    Параметры.РКО_АО = "АО";
    Строка = ВзаиморасчетыСПодотчетнымиЛицами.Добавить();
    Строка.ВидДвижения = "Расход";
    Строка.ФизЛицо = Выборка.ФизЛицо;
    Строка.РасчетныйДокумент = "НепроведенныйФиктивныйАвансовыйОтчет";
    Строка.СуммаВзаиморасчетов = -Выборка.СуммаОстаток;
    Строка.СуммаУпр = -Выборка.СуммаОстаток;

    КонецЕсли;
    КонецЕсли;
    КонецЦикла;

    КонецЕсли;

    ИсходящиеДанные = Новый Структура("Дата, ТаблицаРегистровНакопления, ВзаиморасчетыСПодотчетнымиЛицами");

    ИсходящиеДанные.Дата = Параметры.ОстаткиНаДату;
    ИсходящиеДанные.ТаблицаРегистровНакопления = ТаблицаРегистровНакопления;
    ИсходящиеДанные.ВзаиморасчетыСПодотчетнымиЛицами = ВзаиморасчетыСПодотчетнымиЛицами;

    ВыгрузитьПоПравилу(, , ИсходящиеДанные, , "ОстаткиПоДСПодотчетныхЛиц");

    ПКО НепроведенныйРКО, НепроведенныйАвансовыйОтчет не выбираются

Поделиться этой страницей