Имеется УНФ. В ней ЗаказаПокупателя с табличной частью Заказы. Заказы имеют кроме всего прочего реквизит Вес с типом ОпределяемыйТип.Вес. В свою очередь ОпределяемыйТип.Вес имеет тип Число 15.3. Вопрос - почему в СКД сумма по этому полю считается через раз? Возможно, правильнее будет сказать через документ. В одном считает, в другом не считает. Причем реквизит Количество, у которого прямо без выгибонов, задан тип Число 15.3, считает всегда. Каким образом заставить СКД посчитать этот реквизит? Спасибо.
---
Для начала проверить, что же хранится в базе и показывается на форме.
В первой же строке кода метода ПриСозданииНаСервере Поставить точку остановки.
Проверить Объект.Заказы. Что там показывается для Вес.
Тоже проверить для Объект.Ссылка.Заказы.
От этого и смотреть...
---
А что в запросе?
Ну и можно предложить в СКД для поля Вес явно указать тип Число 15,3 на 1 закладке.
---
```1c
    ВЫБРАТЬ
    ЗаказПокупателяЗапасы.Ссылка КАК Заказ,
    ЗаказПокупателяЗапасы.Номенклатура КАК Номенклатура,
    ЗаказПокупателяЗапасы.Количество КАК Количество,
    ЗаказПокупателяЗапасы.Вес КАК Вес,
    ЗаказПокупателяЗапасы.Цена КАК Цена,
    ЗаказПокупателяЗапасы.Ссылка.Контрагент КАК Контрагент
    ИЗ
    Документ.ЗаказПокупателя.Запасы КАК ЗаказПокупателяЗапасы
    ГДЕ
    ЗаказПокупателяЗапасы.Ссылка В ИЕРАРХИИ(&Ссылка)
```
 Самый простой.
---
Для документов нет смысла в способе сравнения "В Иерархии", тк. у них нет иерархии. Достаточно "В".
А по сути проблемы - установите тип значения для поля.
---
Подскажите, как установить тип?

```1c
    ВЫБРАТЬ
    ЗаказПокупателяЗапасы.Ссылка КАК Заказ,
    ЗаказПокупателяЗапасы.Номенклатура КАК Номенклатура,
    ЗаказПокупателяЗапасы.Количество КАК Количество,
    ЗаказПокупателяЗапасы.Вес КАК Вес,
    ЗаказПокупателяЗапасы.Цена КАК Цена,
    ЗаказПокупателяЗапасы.Ссылка.Контрагент КАК Контрагент,
    ВЫРАЗИТЬ(ЗаказПокупателяЗапасы.Вес КАК ЧИСЛО(15, 3)) КАК Поле1
    ИЗ
    Документ.ЗаказПокупателя.Запасы КАК ЗаказПокупателяЗапасы
    ГДЕ
    ЗаказПокупателяЗапасы.Ссылка В ИЕРАРХИИ(&Ссылка)
```

Дает следующее
---
В конструкторе СКД на закладке Набор данных.
А у вас в документе вес то заполнен?
---
Спасибо, но не помогло :(
---
А у вас в документе вес то заполнен? Ну, это первым делом было проверено :)
---
А консоль запроса что выдает при таком же запросе? В ней вес заполнен?
---
Вот так. Тоже не заполнен.
---
Ну то есть вес пустой в документе.
---
В другом документе проводил экспериент - перебивал руками вес по строкам и случилось чудо.
---
на скрине в шапке совсем другой реквизит Вес. Там общий (итог) для всего документа и не известно как рассчитывается. В запросе выбирается вес из табличной части. Что показывает в консоле запроса для данного документа этот запрос?
Возможно для какой-то строки вес не установлен.
---
Не совсем понял про другой реквизит. Я пока не за общий итог по таблице, а за значение в строке по колонке Вес или Поле1. Я не пойму почему у однх документов эти поля заполнены, а у других нет. Причем, если окрыть документ с заполненным полем Вес, то в нем может не оказаться веса в некоторых строках. И на оборот. В СКД поле Вес пустое, а в документе все строки с весом.
---
В определяемом типе или составном пустое значение имеет значение НЕОПРЕДЕЛЕНО
Потому логично написать

```1c
    ВЫБОР
    КОГДА ЗаказПокупателяЗапасы.Вес = НЕОПРЕДЕЛЕНО Тогда
    0
    ИНАЧЕ
    ЗаказПокупателяЗапасы.Вес
    КОНЕЦ
```

Можно через Тип

```1c
    ВЫБОР
    КОГДА не ТипЗначения(ЗаказПокупателяЗапасы.Вес) = Тип("Число") Тогда
    0
    ИНАЧЕ
    ЗаказПокупателяЗапасы.Вес
    КОНЕЦ
```
---
ВЫБОР
   КОГДА ЗаказПокупателяЗапасы.Вес = НЕОПРЕДЕЛЕНО Тогда
      100
   ИНАЧЕ
      ЗаказПокупателяЗапасы.Вес
