0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
1 | |
1c77. Интересная особенность29.05.2010, 21:17. Показов 16978. Ответов 9
Метки нет Все метки)
(
Вот какой интересный факт я обнаружил :
Переменная имеет тип "Число,3,0" При выводе документа на печать Док.Итог("Переменная") показывается ПРАВИЛЬНОЕ значение (скажем, 1132), а при выводе Док.Итог("Переменная") в ЖУРНАЛЕ все, что больше 1000, режутся до 999 ! Столкнулся с этим фактом при попытке вывести в форму журнала средние значения Док.Итог("Переменная")/Док.КоличествоСтрок() Пришлось увеличить размерность переменной
0
|
|
29.05.2010, 21:17 | |
Ответы с готовыми решениями:
9
1c77 и Excel 1c77 работа с датой 1c77. Не Открывается Внешняя Обработка 1c77 ТиС 9.2 Проблема с регистрами |
0 / 0 / 0
Регистрация: 28.03.2004
Сообщений: 1,913
|
|
30.05.2010, 09:16 | 2 |
Ничего интересного. В журнале неверно задана размерность.
0
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
30.05.2010, 10:40 | 3 |
![]() В журнале есть текстовая колонка, в которую выводится среднее значение по колонке документа. Так вот, при вызове соответствующей функции, Док.Итог там уже обрезана до 3 знаков.
0
|
0 / 0 / 0
Регистрация: 28.03.2004
Сообщений: 1,913
|
|
30.05.2010, 17:38 | 4 |
Форматирование этой "текстовой колонки" задано? В формате неправильно задана размерность. Вполне стандартная фишка для журналов, ТЧ документов и отчетов: когда не хватает разрядов, 1С выводит все 9.
0
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
30.05.2010, 18:25 | 5 |
Что-то я никак не въезжаю - что есть форматирование текстовой колонки ?
И при чем здесь оно, даже если бы было ? Еще раз повторю : при ВЫЗОВЕ из колонки журнала функции расчета этой колонки Док.Итог("Переменная") режется до формата, заданного размерностью переменной Можно и не выводить в колонку, все, что больше 999, все равно 999, даже в сообщении
0
|
0 / 0 / 0
Регистрация: 28.03.2004
Сообщений: 1,913
|
|
30.05.2010, 19:54 | 6 |
Тэкс... Значит не в колонке нарушена размерность, а в самой переменной...
Как думаешь, что делает 1С, когда ты ставишь галочку "Итог по колонке"? Она в шапку документа добавляет реквизит с таким же именем, как в табличной части и с такой же размерностью. Ну, а что делает 1С, когда размерность "зашкаливает"? САМ БЫЛ В ШОКЕ, увидев в процедурах сиквела что-то типа Код ( (Unknown Language)): Если Переменная > 999 Тогда Переменная = 999; КонецЕсли; Написал в синтаксисе 1с, чтобы было понятней.
0
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
30.05.2010, 21:51 | 7 |
Спасибо, теперь понятно хоть, откуда ноги растут.
Но ведь ВНУТРИ документа Итог("Переменная") выдает ПРАВИЛЬНОЕ значение, независимо от недостаточной размерности самой переменной для суммы. Напомню и то, о чем я когда-то на Форуме писал. Итог("Переменная") внутри документа работает, даже если у реквизита нет итога по колонке, а при внешних вызовах выдается ошибка "реквизит не имеет итога по колонке". Что-то мутное с этим итогом внутри компилятора 1С (или как он там называется ?). PS. На самом деле, сам я пал жертвой въевшейся в мозги привычки экономить память аж до байта, поставил бы себе размерность 5 и не наткнулся бы на стенку. Это еще со времен, когда магнитный барабан емкостью 64 КИЛОБАЙТА (!) казался вершиной технической мысли изобретателей внешней памяти :*цензура*you:
0
|
0 / 0 / 0
Регистрация: 28.03.2004
Сообщений: 1,913
|
|
31.05.2010, 08:16 | 8 |
![]() Точную дату на белые ночи скажу несколько позже. Теперь про Итог("Переменная"). Сей метод виртуальный и переопределен для разных объектов. Когда "находимся в открытом документе" - он работает для любой численной колонки. Почему? Потому как просто суммирует значения, находящиеся в колонке. Не задумывался, почему этот метод в журнале работает только для колонок, в которых стоит "Итог по колонке"? Как я и говорил, при записи документа, для таких колонок проводится суммирование и запись итога в реквизит шапки (имеющий такую же размерность, как и реквизит табличной части). Так вот когда мы в журнале, метод просто считывает значения из реквизитов шапки. Сделано это вот по какой причине... Все документы хранятся в нескольких таблицах: 1sjourn - это журнал документов. Единый и неделимый. Все журналы, создаваемые в конфигураторе - это всего лишь фильтры к этой таблице. DHххх - это шапка документа. DTххх - это табличная часть документа. ххх - это номер объекта метаданных в конфигураторе. Находясь в журнале, гораздо проще сделать левое соединение с таблицей шапки документа и взять оттуда сумму, чем делать левое соединение с таблицей табличной части и производить суммирование. Ну вот как-то так я все это себе вижу.
0
|
1 / 1 / 0
Регистрация: 15.11.2009
Сообщений: 947
|
|
31.05.2010, 19:42 | 9 |
![]()
0
|
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
|
|
31.05.2010, 22:37 | 10 |
![]()
0
|
31.05.2010, 22:37 | |
Помогаю со студенческими работами здесь
10
1c77 Сбилась последовательность документов 1c77 Вид документа в запросе 1c77 Отбор по реквизиту в журнале 1c77 Быстрый поиск по наименованию Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |