Добрый день. Помогите пожалуйста новичку с написанием цикла. Документ Реализация Товаров и Услуг, Форма списка, необходимо выводить общую сумму документов, в табличное поле ДокументСписок включил в подвал, в текст подвала поля Сумма документа и будет выводится общая сумма. Добавил процедуру в событие табл. док ДокументСписок- ПриПолученииДанных, вот код:
Процедура ДокументСписокПриПолученииДанных(Элемент, ОформленияСтрок) ТекущаяСтрока=ЭтаФорма.ЭлементыФормы.ДокументСписок.ТекущиеДанные; Если Не ТекущаяСтрока=Ложь Тогда //Проверка заполненности формы ЭтаФорма.ЭлементыФормы.ДокументСписок.Колонки.СуммаДокумента.ТекстПодвала = ТекущаяСтрока.СуммаДокумента; КонецЕсли КонецПроцедуры
Но вот незнаком с операторами, и на данный момент просто выводит сумму текущей строки, а хотелось бы чтоб цылк перебирал кажду запись таблицы по очереди и суммировал. Пожалуйста помогите написать данный цикл. Заранее спасибо.
У нас здесь своя атмосфера...
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8
Сумма = 0; Для Каждого Строка из ОформленияСтрок Цикл Сумма = Сумма + Строка.ДанныеСтроки.Ссылка.СуммаДокумента; КонецЦикла; ЭтаФорма.ЭлементыФормы.ДокументСписок.Колонки.СуммаДокумента.ТекстПодвала = Сумма;
Сумма = 0; Для Каждого Строка из ОформленияСтрок Цикл Сумма = Сумма + Строка.ДанныеСтроки.Ссылка.СуммаДокумента; КонецЦикла; ЭтаФорма.ЭлементыФормы.ДокументСписок.Колонки.СуммаДокумента.ТекстПодвала = Сумма;
Некатит, цикл почему-то запускается каждый раз при переходе на новую строку, и в результате выводится сумма последнего документа, а не общая сумма документов.
Можно ещё событием при выводе каждой строки, но оно будет и грузить реально проц, да и кривое решение
У нас здесь своя атмосфера...
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8
Цитата
Некатит, цикл почему-то запускается каждый раз при переходе на новую строку, и в результате выводится сумма последнего документа, а не общая сумма документов.
Видимых на экране? Попадающих в выбранный интервал дат? С учетом установленных фильтров? Или всех вообще?
Зачем курочить Форму списка, если в конфигурации куча отчетов?
Да видимых на екране. А фильтр причем если событие при выводе таблицы, поэтому вне зависимости какой интервал дат, и какой фильтр, просто будет считаться общая сумма выведенных документов. Отчет отчетом, наш бух. просит чтоб сразу в списке покуметов показывало. В 8.2 там нет проблем с этим, можно сразу выбрать ПутькДанным и уже есть автоматом сформированный реквизит ИтогСумма и т.д. полей которые содержат числовые данные. А вот в 8.1. такого нет, от и приходится циклом выводить.
Крутой
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0
Цитата(Fabri @ 02.02.12, 17:29)
Да видимых на екране.
ПриПолученииДанных не знает размер Вашего монитора. ПриВыводеСтроки - знает, что строка выводится. Вот только при прокрутке ей пофиг, сколько и каких строк ушли с экрана.
Живет на форуме
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1443 раз
Рейтинг: 0
Цитата(Zaval @ 02.02.12, 19:02)
ПриПолученииДанных не знает размер Вашего монитора.
Зато ПриПолученииДанных знает сколько видимых строк на экране и ОформленияСтрок содержит их Код который предложил Vofka с самого начала должен отработать, покрайней мере с виду так.
Всё зависит от того насколько правильно подобный код вставить в обработчик.
Только что в УТ в форме списка в процедуре ПриПолученииДанных написал:
Сумма = 0; Для Каждого Строка из ОформленияСтрок Цикл Сумма = Сумма + Строка.ДанныеСтроки.Ссылка.СуммаДокумента; КонецЦикла; ЭтаФорма.ЭлементыФормы.Список.Колонки.СуммаДокумента.ТекстПодвала = Сумма;
И в подвале отобразилась сумма видимых документов. Единственный минус, что в эту сумму входит и сумма самой последней строки, даже если видна только граница этой строки
И в подвале отобразилась сумма видимых документов. Единственный минус, что в эту сумму входит и сумма самой последней строки, даже если видна только граница этой строки
Жаль в конфе торговля для ЧП даже такого результата нет, а вроде ж елементарная процедура.
Fabri, есть пример, который у 2 из 3 людей работает. Почему у вас не работает - это, наверно, останется для всех загадкой...
И у меня работает, если после обработки процедуры и выводе суммы выбрать 1-ю запись и нажать обновить Если выбираю 2-ю строку, то выводит сумму только текущей строки и последующих.
Просто по логике просится елементарная процедура:
Сумма=0; Для а=1 до Список.КоличествоЗаписей Цикл Сумма=Сумма+Список.ДанныеКолонки.СуммаДокумента; КонецЦикла ЭтаФорма.ЭлементыФормы.ДокументСписок.Колонки.СуммаДокумента.ТекстПодвала = Сумма;
Неужели в платформе 1с нет возможности подобной записи?
!
Правила читать будем или нет?! Код!!! Вофка.
Цитата(Flexy @ 03.02.12, 13:37)
Синтаксис:
Число(<Значение>)
Такая функция не подходит?
Ошибка: Преобразование значения к типу Число не может быть выполнено
!
Есть 2 варианта: или вы пользуетесь нормально тегами или я чищу ваши посты. Не надо выделять сообщения об ошибках тегами кода! Это НЕ КОД! Вофка.
Крутой
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0
Цитата(Fabri @ 03.02.12, 13:54)
Ошибка:
Преобразование значения к типу Число не может быть выполнено
Извините, у Вас проблемы с логикой вообще. Если "значение" не может быть преобразовано в число - Вы не допускаете, что в "значение" у Вас находится "неведомая гусиная хня"? Которую, б.я буду, никто в число преобразовать не может?
Ну не всегда проханже "по ходу дела разберусь", когда ж Вы это поймете? Почитайте книг хоть немного, не позорьте профессию. Мою(!) профессию - я ж обидчив и злопамятен. Бываю.
Извините, у Вас проблемы с логикой вообще. Если "значение" не может быть преобразовано в число - Вы не допускаете, что в "значение" у Вас находится "неведомая гусиная хня"? Которую, б.я буду, никто в число преобразовать не может?
Ну не всегда проханже "по ходу дела разберусь", когда ж Вы это поймете? Почитайте книг хоть немного, не позорьте профессию. Мою(!) профессию - я ж обидчив и злопамятен. Бываю.
Толку розводить этот пустой разговор и флудить попусту в теме. Я обратился с просьбой, никто положительно не ответил, а только показывают какие мы умные все, а вы учите матчасть. Толку тогда с форума? Или бессплатно никто помочь нехочет?
Крутой
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0
Вы абсолютно правы, толку - ноль полный. Причина - в Вашей неспособности понять ответ. Вам дали готовый код. Вы не сподобились его применить. Вас в Отладчике забанили?
Вы не прошли проверку на адекватность. Вам никто ничего не должен.
Вы абсолютно правы, толку - ноль полный. Причина - в Вашей неспособности понять ответ. Вам дали готовый код. Вы не сподобились его применить. Вас в Отладчике забанили?
Вы не прошли проверку на адекватность. Вам никто ничего не должен.
Ответ я понял, но попросил уточнить. Код дали, и я всегда благодарю за это, но он не работает в данной конфигурации. Более подходит событие ПриВыводеСтроки, но обьект Подвал Колонки Табличного поля, если и присвоен переменной является скорей текстовыми данными, чем числом, поэтому при суммированию к нему данных каждой выводимой строки, выводится суммы в одной строке, а не сложенные в общую. А вы вместо того чтоб обяснить, что обьекты в конфигурации невозможно переобразовать в числовые данные, только угнетаете, и оскорбляете человека. На счет проверки на адекватность судить я думаю не Вам. А раз вы не можете помочь и обяснить доступными словами новичку "своей проффесии" почему у него не работает процедура, то я думаю стоит задуматся и о собственном уровне адекватности.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!