Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Прошу помочь с написанием цикла , 1С:Предприятие 8.1 Конф. Торговля для ЧП 1.0 "1С-Теллур" 2 страниц V   1 2 >          
Fabri Подменю пользователя
сообщение 02.02.12, 10:14
Сообщение #1

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 188
Спасибо сказали: 56 раз
Рейтинг: 0

Добрый день. Помогите пожалуйста новичку с написанием цикла. Документ Реализация Товаров и Услуг, Форма списка, необходимо выводить общую сумму документов, в табличное поле ДокументСписок включил в подвал, в текст подвала поля Сумма документа и будет выводится общая сумма. Добавил процедуру в событие табл. док ДокументСписок- ПриПолученииДанных, вот код:
Процедура ДокументСписокПриПолученииДанных(Элемент, ОформленияСтрок)
        ТекущаяСтрока=ЭтаФорма.ЭлементыФормы.ДокументСписок.ТекущиеДанные;
        Если Не ТекущаяСтрока=Ложь Тогда //Проверка заполненности формы
        ЭтаФорма.ЭлементыФормы.ДокументСписок.Колонки.СуммаДокумента.ТекстПодвала = ТекущаяСтрока.СуммаДокумента;
    КонецЕсли        
КонецПроцедуры

Но вот незнаком с операторами, и на данный момент просто выводит сумму текущей строки, а хотелось бы чтоб цылк перебирал кажду запись таблицы по очереди и суммировал. Пожалуйста помогите написать данный цикл. Заранее спасибо.

Vofka Подменю пользователя
сообщение 02.02.12, 10:45
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

Сумма = 0;
Для Каждого Строка из ОформленияСтрок Цикл
    Сумма = Сумма + Строка.ДанныеСтроки.Ссылка.СуммаДокумента;
КонецЦикла;
ЭтаФорма.ЭлементыФормы.ДокументСписок.Колонки.СуммаДокумента.ТекстПодвала = Сумма;

Fabri Подменю пользователя
сообщение 02.02.12, 11:14
Сообщение #3

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 188
Спасибо сказали: 56 раз
Рейтинг: 0

Цитата(Vofka @ 02.02.12, 10:45) *
Сумма = 0;
Для Каждого Строка из ОформленияСтрок Цикл
    Сумма = Сумма + Строка.ДанныеСтроки.Ссылка.СуммаДокумента;
КонецЦикла;
ЭтаФорма.ЭлементыФормы.ДокументСписок.Колонки.СуммаДокумента.ТекстПодвала = Сумма;

Некатит, цикл почему-то запускается каждый раз при переходе на новую строку, и в результате выводится сумма последнего документа, а не общая сумма документов.

Можно ещё событием при выводе каждой строки, но оно будет и грузить реально проц, да и кривое решение
Процедура ДокументСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    Сума=ДанныеСтроки.СуммаДокумента;
    ЭтаФорма.ЭлементыФормы.ДокументСписок.Колонки.СуммаДокумента.ТекстПодвала =
ЭтаФорма.ЭлементыФормы.ДокументСписок.Колонки.СуммаДокумента.ТекстПодвала + Сума;
КонецПроцедуры

Причем незнаю оператор для преобразования в число, поэтому выводится только суммирование текста 31000000.gif

Vofka Подменю пользователя
сообщение 02.02.12, 11:20
Сообщение #4

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

Цитата
Некатит, цикл почему-то запускается каждый раз при переходе на новую строку, и в результате выводится сумма последнего документа, а не общая сумма документов.

Вы в какую процедуру мой код вставили?

Fabri Подменю пользователя
сообщение 02.02.12, 13:11
Сообщение #5

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 188
Спасибо сказали: 56 раз
Рейтинг: 0

Цитата(Vofka @ 02.02.12, 11:20) *
Вы в какую процедуру мой код вставили?

В Процедура ДокументСписокПриПолученииДанных(Элемент, ОформленияСтрок)

Zaval Подменю пользователя
сообщение 02.02.12, 14:18
Сообщение #6

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Цитата(Fabri @ 02.02.12, 10:14) *
хотелось бы чтоб цылк перебирал кажду запись таблицы по очереди и суммировал. Пожалуйста помогите написать данный цикл. Заранее спасибо.


Видимых на экране?
Попадающих в выбранный интервал дат?
С учетом установленных фильтров?
Или всех вообще?

Зачем курочить Форму списка, если в конфигурации куча отчетов?

Fabri Подменю пользователя
сообщение 02.02.12, 17:29
Сообщение #7

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 188
Спасибо сказали: 56 раз
Рейтинг: 0

Цитата(Zaval @ 02.02.12, 14:18) *
Видимых на экране?
Попадающих в выбранный интервал дат?
С учетом установленных фильтров?
Или всех вообще?

Зачем курочить Форму списка, если в конфигурации куча отчетов?


Да видимых на екране. А фильтр причем если событие при выводе таблицы, поэтому вне зависимости какой интервал дат, и какой фильтр, просто будет считаться общая сумма выведенных документов.
Отчет отчетом, наш бух. просит чтоб сразу в списке покуметов показывало.
В 8.2 там нет проблем с этим, можно сразу выбрать ПутькДанным и уже есть автоматом сформированный реквизит ИтогСумма и т.д. полей которые содержат числовые данные. А вот в 8.1. такого нет, от и приходится циклом выводить.


 ! 

Правила! Пункт 13. Вофка.
 

Zaval Подменю пользователя
сообщение 02.02.12, 18:02
Сообщение #8

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Цитата(Fabri @ 02.02.12, 17:29) *
Да видимых на екране.


ПриПолученииДанных не знает размер Вашего монитора.
ПриВыводеСтроки - знает, что строка выводится. Вот только при прокрутке ей пофиг, сколько и каких строк ушли с экрана.

Batchir Подменю пользователя
сообщение 02.02.12, 20:09
Сообщение #9

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1443 раз
Рейтинг: 0

Цитата(Zaval @ 02.02.12, 19:02) *
ПриПолученииДанных не знает размер Вашего монитора.


Зато ПриПолученииДанных знает сколько видимых строк на экране и ОформленияСтрок содержит их
Код который предложил Vofka с самого начала должен отработать, покрайней мере с виду так.

Всё зависит от того насколько правильно подобный код вставить в обработчик.

Только что в УТ в форме списка в процедуре ПриПолученииДанных написал:
Сумма = 0;
    Для Каждого Строка из ОформленияСтрок Цикл
           Сумма = Сумма + Строка.ДанныеСтроки.Ссылка.СуммаДокумента;
    КонецЦикла;
    ЭтаФорма.ЭлементыФормы.Список.Колонки.СуммаДокумента.ТекстПодвала = Сумма;

И в подвале отобразилась сумма видимых документов. Единственный минус, что в эту сумму входит и сумма самой последней строки, даже если видна только граница этой строки

Fabri Подменю пользователя
сообщение 03.02.12, 12:27
Сообщение #10

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 188
Спасибо сказали: 56 раз
Рейтинг: 0

Цитата(Batchir @ 02.02.12, 20:09) *
И в подвале отобразилась сумма видимых документов. Единственный минус, что в эту сумму входит и сумма самой последней строки, даже если видна только граница этой строки

Жаль в конфе торговля для ЧП даже такого результата нет, а вроде ж елементарная процедура. 09000000.gif

Vofka Подменю пользователя
сообщение 03.02.12, 13:24
Сообщение #11

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

Цитата
Жаль в конфе торговля для ЧП даже такого результата нет

Мне почему-то кажется, что не в конфе дело...

Fabri Подменю пользователя
сообщение 03.02.12, 13:27
Сообщение #12

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 188
Спасибо сказали: 56 раз
Рейтинг: 0

Подскажите, неужели в 1С 8.1 нет функции переобразования переменной с текста в число и т.д. как есть во многих системах программирования?

Цитата(Vofka @ 03.02.12, 13:24) *
Мне почему-то кажется, что не в конфе дело...

Я согласен, но посмотрите 1е сообщение - помогите новичку с написанием цикла...
но результата ж пока нет sad.gif

Vofka Подменю пользователя
сообщение 03.02.12, 13:31
Сообщение #13

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

Fabri, есть пример, который у 2 из 3 людей работает. Почему у вас не работает - это, наверно, останется для всех загадкой...

Flexy Подменю пользователя
сообщение 03.02.12, 13:37
Сообщение #14

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 231 раз
Рейтинг: 0

Цитата(Fabri @ 03.02.12, 13:27) *
Подскажите, неужели в 1С 8.1 нет функции переобразования переменной с текста в число и т.д. как есть во многих системах программирования?

Синтаксис:

Число(<Значение>)

Такая функция не подходит?

Сообщение отредактировал Flexy - 03.02.12, 13:37

Fabri Подменю пользователя
сообщение 03.02.12, 13:54
Сообщение #15

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 188
Спасибо сказали: 56 раз
Рейтинг: 0

Цитата(Vofka @ 03.02.12, 13:31) *
Fabri, есть пример, который у 2 из 3 людей работает. Почему у вас не работает - это, наверно, останется для всех загадкой...

И у меня работает, если после обработки процедуры и выводе суммы выбрать 1-ю запись и нажать обновить smile.gif Если выбираю 2-ю строку, то выводит сумму только текущей строки и последующих.

Просто по логике просится елементарная процедура:
Сумма=0;
Для а=1 до Список.КоличествоЗаписей Цикл
Сумма=Сумма+Список.ДанныеКолонки.СуммаДокумента;
КонецЦикла
ЭтаФорма.ЭлементыФормы.ДокументСписок.Колонки.СуммаДокумента.ТекстПодвала = Сумма;


Неужели в платформе 1с нет возможности подобной записи?


 ! 

Правила читать будем или нет?! Код!!! Вофка.
 


Цитата(Flexy @ 03.02.12, 13:37) *
Синтаксис:

Число(<Значение>)

Такая функция не подходит?

Ошибка:
Преобразование значения к типу Число не может быть выполнено


 ! 

Есть 2 варианта: или вы пользуетесь нормально тегами или я чищу ваши посты. Не надо выделять сообщения об ошибках тегами кода! Это НЕ КОД! Вофка.
 

Vofka Подменю пользователя
сообщение 03.02.12, 13:56
Сообщение #16

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

Цитата
Неужели в платформе 1с нет возможности подобной записи?

Нет. В 1С вооще программировать нельзя.

Zaval Подменю пользователя
сообщение 03.02.12, 15:12
Сообщение #17

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Цитата(Fabri @ 03.02.12, 13:54) *
Ошибка:
Преобразование значения к типу Число не может быть выполнено


Извините, у Вас проблемы с логикой вообще.
Если "значение" не может быть преобразовано в число - Вы не допускаете, что в "значение" у Вас находится "неведомая гусиная хня"? Которую, б.я буду, никто в число преобразовать не может? smile.gif

Ну не всегда проханже "по ходу дела разберусь", когда ж Вы это поймете? Почитайте книг хоть немного, не позорьте профессию. Мою(!) профессию - я ж обидчив и злопамятен. Бываю.

Fabri Подменю пользователя
сообщение 03.02.12, 15:49
Сообщение #18

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 188
Спасибо сказали: 56 раз
Рейтинг: 0

Цитата(Zaval @ 03.02.12, 15:12) *
Извините, у Вас проблемы с логикой вообще.
Если "значение" не может быть преобразовано в число - Вы не допускаете, что в "значение" у Вас находится "неведомая гусиная хня"? Которую, б.я буду, никто в число преобразовать не может? smile.gif

Ну не всегда проханже "по ходу дела разберусь", когда ж Вы это поймете? Почитайте книг хоть немного, не позорьте профессию. Мою(!) профессию - я ж обидчив и злопамятен. Бываю.


Толку розводить этот пустой разговор и флудить попусту в теме. Я обратился с просьбой, никто положительно не ответил, а только показывают какие мы умные все, а вы учите матчасть. Толку тогда с форума? Или бессплатно никто помочь нехочет?

Zaval Подменю пользователя
сообщение 03.02.12, 16:01
Сообщение #19

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Вы абсолютно правы, толку - ноль полный.
Причина - в Вашей неспособности понять ответ.
Вам дали готовый код.
Вы не сподобились его применить.
Вас в Отладчике забанили?

Вы не прошли проверку на адекватность. Вам никто ничего не должен.

Fabri Подменю пользователя
сообщение 03.02.12, 16:10
Сообщение #20

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 188
Спасибо сказали: 56 раз
Рейтинг: 0

Цитата(Zaval @ 03.02.12, 16:01) *
Вы абсолютно правы, толку - ноль полный.
Причина - в Вашей неспособности понять ответ.
Вам дали готовый код.
Вы не сподобились его применить.
Вас в Отладчике забанили?

Вы не прошли проверку на адекватность. Вам никто ничего не должен.


Ответ я понял, но попросил уточнить.
Код дали, и я всегда благодарю за это, но он не работает в данной конфигурации.
Более подходит событие ПриВыводеСтроки, но обьект Подвал Колонки Табличного поля, если и присвоен переменной
является скорей текстовыми данными, чем числом, поэтому при суммированию к нему данных каждой выводимой строки, выводится суммы в одной строке, а не сложенные в общую. А вы вместо того чтоб обяснить, что обьекты в конфигурации невозможно переобразовать в числовые данные, только угнетаете, и оскорбляете человека.
На счет проверки на адекватность судить я думаю не Вам. А раз вы не можете помочь и обяснить доступными словами новичку "своей проффесии" почему у него не работает процедура, то я думаю стоит задуматся и о собственном уровне адекватности.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


2 страниц V   1 2 >
Тема закрыта Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 15.06.25, 17:05
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!