КОНЕЦ Написал. Обратите внимание, немного изменил!
Результат:
---
Т.е. все таки в этом поле не "Неопределено"
---
так вес у всех строк ТЧ равен нулю. Ноль по умолчанию в СКД не отображается.
---
в (10) прикреплен скрин самого документа. Там только в одной строке нет веса
---
не видко откуда в самом документе берутся данные для колонки Вес. Может это другой реквизит или вычисляемый в самой форме.
---
Сделал вот такой запрос. Т.е. это не неопределено и число. Так почему в табличной части формы я вижу вес, а в запросе нет? Просто чудеса...
---
почему в табличной части формы я вижу вес
Посмотрите в форме, какой реквизит отображается в табличной части, возможно это не тот, который вы используете в запросе.
---
Я все это проверил до того, как написал в форум. мало того, если я сейчас перебью это поле руками, то в запросе все будет чудесно.
---
Скажу больше, что консолью запросов и конструкторм СКД начал пользоваться уже после того, как надоело в конфигураторе править. Т.е. это не глюки конструктора или консоли.
---
В модуле объекта в Перед записью/При записи посмотрите - что реально записывается в колонке Вес.
Выполните в конфигураторе тестирование и исправление.
Еще можно предложить воспользоваться утилитой chdbfl.
---
Запустил тестирование и исправление. Недавно проделывал эту процедуру.
---
Как и ожидалось, тестирование и исправление не помогло.
---
Это также может быть условное оформление, в котором заполняется текст. УНФ своеобразная конфигурация, жаль, под рукой нет.
---
По моему "Своеобразная" это, прямо, слишком мягко сказано.
---
chdbfl Тоже сказала, что все хорошо и оибок нет.
---
А теперь контрольный в ногу. Создал на основании этой заявки расходную. Изменил в тексте запроса заявку на расходную.
---
Для начала проверить, что же хранится в базе и показывается на форме.
В первой же строке кода метода ПриСозданииНаСервере Поставить точку остановки.
Проверить Объект.Заказы. Что там показывается для Вес.
Тоже проверить для Объект.Ссылка.Заказы.
От этого и смотреть...
---
Я проверю, но уже хочется проверить на другой платформе. Веселая все таки восьмерка. Особенно для меня. Я всю жизнь на 77 и тут тратишь уйму времени на то, что бы разобраться. Думаю, что я что то не доделываю, а в итоге оказывается очередной косяк платформы.
---
Думаю, что у вас описка. Объект.Запасы и Объект.Ссылка.Запасы. И вот, похоже ответ. Но куда дальше копать? Зря на восьмерку наехал :(
---
ну понятно было, что имя табличной части имелась ввиду.
Вот, теперь смотреть, как он данные формы заполняет.
У меня нет УНФ.
Эти данные прямо на первой же строке кода в методе ПриСозданииНаСервере?
Открывается из списка документов? Смотреть код, как он этот документ там открывает.
Ну и посмотреть стек вызовов.
---
Эти данные прямо на первой же строке кода в методе ПриСозданииНаСервере? Да.
(35) Открывается из списка документов? Тоже да.
---
Без базы тут мало что можно еще подсказать.
---
И на этом спасибо. Буду разбираться почему разные таблицы.
---
(36) Эти данные прямо на первой же строке кода в методе ПриСозданииНаСервере? А еще раньше существует
```1c
    Процедура ПриЧтенииНаСервере(ТекущийОбъект)
```
 В которой есть ссылка на процедуру
```1c
    ПрочитатьВесИОбъемЕдиницыТовара();
```
. В принципе, загадка разгадана. Дело в том, что я пользовался чужой обработкой для программного создания документа ЗаказПокупателя. В этой обработке не было функции заполнения веса по строкам. В итоге получилось что эти поля реально пустые и заполняются при открытии документа. Что интересно, Заявка проведена, я ее открываю, вижу заполненные строки веса. Просто закрываю заявку, но при закрытии нет сообщения о том, что данные были модифицированы и давайте что то решать. Поля веса снова остаются пустыми. Поэтому у меня и возник данный топик. Когда я перебивал значения веса руками, то после этого, естественно, проводил заявку. А дальше все просто в
```1c
    Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
```
 еще раз перезаписываются данные о весе все той же процедурой
```1c
    ПрочитатьВесИОбъемЕдиницыТовара();
```
. Вот такие чудеса в конфигурации УНФ. И что бы уже было ясно до конца. При штатном подборе товара в заявку поле вес остается пустым. И только после записи это поле заполняется. Вот так вот. В конфигурации есть еще не мало чудес, но они не относится к данной теме. Всем спасибо за советы и помощь.
---
Может нужно не приводить тип к числу а использовать

Isnull(ЗаказПокупателяЗапасы.Вес,0)