7.7 Вывод итога

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем NemeL, 9 сен 2011.

  1. TopicStarter Overlay
    NemeL
    Offline

    NemeL Опытный в 1С

    Регистрация:
    11 фев 2011
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    Доброе время суток, возникла следующая задача, есть документ, в табличной части нужно чтоб можно было выводить промежуточные итоги,то есть например в документе есть несколько наименований одинаковых, надо чтоб можно было вывести итог по количеству и сумме на эти товары. Возможно ли это сделать?
  2. volodya1122
    Offline

    volodya1122 Опытный в 1С

    Регистрация:
    25 фев 2011
    Сообщения:
    96
    Симпатии:
    1
    Баллы:
    26
    какое то изощренное у Вас формирование документа, ну да ладно... Не совсем понятно какой результат Вы хотите чтобы был в печатной форме. Если просто убрать повторение товаров (в печатной форме). То при формировании печатной формы вывести ее в таблицу значений, а потом ее свернуть по наименованию и в печатную форму уже выводить из таблицы значений (количество и сума астоматически будут сумироватся). Правда нужно будет както разобратся с ценой (ведь при сворачивании она будет сумироватся) да и еще если в разных строках для одного наименования будет разная цена, тогда вообще непонятно как печатать реальную цену.....
  3. TopicStarter Overlay
    NemeL
    Offline

    NemeL Опытный в 1С

    Регистрация:
    11 фев 2011
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    Что хочется получить в итоге, возможно вообще такое сделать? или это не реально.

    Вложения:

    • Итог.jpg
      Итог.jpg
      Размер файла:
      118,2 КБ
      Просмотров:
      68
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Конечно не хорошо что у вс в одном документе может быть несколько одинаковых позиций номенклатуры. Это говорит о том что алгортм ввода не доработан, разве что характеристики разные.... Теперь по существу вопроса

    1)
    Код:
    ВыгрузитьТабличнуюЧасть(ТЗ);
    
    
    
    ТЗ - ТаблицаЗначений

    2)
    Код:
    ТЗ.НоваяКолонка(Имя)
    ТЗ.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку()=1 Цикл
    ТЗ.Имя=....
    КонецЦикла;
    
    
    
    Добавляем в ТЗ некие дополнительные характеристики если их нет в ТЧ документа и их требует алгортм предоставления итгов

    3)
    Код:
    ТЗ.Свернуть("..., ....", "....");
    
    
    
    4)
    Код:
    ТЗ.НоваяКолонка(Имя)
    ТЗ.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку()=1 Цикл
    //здесь отображаем
    КонецЦикла;  
    
    
    
    Сводные итоги получаем используя метод ТЗ ИТОГ

    [/code]
  5. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    ИМХО все намного проще.
    В цикле вывода ТЧ:
    - суммируем необходимые значения реквизитов в отдельных переменных;
    - проверяем в каждой итерации, не изменилась ли номенклатура;
    - если номенклатура изменилась, выводим итоговую строку и обнуляем счетчики.
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    А если 2 одинаковые номенклатуры идут через одну позицию? Здесь не описана сама задача, так что неизвестно что конкретно нужно.
  7. TopicStarter Overlay
    NemeL
    Offline

    NemeL Опытный в 1С

    Регистрация:
    11 фев 2011
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    Код:
     
    ТЗ.НоваяКолонка(Имя)
    ТЗ.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку()=1 Цикл
    //здесь отображаем
    КонецЦикла;   
    
    
    С помощью этого кода я буду получать итог с 1 позиции, то есть общий, а мне нужно чтоб можно было вывести итог по каждому товару
  8. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    Код:
    Procedure Пересчет()
    VT = CreateObject("ValueTable");
    UnloadTable(VT);
    VT.GroupBy("Номенклатура,Количество","Сумма");
    SelectLines();
    While GetLine() = 1 Do
    nStr = 0;
    VT.FindValue(Номенклатура,nStr,"Номенклатура");
    КолвоИтого = VT.GetValue(nStr,"Количество");
    СуммаИтого = VT.GetValue(nStr,"Сумма");
    EndDo;
    EndProcedure
    
    Procedure OnOpen()
    Пересчет();    
    EndProcedure
    Procedure OnFinishLineEdit()
    Пересчет();
    EndProcedure
    
    
    
    а если промежуточные накопительным по номенклатуре - тогда просто сортировка ТЧ и цикл по строкам с условием на смену номенклатуры
Похожие темы
  1. Nikoloz
    Ответов:
    3
    Просмотров:
    261
Загрузка...

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