[РЕШЕНО] Добавить поле в список документов

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем SkyNetYar, 14 янв 2016.

  1. TopicStarter Overlay
    SkyNetYar
    Offline

    SkyNetYar Опытный в 1С

    Регистрация:
    11 ноя 2014
    Сообщения:
    146
    Симпатии:
    0
    Баллы:
    26
    Добрый день! УТ 11.1.10
    На сей раз пытаюсь доработать типовой функционал.
    ОбщаяФорма.СписокДокументовПродажи
    Нужно добавить два поля в этот список 1-е Сумма оплаты 2-е % оплаты
    Формируется список из РеализацияТоваровИУслуг
    upload_2016-1-14_20-37-42.png
    Делаю настроить список,там запрос такого вида
    Код:
    ВЫБРАТЬ
        ДокументРеализацияТоваровУслуг.Ссылка,
        ДокументРеализацияТоваровУслуг.ПометкаУдаления,
        ДокументРеализацияТоваровУслуг.Номер,
        ДокументРеализацияТоваровУслуг.Дата,
        ДокументРеализацияТоваровУслуг.ДатаПереходаПраваСобственности,
        ДокументРеализацияТоваровУслуг.Проведен,
        ДокументРеализацияТоваровУслуг.АдресДоставки,
        ДокументРеализацияТоваровУслуг.БанковскийСчетОрганизации,
        ДокументРеализацияТоваровУслуг.БанковскийСчетКонтрагента,
        ДокументРеализацияТоваровУслуг.БанковскийСчетГрузоотправителя,
        ДокументРеализацияТоваровУслуг.БанковскийСчетГрузополучателя,
        ДокументРеализацияТоваровУслуг.БанковскийСчетПеревозчика,
        ДокументРеализацияТоваровУслуг.Валюта,
        ДокументРеализацияТоваровУслуг.ВалютаВзаиморасчетов,
        ДокументРеализацияТоваровУслуг.Грузоотправитель,
        ДокументРеализацияТоваровУслуг.Грузополучатель,
        ДокументРеализацияТоваровУслуг.ДатаПлатежа,
        ДокументРеализацияТоваровУслуг.ДатаРаспоряжения,
        ДокументРеализацияТоваровУслуг.ДоверенностьВыдана,
        ДокументРеализацияТоваровУслуг.ДоверенностьДата,
        ДокументРеализацияТоваровУслуг.ДоверенностьЛицо,
        ДокументРеализацияТоваровУслуг.ДоверенностьНомер,
        ДокументРеализацияТоваровУслуг.ЗаказКлиента,
        ДокументРеализацияТоваровУслуг.Комментарий,
        ДокументРеализацияТоваровУслуг.Контрагент,
        ДокументРеализацияТоваровУслуг.Менеджер,
        ДокументРеализацияТоваровУслуг.НалогообложениеНДС,
        ДокументРеализацияТоваровУслуг.Организация,
        ДокументРеализацияТоваровУслуг.Партнер,
        ДокументРеализацияТоваровУслуг.Перевозчик,
        ДокументРеализацияТоваровУслуг.Подразделение,
        ДокументРеализацияТоваровУслуг.Сделка,
        ДокументРеализацияТоваровУслуг.СкидкиРассчитаны,
        ДокументРеализацияТоваровУслуг.Склад,
        ДокументРеализацияТоваровУслуг.Согласован,
        ДокументРеализацияТоваровУслуг.Соглашение,
        ДокументРеализацияТоваровУслуг.Договор,
        ДокументРеализацияТоваровУслуг.Статус,
        ДокументРеализацияТоваровУслуг.СуммаВзаиморасчетов,
        ДокументРеализацияТоваровУслуг.СуммаДокумента,
        ДокументРеализацияТоваровУслуг.ФормаОплаты,
        ДокументРеализацияТоваровУслуг.ХозяйственнаяОперация,
        ДокументРеализацияТоваровУслуг.ЦенаВключаетНДС,
        ДокументРеализацияТоваровУслуг.Касса,
        ДокументРеализацияТоваровУслуг.Отпустил,
        ДокументРеализацияТоваровУслуг.ОтпустилДолжность,
        ДокументРеализацияТоваровУслуг.СпособДоставки,
        ДокументРеализацияТоваровУслуг.АдресДоставки КАК АдресДоставки1,
        СостоянияЭД.СостояниеВерсииЭД,
        ВЫБОР
            КОГДА НЕ ДокументРеализацияТоваровУслуг.Проведен
                ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияОтгрузки.НеРассчитано)
            КОГДА СостоянияОтгрузки.Состояние ЕСТЬ NULL
                ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияОтгрузки.Доставлено)
            ИНАЧЕ СостоянияОтгрузки.Состояние
        КОНЕЦ КАК СостояниеОтгрузки
    ИЗ
        РегистрНакопления.РасчетыСКлиентами КАК РасчетыСКлиентами
            ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК ДокументРеализацияТоваровУслуг
                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЭД КАК СостоянияЭД
                ПО (СостоянияЭД.СсылкаНаОбъект = ДокументРеализацияТоваровУслуг.Ссылка)
                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияОтгрузки КАК СостоянияОтгрузки
                ПО ДокументРеализацияТоваровУслуг.Ссылка = СостоянияОтгрузки.ДокументОтгрузки
            ПО РасчетыСКлиентами.Регистратор = ДокументРеализацияТоваровУслуг.Ссылка
                И РасчетыСКлиентами.ЗаказКлиента = ДокументРеализацияТоваровУслуг.Ссылка
    ГДЕ
        ДокументРеализацияТоваровУслуг.ВариантОформленияПродажи <> ЗНАЧЕНИЕ(Перечисление.ВариантыОформленияПродажи.АктНаПередачуПрав)
    Мне необходимо его объединить еще с одним запросом такого вида
    Код:
    Ссылка=Объект.ЗаказКлиента.Ссылка;
        ЗапросД = Новый Запрос("ВЫБРАТЬ
                               |    РасчетыСКлиентами.СуммаРасход КАК СуммаОплаты,
                               |    СостоянияЗаказовКлиентов.Состояние,
                               |    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОплаты, 0) КАК ПроцентОплаты
                               |ИЗ
                               |    РегистрНакопления.РасчетыСКлиентами.Обороты(, , Период, ЗаказКлиента = &Ссылка) КАК РасчетыСКлиентами
                               |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента КАК ДанныеДокумента
                               |        ПО (ДанныеДокумента.Ссылка = &Ссылка),
                               |    РегистрСведений.СостоянияЗаказовКлиентов КАК СостоянияЗаказовКлиентов
                               |ГДЕ
                               |    РасчетыСКлиентами.СуммаРасход > 0");
            ЗапросД.УстановитьПараметр("Ссылка", Ссылка);
          
            ВыборкаД = ЗапросД.Выполнить().Выбрать();
            Если ВыборкаД.Следующий() Тогда
              
                  СостояниеЗаказа= НСтр("ru='Оплачено по заказу'") + ": " + ВыборкаД.СуммаОплаты + " руб. " + ВыборкаПр.ПроцентОплаты + "%";
            КонецЕсли;
    Тот что второй я делал для вывода на форме документа текстовый реквизит и выводил туда таки эту сумму и % оплаты ну только по заказу клиента.
    В списке реализации товаров тоже есть ссылка на ЗаказКлиента можно к ней прицепится.
    Может кто то уже делал подобное подскажет?
    Замысел выводить в списке Реализаций товаров еще 2 колонки Сумму оплаты и % оплаты по каждой строке в списке.
    Подскажите пожалуйста как мне их объединить?
  2. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.025
    Симпатии:
    51
    Баллы:
    54
    Найдите консоль запросов и в ней пишите и отлаживайте ваш запрос. Похоже, что вам нужно не объединение, а левое соединение: слева основной запрос, справа - таблица ЗаказКлиента|СуммаОплаты|Состояние|ПроцентОплаты
    Связь настроите по полю "ЗаказКлиента"
  3. LordMaverick
    Online

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.438
    Симпатии:
    373
    Баллы:
    104
    в списке документов "Заказ покупателя" есть такое :)
    % оплаты, % отгрузки, % долга
    SkyNetYar нравится это.
  4. TopicStarter Overlay
    SkyNetYar
    Offline

    SkyNetYar Опытный в 1С

    Регистрация:
    11 ноя 2014
    Сообщения:
    146
    Симпатии:
    0
    Баллы:
    26
    Да есть, Вы предлагаете от туда выдрать пример?
  5. LordMaverick
    Online

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.438
    Симпатии:
    373
    Баллы:
    104
    угу, ибо он практически идентичен, кроме документа
    SkyNetYar нравится это.
  6. TopicStarter Overlay
    SkyNetYar
    Offline

    SkyNetYar Опытный в 1С

    Регистрация:
    11 ноя 2014
    Сообщения:
    146
    Симпатии:
    0
    Баллы:
    26
    Да,так и сделал, выдрал из списка заказа клиента,добавил связи ДокументРеализацияТоваровУслуг.ЗаказКлиента.Ссылка = СостоянияЗаказовКлиентов.Заказ , поля СуммаОплаты и ПроцентПродажи из регистра СостояниеЗаказовКлиента
    Код:
    СуммаОплаты         ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаОплаты, 0)
    ПроцентОплаты    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОплаты, 0)
    Код:
    ВЫБОР
            КОГДА НЕ ДокументРеализацияТоваровУслуг.Проведен
                ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияОтгрузки.НеРассчитано)
            КОГДА СостоянияОтгрузки.Состояние ЕСТЬ NULL
                ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияОтгрузки.Доставлено)
            ИНАЧЕ СостоянияОтгрузки.Состояние
        КОНЕЦ КАК СостояниеОтгрузки,
        ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаОплаты, 0) КАК СуммаОплаты,
        ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОплаты, 0) КАК ПроцентОплаты
    ИЗ
        Документ.РеализацияТоваровУслуг КАК ДокументРеализацияТоваровУслуг
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЭД КАК СостоянияЭД
            ПО (СостоянияЭД.СсылкаНаОбъект = ДокументРеализацияТоваровУслуг.Ссылка)
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияОтгрузки КАК СостоянияОтгрузки
            ПО ДокументРеализацияТоваровУслуг.Ссылка = СостоянияОтгрузки.ДокументОтгрузки
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЗаказовКлиентов КАК СостоянияЗаказовКлиентов
            ПО ДокументРеализацияТоваровУслуг.ЗаказКлиента.Ссылка = СостоянияЗаказовКлиентов.Заказ
    ГДЕ
        ДокументРеализацияТоваровУслуг.ВариантОформленияПродажи <> ЗНАЧЕНИЕ(Перечисление.ВариантыОформленияПродажи.АктНаПередачуПрав)
    И все получилось :)
    LordMaverick в очередной раз Спасибо Вам за намек!

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