1с конструктор не обнаружен новый двоичныеданные

Обновлено: 06.07.2024

Начиная с версии технологической платформы 8.3.9 средства для работы с двоичными данными претерпели существенные изменения. В этой статье я постараюсь рассказать как о старых, так и о новых инструментах для работы с двоичными данными. При написании статьи использовалась версия технологической платформы 8.3.12

Общая информация

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

Двоичные данные

Экземпляры объекта ДвоичныеДанные содержат двоичные данные, которые считываются из файла. При это объект ДвоичныеДанные является достаточно многофункциональным — мы можем:

  • читать двоичные данные из файла и записывать их в файл;
  • передавать их между клиентом и сервером при помощи временного хранилища;
  • передавать и получать их по сети;
  • хранить их базе данных в реквизитах вида ХранилищеЗначения;
  • превратить двоичные данные в объект вида Картинка (при определенных условиях конечно);
  • хранить двоичные данные в макетах;
  • шифровать и расшифровывать, подписывать и проверять подписи;

Наверняка я что-то пропустил, но главное должно быть понятно — несмотря на значительное развитие средств работы с двоичными данными, объект ДвоичныеДанные остается ключевым.

Потоки

Это группа объектов назначение которых заключается в работе с потоками данных.

Поток — этот объект представляет собой поток данных из которого можно читать и/или записывать в него данные. Данный объект не имеет конструктора, а получить экземпляр объекта можно при помощи различных методов других объектов.

ФайловыйПоток — специализированный вариант объекта Поток, предназначенный для работы с данными находящимися в файлах на диске.

ПотокВПамяти — специализированный вариант объекта Поток, предназначенный для работы с данными находящимися в оперативной памяти.

МенеджерФайловыхПотоков — этот объект предоставляет типовые методы для работы с файлами (открытие и создание). Создать экземпляр этого объекта нельзя — имеется объект глобального контекста ФайловыеПотоки который и предоставляет доступ к методам менеджера.

Чтение и запись

ЧтениеДанных — этот объект предназначен для чтения различных типов данных из различных источников (потоки, файлы, двоичные данные).

РезультатЧтенияДанных — этот объект содержит описание результата чтения данных из потока. Объект не имеет конструктора, получить экземпляр объекта можно при помощи методов других объектов.

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

ЗаписьДанных — этот объект предназначен для записи различных типов данных в приемник.

Практическая часть

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

Многие объекты — ДвоичныеДанные, Поток, ФайловыйПоток, ПотокВПамяти, ЧтениеДанных, ЗаписьДанных, РезультатЧтенияДанных имеют пары синхронных и асинхронных методов, например: ЗаписатьНачатьЗапись, ЗакрытьНачатьЗакрытие. Асинхронные методы нужны для обеспечения возможности одинаковой работы и в тонком клиенте, и в веб-клиенте.

Подробнее про синхронные и асинхронные методы можно прочесть в этой статье.

Двоичные данные

Ниже приведены примеры основных операций с объектом ДвоичныеДанные.

Анна Викулина

Иногда случается, что после обновления 1С пишет «Поле объекта не обнаружено», с указанием на тот или иной объект. Это может случиться при входе в программу, при заполнении какой-либо формы и т.п.

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

Обновление платформы

При этом важно посмотреть на описание поставки, которое открывается при установке обновления. Там обязательно указывают рекомендации по использованию версии платформы.

Таким образом, первый и основной вариант решения проблемы – это обновление платформы «1С:Предприятие».

Чтобы посмотреть, какая платформа у нас установлена, необходимо зайти в пункт меню «Сервис» - «О программе», где в верхней строке мы видим версию нашей платформы и сравниваем с рекомендуемой, при установке обновления конфигурации.

Очистка настроек пользователя

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

При этом пункт «Отдельные виды настроек» доступен только при очистке настроек конкретного пользователя.

Рис.6 При этом пункт «Отдельные виды настроек» доступен только при очистке настроек конкретного пользователя

Рис.6 При этом пункт «Отдельные виды настроек» доступен только при очистке настроек конкретного пользователя

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

Тестирование и исправление информационной базы

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

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

При выборе варианта «Создавать объекты», программа при обнаружении несуществующей ссылки на объект формирует элемент, своего рода заглушку. При выборе варианта – «Очищать ссылки» или «Удалять объект», некорректные ссылки будут просто удалены. Если оставить переключатель в положении – «Не изменять», программа просто укажет нам на этот объект, не предпринимая никаких действий. Этот вариант нам явно не поможет.

Таким образом, любой ошибке в программе 1С есть логическое объяснение. Если у вас остались вопросы, связанные с исправлением ошибок, и вы нуждаетесь в консультации по программе 1С, звоните, а также оставляйте заявки на нашем сайте. Наши специалисты свяжутся с вами в кратчайшие сроки.

Анна Викулина

Двоичные данные платформы 1С:Предприятие – это универсальный объект встроенного языка программирования для работы с файлами. Благодаря объекту ДвоичныеДанные можно любой файл представить в виде последовательности байт. Объект доступен в тонком клиенте, веб-клиенте, мобильном клиенте, на сервере, толстом клиенте, внешнем соединении, мобильном приложении (клиент/сервер).

Объект сериализуется

Данный объект может быть сериализован в/из XML, может использоваться в реквизитах управляемой формы, а также он может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен . Имя типа XDTO может быть любым из перечисленных: base64Binary, hexBinary.

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

Задачи, для решения которых можно использовать двоичные данные:

Работа с двоичными данными:

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

Примеры по работе с двоичными данными

Самый очевидный пример, где применяются двоичные данные, – сохранение файла в базе данных. Для хранения файла в виде двоичных данных необходимо в объекте добавить реквизит с типом «ХранилищеЗначений». Далее представлен пример кода по работе с реквизитом (заполнение значения и получение значения).

Заполнение:

Получение (фрагмент кода, выполняемый на сервере):

Рассмотрим еще один пример: скачивание картинки из интернета и отображение ее на управляемой форме. Для этого также добавляем реквизит с типом ХранилищеЗначения, в котором будет помещаться картинка в двоичном формате.

Функция, скачивающая картинку из интернета:

Использование функции:

Теперь у нас в реквизите «Аватар» лежат двоичные данные картинки. Чтобы картинку вывести на управляемую форму, необходимо добавить реквизит формы «Тип строка», перекинуть его на форму (drag-and-drop), либо создать самостоятельно элемент формы, указав в поле «Путь к данным» наш реквизит «Картинка», после чего изменить вид на «Поле картинки».

По событию ПриСозданииНаСервере

Готово, на форме у нас картинка.

Двоичные данные и потоки

Говоря о двоичных данных, стоит упомянуть о возможности работы с потоками. Она появилась относительно недавно, а именно в версии 8.3.9. Чтобы потоком можно было читать из двоичных данных, применяется метод ОткрытьПотокДляЧтения. Допустим, у нас в базе данных лежит заархивированный xml-файл (как хранить файлы в базе данных рассматривалось ранее). Нам нужно вывести пользователю содержимое этого файла, или у вас настроен какой-то обмен, и вы передаете файлы в заархивированном виде (для экономии трафика).

Последовательность действий при работе с двоичными данными без использования потоков:

  • Получить двоичные данные из базы;
  • Записать их во временный файл;
  • Разархивировать;
  • Удалить временный файл;
  • Прочитать разархивированный файл.

Последовательность действий при работе с потоками:

  • Получить двоичные данные из базы;
  • Открыть поток для чтения;
  • Разархивировать;
  • Прочитать разархивированный файл.

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

Пример кода по работе с потоком:

Если диск у вас на SSD, рекомендую использовать потоки не только в примере с архивацией, а везде, где это возможно. Да, в данном примере все же происходит запись на диск (разархивация), но будем надеяться, когда-нибудь 1С реализует метод двоичных данных ОткрытьПотокДляЗаписи.

Работа с Base64

Base64 – это стандарт, позволяющий кодировать двоичные данные в виде строки (для кодирования используется 64 символа таблицы ASCII, отсюда и название). Тип ДвоичныеДанные сериализуем, то есть его можно представить в виде XML, для этого применяется объект встроенного языка СериализаторXDTO. После сериализации данные представлены одним узлом base64Binary, содержимое которого есть последовательность байт, закодированная в формате Base64.

строка в Base64

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

Они преобразуются в Base64 и обратно в двоичные данные.

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

Анна Викулина

Рис.1 Ошибка «Не обнаружена установленная версия 1С Предприятия»

Рис.1 Ошибка «Не обнаружена установленная версия 1С Предприятия»

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

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

Причина проблемы в настройках файла 1CEStart.cfg. Этот файл используется при запуске платформы 1С через файл 1cestart.exe, который автоматически определяет последнюю установленную платформу и запускает ее. Если возникают проблемы с запуском, значит – там прописано неправильное значение.

Путь к файлу C:\Users\ \AppData\Roaming\1C\1CEStart. Уточнить его можно, открыв кнопку «Настройки» в окне запуска программы 1С.

В окне настройки диалога запуска мы видим путь к каталогу шаблонов конфигурации, и в нем фигурирует папка Roaming. Это та самая, нужная нам папка.

Откроем эту папку через «Проводник». Мы видим нужную папку с файлами.

Откроем файл. При выборе программы укажем – открывать «Блокнотом». В нем указан путь каталогов файлов шаблонов и дополнительные параметры. При выполнении настроек запуска программы файл «1cestart.cfg» в каталоге пользователя изменяется автоматически, а общий файл (для всех пользователей) изменяется только во время установки платформы «1С:Предприятие». Параметр «UseHwLicenses» управляет поиском ключа защиты при запуске «1С:Предприятия». Значение – «1», означает, что выполняется поиск ключа защиты.

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

Установленные версии платформы 1С:Предприятие

Установка платформы осуществляется в папку «C:\Program Files (x86)\1cv8».

При установке (обновлении) новой платформы старые не удаляются, а также хранятся на диске. Открыв «Программы и компоненты» из раздела «Панель управления», мы можем также увидеть список установленных платформ «1С:Предприятие». При необходимости именно здесь мы можем удалить старые, неиспользуемые версии.

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

Один из вариантов решения проблемы – удалить файл 1CEStart.cfg из папки C:\Users\ \AppData\Roaming\1C\1CEStart. Это временный файл и программа создаст его заново.

Если проблема не решена, проверим, какие параметры запуска платформы установлены. Посмотреть это можно в кнопке «Изменить», в окне запуска программы. Возможно, там установлен конкретный релиз платформы, который отсутствует в нашем списке. Версия запуска «1С:Предприятия» должна быть установлена – 8.3, т.е. программа выберет сама последнюю установленную версию.

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

Бывает, что каким-то образом при переносе данных папку с программой просто скопировали и перенесли, например, на другой компьютер или при смене операционной системы, а установка программы не была произведена и компьютер ее не видит. Т.е. это неверный вариант переноса, установки.

Перед установкой платформы, можно (даже нужно) удалить все временные файлы предыдущих установок, находящиеся в папке C:\Users\ \AppData\Roaming\1C\1cv8.

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

Читайте также: