Modber Сообщество
профессионалов по 1С

Ошибка в таблица значений "Значение не представляет агрегатный объект"



Платформы: 1С:Предприятие 7.7
Конфигурации: Все конфигурации
2014-07-22
4589 
JarlaKX
0  
Сама ошибка говорит нам о том, что мы используем не переменную, которой ни разу не присваивалось значение.

Эта ошибка не возникнет при внесении поправок визуальными инструментами в конфигураторе, а указывает на ошибку при составлении кода для обработки таблиц. Дело в особенностях языка 1С, переменные в нем изначально не имеют информации о том какого типа значение должны содержать.

Эта информация присваивается переменной при первой записи значения в нее, и определяется типом присваиваемой информации (число, строка или булево). Такой подход позволяет записывать в одну переменную разные типы значений, что очень удобно для языка систем управления базами данных (СУБД), но с другой стороны приходится внимательно следить за типами значений, попадающих в ту или иную переменную — может возникнуть ошибка при выполнении действий над переменными. Часто проблема просто в пустых значениях.

При попытке чтения из переменной, которой не присваивалось значение, программа не может определить даже тип переменной, потому нужно внимательно прослеживать все переменные. С одной стороны можно определять переменные сразу, или присваивать им пустые значения, однако это крайне плохая идея — определять заранее значение группы переменных или лишнее заполнение таблицы, даже пустыми значениями, сильно замедляет обработку базы данных, ведь обработчик должен будет лишний раз перебрать целую группу переменных.

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

Такая схема позволяет наглядно отобразить все заполняемые объекты и проконтролировать их заполнение и использовать заполнение пустыми значениями только там, где это действительно необходимо (как правило такая необходимость для табличных данных не возникает). Кроме того, такая таблица будет незаменима при подключении к работе над конфигурацией других программистов. Новым работникам не придется вычислять имена нужных таблиц поиском в конфигураторе, а можно будет просто посмотреть их в схеме.

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



В центре внимания

Комментарии (3)