Преобразование значения к типу число не может быть выполнено 1с 8. 3; как исправить

Внутренняя ошибка «1С» компоненты dbeng

Такое сообщение указывает на повреждение структуры базы данных. Документ из названия хранится в папке с
программной. Такая ошибка «1С» решается с помощью переустановки платформы. Если этот совет вам не помог,
можно попробовать протестировать базу данных и исправить ошибки. Для этого в конфигураторе зайдите в
раздел «Администрирование –Тестирование и исправление» и поставьте галочки в зависимости от вашей
ситуации.

Некоторые ошибки требуют оперативного исправления, так как могут навредить работе системы. Подобные
сбои могут исправить только квалифицированные программисты «1С».

Если у вас нет времени самостоятельно разбираться в технических особенностях системы и при этом вы
хотите всегда быть уверенным в работоспособности ваших программ – мы готовы помочь!
Поддержка «1С» и
другие услуги по настройке «1С»
доступны удаленно или с выездом специалиста в ваш офис.

Другие особенности использования ВЫРАЗИТЬ КАК СТРОКА

Передача NULL в качестве параметра не вызывает ошибки, но на выходе будет NULL (не строкой). Передача для преобразования других типов вызывает ошибку «Несовместимые типы ВЫРАЗИТЬ».

Преобразовать число как строку в запросе или же ссылку как строку в данной функции (да и в любых других функциях запроса невозможно). Это отличает TSQL запрос select cast(‘321’ as numeric(10) от запроса в 1С.

Функция ПРЕДСТАВЛЕНИЕ(ЧИСЛО), может на выходе запроса выдать строку, но внутри запроса ее результат использовать невозможно даже в качестве параметра для ВЫРАЗИТЬ.

Конкантенация (сложение) строк допустима и с результатом ВЫРАЗИТЬ:

«321»+ ВЫРАЗИТЬ («Строка» КАК СТРОКА(100))

Идентификатор ссылочного объекта в запросе получить невозможно и ожидаемое многими начинающими программистами 1С в КАЧЕСТВЕ ВЫРАЗИТЬ(ССЫЛКА как СТРОКА()) не работает: ни наименования, ни кода, ни идентификатора не получится — будет ошибка несовместимости типов.

Вот такая простая функция без особых сюрпризов.

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

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

В качестве решения рекомендую использовать дополнительные проверки. Например, на тип переменных:

Очень распространенная ошибка — это получение NULL в запросе и использование его в арифметических выражениях:

Здесь в строке Сч = Сч + Выборка.КоличествоОборот вполне вероятно появление данной ошибки в случае получения в качестве значения NULL.

Чтобы избежать данной ошибки, достаточно использовать проверку на NULL ресурсов в запросе:

Если в значении будет значение NULL, то система заменит его на ноль, тем самым ошибка будет исправлена.

Другие статьи по 1С:

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

Программирование системы 15.08.2016 10:22 8131

Готовые решения для инвентаризации товаров и основных средств на мобильных устройствах для КА, УТ, ERP и БП 3.0 на базе Simple UI

В расширениях для Бухгалтерия 3.0 и КА2.4/УТ11.4/ERP2.4 представлены готовые рабочие места для онлайн и оффлайн инвентаризации товаров (для БП 3.0 также инвентаризации основных средств) на базе бесплатного конструктора мобильного фронта Simple UI. При этом используется расширенная работа с идентификацией товаров и ОС с помощью различных подходов – сканирование штрих кода, распознавание артикулов и инвентарных номеров и различные поиски. Также используются различные возможности платформы Simple UI. Данная разработка может быть полезна как конечным пользователям, так и разработчикам в качестве заготовки, так как на базе этих блоков можно сделать ввод любого документа конфигурации , связанного с товаром или с ОС.
Тестировалось на 1С 8.3.13.1865, КА 2.4.8.63 и БП 3.0.74.69

5 стартмани

28.02.2020   
22344   
86   

informa1555   

76
   

Переиндексируйте ваши файлы

В некоторых редких случаях исправить ошибку «Преобразование значения к типу Число» может помочь переиндексация ваших файлов. Для версии 1С 8.3 стоит использовать файл chdbfl. exe, запускающий переиндексацию. Обычно данный файл находится по пути C:\Program Files (x86) \1cv8\8.3ХХХ\bin. Вместо ХХХ у вас могут находиться указатели вашей версии продукта.

Запустите данный файл, укажите имя файла для проверки, поставьте галочку рядом с опцией «Исправлять обнаруженные ошибки», после чего нажмите на «Выполнить внизу». Дождитесь завершения процедуры проверки и исправления, после чего вновь попробуйте выполнить необходимые операции.

Выразить в запросе 1С 8.3

Несовместимые типы «ВЫРАЗИТЬ» — такое сообщение появляется, когда программист 1С 8.2 или 8.3 в запросе пытается сравнить два различных типа.

Функция Выразить() позволяет привести значение поля запроса 1С к определенному типу. Это может понадобиться в двух случаях:

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

Получите 267 видеоуроков по 1С бесплатно:

Например:

ВЫРАЗИТЬ(Номенклатура.Комментарий КАК СТРОКА(300)) ВЫРАЗИТЬ(Номенклатура.Цена КАК ЧИСЛО(15, 2)) КАК Сумма

2. Преобразовать поле составного типа в поле с одним типом. Это может понадобиться в целях оптимизации запросов. Если в типизированное поле попадёт значение другого типа, то система вернёт NULL, поэтому всегда необходимо дополнительно устанавливать условие в секции «ГДЕ», ограничивая его оператором ССЫЛКА.

Например:

ВЫБРАТЬ … ВЫРАЗИТЬ(Продажи.Регистратор КАК Документ.Реализация) … ИЗ …

ГДЕ Продажи.Регистратор ССЫЛКА Документ.Реализация

Не получилось исправить ошибку в 1с?

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

Песочница

авторитет

18 сентября 2013 в 15:24

1С, восстановление конфигурации информационной базы с использованием MS SQL

В свое время столкнулся с проблемой: при обновлении конфигурации из хранилища, произошел сбой, и закрылась 1С.

Как выяснилось позднее – произошло разрушение хранилища конфигурации и при обновлении конфигурации из хранилища слетела и конфигурация БД. Подобная ошибка возникала прежде при динамическом обновлении ИБ.

Т.к. данная проблема возникала не однократно решил поделится вариантом лечения.

При следующем запуске конфигуратора вышла ошибка: «Внимание!!! При обновлении данных, после последней реструктуризации, произошла ошибка. Повторить обновление?» при утвердительном ответе получаем сообщение: «Обнаружена незавершенная операция сохранения конфигурации

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

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

Вариант 1 (при наличии бэкапа SQL c копией с идентичной конфигурацией):

Разворачивается копия ИБ, и выполняется запрос следующей конструкции: USE
GO
DELETE FROM ..
GO
INSERT INTO .. SELECT * FROM ..
GO

При этом пере заливается таблица в которой хранится конфигурация ИБ. Желательно после данной операции выполнить тестирование и исправление ИБ.

Вариант 2 (при отсутствии бэкапа):

К данному варианту обратились как к последней соломинке. Т.к. конфигурация была в стадии разработки и про бэкап немного позабыли понадеясь на хранилище.
В базе удаляются две записи из таблицы «Config» по значению в столбце «FileName» — dbStruFinal и commit

Выполняется следующий запрос: USE
GO
DELETE FROM .
WHERE FileName = «dbStruFinal»
GO
DELETE FROM .
WHERE FileName = «commit»
GO

Как ни странно база оживает.

Теги:
1с предприятие 8.2, SQL, восстановление конфигурации

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит

В статье показаны способы восстановления базы 1С с помощью встроенных в программу инструментов или сторонних приложений
. Как создать и восстановить резервную копию базы данных.
Для большинства пользователей продуктов компании 1С , повреждение или утеря базы «1С: Предприятие» есть тем, о чём даже боятся говорить. Для них, задача по восстановлению базы данных кажется просто нереальной, а её утеря страшной трагедией.

На самом деле, продукты компании 1С являются таким же программным обеспечением, как и любое другое. Информация, которую пользователи вносят в свои базы данных сохраняется в файлах, из которых можно создавать резервные копии или восстанавливать в случае повреждения или удаления. Часто для этого достаточно встроенных в «1С: Предприятие»
инструментов, но и о стороннем программном обеспечении также забывать не стоит.

По умолчанию, каталогом информационной базы, в котором кроме файла самой базы 1С сохраняются все файлы, которые имеют к ней отношение, является папка в Документах пользователя: C:\Users\Имя Пользователя\Documents\InfoBase

В этой папке хранятся все файлы, которые имеют отношение к данной базе данных.

К таким файлам относятся:

  • *.1CD
    – файл самой базы данных, который по умолчанию имеет название 1Cv8.1CD. Данный файл включает в себя все данные, которые внесены в базу данных, а также их конфигурацию;
  • *.cf, *.cfu (*.cfl), *.dt, *.epf (*.erf)
    – конфигурационные файлы базы данных;
  • *.log, *.lgf, *.lgp, *.elf
    – лог файлы;
  • *.cdn
    – файл блокировки базы данных 1С;
  • *.efd
    – архивный файл 1С;
  • *.mft
    – вспомогательный файл конфигурации шаблона;
  • *.st
    – файл шаблонов текстов
  • *.mxl
    – файл печатных форм базы данных 1С;
  • *.grs
    – файл графических схем базы данных 1С;
  • *.geo
    – файл географических схем базы данных 1С.

Комплексный контроль остатков. Для одного или сразу нескольких логически связанных регистров накопления. Универсальное решение уровня данных для контроля не только складских остатков

Разработка для контроля остатков регистров накопления. Может быть использована в качестве дополнения или замены типовых механизмов любых конфигураций (ERP 2, УТ 11, КА 2 или «устаревших» УТ 10, УПП и многих других). Контролироваться может как отдельный ресурс одного регистра, так и комплексно – в виде комбинации логически связанных ресурсов разных регистров накопления. Контроль может осуществляться при оперативном, неоперативном («задним» числом) проведении документов и при отмене проведения. Разработка доступна в виде подсистемы или в виде расширения.

1 стартмани

25.06.2020   
10628   
14   

Алексей Воробьев   

11
   

Внимательно проверьте код на наличие переменных

В большинстве случаев рассматриваемая ошибка вызвана невнимательностью программиста, вместо числового значения указавшего не числовое, что не позволяет системе выполнить правильный подсчёт числовых значений. Рекомендуем внимательно проверить создаваемый вами код, найти место в коде вызывающее исключение (ошибку) и пофиксить его.

Например, в примере:

переменная B будет вести к ошибке так как её формат не позволяет системе сложить числовое значение «А» и значение в форме даты. Для решения проблемы замените B на строку: B=5 или аналогичную. В этом случае система выдаст вам корректный результат (в данном случае это будет 8).

Последние материалы

Плагин permissions 1.12. PermissionsEX — Управление группами. Управление правами групп игроков

И так, наверно у каждого из вас, кроме опытных держателей серверов имеются проблемы с настройкой прав доступа. Лично я использую плагин PermissionsEx, так как считаю что это самый лучший плагин распределения прав доступа для серверов.Что нам понадобится:.

Установить приложение в вк на телефон

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

Как сделать граффити в ВК: раскрась стену разными красками!

Как в ВК рисовать граффити в сообщениях с компьютера? Это кажется невозможным, ведь все и так знают, что эту функцию убрали несколько лет назад, хотя она так полюбилась всеми пользователями еще с 2007 года. И только, о чудо, в 2017 году ее вновь ввели на.

Типы значений

1С: Предприятие включило в новые версии специальную функцию (платформа 8.2). С помощью неё можно к любым наименованиям, элементам системы данных добавлять какие-либо особые параметры. Сделано это для того, чтобы систему было легче редактировать и добавлять туда новые элементы. Функция эта как раз и называется «Тип значения».

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

Проверка

Проверить то или иное поле можно при помощи языка запросов. А точнее его функции: ТИПЗНАЧЕНИЯ. То есть, если мы хотим узнать, информацию какого вида содержит интересующая ячейка, мы должны воспользоваться командой.

На примере выше мы определили, воспользовавшись командой, простейший вид. Другой пример проверки запроса:

При помощи оператора ССЫЛКА можно проверять поля ссылочного вида. Проверенный параметр позволяет отслеживать, фильтровать нужные документы, определять их положение, а также движение.

Документы

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

  • ДокументСсылка. Применяется для удобного хранения ссылок на различные объекты внутри других частей системы.
  • ДокументОбъект — редактирование документов.
  • ДокументВыборка — переборка объектов из базы данных.

Кроме того, есть специальные термины, характеризующие любые данные:

Это лишь часть из них. Любой объект может являться только чем-то из этого списка. Булево — специальный параметр, который принимает два значения: правда или ложь. Также есть специальные теги, позволяющие корректировать запрос: когда, где, как, иначе и т. п. Они задают алгоритм поведения программы. 1С отличает то, что эти слова здесь, как и всё остальное, можно вписывать на русском языке.

Важно понимать, что все это будет восприниматься новичками и непрофессионалами как китайская грамота. Чтобы понимать, о чём идёт речь и эффективно использовать 1С, необходимо знать основы программирования

В целом, проверить тип в запросе в программе 1С будет достаточно легко, в сравнении с другими действиями.

Измените первый тип слагаемого на число

В некоторых случаях платформа 1С анализирует тип первого слагаемого числа, обнаруживает строку, вследствие чего может решить, что в данном коде речь идёт о сложении строк, а не необходимых программисту числах. Вследствие этого она пытается выполнить преобразование каждого слагаемого в строку, после чего объединить их как строки.

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

К примеру, вместо ошибочной строки:

Сообщить(«Результат: » + 7 + 8 + 9);

Будет необходимо использовать строку:

Сообщить(«Результат: » + (7 + 8 + 9));

Вследствие этого вы получите ожидаемый результат в виде числе 24.

Неявные преобразования

В этом случае 1С будет пытаться привести к типу данных первого операнда. Например:

СтроковаяПеременная= “123”;

ЧисловаяПеременная= 5;

РезультатЧисло= ЧисловаяПеременная+СтроковаяПеременная;

//РезультатЧисло  = 128, это число

СтроковаяПеременная= “123”;

ЧисловаяПеременная= 5;

РезультатСтрока= СтроковаяПеременная+ЧисловаяПеременная;

//РезультатСтрока = “1235”, это строка

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

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

Подписывайтесь на группу

, где я публикую ссылки на новые статьи с данного сайта, а также интересные материалы с других ресурсов по программированию в 1С

Здесь может быть Ваша

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

Чаще всего ошибка «Преобразование значения к типу Число не может быть выполнено» выскакивает из-за невнимательности программиста. В одной из переменных указывается не числовое значение, что и приводит к несоответствию.

Например, правильный код будет выглядеть следующим образом:

Программа вернёт значение 7.

Программа выдаст ошибку.

Исключение возможно только в случае, когда в строке указаны только числа, например:

Результат отобразится корректно – 8. Но если пункты a и b поменять местами, программа выдаст результат «35», так как при вычислении тип чисел выбирается по первому пункту.

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

Решение проблемы

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

  • Запустить конфигуратор;
  • В настройках установить галочку «Останов по ошибке» (по окончании работы её необходимо будет убрать);
  • Нажать на F5 (откроется 1С);
  • Выполнить операции, которые привели к ошибке – программа укажет на строчку, в которой введён некорректный код;
  • Затем необходимо найти в этой строчке ошибку.

В некоторых случаях помогает переиндексация файлов:

  • Необходимо удалить из развёрнутого сальдо счёт 68.10 (это не совсем удобно, так как дебетные и кредитные налоги начинают учитываться вместе, что не является верным);
  • Свернуть всю базу (в дополнительных настройках нужно поставить галочку «выводить забалансовые счета»). С установленной галкой ошибка не выскакивает.

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

Очень часто начинающие программисты 1С 8.3 встречаются с этой проблемой. Рассмотрим причины возникновения ошибки Преобразование значения к типу Число не может быть выполнено и методы её решения.

Группы типов данных

  • простые (примитивные) типы
  • типы-объекты и их подчиненные
  • типы-объекты из метаданных (прикладные типы)
  • интерфейсные типы
  • прочие типы общего назначения

Простые типы

  • Строка (задается значением в кавычках «»)
  • Число (Задается десятичным числом)
  • Дата (дата и время)
  • Булево (Истина,Ложь.

Типы-объекты

  • Коллекции значений (Массивы, Структуры, ТаблицыЗначений и другие)
  • Интеграционные (Com, файлы, внешние объекты, zip, WS)
  • Общего назначения

Объекты из метаданных (прикладные)

  • Константы
  • Справочники
  • Документы
  • Перечисления
  • Отчеты
  • Обработки
  • Планы счетов
  • Задачи
  • Регистры сведений
  • Регистры накоплений
  • Регистры бухгалтерского учета
  • и другие…

Неверный формат хранилища

Если вы столкнулись с такой ошибкой, то в появившемся окне обязательно появится сообщение с текстом:
«AppData/Local/». Эта надпись указывает на точное расположение проблемного файла в системе. В сообщении
также уже написан правильный путь решения, что упрощает задачу. Вам достаточно перейти по указанному
пути и удалить временные файлы. Отметим, что очистка кэша зачастую помогает решить множество проблем в
системе.

С одного ПК заходит, с другого нет.

Для решения этой проблемы попробуйте выполнить следующие действия:

  • для начала проверьте в «Проводнике» – видит ли он базу. Возможно, к папке с базой
    не предоставлен общий доступ;
  • попробуйте очистить кэш. Для этого необходимо перейти в папку, где хранятся временные файлы.
    В Windows 7 и выше папка находится по адресу: C:\Users\Username\AppData\Local\1C. Для Windows
    ХP: Local Settings\Application Data\1C\ ;
  • зайти под другим пользователем. Можно использовать любой доступный профиль (лучше всего
    администратора).

Приведение значений

Производится автоматически при присвоении к реквизиту (свойству) объекта, если данный реквизит не может хранить данное значение

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

Цвет = Новый Цвет(255,0,0);
Цвет2 = Новый Цвет(«2″+59-Цвет.Красный,0,0);
//В данном случае произойдет поэтапно
//»2″+59 =»259»
//259-255 = 4
//Цвет2 = Новый Цвет(4,0,0);

Такие «сложные» преобразования требуется проводить с осторожностью. Приведение значений через встроенные функции преобразования

Приведение значений через встроенные функции преобразования

ЭтоБудетЧисло = Число(«15″);
ЭтоБудетСтрока = Строка(ЭтоБудетЧисло);
ЭтоБудетСтрока = Формат(ЭтоБудетЧисло,»»);//возможно указание строки форматирования значения
ЭтоБудетДата = Дата(«201601+ЭтоБудетЧисло);//время будет 00:00:00
//Приведение через объект
МожетБытьТолькоЧислом = Новый ОписаниеТипов(«Число»);
ЭтоБудетЧисло = МожетБытьТолькоЧислом.ПривестиЗначение(«12»);

Следует обратить внимание, что некоторые преобразования система не сможет сделать, и это вызовет ошибку исполнения, поэтому проверка должна производится разработчиком

ЭтоПрисвоениеНеПроизойет = Дата(«12:45:45»);

Составные и простые типы

Если не указано специально, то тип значений не ограничивается.

В случае реквизитов объектов метаданных, тип значений задается на этапе конфигурирования из типов доступных к записи (примитивные, ссылки на объекты, хранилище значений), а так же от вида объекта и контекста(среды, места) исполнения. При этом доступно ограничение реквизита одним типом или несколькими. Например, нам необходимо записывать в одно поле, либо значение «строки», либо «числа».

Для других объектов, тип реквизитов может остаться не ограниченными (произвольного типа), либо ограничен через специальный тип «ОписаниеТипов«

Например, для простого случая

Данный объект также используется для ограничения выбора или внесения данных в диалоговых формах

Переиндексируйте ваши файлы

В некоторых редких случаях исправить ошибку «Преобразование значения к типу Число» может помочь переиндексация ваших файлов. Для версии 1С 8.3 стоит использовать файл chdbfl.exe, запускающий переиндексацию. Обычно данный файл находится по пути C:Program Files (x86) 1cv88.3ХХХbin. Вместо ХХХ у вас могут находиться указатели вашей версии продукта.

Запустите данный файл, укажите имя файла для проверки, поставьте галочку рядом с опцией «Исправлять обнаруженные ошибки», после чего нажмите на «Выполнить внизу». Дождитесь завершения процедуры проверки и исправления, после чего вновь попробуйте выполнить необходимые операции.

Выполните проверку вашей базы

Функция ВЫРАЗИТЬ в языке запросов 1С 8

Функцию ВЫРАЗИТЬ в языке запросов 1С 8 многие интерпретируют как преобразователь типов, но она предназначена совершенно не для этих целей. Подробности под катом…

Итак, многие ошибочно полагают, что смогут преобразовать поле с типом Строка в поле с типом Число или ссылку в строку. На самом деле оператор ВЫРАЗИТЬ может преобразовать:

  • настройки примитивного типа;
  • поле составного типа в поле одиночного типа;

Рассмотрим эти ситуации более подробно…

Преобразование настроек примитивного типа

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

    ВЫРАЗИТЬ(Приходная.Комментарий КАК СТРОКА(300))

Еще ситуация когда в запросе используются расчеты, на выходе мы можем получить число с большим количество знаков после запятой (1100,001568794)

Чтобы не обрабатывать это число полсе выполнения запроса его сразу можно обрезать до нужной длины, но важно понимать что число именно обрезается, а не округляется. Пример:

    РегистрНакопления.Продажи КАК Продажи

Преобразование составного типа к одиночному

Регистратор у регистров часто имеет составной тип, чтобы преобразовать его к одиночному типу используйте конструкцию ВЫРАЗИТЬ правда если на этапе выборки вы попытаетесь преобразовать документ реализацию в документ поступление, то запрос обязательно вылетит с ошибкой, поэтому перед преобразованием следует проверить тип ссылки. Вот такая вот белиберда))) Зачем все это нужно спросите вы. Отвечаю, это один из моментов неявной оптимизации запроса в ущерб краткости написания. Рассмотрим приминение этого момента на примере. 

