8.х УТ Заполнение таблицы "Платежно-расчетные документы" в СФ

Тема в разделе ""1С:Управление торговлей УТ"", создана пользователем lacrimax, 6 июн 2012.

  1. TopicStarter Overlay
    lacrimax
    Offline

    lacrimax Опытный в 1С

    Регистрация:
    9 ноя 2010
    Сообщения:
    136
    Симпатии:
    0
    Баллы:
    26
    Конфигурация УТ 11. Почему-то при реализации по нескольким заказам не заполняется таблица "Платежно-расчетные документы" в счет-фактуре. Если заказ один, то платежка (или платежки, если их несколько) там указана(ы), если несколько заказов, то пусто. Кнопка "Заполнить" ничего не меняет. Это мой глюк локальный или у всех так?
  2. kotlovD
    Offline

    kotlovD Опытный в 1С

    Регистрация:
    16 фев 2011
    Сообщения:
    718
    Симпатии:
    0
    Баллы:
    26
    Вопрос не в том разделе задали...
  3. TopicStarter Overlay
    lacrimax
    Offline

    lacrimax Опытный в 1С

    Регистрация:
    9 ноя 2010
    Сообщения:
    136
    Симпатии:
    0
    Баллы:
    26
    Ну модераторы перенесут, если не там написал. Вопрос от этого не снимается.
    Код:
    Процедура ЗаполнитьПлатежноРасчетныеДокументы(ДанныеЗаполнения) Экспорт
    
    УстановитьПривилегированныйРежим(Истина);
    
    ЗаказКлиента = Неопределено;
    Если ТипЗнч(ДанныеЗаполнения.ДокументОснование) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
    Запрос = Новый Запрос("
    |ВЫБРАТЬ
    | ДанныеДокумента.ЗаказКлиента КАК ЗаказКлиента
    |ИЗ
    | Документ.РеализацияТоваровУслуг КАК ДанныеДокумента
    |ГДЕ
    | ДанныеДокумента.Ссылка = &Ссылка
    |");
    Запрос.УстановитьПараметр("Ссылка", ДанныеЗаполнения.ДокументОснование);
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
    ЗаказКлиента = Выборка.ЗаказКлиента;
    КонецЕсли;
    КонецЕсли;
    
    Запрос = Новый Запрос("
    |ВЫБРАТЬ РАЗЛИЧНЫЕ
    | РасчетыСКлиентами.Регистратор.Дата КАК Дата,
    | РасчетыСКлиентами.Регистратор.Номер КАК Номер,
    | ЕСТЬNULL(РасчетыСКлиентами.Регистратор.ДатаВходящегоДокумента, 0) КАК ДатаВходящегоДокумента,
    | ЕСТЬNULL(РасчетыСКлиентами.Регистратор.НомерВходящегоДокумента, 0) КАК НомерВходящегоДокумента
    |ИЗ
    | РегистрНакопления.РасчетыСКлиентами.Обороты(,&Граница, Регистратор,
    |  ЗаказКлиента = &ЗаказКлиента
    | ) КАК РасчетыСКлиентами
    |ГДЕ
    | РасчетыСКлиентами.СуммаРасход > 0
    | И(РасчетыСКлиентами.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
    |  ИЛИ РасчетыСКлиентами.Регистратор ССЫЛКА Документ.ПоступлениеБезналичныхДенежныхСредств
    |  ИЛИ РасчетыСКлиентами.Регистратор ССЫЛКА Документ.ОперацияПоПлатежнойКарте
    | )
    |");
    Запрос.УстановитьПараметр("ЗаказКлиента", ?(ЗначениеЗаполнено(ЗаказКлиента), ЗаказКлиента, ДанныеЗаполнения.ДокументОснование)); // ВОТ ЗДЕСЬ, МНЕ КАЖЕТСЯ ЗАТЫК. ЕСЛИ РЕАЛИЗАЦИЯ ПО НЕСКОЛЬКИМ ЗАКАЗАМ, ТО ЗДЕСЬ УКАЗАН НЕ ЗАКАЗ, А СПИСОК.
    Запрос.УстановитьПараметр("Граница", Новый Граница(КонецДня(ДанныеЗаполнения.Дата), ВидГраницы.Включая));
    
    ПлатежноРасчетныеДокументы.Очистить();
    
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
    
    НоваяСтрока = ПлатежноРасчетныеДокументы.Добавить();
    
    Если ЗначениеЗаполнено(Выборка.НомерВходящегоДокумента) Тогда
    НоваяСтрока.НомерПлатежноРасчетногоДокумента = Выборка.НомерВходящегоДокумента;
    Иначе
    НоваяСтрока.НомерПлатежноРасчетногоДокумента = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(
    Выборка.Номер,
    Ложь,
    Истина
    );
    КонецЕсли;
    
    Если ЗначениеЗаполнено(Выборка.ДатаВходящегоДокумента) Тогда
    НоваяСтрока.ДатаПлатежноРасчетногоДокумента = Выборка.ДатаВходящегоДокумента;
    Иначе
    НоваяСтрока.ДатаПлатежноРасчетногоДокумента = Выборка.Дата;
    КонецЕсли;
    
    КонецЦикла;
    
    ПлатежноРасчетныеДокументы.Свернуть("ДатаПлатежноРасчетногоДокумента, НомерПлатежноРасчетногоДокумента", "");
    ПлатежноРасчетныеДокументы.Сортировать("ДатаПлатежноРасчетногоДокумента Возр, НомерПлатежноРасчетногоДокумента Возр");
    
    КонецПроцедуры // ЗаполнитьПлатежноРасчетныеДокументы()
  4. TopicStarter Overlay
    lacrimax
    Offline

    lacrimax Опытный в 1С

    Регистрация:
    9 ноя 2010
    Сообщения:
    136
    Симпатии:
    0
    Баллы:
    26
    Код:
    Запрос = Новый Запрос("
    |ВЫБРАТЬ
    | ДанныеДокумента.ЗаказКлиента КАК ЗаказКлиента
    |ИЗ
    | Документ.РеализацияТоваровУслуг КАК ДанныеДокумента
    |ГДЕ
    | ДанныеДокумента.Ссылка = &Ссылка
    |");
    Запрос.УстановитьПараметр("Ссылка", ДанныеЗаполнения.ДокументОснование);
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
    ЗаказКлиента = Выборка.ЗаказКлиента;
    КонецЕсли;
    Вот в этом запросе как можны вытянуть заказы? Если в реализации один заказ, то он в строке заказов и указан, запросом нормально выбирается. А если заказов несколько, то в строке заказов уже не заказ, а таблица заказов. Как можно запросить эту таблицу из реализации?
  5. TopicStarter Overlay
    lacrimax
    Offline

    lacrimax Опытный в 1С

    Регистрация:
    9 ноя 2010
    Сообщения:
    136
    Симпатии:
    0
    Баллы:
    26
    Сам решил вопрос, все оказалось очень просто. Чуть изменить запрос, добавить цикл да пару строчек перенести. Тему в корзину.

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