ошибка запуска исходного приложения 1с active document
«Подводные камни» при работе с макетами типа ActiveDocument 1С 8.3 УФ. Клиент-Сервер. Режимы работы Тонкий, Веб клиенты
Итак, в чем суть моей статьи?
1. Есть сервер (x64), с установленным Office 2016 (x64), есть 1С 8.3.8 также x64 (имеется в виду сервер 1С). Пользователи подключаются как через тонкого клиента, так и через веб клиент.
2. Есть куча типовых договоров и накладных счет-фактур, оформленных (подготовленных) отделом продаж. Там шрифт, абзац и т.д., естественно, все оформлено в Word,Excel 2016 (x64), естественно, нет желания все это рисовать в 1С, а есть желание засунуть в макеты формата ActiveDocument
1. Как сохранить файл Word,Excel и передать этот файл клиенту (клиент тонкий и веб)?
2. Какой вариант лучше выбрать: ActiveDocument или ДвоичныеДанные? Хотя для меня это звучит примерно как, что выбрать Водку С Пивом или Пиво С Водкой 🙂. Один фиг, надо забить документы данными из 1С и передать их Клиенту.
Ну да ладно пропустим лирику, я выбираю ActiveDocument, не буду описывать весь алгоритм, просто перечислю «подводные» камни и их решение. Все нижеизложенное это мои личные измышления и в никакой мере не претендуют на истину в последней инстанции. Возможно, вы решили эти проблемы или решите по другому.
1. Камень «первый«. Не работает метод SaveAs (как для MSWord, так и для MSExcel). При попытке записать ДвоичныеДанные 1С просто вылетает. Смотрим фрагмент листинга:
Ссылочка //infostart.ru/public/407448/ (выдержка из статьи «Как передать документ Word (ActiveDocument или ДвоичныеДанные) с сервера на клиент»
Опытном путём выявлено, что 1С-ка вырубается с ошибкой, если удалить файл, преобразованный в двоичные данные, и попробовать эти двоичные передать на клиент.
На сервере 1С:Предприятия произошла неисправимая ошибка. Приложение будет закрыто
Я пытался побороть эту ошибку, помещая во временное хранилище двоичные данные, переводя двоичные данные в Неопределено, но победить не удалось. Стоит заметить, что временный файл на сервере 1С-ка со временем сама удаляет корректно.
Возможная ошибка на сервере при вызове метода SaveAs:
Ошибка при вызове метода контекста (SaveAs)
Документ.SaveAs(ИмяВрем);
по причине:
Произошла исключительная ситуация (Microsoft Word): Ошибка команды
Мне поначалу эту ошибку не удалось победить, поэтому я стал использовать ДвоичныеДанные. Позже нашёл решение проблемы: необходимо по пути C:\Windows\SysWOW64\config\systemprofile\ и C:\Windows\System32\config\systemprofile\ создать папки Desktop. Туда никаких файлов никто не пишет, похоже, программе важен факт наличия этой папки. Решение нашёл по ссылке: http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=581998&threadtype=0
Создание папок
C:\Windows\SysWOW64\config\systemprofile\Desktop
C:\Windows\System32\config\systemprofile\Desktop
проблему решило. Тема закрыта.
В чем причина? Причина в том, что код
Всегда вызывает экземпляр объекта COM (x32) независимо от того какой разрядности Office установлен. Вы никогда не задумывались, почему в макет ActoveDocument нельзя вставить файлы с расширением docx,xlsx
1. Либо сервер и все ПО должно быть x32. Тогда ничего делать (в смысле переписывать код) не надо
2. Либо переписать код, таким образом
Думаю, тут все понятно, сначала мы создали экземпляр COM нужной разрядности, создали пустой файл и сохранили во временную папку, далее работает с COM x32, заполняем данными и напоследок копируем содержимое всего документа и сохраняем в ранее подготовленный файл.
Все то же самое, но только для Excel
ну вот «первый» камень я решил, на сервере x64 с Office x64, все работает точно как часы, без ошибок и не надо создавать никаких папок и все прочее.
Камень «второй«. фрагмент кода
есть не очень хорошо, потому как идет запись в папку: «c:\Users\ че там. «, вообще эта папка всегда в черном списке всех фаерволов, антивирусов и прочее, прочее, хотя бы открыть центр управления безопасностью Word или Excel. Глянем и мы туда
придется возится с этим, иначе есть вероятность появления «странных» ошибок. Поэтому я предлагаю следующее:
1. Открываем Конфигуратор и добавляем новый РегистрСведений
здесь мы будем хранить наши готовые Word, Excel файлы уже заполненные, конечно:
2. Дописываем выше написанный код следующим образом:
Что мы делаем, мы записываем готовый файл в регистр сведений и затем удаляем сам временный файл, решаем проблему «Центра безопасности Word,Excel». Осталось только одно показать этот готовый файл Клиенту (клиент тонкий и веб)
1. Во-первых, клиент у нас работает как через Тонкий, так и через Веб режимы, поэтому заранее в свойствах Конфигуратор ставим следующие значения:
Чтобы не было проблем при работе с браузером
2. Используем обработчики ожидания, чтобы избежать проблем с синхронностью вызов (это касается только режим Веб)
3. И последнее, подключаем Расширение для работы с Файлами (помним что в режиме Тонкий клиент, это расширение включено всегда). И через код:
передаем файл Клиенту используя механизм НавигационнаяСсылка, получаем следующие сообщения в браузере (Тонкий само собой работает):
ну вот, кажется, все. Надеюсь, это поможет кому-нибудь.
По поводу Word, Excel файлы вставлять в виде ДвоичныхДанные? проблема-то в чем?
1. Мы либо должны вытащить из макета эти ДвоичныеДанные и заполнить данными из 1С и ВНИМАНИЕ снова записать в виде ДвоичныхДанных (Водка С Пивом или Пиво С Водкой)
2. Либо мы должно получить макет ДвоичныеДанные на стороне Клиента и там заполнить его, НО COM объект поддерживается только браузером IE и то с танцами с настройками ActiveX, другие браузеры давно отказались от использования ActiveX
Ошибки 1С 8.3 и их исправление
Любая программа, установленная на компьютер, может время от времени работать неправильно. Периодические сбои, которые приводят к невозможности использования ПО, называются ошибки. Чтобы суметь диагностировать и устранять ошибки в 1С, пользователь должен хотя бы немного разбираться в особенностях работы программ. Наличие минимальных знаний позволяет решать проблемы самостоятельно.
Прежде чем рассматривать основные разновидности ошибок, стоит заметить, что они отличаются между собой по происхождению. Приложение может привести к физическому или логическому сбою. В результате 1С просто не запускается или начинает работать в режиме «Конфигуратор». Пользовательский режим бывает недоступен или, при использовании определенных команд, будет появляться сбой.
Чтобы научиться быстро исправлять ошибки в 1С необходимо изначально их проанализировать. Часто во всплывающем окне написана суть некорректного поведения, что помогает решить проблему.
Причины появления ошибки в 1С
Разберем основные моменты, связанные с частым появлением сбоев при работе с базой данных. Они возникают в разных ситуациях, и определить их истинную причину не всегда возможно.
Одна из самых частых причин нарушение работы связанна с компьютером, на который установлена база данных 1С. Рабочая область может автоматически закрываться из-за нехватки оперативной памяти на сервере. Все возникающие неисправности должны быстро устраняться. В противном случае есть вероятность потери данных.
Часто возникающие ошибки 1С
Все имеющиеся сбои выводят на экран разные уведомления. Одинакового текста не бывает. Чтобы проще ориентироваться, разделим существующие ошибки 1С на следующие пункты:
Для того, чтобы научиться исправлять возникающие ошибки, рассмотрим каждый пункт по отдельности.
Недостаточно памяти
Подобный сбой проявляется только в том случае, если на выполнение операций с программой выделено мало оперативной памяти. Приложение не может обрабатывать большие объемы информации, поэтому выдает «Недостаточно памяти 1С». Это случается при формировании отчета, обработки «тяжелого» файла, обновлении конфигурации и т.д. Причина – мощности компьютера недостаточно.
Пользователь может самостоятельно решить проблему с памятью. По умолчанию операционная система выделят фиксированное значение гигабайт на обслуживание приложения: 32 bit ОС – 2 Гб, 64 bit – 4 Гб.
Увеличить размер выделенной памяти можно вручную. Для этого запускается адресная строка (Пуск – Выполнить, вводиться фраза cmd). После нажатия «Ентер» достаточно ввести фразу bcdedit /set increaseuserva 4096 и подтвердить действие (клавиша «Enter»). Цифра 4096 – новый выделяемый объем «оперативки». Выполняется перезагрузка системы. Проблема должна быть устранена.
Ошибка доступа
Она возникает, если учетная запись не имеет достаточно прав. Проявляется при выполнении определенного действия, которое доступно только ограниченному кругу пользователей. Для исправления ситуации достаточно изменить роль выбранного профиля в конфигураторе (вкладка «Администрирование – Пользователи»). В некоторых случаях это увеличивает безопасность базы данных, если необходимо защитить файлы от изменения сторонними людьми.
Ошибка формата потока
Когда пользователь только запускает программу, на экране может появиться окно сбоя. Оно предлагает завершить работу или перезапустить. Причиной выступает некорректное завершение работы приложения.
Устранение подобной ошибки 1С выполняется простой чисткой кэша. Для этого необходимо перейти в папку, где хранятся временные файлы. В Windows 7 и выше она находится по адресу C:\Users\Username\AppData\Local\1C или C:\Users\Username\AppData\Roaming\1C. Для Windows ХР другой путь – Local Settings\Application Data\1C\. Все файлы, начинающиеся на 1cv8, кроме «1Cv8.1CD» полностью удаляются.
Если «Ошибка формата потока» возникает в процессе работы, то нужно провести тестирование (Администрирование – Тестирование и исправление), выбрать первые 2 галочки и запустить процесс.
Ошибка СУБД: Файл базы данных поврежден
Если всплывает информационное окно с подобной надписью, неисправность базы данных решается тестированием файла и всей информационной базы. Такое мероприятие может проводиться 2 способами:
Неправильное отображение блоков формы
Такая неисправность возникает от разных факторов. Чтобы привести программу к нормальной работоспособности, пользователю необходимо последовательно выполнить несколько команд. После проведения каждой проверяется устранение сбоя:
Если приведенные методы не помогают, рационально будет провести обновление платформы.
Внутренняя ошибка компоненты dbeng
Подобное сообщение говорит о повреждении структуры базы данных. Приведенный в названии документ хранится в папке с программной. Решение сбоя находится простой переустановкой платформы. Если такой метод не помог, можно воспользоваться тестированием и исправлением базы данных.
Dump при запуске
Возвращение 1С в рабочее состояние проводится простым обновлением MS Visual Studio (Visual C++) и дополнительными манипуляциями. Чтобы отследить конкретный файл, в котором возникает ошибка, открывается «Просмотр событий». Для этого пользователь переходит в «Панель управления – Система и безопасность – Администрирование». С левой стороны раскрывается «Журнал Windows – Приложение».
На экране появляется список ошибок и точное расположение поврежденного файла. После установки новой версии MS Visual Studio (Visual C++) с папки System32 копируется одноименный файл dll и вставляется в папку платформы 1С. Проблема решилась.
Неверный формат хранилища
В появившемся окне обязательно будет надпись, содержащая «AppData/Local/». Она указывает на точное расположение проблемного файла. В этом сообщении уже написан правильный путь решения. Пользователю достаточно перейти по указанному адресу и удалить временные файлы. Очистка кэша помогает решить множество проблем.
Ничего не работает
Если программа перестала нормально работать без видимых причин, значит пользователю придется самостоятельно искать неисправность. Для восстановления работоспособности базы данных проводятся следующие мероприятия:
Если это не критичная ошибка, она должна исправляться при установке актуальной версии программного комплекса. В остальных ситуациях необходимо пользоваться помощью профессиональных мастеров, которые отлично понимают принцип подобных продуктов.
Записки IT специалиста
Технический блог специалистов ООО»Интерфейс»
1С Предприятие 8.2 Ошибка при запуске программы.
Типовыми симптомами данной ошибки является аварийное завершение работы приложения при запуске конфигурации или при попытке ее создания. При этом другие конфигурации могут загружаться успешно, также у других пользователей на данном ПК данной ошибки не возникает. Такое поведение наводит на мысль, что причина ошибки кроется где-то в пользовательских настройках. Самое время разобраться где они находятся и что там хранится.
В профайлах 1С хранится информация не оказывающая влияние на логику работы конфигурации, но содержащую параметры и настройки конкретного пользователя: расположение диалогов, окон, настройки отображения и т.п. Вместе с профайлами хранится кэш различных компонентов конфигурации и временные файлы.
Пользовательские данные 1С хранятся в C:\Users\Имя_Пользователя\AppData\Roaming\1C\1Cv82 для ОС Windows 7 (Vista) и в C:\Documents and Settings\Имя_Пользователя\Application Data\1C\1Cv82 для Windows XP. Рассмотрим подробнее, что там находится.
В корне находятся профайлы общие для всех информационных баз:
Если вы не используете тонкий клиент или какие либо режимы работы (например ни разу не запускали конфигуратор) соответствующих файлов может не быть.
Профайлы считываются в момент запуска и записываются при штатном завершении работы. Большинство проблем запуска 1С связано именно с ними. Так если у вас не запускаются все ИБ, то проблема скорее всего кроется в 1cv8strt.pfl, можно просто его удалить. В подавляющем большинстве случаев этого достаточно для решения проблемы. В более тяжелых случаях можно удалить все профайлы, однако при этом вы можете потерять свои настройки пользовательского окружения.
В папках с непроизносимыми названиями хранятся профайлы, кэш и временные файлы информационных баз. Установить соответствие ID базы и ее наименования в диалоге запуска можно при помощи файла ibases.v8i, который хранится в C:\Users\Имя_Пользователя\AppData\Roaming\1C\1CEStart (C:\Documents and Settings\www\Application Data\1C\1CEStart), он представляет собой текстовый файл содержимое которого имеет вид:
Назначение профайлов в папках такое же как и общих, за исключением, что относятся они к конкретной ИБ. При возникновении каких либо проблем с запуском определенной базы профайлы и иное содержимое папки можно удалить. Также там может находиться файл def.usr который содержит имя пользователя в последний раз открывавшего ИБ.
Также полезно иметь преставление о назначении профайлов и для быстрого приведения определенных пользовательских настроек к нужному виду, для установки значений по умолчанию достаточно удалить соответствующий профайл.
Каталог tmplts содержит шаблоны конфигурации и обновления, его удалять не следует, если только вы не хотите освободить место на жестком диске.