8.х Счет-фактура по нескольким накладным

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

  1. TopicStarter Overlay
    kogor
    Offline

    kogor Опытный в 1С

    Регистрация:
    5 фев 2010
    Сообщения:
    412
    Симпатии:
    0
    Баллы:
    26
    Добрый день.

    Решаю такую задачу: по нескольким товарно-транспортным накладным (ТТН) нужно собрать одну счет-фактуру покупателю. Если номенклатура совпадает, то суммируем реквизиты (вес, сумму).

    Для этой цели создал Документ СчетФактура, в котором юзер указывает покупателя в реквизитах и в табличной части перечень товарно-транспортных накладных (ТТН), выписанных ранее.

    Далее нужно сформировать и вывести на печать счет-фактуру по этому Документу.

    Подскажите пожалуйста как правильнее и/или проще это сделать..

    Я предполагаю такой алгоритм:

    1. Перебираю строки табличной части Документа СчетФактура в цикле:
    Код:
    Для Каждого ТекущаяСтрока ИЗ  СчетФактура.ТТН Цикл
    
    2. Получаю ссылку на документ ТТН
    3. Получаю табличную часть документа ТТН
    4. Перебираю строки табличной части документа ТТН
    Код:
    Для Каждого ТекущаяСтрока ИЗ ТТН.Товары Цикл
    
    5. Суммирую значения нужных реквизитов (вес, сумма) в переменные
    6. Затем эти переменные будут выводиться как параметры макета конструктора печати

    Может быть предложите какой-то другой вариант? И еще буду крайне признателен за помощь по синтаксису (слабоват :unsure: ): как получить ссылку на документ, как получить табличную часть. Хорошо бы примерчик или решение подобной задачи
  2. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.647
    Симпатии:
    948
    Баллы:
    204
    я бы рекомендовал сделать это на вложенных запросах.

    Запусти поиск по форуму найдешь там примеры.

    Вот один тебе пригодится

    Код:
    // Выбрать названия товаров, которые присутствовали в расходных накладных 
    ВЫБРАТЬ
    Товары.Наименование
    ИЗ
    Справочник.Товары КАК Товары
    ГДЕ
    Товары.Ссылка В
    (
    ВЫБРАТЬ
    РасхНаклСостав.Товар
    ИЗ
    Документ.РасхНакл.Состав КАК РасхНаклСостав
    
    )
  3. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Чего тут вкладывать? Один запрос к табличным частям ТТН, нужные ТТН передать в запрос списком. Результат выполнения запроса свернуть как нужно.
  4. TopicStarter Overlay
    kogor
    Offline

    kogor Опытный в 1С

    Регистрация:
    5 фев 2010
    Сообщения:
    412
    Симпатии:
    0
    Баллы:
    26
    Подскажите, пожалуйста, как передать документы списком в запрос
  5. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.647
    Симпатии:
    948
    Баллы:
    204
    Запросе пишете

    Док.ссылка В (&СписокДокументов)

    А потом в при заполнении параметров выгружаете колонку ТЧ, например та

    Запрос.УстановитьПарамеры("СписокДокументов",ТЧ.ВыгрузитьКолонку("СчетФактура"));
  6. TopicStarter Overlay
    kogor
    Offline

    kogor Опытный в 1С

    Регистрация:
    5 фев 2010
    Сообщения:
    412
    Симпатии:
    0
    Баллы:
    26
    Делаю запрос, как Вы советуете (РасходнаяНакладная = товарно-транспортная накладная, ТТН = ТЧ Документа СчетФактура):
    Код:
    Запрос = Новый Запрос();
    Запрос.Текст ="ВЫБРАТЬ
    |     Товар КАК Товар
    |   ИЗ
    |     Документ.Ссылка В (&СписокДокументов)
    | ";
    Запрос.УстановитьПараметр("СписокДокументов", ТТН.ВыгрузитьКолонку("РасходнаяНакладная"));
    Результат = Запрос.Выполнить().Выбрать();
    
    
    Получаю ошибку:
    Почему такая ошибка?
  7. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.647
    Симпатии:
    948
    Баллы:
    204
    НУ вы даете

    Док.ссылка В (&СписокДокументов) пишется в операторе ГДЕ
    образно говоря так.

    | РеализацияТоваровУслугТовары.Номенклатура
    |ИЗ
    | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    |ГДЕ
    | РеализацияТоваровУслугТовары.Номенклатура В (&СписокНомеклатуры)"

    Выбираем из ТЧ только те ттовары, которые у нас в передаваемомо списке

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