Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

Не правильно считается сумма в запросе (7.7)

ПрофитСервис www.profitservice.ru
новичок
офлайн
Пост №11
 
14.07.2010 12:41

"Специально для "дельфистов" запрос который будет работать<br><br> "//{{ЗАПРОС(Сформировать)<br> |ОбрабатыватьДокументы НеПроведенные;<br> |СуммаТекст = Документ.Реализация.СуммаТекст;<br> |Реализация = Документ.Реализация.ТекущийДокумент;<br> |СуммаВзаиморасчетов = Документ.Реализация.Курс;<br> |Функция РеализацияКурсСумма = Сумма(СуммаВзаиморасчетов-СуммаВзаиморасчетов+число(СуммаТекст));<br> |Группировка Реализация;<br> |"//}}ЗАПРОС<br><br>Замечание.<br>Сделано на ТИПОВОЙ ТИС77. Добавлено для примера текстовое поле СуммаТекст<br>ВАЖНО, что сумма забита как 123.23 (через точку). Проверить что проблема не в окрулении можно через Табло: число("123.23") <br><br>Если не понятно почему работает:<br>Чтобы 1С поняла, что нужно использовать числа с точкой нужно выбрать в функции реквизит типа с точкой (нецелый)<br><br>PS А вообще Вам лучше переходит на платформу8. Там таких "заморочек" гораздо меньше!<br>"

zak555 (398843952)
читатель
офлайн
Дата регистрации: 27.03.2008
Сообщений: 4656
Пост №12
 
14.07.2010 13:47

> Столкнулся с такой ситуацией: какой-то не хороший редиска $%^&@# создал документ в котором пара реквизитов табличной части имеют тип значения - строка, это реквизиты СуммаСтарая и Разница (как видно тип должен быть все же число). <br><br>почему не исправить на число ?

IceBeerg
читатель
офлайн
Дата регистрации: 06.10.2004
Сообщений: 803
Пост №13
 
14.07.2010 15:43

> почему не исправить на число ?<br>У нас это хитрый документ КорректировкаОстатковТоваров, писал его не я и с ним часто возникают проблемы... Поэтому сначала погоняю на тренировочной базе...

IceBeerg
читатель
офлайн
Дата регистрации: 06.10.2004
Сообщений: 803
Пост №14
 
14.07.2010 16:03

"В документе тип реквизита - Строка, числа забиты с точкой, в запросе |Функция РазницаСумма = Сумма(Число(Разница)); все равно округление до целых.<br>> PS А вообще Вам лучше переходит на платформу8. Там таких "заморочек" гораздо меньше!<br>Пока нет ни времени переписывать конфигурацию и обучать сотрудников, ни желания руководства..."

ПрофитСервис www.profitservice.ru
новичок
офлайн
Пост №15
 
14.07.2010 16:30

"> В документе тип реквизита - Строка, числа забиты с точкой, в запросе |Функция РазницаСумма = Сумма(Число(Разница)); все равно округление до целых.<br><br>Вы пост наш внимательно прочитали? Запрос видели?<br>"

IceBeerg
читатель
офлайн
Дата регистрации: 06.10.2004
Сообщений: 803
Пост №16
 
14.07.2010 18:56

"> Вы пост наш внимательно прочитали? Запрос видели?<br>Читал внимательно насколько смог. Запрос видел.<br>> Замечание.<br>> Сделано на ТИПОВОЙ ТИС77. Добавлено для примера текстовое поле СуммаТекст<br>> ВАЖНО, что сумма забита как 123.23 (через точку). Проверить что проблема не в окрулении можно через Табло: число("123.23")<br>У мня нет типовой ТиС на данный момент, коробку куда-то дел, работаем в самописной конфигурации на основе ТиС. В документе у мня не текстовое поле, а реквизит типа Строка, дробные числа в него вводятся с использованием точки, а не запятой.<br>> Если не понятно почему работает:<br>> Чтобы 1С поняла, что нужно использовать числа с точкой нужно выбрать в функции реквизит типа с точкой (нецелый)<br>Вот это поясните. В конфигурации у нас как разделитель целой и дробной части используется именно точка.<br>> |СуммаТекст = Документ.Реализация.СуммаТекст;<br>Понятно, создали переменную в запросе, текстовую как у Вас написано.<br>> |Функция РеализацияКурсСумма = Сумма(СуммаВзаиморасчетов-СуммаВзаиморасчетов+число(СуммаТекст));<br>Ввели функцию Сумма где еще и вычисляем<br>> СуммаВзаиморасчетов-СуммаВзаиморасчетов+число(СуммаТекст)<br>Для преобразования текстовой переменной запроса СуммаТекст в число используется конструкция<br>> число(СуммаТекст)<br>Что я не так понял, поясните? Мне в запросе вычислений типа<br>> СуммаВзаиморасчетов-СуммаВзаиморасчетов+число(СуммаТекст)<br>производить не надо, а просто конструкция СуммаТекст<br>> |... = Сумма(Число(СуммаТекст));<br>Выдает округленный результат, до целых.<br>Или, что я не так делаю?"

ПрофитСервис www.profitservice.ru
новичок
офлайн
Пост №17
 
14.07.2010 22:47

"УФФ. ;-)<br><br>Давайте по другому поступим.<br><br>В указанном Вами документе (там где поле "СуммаТекст") есть поля типа число с дробью? Если есть, напишите пожалуйста ПОЛНОСТЬЮ свой запрос по Вашему документу из Вашей конфигурации с выборкой и суммированием указанного поля.<br><br>Должно выглядеть как то так:<br><br>...<br>|ВашеЧисловоеПоле = Документ.ВашаДокумент.ВашеЧисловоеПоле;<br>|Функция ВашеЧисловоеПолеСумма = Сумма(ВашеЧисловоеПоле );<br>...<br><br> "

zak555 (398843952)
читатель
офлайн
Дата регистрации: 27.03.2008
Сообщений: 4656
Пост №18
 
14.07.2010 22:48

> > почему не исправить на число ?<br>> У нас это хитрый документ КорректировкаОстатковТоваров, писал его не я и с ним часто возникают проблемы... Поэтому сначала погоняю на тренировочной базе...<br><br>чего гонять ... ?<br>меня и всё - это же по смыслу ясно

Thorvardr
читатель
офлайн
Дата регистрации: 25.02.2005
Сообщений: 3082
Пост №19
 
15.07.2010 09:42

Если просто сменить тип реквизита на числовой, то можно потерять данные. Мы же не знаем в каком виде там числа в строку вписаны. Сумеет ли их движок корректно в числа преобразовать? Может там форматированные числа типа "7'436.12"? А может там в строке более одного числа через разделители, не зря же когда то реквизиты сделали все таки строками. Не видя базы сложно сказать, поэтому я бы так смело на движок не полагался в этой задачке

zak555 (398843952)
читатель
офлайн
Дата регистрации: 27.03.2008
Сообщений: 4656
Пост №20
 
15.07.2010 10:11

> Если просто сменить тип реквизита на числовой, то можно потерять данные. Мы же не знаем в каком виде там числа в строку вписаны. Сумеет ли их движок корректно в числа преобразовать? Может там форматированные числа типа "7'436.12"? А может там в строке более одного числа через разделители, не зря же когда то реквизиты сделали все таки строками. Не видя базы сложно сказать, поэтому я бы так смело на движок не полагался в этой задачке<br><br>какие проблемы заменить строку "7'436.12" на строку "7436.12" ?

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация