1с ошибки в запросах
Добрый вечер, встала такая задача, нужно чтобы заявки добавлялись определенное количество, вот создал Регистр сведений где определили количество заявок, написал код но почему то запрос не работаю, я могу добавить заявок сколько хочется, подскажите что не так
В консоли запросов в предприятии сначала проверяйте, как он работает, а потом уже помещайте в код.
И вообще, чтобы понимать, почему не работает запрос, - нужен пример таблицы с именами колонок и значениями
Сначала данные в Регистре нет, так как еще не было заявок. Что именно Вам показать?
Вы пишете, что не работает запрос: как вы поняли, что он не работает? работает ли запрос в режиме предприятия в консоли запросов? какие данные хранятся в вашем регистре? проверяли ли вы отладкой свой алгоритм?
Что то не понимаю, когда Параметры Дата убераю тогда все работает, а с ними нет
Значит РемонтныеЗаявки.Период не попадает в интервал МЕЖДУ ДатаНач И ДатаКон
При создании первого документа сначала в Регистре нет этого периода, по создание документ появляется с этим периодом, когда создаем второй документ запрос уже должен проверять и найти один документ, а он его не находит, почему?
Сделайте в предприятии скрин регистра сведений уже с записями первого документа и двух ваших документов
Я вроде понял в чем дело, можете подсказать как суммировать Ресурс если он имеет тип Перечисление? Или можно как сто суммировать Измерения
Количество(Ресурс) КАК Количество
Не тот использовал регистр. Переделал вот так, но почему то не срабатывает
Вам нужно отладчиком смотреть в вашей базе по шагам, только тогда вы поймете, почему не работает.
Сначала проверьте что возвращает запрос, потом - что возвращает функция по результату запроса, потом условие в обработке проведения, сами значения, которые в условии вы сравниваете, потом уже тело условия с движениями ну и т.д.
И "не срабатывает" что именно?
//Вот так попробуйте, должно сработать:Функция ПолучитьЗаявки(ЛицевойСчет,Статус) Запрос = Новый Запрос; Запрос.Текст ; Запрос.УстановитьПараметр("Маршрут",ЛицевойСчет.Участок);
Запрос.УстановитьПараметр("Маршрут",ЛицевойСчет.Участок);Запрос.УстановитьПараметр("ДатаНач",НачалоДня(Дата)); Запрос.УстановитьПараметр("ДатаКон",КонецДня(Дата));Возврат Запрос.Выполнить().Выгрузить(); КонецФункции
Пардон, забыл отформатировать Но вообще вижу 2 ошибки:1) в тексте запроса у параметров должен быть суффикс "&", например:
2) Функция НайтиСтроки(. ) возвращает массив, а не таблицу значений.
не имеет смысла.
Спасибо за помощь, я разобрался чтобы выводила Предупреждение("На этот день количество заявок закончились!"+Символы.ПС+"Выберите другую дату.");, но почему все равно добавляет?
Я заметил что он не записывает в регистр СтатусЗаявокНаРемонт и просто создает документ
Сделал так, не знаю правильно это или нет
Параметр в 1С – это некий элемент, принятый функцией. В данной статье поговорим о видах и типах параметров, а также рассмотрим, как задать параметры так, чтобы избежать ошибки «Неверные параметры» в 1С.
1. Как установить параметр в запросе?
Параметр запроса – это некоторый элемент, который находится внутри функции поиска по базе данных. Рассмотрим пример, как должны быть установлены параметры запроса. Например, пускай нам нужно получить составляющие из перечня-справочника под названием «Еда» красного, жёлтого или зелёного цвета, это будет иметь такой вид:
Рис. 1 Как установить параметр в запросе «Красный»
Рис. 2 Как установить параметр в запросе «Желтый»
Рис. 3 Как установить параметр в запросе «Зеленый»
Можно увидеть, что, по факту, все эти запросы одинаковые и разность только в цвете. Это-то и есть наш параметр – та переменная, которую не хотелось бы каждый раз повторять. В вышеуказанном примере параметр – это цвет, дадим ему имя «ВыбранныйЦвет» и поменяем значения цветов на эту переменную внутри запроса. А для того чтобы указать, что это именно параметр, нужно приписать перед именем амперсанд «&», тогда мы сможем задать параметр в запросе:
Рис. 4 Как задать параметр в запросе «ВыбранныйЦвет»
После этой процедуры пробуем выполнить наш запрос, результат будет пустым и выглядеть так:
Рис. 5 Результат неверного параметра в запросе пустой
Результат запроса пустой по причине того, что в коде не было указано само значение параметра. Выберем имя, для этого потребуется задействовать панель, которая находится над редактором запросов. Внутри данной панели размещен текст запросов:
Рис. 6 Редактор запросов – панель с текстом запросов
Система 1С уже узнала параметр внутри запроса и выделила его в соответствующей секции, но пока без значений. Меняем пустое значение запроса, например, на значение «Жёлтый».
Рис. 7 Смена пустого значения запроса на «Желтый»
Теперь запрос выполнится! Аналогично можно заполнить оставшиеся значения. Так при помощи параметра можно в одном и том же запросе получать результаты, которые отличаются. То есть, главная функция параметров внутри запросов – делать их более обобщёнными. Это особенно актуально в сложных запросах, так как достаточно будет только изменить сам параметр, не меняя весь запрос.
2. Функция параметра «Ссылка»
В этом варианте будет сравниваться в качестве ограничения для параметра не название цвета, а значение по ссылке:
Рис. 8 Ограничение для параметра – значение по ссылке
Наш параметр «ВыбранныйЦвет» из строки превратился в ссылку на какой-то элемент внутри справочника «Цвета», поэтому у пользователя есть возможность изменить параметр и его тип:
Рис. 9 Изменения типа параметра в 1С
После этого, в момент, когда ведётся выбор значения данного параметра, перед нами появится выпадающий список с перечнем цветов – это функция параметра ссылки.
3. Параметр «Дата»
Допустим, нужен запрос, который будет выбирать заказы клиентов в определённый период. Данный период будет иметь две границы – «НачалоИнтервала» и «КонецИнтервала».
Рис. 10 Параметр «Дата»
Аналогично выполняем данный запрос и видим, что 1С уже распознала, что у данного параметра тип «Дата». Пусть нам нужны заказы за январь 2014 года, тогда получим:
Рис. 11 Пример запроса по параметру «Дата»
Результат запроса с параметром «Дата» будет выглядеть следующим образом:
Рис. 12 Результат запроса с параметром «Дата»
В данной статье были рассмотрены параметры в системе 1С, видов параметр внутри запроса, параметр с типом «Дата», параметры с типом «Ссылка», аналогично проводится работа с параметрами в списках таблиц и таблиц со значениями. Ошибка в них возникает в случае задания невозможного названия, типа, их несоответствий, пунктуационных ошибок в коде программы.
Ошибка, как правило, возникает у начинающих программистов. А исправляется она простым переименованием одинаковых имен в запросе.
Изучив статью, вы:
- ознакомитесь с порядком исправления ошибки в запросе 1С;
- получите внешний отчет, демонстрирующий ошибочный и правильный коды.
Неоднозначное поле в запросе 1С 8.3
Ошибка 1С Неоднозначное поле может возникать как в Конфигураторе при написании запроса, так и в пользовательском режиме при выполнении некорректного программного кода.
Рассмотрим причины возникновения ошибки и порядок ее исправления на примере.
Одинаковые имена объектов в таблице запроса
При чтении цен номенклатуры по регистру сведений Цены номенклатуры из внешнего отчета, появляется ошибка Неоднозначное поле «ТипЦен.Номенклатура».
Для поиска и устранения ошибки выполните следующие действия:
Обратите внимание: таблица запроса названа ТипЦен , и реквизит таблицы регистра сведений имеет то же название:
В результате возникает двойственность чтения данных, и программа не может однозначно определить, что в этом случае нужно использовать. Команда ТипЦен.Номенклатура может относиться как к самой таблице, так и к реквизиту таблицы.
Исправление ошибки Неодназначное поле
Исправление ошибки 1С Неоднозначное поле предполагает переименование имени таблицы запроса на новое, например, ЦеныНоменклатурыСрезПоследних . Теперь одинаковых имен в таблице запроса нет. Данные по номенклатуре и цене будут браться из таблицы записей периодического регистра сведений ЦеныноменклатурыСрезПоследних .
Программа понимает, что параметр Номенклатура относится именно к таблице запроса ЦеныНоменклатурыСрезПоследних .
Правильный запрос на чтение актуальных цен номенклатуры описан в процедуре WORKНаСервере .
Сохранение процедур с корректным кодом WORK и некорректным кодом ERROR выполняется отдельно для удобства демонстрации работы запросов в 1С.
Пример ошибки
Протестируем работу внешнего отчета с корректным и некорректным запросом на примере:
Вот так можно получить ошибку 1С запрос Неоднозначное поле . Будьте внимательны при создании запросов!
См. также:
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Похожие публикации
-
При обновлении базы 1С, установке новой Платформы, внесении изменений в.Ошибка в 1С 8.3 Поле объекта недоступно для записи появляется.
Карточка публикации
Данную публикацию можно обсудить в комментариях ниже.Обратите внимание! В комментариях наши кураторы не отвечают на вопросы по программам 1С и законодательству.
Задать вопрос нашим специалистам можно по ссылке >>
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Вы можете задать еще вопросов
Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8
Вы можете оформить заявку от имени Юр. или Физ. лица Оформить заявкуНажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>
Как не попасть в ловушку, работая с контрагентами из ЕАЭС
[17.11.2021 запись] Практический переход на ФСБУ 6 и ФСБУ 26 в 1С
Переход на ФСБУ 6/2020 «Основные средства» в 1С по альтернативному алгоритму
Изменения в 2021 году, о которых нужно знать бухгалтеру
[11.10.2021 запись] Учет ОС по-новому: ФСБУ 6/2020, ФСБУ 26/2020, ФСБУ 25/2018
[29.10.2021 запись] Пообъектный учет ОС и подходы к определению и пересмотру СПИ
Исправляется подобная ошибка восстановлением правильной последовательности в строке параметров команды или указанием нужного типа данных Ошибка 1С Несоответствие типов наиболее часто появляется при написании запросов и при некорректном указании параметров команды.
Рассмотрим причины ее возникновения и исправление на конкретном примере.
Ошибка в таблице запроса
При чтении цен номенклатуры по регистру сведений Цены номенклатуры из внешнего отчета появляется ошибка Неоднозначное поле «ТипЦен.Номенклатура».
Для исправления ошибки необходимо открыть отчет в Конфигураторе 1С и найти в модуле формы указанную строчку.
Правильность написания команды проверьте по выделенной кнопке Синтаксис-Помощник в меню 1С:
Из описания видно, что команда СрезПоследних имеет 2 параметра:
Если параметр Период не указывается, место в команде остается пустым, а через запятую указывается параметр отбора, в нашем случае: ТипЦен. Исправленная команда выглядит следующим образом: СрезПоследних(, ТипЦен = &ТипЦен ).
После исправления команды запустите отчет в 1С по кнопке Главное меню — Файл — Открыть :
Теперь отчет формируется правильно!
Исправление ошибки в команде 1С
При поиске ссылок на контрагента в отчете 1С появляется ошибка Несоответствие типов (параметр номер 2) :
1С сообщает место ошибки — Параметр номер 2 при нажатии кнопки ERROR .
Для ее исправления необходимо открыть отчет в Конфигураторе 1С и найти в модуле формы строчку с командой НайтиПоСсылкам .
Правильность написания команды проверьте по выделенной кнопке Синтаксис-Помощник в меню 1С:
Из описания идно, что команда НайтиПоСсылкам имеет 4 параметра:
Параметр ОбластьПоиска имеет тип «массив», а в нашем примере указано число 1: НайтиПоСсылкам(МассивПоиска, 1, , МассивИсключений). Область поиска — необязательный параметр, поэтому исправленная команда может выглядеть следующим образом: НайтиПоСсылкам(МассивПоиска, , , МассивИсключений).
После исправления команды запустите внешний отчет в 1С по кнопке Главное меню — Файл — Открыть :
Теперь команда поиска ссылок на контрагента отрабатывает правильно.
Вот так можно получить ошибку 1С Несоответствие типов в 1С, поэтому контролируйте правильность указания параметров в запросах и командах 1С в Синтаксис-Помощнике !
См. также:
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Карточка публикации
Данную публикацию можно обсудить в комментариях ниже.Обратите внимание! В комментариях наши кураторы не отвечают на вопросы по программам 1С и законодательству.
Задать вопрос нашим специалистам можно по ссылке >>
Вы можете задать еще вопросов
Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8
Вы можете оформить заявку от имени Юр. или Физ. лица Оформить заявкуНажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>
Как не попасть в ловушку, работая с контрагентами из ЕАЭС
[17.11.2021 запись] Практический переход на ФСБУ 6 и ФСБУ 26 в 1С
Переход на ФСБУ 6/2020 «Основные средства» в 1С по альтернативному алгоритму
Изменения в 2021 году, о которых нужно знать бухгалтеру
[11.10.2021 запись] Учет ОС по-новому: ФСБУ 6/2020, ФСБУ 26/2020, ФСБУ 25/2018
[29.10.2021 запись] Пообъектный учет ОС и подходы к определению и пересмотру СПИ
Читайте также: