1с пишет что запрос не выполнен
"Здравствуйте, не выполняется процедура внешней обработки заполнения табличной части. На Windows 7,XP все нормально, на Server 2003-нет<br> <br> <br>Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПоле) Экспорт;<br> <br> Запрос = Новый Запрос;<br> Запрос.Текст = <br> "ВЫБРАТЬ<br> | СУММА(БУОсновныеНачисления.Результат) КАК Результат,<br> | БУОсновныеНачисления.ВидРасчета<br> |ИЗ<br> | РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК БУОсновныеНачисления<br> |ГДЕ<br> | БУОсновныеНачисления.ПериодРегистрации МЕЖДУ НАЧАЛОПЕРИОДА(&НачалоПериода, МЕСЯЦ) И КОНЕЦПЕРИОДА(&КонецПериода, МЕСЯЦ)<br> | И БУОсновныеНачисления.Сотрудник = &Сотрудник<br> |<br> |СГРУППИРОВАТЬ ПО<br> | БУОсновныеНачисления.ВидРасчета";<br><br> Дата11 =Объект.Дата;<br> Дата22 =КонецМесяца(Объект.Дата);<br> Запрос.УстановитьПараметр("НачалоПериода",Дата11);<br> Запрос.УстановитьПараметр("КонецПериода",Дата22);<br><br> ТабЧасть = Объект.Начисления;<br> Для каждого стр из ТабЧасть Цикл<br> Запрос.УстановитьПараметр("Сотрудник", Стр.Сотрудник);<br> Сумма = 0;<br> Премия=Стр.Показатель1;<br> Результат = Запрос.Выполнить().Выгрузить();<br> Сообщить("Сотрудник " + Стр.Сотрудник);<br> Для каждого Нач из Результат Цикл<br> Если Нач.ВидРасчета =ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОкладПоДням Тогда<br> СумРез = Число(Нач.Результат)*Премия/100;<br> Сумма=Сумма+ СумРез;<br> Сообщить("Начисление: " + Нач.ВидРасчета.Наименование + " сумма вида расчета: "+Нач.Результат + " начислена премия " +СумРез + " премия " + Сумма);<br> КонецЕсли;<br><br> Если Нач.ВидРасчета =ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаСверхурочных Тогда<br> СумРез = Нач.Результат/2*Премия/100;<br> Сумма=Сумма+ СумРез;<br> Сообщить("Начисление: " + Нач.ВидРасчета.Наименование + " сумма вида расчета: "+Нач.Результат + " начислена премия " +СумРез + " премия " + Сумма);<br> КонецЕсли;<br> <br> КонецЦикла;<br> <br> Стр.Результат= Сумма;<br> сообщить(сумма);<br> КонецЦикла;<br><br>КонецПроцедуры<br> <br>здесь доходит до Результат = Запрос.Выполнить().Выгрузить(); и не возвращает результат, через отладчик все работает, в чем может быть причина?"
1С Предприятие это программный продукт который позволяет очень легко и быстро автоматизировать работу в какой либо организации. Сейчас наверно не возможно найти организацию в которой бы не использовалось какая либо конфигурация 1С. Поэтому уметь с ней работать должен каждый ИТ специалист даже начинающий. Необходимо обладать хотя бы навыками администрирование, подключение клинетов, настройка доступа, обновление и т.д. Так же нужно знать как решать самые элементарные ошибки которые возникают во время работы и запуска 1С. Таких ошибок достаточно много, о некоторых я уже рассказывал в следующих статьях, с которыми Вам обязательно нужно ознакомиться.
Сегодня рассмотрим еще одну, она возникает в момент запуска информационной базы которая опубликована на веб сервере.
Первое окно пропускаем.
Теперь все должно запуститься, но помните что это не безопасно, так как есть вероятность перехвата данных.
Любая программа, установленная на компьютер, может время от времени работать неправильно. Периодические сбои, которые приводят к невозможности использования ПО, называются ошибки. Чтобы суметь диагностировать и устранять ошибки в 1С, пользователь должен хотя бы немного разбираться в особенностях работы программ. Наличие минимальных знаний позволяет решать проблемы самостоятельно.
Прежде чем рассматривать основные разновидности ошибок, стоит заметить, что они отличаются между собой по происхождению. Приложение может привести к физическому или логическому сбою. В результате 1С просто не запускается или начинает работать в режиме «Конфигуратор». Пользовательский режим бывает недоступен или, при использовании определенных команд, будет появляться сбой.
Чтобы научиться быстро исправлять ошибки в 1С необходимо изначально их проанализировать. Часто во всплывающем окне написана суть некорректного поведения, что помогает решить проблему.
Причины появления ошибки в 1С
Разберем основные моменты, связанные с частым появлением сбоев при работе с базой данных. Они возникают в разных ситуациях, и определить их истинную причину не всегда возможно.
Одна из самых частых причин нарушение работы связанна с компьютером, на который установлена база данных 1С. Рабочая область может автоматически закрываться из-за нехватки оперативной памяти на сервере. Все возникающие неисправности должны быстро устраняться. В противном случае есть вероятность потери данных.
Часто возникающие ошибки 1С
Все имеющиеся сбои выводят на экран разные уведомления. Одинакового текста не бывает. Чтобы проще ориентироваться, разделим существующие ошибки 1С на следующие пункты:
- Недостаточно памяти.
- Ошибка доступа.
- Ошибка формата потока.
- Ошибка СУБД: Файл базы данных поврежден.
- Неправильное отображение блоков формы.
- Внутренняя ошибка компоненты dbeng.
- Dump при запуске.
- Неверный формат хранилища.
- Ничего не работает.
Для того, чтобы научиться исправлять возникающие ошибки, рассмотрим каждый пункт по отдельности.
Недостаточно памяти
Подобный сбой проявляется только в том случае, если на выполнение операций с программой выделено мало оперативной памяти. Приложение не может обрабатывать большие объемы информации, поэтому выдает «Недостаточно памяти 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 способами:
- Запуск утилиты chdbfl.exe. Эта программа предназначена для того, чтобы проверять целостность базы данных при совместном ее использовании с информационной базой. Данный метод хорош тем, что дает возможность решать сбои даже в тех ситуациях, когда конфигуратор запустить невозможно. Сначала выполняется резервное копирование информации. В папке, где установлен 1С (директория bin) находится файл chdbfl.exe. Он запускается, в окне прописывает путь к файлу базы данных и ставится галочка, чтобы провести исправление ошибок. Нажимается кнопка «Выполнить». После завершения процесса все должно заработать. Если нет – используется конфигуратор.
- Через конфигуратор. Нужное окно вызывается после нажатия «Администрирование – Тестирование и исправление». На экране появляется форма, где выставляются галочки на следующе строчки: «Реиндексация таблиц…», «Проверка логической целостности…», «Проверка ссылочной…», «Реструктуризация таблиц…», «Тестирование и исправление» и 2 раза «Создать объекты». Нажимается кнопка «Выполнить». После завершения процедуры сбой устраняется.
Неправильное отображение блоков формы
Такая неисправность возникает от разных факторов. Чтобы привести программу к нормальной работоспособности, пользователю необходимо последовательно выполнить несколько команд. После проведения каждой проверяется устранение сбоя:
Если приведенные методы не помогают, рационально будет провести обновление платформы.
Внутренняя ошибка компоненты dbeng
Dump при запуске
Возвращение 1С в рабочее состояние проводится простым обновлением MS Visual Studio (Visual C++) и дополнительными манипуляциями. Чтобы отследить конкретный файл, в котором возникает ошибка, открывается «Просмотр событий». Для этого пользователь переходит в «Панель управления – Система и безопасность – Администрирование». С левой стороны раскрывается «Журнал Windows – Приложение».
На экране появляется список ошибок и точное расположение поврежденного файла. После установки новой версии MS Visual Studio (Visual C++) с папки System32 копируется одноименный файл dll и вставляется в папку платформы 1С. Проблема решилась.
Неверный формат хранилища
Ничего не работает
Если программа перестала нормально работать без видимых причин, значит пользователю придется самостоятельно искать неисправность. Для восстановления работоспособности базы данных проводятся следующие мероприятия:
- чистится кэш;
- открывается файл chdbfl.exe из папки установки приложения и выполняется исправление;
- выполняется запуск «Конфигуратора» для тестирования и исправления сбоев;
- обновление «1С».
Если это не критичная ошибка, она должна исправляться при установке актуальной версии программного комплекса. В остальных ситуациях необходимо пользоваться помощью профессиональных мастеров, которые отлично понимают принцип подобных продуктов.
Добрый вечер, встала такая задача, нужно чтобы заявки добавлялись определенное количество, вот создал Регистр сведений где определили количество заявок, написал код но почему то запрос не работаю, я могу добавить заявок сколько хочется, подскажите что не так
В консоли запросов в предприятии сначала проверяйте, как он работает, а потом уже помещайте в код.
И вообще, чтобы понимать, почему не работает запрос, - нужен пример таблицы с именами колонок и значениями
Сначала данные в Регистре нет, так как еще не было заявок. Что именно Вам показать?
Вы пишете, что не работает запрос: как вы поняли, что он не работает? работает ли запрос в режиме предприятия в консоли запросов? какие данные хранятся в вашем регистре? проверяли ли вы отладкой свой алгоритм?
Что то не понимаю, когда Параметры Дата убераю тогда все работает, а с ними нет
Значит РемонтныеЗаявки.Период не попадает в интервал МЕЖДУ ДатаНач И ДатаКон
При создании первого документа сначала в Регистре нет этого периода, по создание документ появляется с этим периодом, когда создаем второй документ запрос уже должен проверять и найти один документ, а он его не находит, почему?
Сделайте в предприятии скрин регистра сведений уже с записями первого документа и двух ваших документов
Я вроде понял в чем дело, можете подсказать как суммировать Ресурс если он имеет тип Перечисление? Или можно как сто суммировать Измерения
Количество(Ресурс) КАК Количество
Не тот использовал регистр. Переделал вот так, но почему то не срабатывает
Вам нужно отладчиком смотреть в вашей базе по шагам, только тогда вы поймете, почему не работает.
Сначала проверьте что возвращает запрос, потом - что возвращает функция по результату запроса, потом условие в обработке проведения, сами значения, которые в условии вы сравниваете, потом уже тело условия с движениями ну и т.д.
И "не срабатывает" что именно?
//Вот так попробуйте, должно сработать:Функция ПолучитьЗаявки(ЛицевойСчет,Статус) Запрос = Новый Запрос; Запрос.Текст ; Запрос.УстановитьПараметр("Маршрут",ЛицевойСчет.Участок);
Запрос.УстановитьПараметр("Маршрут",ЛицевойСчет.Участок);Запрос.УстановитьПараметр("ДатаНач",НачалоДня(Дата)); Запрос.УстановитьПараметр("ДатаКон",КонецДня(Дата));Возврат Запрос.Выполнить().Выгрузить(); КонецФункции
Пардон, забыл отформатировать Но вообще вижу 2 ошибки:1) в тексте запроса у параметров должен быть суффикс "&", например:
2) Функция НайтиСтроки(. ) возвращает массив, а не таблицу значений.
не имеет смысла.
Спасибо за помощь, я разобрался чтобы выводила Предупреждение("На этот день количество заявок закончились!"+Символы.ПС+"Выберите другую дату.");, но почему все равно добавляет?
Я заметил что он не записывает в регистр СтатусЗаявокНаРемонт и просто создает документ
Сделал так, не знаю правильно это или нет
Читайте также: