8.х Форма Списка

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем Leont, 7 ноя 2012.

  1. TopicStarter Overlay
    Leont
    Offline

    Leont

    Регистрация:
    7 ноя 2012
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Добрый день! Сильно не пинайте, я начинающий. Есть форма списка приходных накладных. Нужно видеть ИтогСумму каждой накладной в форме списка. Создаю поле указываю ПутьКДанным: Список.Ссылка.Материалы.ИтогСумма. Поле появляется, но оно пустое?
  2. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    Думаю вам надо использовать обработчик события ПриВыводеСтроки, внутри которого считать итог по документу и записывать в созданное поле
  3. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Думаю, надо создать реквизит документа с именем, например, "СуммаДокумента". И именно его вынести на форму.
    Затем в модуле объекта в процедуре "ПередЗаписью" написать что-то типа:
    Код:
    СуммаДокумента = Материалы.Итог("Сумма");
    Т.е. перед записью документа реквизит будет заполняться значением суммы по табличной части.
  4. TopicStarter Overlay
    Leont
    Offline

    Leont

    Регистрация:
    7 ноя 2012
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Спасибо за ответы буду пробовать! Мне интересна сама физика кода системы. Чтобы добиться итог сумм в самом документе ПутьКДанным: Объект.Материалы.ИтогСумма. Без проблем всё отображается! Но почему не отображается в ФормеСписка приходных накладных в созданном поле итог (ПутьКДанным: Список.Ссылка.Материалы.ИтогСумма) итоговая сумма накладной. Почему не извлекается информация итога? Это динамическая величина, которая генерируется при открытии документа? Это естественно : видеть в списке документов не только номер, дату, но и сумму накладной!
  5. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Что-то вроде этого, но не совсем.))
    Не при открытии документа, а, скорее, в процессе функционирования формы документа (таблицы формы). Это динамический показатель, связанный с таблицей, - рассчитывается динамически при обновлении данных в табличной части. Т.е. добавили строку, забили сумму - бамс ... итог пересчитался.
    Это как в обычных формах есть возможность отображения итогов в подвале таблицы. Этот итог нельзя ведь вытащить в форму списка.

    А список документов формируется на основе запроса к базе данных. Расчет итогов по табличным частям там не производится.


    Конечно естественно.
    Для этих целей и создается реквизит документа. Реквизиты документа спокойно отображаются в форме списка (как Дата и Номер и др.).
    Создайте реквизит и заполняйте его перед записью документа, как я описал выше.
  6. TopicStarter Overlay
    Leont
    Offline

    Leont

    Регистрация:
    7 ноя 2012
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Андрей, большое спасибо! Согласно Ваших рекомендаций, заработало!


    Процедура ПередЗаписью ()
    СуммаИтого=Материалы.Итог("Сумма")
    КонецПроцедуры
  7. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Не за что :)
  8. Bkmz
    Offline

    Bkmz

    Регистрация:
    6 июл 2013
    Сообщения:
    32
    Симпатии:
    0
    Баллы:
    1
    Таже самая проблема. В форме списка не могу получить "сумма документа" и "сумма литров".
    Приведенные решения не помогли.

    Вложения:

  9. Bkmz
    Offline

    Bkmz

    Регистрация:
    6 июл 2013
    Сообщения:
    32
    Симпатии:
    0
    Баллы:
    1
    Решилось:

    &НаКлиенте
    Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
    Объект.СуммаДокумента = Объект.ПриходТалонов.Итог("Сумма");
    Объект.СуммаЛитров = Объект.ПриходТалонов.Итог("СуммаЛитров");
    КонецПроцедуры

    где СуммаДокумента, СуммаЛитров - названия реквизитов
    ПриходТалонов - название таблицы в форме элемента
    Сумма, СуммаЛитров - название столбцов
  10. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Лучше в модуле объекта в событии "ПередЗаписью".

    Код:
    СуммаДокумента = ПриходТалонов.Итог("Сумма");
    СуммаЛитров = ПриходТалонов.Итог("СуммаЛитров");
    Потому что иначе, если, например, документ будет создаваться или изменяться какой-нибудь обработкой, т.е. форма документа открываться не будет, то Ваш код вообще не отработает (т.к. он написан в модуле формы).

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