Допустим, вы задались целью получить номер каждого регистратора у РН Продажи. пишем запрос:

    РегистрНакопления.Продажи КАК Продажи

Собственно, ничего не может быть проще. Вот только 1С на этапе выполнения преобразует этот запрос без каких либо соединений в запрос с таким количество левых соединений сколько у нас возможных регистраторов. Т.е. если пишут в этот регистр 20 документов, то получим SQL запрос с 20 левыми соединениями. Почему так происходит? Потому что встроенный 1С оптимизатор не совсем хорошо обрабатывает поля получаемые через точку, в данном случае это реквизит Номер. Вот такие пироги, если мы часто захотим получать номер документа, то разумнее всего включить его в реквизиты регистра или же использовать оператор ВЫРАЗИТЬ, но в ущерб краткости:

    РегистрНакопления.Продажи КАК Продажи

Теперь в левом соединении будет участвовать одна конкретная таблица.

В общем случае, стоит внимательно обращаться к данным через точку, т.к. 1С в этом случае использует левое соединение в запросе SQL, что может существенно отразиться на производительности. Это один из моментов оптимизации.

Процедура не может возвращать значение

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

  • Опечатка в имени переменной
  • Обращение к переменной, которая нигде в области видимости не объявлена (неявной инициализацией с присвоением значения, явным образом с использованием ключевого слова “Перем”, или передана в качестве параметра)
  • Написание на клиенте серверного кода. Например, обращение к менеджеру справочников “Справочники”, и т.п. Клиентская часть приложения “не видит ” серверные объекты языка
  • Также ошибка может появиться, если ранее код использовался в режиме толстого клиента, но после был запущен в тонком клиенте.

Внимательно следить за правильностью набранного кода, своевременно объявлять переменные или передавать их в качестве параметров. Писать серверный код только в серверных модулях, а также использовать соответствующие инструкции препроцессора, например “&НаСервере”.

Преобразование типов

ИсправленныйДокумент — это ссылка на документ, а не табличная часть, поэтому обращение к такому элементу вызовет следующее:

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Сервис по настройке
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: