Ошибка тип не определен запрос 1с

Тип не определен (Запрос) Запрос = Новый <<?>>Запрос; (Проверка: Тонкий клиент)

Я
   Mikhail Volkov

23.06.22 — 13:05

Таких тем здесь много, ответ понятен, нельзя на клиенте использовать: Запрос = Новый Запрос; Но вопрос не в этом. Обычно работаю с конфигурациями ОФ: Альфа-Авто, КА1 (УПП)… Везде использую общий модуль мвДоработки с галочками: Сервер, Клиент (обычное приложение), Внешнее соединение (в Альфа-Авто не использую), Вызов сервера. Когда в конфигурацию надо внести более 2-х строк, то пишу их в этот модуль в виде функции, а вызов этой функции вставляю в то место, где нужно внести изменение. Когда поддержка КА1 закончилась, сделал базу на КА2 (еще вроде на КА2.1), но в ней пока не работаем, обновляем КА1 УПП. В КА2 тоже сделал общий модуль мвДоработки с галочками: Клиент, Сервер, Внешнее соединение. В нем написал несколько функций (в УФ я начинающий). Среди них есть:

// Возвращает Истина, если у номенклатуры единственное наименование

//

Функция ЕдинственноеНаименованиеНоменклатуры(Номенклатура) Экспорт

    Запрос = Новый Запрос;

    Запрос.Текст = »

    |ВЫБРАТЬ

    |    Номенклатура.Ссылка КАК Ссылка

    |ИЗ

    |    Справочник.Номенклатура КАК Номенклатура

    |ГДЕ

    |    Номенклатура.Наименование = &Наименование»;

    Запрос.УстановитьПараметр(«Наименование», Номенклатура.Наименование);

    Выборка = Запрос.Выполнить().Выбрать();

    Счетчик = 0;

    Пока Выборка.Следующий() Цикл

        Если Счетчик > 0 Тогда

            Возврат Ложь;

        КонецЕсли;

        Счетчик = Счетчик + 1;

    КонецЦикла;

    Возврат Истина;

КонецФункции

// Возвращает полное наименование ключа аналитики номенклатуры

// без дублей по наименованию

Функция ПолучитьПолноеНаименованиеКлючаАналитикиНоменклатуры(МенеджерЗаписи) Экспорт

    Попытка

        НаименованиеСклада = СокрЛП(МенеджерЗаписи.МестоХранения);

    Исключение

        НаименованиеСклада = СокрЛП(МенеджерЗаписи.Склад);

    КонецПопытки;

    Наименование = СокрЛП(МенеджерЗаписи.Номенклатура) + ?(ЕдинственноеНаименованиеНоменклатуры(МенеджерЗаписи.Номенклатура), «», «, »

        + ?(ПустаяСтрока(МенеджерЗаписи.Номенклатура.Артикул), СокрЛП(МенеджерЗаписи.Номенклатура.Код), СокрЛП(МенеджерЗаписи.Номенклатура.Артикул))) + «; »

        + ?(ЗначениеЗаполнено(МенеджерЗаписи.Характеристика), СокрЛП(МенеджерЗаписи.Характеристика) + «; «, «»)

        + ?(ЗначениеЗаполнено(МенеджерЗаписи.Серия), СокрЛП(МенеджерЗаписи.Серия) + «; «, «»)

        + ?(ЗначениеЗаполнено(МенеджерЗаписи.Назначение), СокрЛП(МенеджерЗаписи.Назначение) + «; «, «»)

        + ?(ЗначениеЗаполнено(МенеджерЗаписи.СтатьяКалькуляции), СокрЛП(МенеджерЗаписи.СтатьяКалькуляции) + «; «, «»)

        + СокрНаименованиеСклада(НаименованиеСклада);

    Если СтрДлина(Наименование) > 100 Тогда

        Наименование = Лев(СокрЛП(МенеджерЗаписи.Номенклатура), СтрДлина(СокрЛП(МенеджерЗаписи.Номенклатура)) — СтрДлина(Наименование) + 97) + «…»

            + ?(ЕдинственноеНаименованиеНоменклатуры(МенеджерЗаписи.Номенклатура), «», «, »

            + ?(ПустаяСтрока(МенеджерЗаписи.Номенклатура.Артикул), СокрЛП(МенеджерЗаписи.Номенклатура.Код), СокрЛП(МенеджерЗаписи.Номенклатура.Артикул))) + «; »

            + ?(ЗначениеЗаполнено(МенеджерЗаписи.Характеристика), СокрЛП(МенеджерЗаписи.Характеристика) + «; «, «»)

            + ?(ЗначениеЗаполнено(МенеджерЗаписи.Серия), СокрЛП(МенеджерЗаписи.Серия) + «; «, «»)

            + ?(ЗначениеЗаполнено(МенеджерЗаписи.Назначение), СокрЛП(МенеджерЗаписи.Назначение) + «; «, «»)

            + ?(ЗначениеЗаполнено(МенеджерЗаписи.СтатьяКалькуляции), СокрЛП(МенеджерЗаписи.СтатьяКалькуляции) + «; «, «»)

            + СокрНаименованиеСклада(НаименованиеСклада);

    КонецЕсли;

    Возврат Наименование;

КонецФункции

которая вызывается из РС АналитикаУчетаНоменклатуры:

Функция ПолучитьПолноеНаименованиеКлючаАналитики(МенеджерЗаписи)

    Возврат мвДоработки.ПолучитьПолноеНаименованиеКлючаАналитикиНоменклатуры(МенеджерЗаписи);    //+МВ 12.05.2019

//    Возврат СокрЛП(МенеджерЗаписи.Номенклатура) + «; »

//        + ?(ЗначениеЗаполнено(МенеджерЗаписи.Характеристика), СокрЛП(МенеджерЗаписи.Характеристика) + «; «, «»)

//        + ?(ЗначениеЗаполнено(МенеджерЗаписи.Серия), СокрЛП(МенеджерЗаписи.Серия) + «; «, «»)

//        + ?(ЗначениеЗаполнено(МенеджерЗаписи.Назначение), СокрЛП(МенеджерЗаписи.Назначение) + «; «, «»)

//        + ?(ЗначениеЗаполнено(МенеджерЗаписи.СтатьяКалькуляции), СокрЛП(МенеджерЗаписи.СтатьяКалькуляции) + «; «, «»)

//        + СокрЛП(МенеджерЗаписи.МестоХранения);

КонецФункции

В данном случае галочка Клиент на мвДоработки не нужна, но можно ли ее убрать? Наверное это зависит от других функций модуля. Как навскидку определить: может ли функция выполняться только на клиенте? Вопрос наверное глупый, но в УФ я начинающий. Убрал галочку Клинт — ошибка: Тип не определен (Запрос) исчезла. Потом вернул ее, сохранил конфигурацию, ошибка не появилась!? Раньше она появлялась, до обновления на 2.5.8.221.

   Волшебник

Модератор

1 — 23.06.22 — 13:08

в тонком клиенте нет запросов. Управление надо передать на сервер

   youalex

2 — 23.06.22 — 13:19

Возврат Выборка.Количество() <= 1

   TormozIT

3 — 23.06.22 — 13:39

Инструкциями препроцессора (#Если Не ТонкийКлиент И Не ВебКлиент И Не МобильныйКлиент Тогда) можно заэкранировать фрагменты модуля, если не хочется делать отдельный модуль.

   Mikhail Volkov

4 — 23.06.22 — 14:31

(1) На счет запросов понятно — клиент их не может делать. Но вопрос: что может клиент, но не может сервер?

   lodger

5 — 23.06.22 — 14:33

(4)

ТекстовыйДокумент (TextDocument)

Показать (Show)

Доступность:

Тонкий клиент, веб-клиент, толстый клиент.

   arsik

6 — 23.06.22 — 14:42

(4) В настройках синтаксис помощника

https://i.imgur.com/W1Nf3eh.png

   timurhv

7 — 23.06.22 — 14:56

(4) чтобы не было каши в названиях модулей и галочках

https://its.1c.ru/db/v8std#content:469:hdoc

   Mikhail Volkov

8 — 23.06.22 — 16:00

(5) ТекстовыйДокумент() — этого точно нет в общем модуле мвДоработки.

(6), (7) Спс. Значит можно снять галочку Клиент с мвДоработки.

   Mikhail Volkov

9 — 23.06.22 — 16:07

Эта тему можно закрыть. Может кто поможет с вопросом КД2: Сравнение и объединение правил обмена а то он не по теме.

   Mikhail Volkov

10 — 28.07.22 — 10:48

Рано еще зарывать. Раньше УПП работала 8.3.10, как и все базы, Альфа-Авто выше не работала. Теперь решил перевести на 8.3.19.1522 (установлена для КА2), знаю что Com-обмены могут работать на разных платформах, а вот OLE — не знаю? При загрузки Выписки из УПП выскочила ошибка Тип не определен Запрос = ОбъектКА.NewObject(«Запрос»); а затем: Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3): Недопустимая строка с указанием класса. Как убрать ошибку 1С «-2147221005(0x800401F3): Недопустимая строка с указанием класса» нашел статью: https://zen.yandex.ru/media/nastroyka1c/kak-ubrat-oshibku-1s-21472210050x800401f3-nedopustimaia-stroka-s-ukazaniem-klassa-5e56042f5c1f4e2533321a22 и ужаснулся: не уже ли так, больше никак?

   lubitelxml

11 — 28.07.22 — 10:52

(10) «и ужаснулся: не уже ли так, больше никак?» — уже давно так, ничего сложного там нет

   rudnitskij

12 — 28.07.22 — 11:12

(10) я больше ужаснулся, когда увидел, как зверски слово «неужели» разорвали на три части

   lodger

13 — 28.07.22 — 11:22

(12) разорвало в клочья.

   DayDreamer

14 — 28.07.22 — 11:52

(10)  «знаю что Com-обмены могут работать на разных платформах», можете поделиться ссылкой на описание, как это организовать?

   Aleksey

15 — 28.07.22 — 12:09

   Mikhail Volkov

16 — 28.07.22 — 15:25

(11) Давно, но так-то что-то настраивал в службе компонентов Службы компонентов: возможно ли создать обертку OLE соединения V83.Application Что-то создавал там, но сейчас найти не могу где? Не давно обновил высокую платформу, может там что перенастроить нужно? Но где ранее сделанные настройки?

(15) самое неприятное: «Ну и самое главное: не забываем, что работать это будет только при запуске 1С с административными правами.» — а обычным пользователям как работать!?

   Mikhail Volkov

17 — 29.07.22 — 08:28

Нашел, последняя была 8.3.16.1959, сейчас 8.3.19.1522 https://ibb.co/ZHk8XsH Как исправить? Менять цифры в наименовании наверное бесполезно.

   TormozIT

18 — 29.07.22 — 10:05

   Mikhail Volkov

19 — 29.07.22 — 10:41

Вроде сделал по инструкции (10). Не знаю как перезапустить службу компонентов?

(18) Что за «Управление СОМ классами 1С (ИР)» — где ее взять?

   TormozIT

20 — 29.07.22 — 11:38

(19) ИР — Инструменты разработчика Tormozit для 1С

http://devtool1c.ucoz.ru/

   Mikhail Volkov

21 — 30.07.22 — 08:49

(20) Скачал ИНСТРУМЕНТЫ РАЗРАБОТЧИКА ПОРТАТИВНЫЙ 1С 8.2+ V6.37.1P, как его запустить?

(19) Ночью перезагрузил сервер, похоже ничего не изменилось.

   TormozIT

22 — 30.07.22 — 09:45

   MrKartez

23 — 30.07.22 — 10:10

Капец, деректив не знаешь, функцию СтрШаблон видимо тоже(

«Но вопрос: что может клиент, но не может сервер?» В синтакспомощнике забанен походу)

   Hans

24 — 30.07.22 — 10:14

Что может клиент и не может сервер —  много чего. В основном интерактивная работа —  формы, диалоги.

А еще сервер много чего может чего не может клиент. Новичков в УФ обычно начинает бомбить от того, что на клиенте нельзя использовать таблицу значений.

   СеменовСемен

25 — 30.07.22 — 10:29

(24) зачем было запрещать таблицу на клиенте вообще не понятно. Тем более что через хаки ее можно там получить

   Кура-Цеце

26 — 30.07.22 — 11:06

(25) > через хаки

Ну давай, получи её в веб-клиенте. Через хаки.

   Hans

27 — 30.07.22 — 11:07

Чо за хаки?

   СеменовСемен

28 — 30.07.22 — 11:19

(26) уж в веб клиенте на жс реализовать ничего не мешало

   СеменовСемен

29 — 30.07.22 — 11:19

(27) через внешнюю компоненту

   Кура-Цеце

30 — 30.07.22 — 11:45

(28) >  ничего не мешало

Ну, то есть тема с хаками закрывается и начинается традиционное «да я сам жаваскрипт знаю, там все просто».

   СеменовСемен

31 — 30.07.22 — 11:46

(30) ничего не мешало, просто не сделали.
Почему? Это только внутри 1с знают

   Mikhail Volkov

32 — 30.07.22 — 11:55

У текущего пользователя ИБ включен флажок «Защита от опасных действий». Для корректной работы инструментов его рекомендуется выключить!

Как это сделать?

   СеменовСемен

33 — 30.07.22 — 12:21

Эта галка только в конфигураторе

   Hans

34 — 30.07.22 — 12:24

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

   Mikhail Volkov

35 — 30.07.22 — 12:33

(33),(34) Обычный реквизит? — найти не могу.

   СеменовСемен

36 — 30.07.22 — 12:33

Пользователи это не справочник

   Mikhail Volkov

37 — 30.07.22 — 12:36

(36) Как так, не только?

   Mikhail Volkov

38 — 30.07.22 — 13:07

Где еще?

   Mikhail Volkov

39 — 30.07.22 — 14:00

(34) у расширения? А если его не использую…

   Hans

40 — 30.07.22 — 15:42

(39) если не используешь, значит это тебе не надо.

   Hans

41 — 30.07.22 — 15:42

Пользователи Информационной базы. В конфигураторе.

   Mikhail Volkov

42 — 30.07.22 — 16:22

(40) Не понял.

   Hans

43 — 30.07.22 — 17:08

Если нет расширений значит это ограничениев расширении не работает. Остается только пользователь.

   Mikhail Volkov

44 — 31.07.22 — 07:07

(43) В справочнике Пользователи, или где он?

   Mikhail Volkov

45 — 31.07.22 — 07:33

Почему в службе компонентов в свойствах V83COMConnector_8_3_19_1522 не вижу версию comcntr.dll (пункт 9 инструкции (10)). Почему в имени V83COMConnector_ в написании версии не могу использовать точки вместо подчеркиваний 8_3_19_1522?

   Mikhail Volkov

46 — 31.07.22 — 08:25

D свойствах V83COMConnector_8_3_19_1522 на вкладке «Удостоверение» обязательно указывать пользователь/пароль? Если Да, то какого?

   Hans

47 — 31.07.22 — 08:28

   Mikhail Volkov

48 — 31.07.22 — 09:35

(47) Администрирование/Пользователи

   Mikhail Volkov

49 — 31.07.22 — 09:52

Но там не стоит «защита от опасных действий» https://ibb.co/MhcBtGW .

   Mikhail Volkov

50 — 01.08.22 — 06:49

Вернемся к нашей ошибке: -2147221005(0x800401F3): Недопустимая строка с указанием класса — как ее исправить?

   TormozIT

51 — 01.08.22 — 07:29

Сумел открыть инструмент (18) по подсказке (22) ?

   МимохожийОднако

52 — 01.08.22 — 07:39

(50) Используй для начала 32-разрядную платформу

   Mikhail Volkov

53 — 01.08.22 — 08:06

(52) НЕ хотелось бы…

   МимохожийОднако

54 — 01.08.22 — 08:07

(53) Начни с малого. Возможно, натолкнёт на решение большего.

   Mikhail Volkov

55 — 01.08.22 — 08:14

(54) Платформа 8.3.19.1522 у меня стоит 2-й платформой на сервере (на других портах) не хотелось бы ее трогать.

   МимохожийОднако

56 — 01.08.22 — 08:49

(55) Дело не в том, что ты хочешь, а в том, чтобы разобраться в причинах. Что мешает проверить на копии локально хотя бы в файловом режиме?

   Mikhail Volkov

57 — 01.08.22 — 10:39

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

   Mikhail Volkov

58 — 16.08.22 — 13:18

Нашел картинку старой службы компонентов https://ibb.co/318LvJV — до обновления 8.3.19, и инструкцию как ее создавал: https://infostart.ru/public/610960/ — COM соединения с базами 1С на различных версиях платформы «Без перерегистрации и СМС». Старые платформы 8.3.14 и 16 удалил. Добавил новую 8.3.19 вроде все по этой инструкции, но ошибка: «Недопустимая строка с указанием класса» осталась!?

   TormozIT

59 — 16.08.22 — 14:17

С таким подходом к концу года сам разберешься наверное.

   Mikhail Volkov

60 — 16.08.22 — 14:28

(59) Хотелось бы раньше.

   lodger

61 — 16.08.22 — 14:38

(60) тогда вернись к (20) и попробуй утильку от TormozIT

   Mikhail Volkov

62 — 16.08.22 — 15:52

(61) Ну скачал его, а что делать с ним не знаю?

   TormozIT

63 — 16.08.22 — 18:09

(62) Открыть в нем инструмент «Управление СОМ классами 1С»

   Mikhail Volkov

64 — 16.08.22 — 18:13

(63) И дальше что, как сделать правильно, чтобы работало?

   TormozIT

65 — 16.08.22 — 18:29

Надо понять где выполняется код, вызывающий COM-соединение. Если на сервере, то тебе надо запустить на сервере терминальный сеанс под тем же пользователем ОС, под которым работает служба 1С. Открываешь «Управление СОМ классами 1С (ИР)» и показываешь нам картинку.

   Mikhail Volkov

66 — 16.08.22 — 18:34

(65) Прежде чем показать нужно это запустить. Как это сделать?

   TormozIT

67 — 16.08.22 — 18:40

   Mikhail Volkov

68 — 16.08.22 — 19:13

(67) Не удачный пример с расширением. Расширением я не пользуюсь, оно в 8.3.10 недоступно. Другие примеры есть без расширений?

   Mikhail Volkov

69 — 16.08.22 — 19:19

Для обычных форм.

   TormozIT

70 — 16.08.22 — 22:28

(68) Обманываешь. Для варианта «Расширение» на странице скачивания указано «Для 1С 8.3.10+ в режиме совместимости 8.3.9+»

Если же не пользуешься по религиозным причинам, то значит ты скачал вариант «Портативный». Тогда идешь и читаешь раздел «Запуск» (целое одно предложение) в его описании http://devtool1c.ucoz.ru/index/variant_portativnyj/0-39

   Mikhail Volkov

71 — 17.08.22 — 11:49

(70) Не понял, по ссылке: 404 Не Найдено!?

   Mikhail Volkov

72 — 17.08.22 — 12:00

(70) > то значит ты скачал вариант «Портативный»

Да, писал в (21).

   Mikhail Volkov

73 — 17.08.22 — 14:37

Нашел COM-соединение и версии платформ в ней ссылка на Книга знаний: Вызов 32-битных COM-объектов на стороне 64-битного сервера 1С — мало отличается от инструкции в (58), но есть неясные места, например, 5. Учетная запись для запуска приложения: выбираем учетку под которой стартует сервер 1С — как выбирать? Или 6. В ветке созданного приложения переходим на ветку «Роли» открываем роль «CreatorOwner» и далее в разделе «Пользователи» создаем пользователя — учетную запись под которой работает сервер 1С. — это как? Пароль я знаю, ввожу его, когда устанавливаю или обновляю сервер 1С. Открываю роль «CreatorOwner» в папке Пользователи вижу свою учетную запись — она и есть, ничего вводить не надо?

Далее все как (58), а нет: 9. Открываем свойства только что созданного компонента, идем на вкладку «Безопасность», проверяем в списке «Явно установленные для выделенных объектов роли» стоит ли «птичка» напротив роль CreatorOwner — если нет, тогда устанавливаем эту «птичку». Попробую с птичкой.

   Mikhail Volkov

74 — 17.08.22 — 14:53

Птичка не помогла.

   TormozIT

75 — 17.08.22 — 15:36

   Mikhail Volkov

76 — 17.08.22 — 16:54

(75) Открыл по ссылке http://devtool1c.ucoz.ru/index/variant_portativnyj/0-39 (части твой), далее скачал rdtt.zip, извлек из него ирПортативный.erp, попытался его открыть в Альфа-Авто на 8.3.10.2466, которая не может COM-соединится с КА1 (УПП) на 8.3.19.1522, получил:

Ошибка инициализации модуля: ВнешняяОбработка.ирПортативный.МодульОбъекта

по причине:

{ВнешняяОбработка.ирПортативный.МодульОбъекта(3928)}: Ошибка при вызове метода контекста (Создать)

по причине:

Ошибка подключения внешних метаданных

по причине:

Каталог не обнаружен ‘\corp.akitworkspace$1c1с_АрхивыCAМодулиирКэш.epf’

Папку Модули создал, а где взять ирКэш.epf?

   Mikhail Volkov

77 — 17.08.22 — 17:07

Создал пустой ирКэш.epf, получил:

Ошибка инициализации модуля: ВнешняяОбработка.ирПортативный.МодульОбъекта

по причине:

{ВнешняяОбработка.ирПортативный.МодульОбъекта(3928)}: Ошибка при вызове метода контекста (Создать)

по причине:

Ошибка подключения внешних метаданных

по причине:

Ошибка загрузки документа.

Как открыть, запустить ирПортативный.erp?

   TormozIT

78 — 17.08.22 — 18:54

(76) Ладно. Бросай ты этот ИР. Там слишком сложно запускать. Тебе подойдут только инструменты из одной внешней обработки. У меня таких нет.

   Mikhail Volkov

79 — 17.08.22 — 19:46

Нашел еще более старую картинку с платформой 8.3.14.1779: https://ibb.co/LvGfVX8, жаль не показано внутреннее содержимое вкладок.

   Mikhail Volkov

80 — 17.08.22 — 20:05

Может кто подскажет что должно быть на вкладке Безопасность?

   Сергиус

81 — 18.08.22 — 00:01

(50)Попробуй перерегистрировать dll из командной строки.

   Mikhail Volkov

82 — 18.08.22 — 08:15

   Mikhail Volkov

83 — 18.08.22 — 08:50

(80) В инструкции https://infostart.ru/public/610960/ в комментариях написано:

2. В оснастке служб компонентов, «Службы компонентов» — «Компьютеры» — «Мой компьютер» — «Приложения COM+»

3. Создаем новое приложение, правой кнопкой по «Приложения COM+» — «Создать» — «Приложение»

4*. Выбираем «Создать новое приложение», называем например «1cv8», тип выбираем «Серверное приложение»,

Учетная запись — Текущий пользователь, Пользователь с ролью Owner — поставил администратора компьютера (сервера).

(без этого возможна ошибка -2147024769(0x8007007F): Не найдена указанная процедура)

Мне не понятна фраза: «Пользователь с ролью Owner — поставил администратора компьютера (сервера)» — у меня лишь роль CreatorOwner https://ibb.co/7GrSHgm, надо что-то делать? Судя по старым картинкам приложения не ставил, только Компоненты.

   Mikhail Volkov

84 — 18.08.22 — 08:54

   Mikhail Volkov

85 — 18.08.22 — 15:25

Сделал все по Книга знаний: Вызов 32-битных COM-объектов на стороне 64-битного сервера 1С , но все равно ошибка: «Недопустимая строка с указанием класса» осталась!? Раньше не проверял OLE-соединение, только Com-соединение. Может все инструкции (которые здесь упоминал) не предназначены для OLE?

   Mikhail Volkov

86 — 18.08.22 — 16:35

(83) В свойствах приложения на вкладку Удостоверение добавил администратора компьютера (сервера) ИмяСервераUSR1CV82, но это не помогло. Не знаю правильно ли понял фразу из (83)?

   Сергиус

87 — 19.08.22 — 01:42

(82)консоль надо с правами админа запускать, а у тебя явно пользовательский запуск судя по картинке.

   Mikhail Volkov

88 — 19.08.22 — 07:49

(87) Консоль командной строки запущена под Администратором.

   Mikhail Volkov

89 — 19.08.22 — 07:54

(87) Смотри заголовок командной строки, или я чего-то не понимаю.

   Mikhail Volkov

90 — 19.08.22 — 09:26

Каюсь база КА1 (УПП), к которой я цепляюсь по COM-соединению, оказывается открыта конфигуратором в 8.3.10.2466, перезапустил в 8.3.19.1522, но все равно ошибка: «Недопустимая строка с указанием класса» осталась!?

   Mikhail Volkov

91 — 19.08.22 — 12:10

Удалил V83.COMConnector_8.3.19.1522 из службы компонентов совсем, Альфа-Авто ведет себя также как будь-то не было V83.COMConnector_8.3.19.1522 вовсе!?

   Mikhail Volkov

92 — 19.08.22 — 12:41

Нет ошибки, например: Не найдена указанная процедура.

   Kassern

93 — 19.08.22 — 12:44

Используйте веб сервисы и будет вам счастье

   Mikhail Volkov

94 — 19.08.22 — 14:32

(93) Раньше же до перехода (обновления) на другую версию платформы работало.

   Kassern

95 — 19.08.22 — 14:36

(94) Удалите все ком коннекторы, на клиенте и на сервере и заново зарегайте библиотеку комконнектор. Самостоятельно ее пропишите в компонентах по инструкциям. Может повезет и заработает

   Mikhail Volkov

96 — 19.08.22 — 14:54

(95) Уточни, где, что удалить? В конфигураторе или в Службе компонентов? А то формы общие.

   Kassern

97 — 19.08.22 — 15:22

(96) А как вы в конфигураторе удалите ком коннекторы?))

Речь идет о службах компонентов. Поймите уже наконец как работает ком соединение. Если на пальцах, есть библиотека 1с КомКоннектор.Длл. Через службу компонентов мы создаем обертку для этой библиотеки. Указываем права и прочие параметры. 1ска же цепляется к этой обертке и уже через нее работает с библиотекой. Нужно так же правильно прописывать путь до коннектора.

   Kassern

98 — 19.08.22 — 15:23

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

   lodger

99 — 19.08.22 — 16:23

(98) >> Обычно

это достаточно новая мулька. раньше вообще всегда надо было регать вручную

и теперь, когда ты ставишь дистриб на компе, где понах.ячено как у (0), то автоматически ничего не срабатывает — надо так же вручную вписывать новые компоненты.

   Mikhail Volkov

100 — 19.08.22 — 16:57

Сделал опять приложение (в конфигураторе прописал его имя: БазаКА = Новый COMОбъект(«V8_ComConnector»); — правильно? как в Книга знаний: Вызов 32-битных COM-объектов на стороне 64-битного сервера 1С в компоненте на вкладке Безопасность для роли CreatorOwner поставил галочку. Получил ошибку: Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V83.COMConnector.1): Неверные или отсутствующие параметры соединения с информационной базой. Хотя компоненту V83.COMConnector.1 заменил на псевдоним V83.COMConnector_8.3.19.1522 — правильно?

kosvo
02.04.2012 10:44 Прочитано: 9531

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

=========================
&НаКлиенте

Процедура сталь_055ПриИзменении(Элемент)

Запрос = Новый Запрос();
Запрос.Текст = «ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Услуга»;

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
Сообщить(Выборка.Ссылка);
КонецЦикла;

КонецПроцедуры
================================

Выдает ошибку:

{ОбщаяФорма.Вариант.Форма(6,16)}: Тип не определен (Запрос)
Запрос = Новый <<?>>Запрос();

Учусь в ДемоВерсии 1С.v8

Спасибо!

Yandex
Возможно, вас также заинтересует

Реклама на портале

Mokey
02.04.2012 11:31 Ответ № 1

Что первое в голову пришло, буквы Рус-Лат какие-то в слове «Запрос».


Изменено 02.04.12 11:31:47

E_Migachev
02.04.2012 11:42 Ответ № 2

(0) kosvo,
1. Пишется: Код 1C v 8.х

 Запрос = Новый Запрос;   

2. Если это УП, то Запрос можно выполнять только на сервере

Mokey
02.04.2012 11:43 Ответ № 3

(2) E_Migachev, вроде же и со скобками работает…

… проверил у себя (засомневался было), всё работает со скобками.


Изменено 02.04.12 11:45:04

kosvo
02.04.2012 11:53 Ответ № 4

т.е. причина в «&НаКлиенте» ?

E_Migachev
02.04.2012 12:04 Ответ № 5

(3) Mokey, хорошо ), я всегда без () пишу…
(4) kosvo, да

Mokey
02.04.2012 12:37 Ответ № 6

Ух ты.. а я и не обратил внимание на &НаКлиенте… сорри

kosvo
02.04.2012 12:47 Ответ № 7

Всем СПАСИБО!

kosvo
02.04.2012 12:47 Ответ № 8

Вопрос закрыт!

DJ_Serega
03.04.2012 11:59 Ответ № 9

(5) E_Migachev,
Я обычно так пишу запросы:
Код 1C v 8.х

 
Процедура БлаБлаБла
Запрос = Новый Запрос(ПолучитьТекстЗапроса());
КонецПроцедуры

Функция ПолучитьТекстЗапроса()
ТекстЗапроса =
"БлаБлаБла"
;
Возврат ТекстЗапроса;
КонецФункции

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


Изменено 03.04.12 12:02:47

Подсказка: Вы получили ответ на свой вопрос — закройте вопрос!

При запросе выдает ошибку.

Автор Серега16, 09 авг 2014, 13:54

0 Пользователей и 1 гость просматривают эту тему.

 в 1с 8.2 Почему выдает ошибку
Запрос.УстановитьПараметр(«Наименование»<<?>>Наименование); (Проверка: Сервер)
а вот сам код

Запрос = Новый Запрос;
   Запрос.Текст ="ВЫБРАТЬ
                             | Покупатель.Наименование
                             |ИЗ
                             | Справочник.Покупатель КАК Покупатель
|Где
|Покупатель.Наименование = &Наименование" ;
   
       Запрос.УстановитьПараметр("Наименование"Наименование);
       Результат = Запрос.Выполнить();
       Если НЕ Результат.Пустой() Тогда

                   Сообщить( "Данный покупатель уже существует!");

              КонецЕсли;


РS Пробывал и на сервере и на клиенте везде выдает ошибку. Роботает только в модуле объекта. ПередЗаписью
А я хочу при НаименованиеОкончаниеВводаТекста.


Посмотрите описание этого события, по-моему из него запрещено обращаться на сервер.
Используйте событие ПриИзменении


Цитата: GRADUS от 09 авг 2014, 14:07
Посмотрите описание этого события, по-моему из него запрещено обращаться на сервер.
Используйте событие ПриИзменении

ПриИзменении вот такая ошибка.
Тип не определен (Запрос)
   Запрос = Новый <<?>>Запрос; (Проверка: Тонкий клиент)



Серега16, после «Наименование» в УстановитьПараметр вообще-то следует ставить запятую.



ЦитироватьРоботает только в модуле объекта

Это я видел;

а прежде сообщение об ошибке:

ЦитироватьЗапрос.УстановитьПараметр(«Наименование»<<?>>Наименование); (Проверка: Сервер)

и далее код с этой ошибкой.

Тогда реально с чем работает автор темы? И что мы обсуждаем?


Цитата: pavl_vs от 09 авг 2014, 18:14

ЦитироватьРоботает только в модуле объекта

Это я видел;

а прежде сообщение об ошибке:

ЦитироватьЗапрос.УстановитьПараметр(«Наименование»<<?>>Наименование); (Проверка: Сервер)

и далее код с этой ошибкой.

Тогда реально с чем работает автор темы? И что мы обсуждаем?

Запятую я потерял чуть позже когда пытался поменять параметры. Ща перепроверю все свои эксперименты с запятой.

Добавлено: 09 авг 2014, 19:41


&НаКлиенте
Процедура НаименованиеПриИзменении(Элемент)
Проверка();
КонецПроцедуры
&НаСервере
Процедура Проверка()экспорт

Запрос = Новый Запрос;
   Запрос.Текст ="ВЫБРАТЬ
                             | Покупатель.Наименование
                             |ИЗ
                             | Справочник.Покупатель КАК Покупатель
|Где
|Покупатель.Наименование = &Наименование" ;
   
       Запрос.УстановитьПараметр("Наименование",Наименование);
       Результат = Запрос.Выполнить();
       Если НЕ Результат.Пустой() Тогда

                   Сообщить( "Данный покупатель уже существует!");

              КонецЕсли;


{Справочник.Покупатель.Форма.ФормаЭлемента.Форма(17,49)}: Переменная не определена (Наименование)
       Запрос.УстановитьПараметр(«Наименование»,<<?>>Наименование); (Проверка: Сервер).
Может есть другой способ проверки на уникальность при создании. Хотелось чтоб при заполнении первого регистра была проверка, а не после заполнения всех данных.


И что же у нас в переменной наименование, выложите скрин значения переменной «Наименование» в отладчике. После скрина продолжаем разговор.


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

Запрос.УстановитьПараметр(«Наименование», Объект.Наименование);

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


Теги:

  • Форум База

  • Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4

  • Конфигурирование, программирование в 1С Предприятие 8

  • При запросе выдает ошибку.

Похожие темы (5)

Рейтинг@Mail.ru

Rambler's Top100

Поиск

Тип не определен (Запрос)

Я

  

GreenDay1986

07.11.12 — 12:51

Тип не определен (Запрос)

Запрос = Новый <<?>>Запрос(); (Проверка: Тонкий клиент)

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

&НаКлиенте

Процедура ПриОткрытии()

   Запрос = Новый Запрос();

   Запрос.Текст=»ВЫБРАТЬ

   |Рег.Цена КАК Цена,

   |Рег.Дата КАК Дата

   |ИЗ РегистрСведений.Цены КАК Рег

   |»;

   Рез = Запрос.Выполнить().Выбрать();

   Пока Рез.Следующий() Цикл

   Сообщить(Рез.Цена);

   Сообщить(Рез.Дата);

   КонецЦикла;

КонецПроцедуры

Что пишу неправильно?

  

GreenDay1986

1 — 07.11.12 — 12:52

&НаСервере

Процедура ПриОткрытии()

   Запрос = Новый Запрос();

   Запрос.Текст=»ВЫБРАТЬ

   |Рег.Цена КАК Цена,

   |Рег.Дата КАК Дата

   |ИЗ РегистрСведений.Цены КАК Рег

   |»;

   Рез = Запрос.Выполнить().Выбрать();

   Пока Рез.Следующий() Цикл

   ЭтаФорма.Элементы.Цена = Рез.Цена;

   Сообщить(Рез.Цена);

   Сообщить(Рез.Дата);

   КонецЦикла;

КонецПроцедуры

или просто

Процедура ПриОткрытии()

   Запрос = Новый Запрос();

   Запрос.Текст=»ВЫБРАТЬ

   |Рег.Цена КАК Цена,

   |Рег.Дата КАК Дата

   |ИЗ РегистрСведений.Цены КАК Рег

   |»;

   Рез = Запрос.Выполнить().Выбрать();

   Пока Рез.Следующий() Цикл

   ЭтаФорма.Элементы.Цена = Рез.Цена;

   Сообщить(Рез.Цена);

   Сообщить(Рез.Дата);

   КонецЦикла;

КонецПроцедуры

ошибок не выдает но и запросы также не исполняются

  

mikecool

2 — 07.11.12 — 12:53

с чего решил, что запросы не выполняются?

  

GreenDay1986

3 — 07.11.12 — 12:54

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

  

mikecool

4 — 07.11.12 — 12:55

(3) сообщения выводятся, только на сервере

включай уже мосх )

  

Magic Dick

5 — 07.11.12 — 12:56

Новый Запрос;

  

Песец

6 — 07.11.12 — 12:56

Проверка: Тонкий клиент

  

GreenDay1986

7 — 07.11.12 — 12:57

Процедура ПриОткрытии()

   Запрос = Новый Запрос();

   Запрос.Текст=»ВЫБРАТЬ

   |Рег.Цена КАК Цена,

   |Рег.Дата КАК Дата

   |ИЗ РегистрСведений.Цены КАК Рег

   |»;

   Рез = Запрос.Выполнить().Выбрать();

   Пока Рез.Следующий() Цикл

   ЭтаФорма.Элементы.Цена = Рез.Цена;

   Сообщить(Рез.Цена);

   Сообщить(Рез.Дата);

   КонецЦикла;

КонецПроцедуры

Здесь куда выводятся?

  

vmv

8 — 07.11.12 — 12:57

тс — глупый тролль, уничтожиить!

  

Magic Dick

9 — 07.11.12 — 12:58

(8) а может 86 год?

  

GreenDay1986

10 — 07.11.12 — 12:58

брррр, да нет, не тролль, учусь маленько

  

Песец

11 — 07.11.12 — 12:59

Запрос (Query)

Доступность:

Сервер, толстый клиент, внешнее соединение.

(с) СП

  

GreenDay1986

12 — 07.11.12 — 12:59

(11) То есть мне нужно создавать новую базу на сервере, так понимаю?

  

vmv

13 — 07.11.12 — 13:00

(10) открываем сп и в первой главе «директивы компиляции» изучаем, хотя может лучше порясят выращивать — ты подумай, что выгоднее

  

Песец

14 — 07.11.12 — 13:00

(12) Не, базу не надо.

  

Песец

15 — 07.11.12 — 13:01

(14+) Медитируй до просветления:

Тип не определен (Запрос)

Запрос = Новый <<?>>Запрос(); (Проверка: Тонкий клиент)

  

GreenDay1986

16 — 07.11.12 — 13:01

(14) То есть базу на локальном компьютере я правильно создал. Что дальше делать дабы в ней сожно было работать с запросами?

  

Песец

17 — 07.11.12 — 13:03

(16) В тонком клиенте тип «Запрос» не определен.

  

Sammo

18 — 07.11.12 — 13:03

Запрос это сущность или процедура?

  

ptiz

19 — 07.11.12 — 13:03

(16) На сервере выполняешь запрос. На клиента возвращаешь сообщения.

  

Песец

20 — 07.11.12 — 13:04

(17+) …в нем толко интерфейс, что-либо делать с базой надо на стороне сервера.

  

GreenDay1986

21 — 07.11.12 — 13:04

(19) спасибо, счас попробую.

  

GreenDay1986

22 — 07.11.12 — 13:06

(19) Как это с точки зрения синтаксиса будет выглядеть? 2 процедуры?

  

GreenDay1986

23 — 07.11.12 — 13:12

Хм, можно пример как возвратить с сервера на клиент? Исполнение так понимаю

&НаСервере

Процедура ПриОткрытии()

   Запрос = Новый Запрос();

   Запрос.Текст=»ВЫБРАТЬ

   |Рег.Цена КАК Цена,

   |Рег.Дата КАК Дата

   |ИЗ РегистрСведений.Цены КАК Рег

   |»;

   Рез = Запрос.Выполнить().Выбрать();

КонецПроцедуры

  

Шапокляк

24 — 07.11.12 — 13:16

(23) Запрос = Новый Запрос;

Убери скобочки! И — нескромный вопрос — а что на сервере открывают-то?

  

Песец

25 — 07.11.12 — 13:16

(23) На клиенте этой процедуры просто не будет.

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

  

GreenDay1986

26 — 07.11.12 — 13:20

(25) В общем все мои запросы исполнять в общих модулях, При открытии прописывать уже непосредственно передаваемые с сервера параметры?

  

GreenDay1986

27 — 07.11.12 — 13:21

Мутновато пока укладывается, ну ладно, спасибо, будем разбираться :)

  

le_

28 — 07.11.12 — 13:25

(27) Поищи видеокурс Гилева по управляемым формам.

  

Xapac_2

29 — 07.11.12 — 13:27

на КЛИЕНТЕ же!!!

сделай на сервере

  

Wobland

30 — 07.11.12 — 13:28

ТС как минимум уже год учится, никак не научится

  

Aprobator

31 — 07.11.12 — 13:28

(27) чего тут укладываться то? УФ — видимость методов и т.п. смотреть обязательно, только и всего.

  

GreenDay1986

32 — 07.11.12 — 13:35

Хм, как ИБ без управляемых форм сделать? Конфигурации подревнее поискать?

  

Wobland

33 — 07.11.12 — 13:35

(32) нужно как-то себя заставить

  

GreenDay1986

34 — 07.11.12 — 13:36

(33)Ога, я пока ток БП ковырял, без УФ.

  

GreenDay1986

35 — 07.11.12 — 14:33

Для примера родил следующее. :)

&НаСервере

Функция ВыбратьДанные(Найм)

Запрос = Новый Запрос;

Запрос.Текст =»ВЫБРАТЬ

|Ном.Наименование КАК Наим

|ИЗ Справочник.Номенклатура КАК Ном

|ГДЕ Наим.Наименование=&Найм

|»;

Запрос.УстановитьПараметр(«Найм»,Найм);

Рез = Запрос.Выполнить().Выбрать();

Пока Рез.Следующий()Цикл;

   Сообщить(Рез.Наим);

КонецЦикла;

КонецФункции

&НаКлиенте

Процедура ПриОткрытии()

   Сообщить(ВыбратьДанные(Этаформа.Элементы.Наименование));  

КонецПроцедуры

Возвращает ошибку

{Справочник.Номенклатура.Форма.ФормаЭлемента.Форма(20)}: Ошибка при вызове метода контекста (ВыбратьДанные)

   Сообщить(ВыбратьДанные(Этаформа.Элементы.Наименование));  

по причине:

Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.

по причине:

Ошибка преобразования данных XDTO:

Запись значения свойства ‘param’:

   форма: Элемент

   имя: {http://v8.1c.ru/8.2/managed-application/modules}param

по причине:

Ошибка отображения типов:

Отсутствует отображение для типа ‘ПолеФормы’

  

salvator

36 — 07.11.12 — 14:36

Если Рез.Следующий() Тогда;

   Возврат Рез.Наим;

КонецЕсли;

  

GreenDay1986

37 — 07.11.12 — 14:39

(36) таже самая ошибка возвращается.

  

Romich1981

38 — 07.11.12 — 14:44

Посмотри хоть какой тип у «Этаформа.Элементы.Наименование»

  

GreenDay1986

39 — 07.11.12 — 14:44

(38) Поле ввода

  

Romich1981

40 — 07.11.12 — 14:45

=) о чем и речь. Какие типы можно передавать?

  

hhhh

41 — 07.11.12 — 14:45

(37) а вот этот бред как объясните? Что это за слово?

ГДЕ Наим.Наименование

  

GreenDay1986

42 — 07.11.12 — 14:47

Где Ном.Наименование, простите

  

samozvanec

43 — 07.11.12 — 14:48

все не читал. Что за прикол менять директиву компиляции у событий формы?

  

GreenDay1986

44 — 07.11.12 — 14:49

Не ругайтесь шибко, УФ первый раз юзаю :(

  

GreenDay1986

45 — 07.11.12 — 14:57

Уррра, нашел :) ЭтаФорма.Объект.Наименование. Передалось таки :)

  

sidalexsandr

46 — 07.11.12 — 14:58

Можно так:

&НаСервере

Функция ВыбратьДанные(Найм)

Запрос = Новый Запрос;

Запрос.Текст =»ВЫБРАТЬ

|Ном.Наименование КАК Наим

|ИЗ Справочник.Номенклатура КАК Ном

|ГДЕ Наим.Наименование=&Найм

|»;

Запрос.УстановитьПараметр(«Найм»,Найм);

РезультатЗапроса = Запрос.Выполнить();

   

   СпособОбхода = ОбходРезультатаЗапроса.Прямой;

   ТабЗнач = РезультатЗапроса.Выгрузить(СпособОбхода);  

   

   Возврат ТабЗнач;

КонецФункции

  

GreenDay1986

47 — 07.11.12 — 14:59

(46) Спасибо! :)

  

sidalexsandr

48 — 07.11.12 — 15:00

(46)+

Дальше

&НаКлиенте

Процедура ЗабратьССервера()

      ТаблЗначений =     ВыбратьДанные(Найм);

// Дальше получай на здоровье данные из Таблицы значений

КонецПроцедуры

  

sidalexsandr

49 — 07.11.12 — 15:00

(47) Вот теперь можеш спасибо

  

sidalexsandr

50 — 07.11.12 — 15:01

Напиши, что получилось.

  

hhhh

51 — 07.11.12 — 15:05

(49) ТаблицаЗначений

Доступность:

Сервер, толстый клиент, внешнее соединение.

  

GreenDay1986

52 — 07.11.12 — 15:11

(50) Соединяю с регистромСведений цены.Сообщение выдалось

  

GreenDay1986

53 — 07.11.12 — 15:28

Получилось так

&НаСервере

Функция ВыбратьДанные(Найм)

Запрос = Новый Запрос;

Запрос.Текст =»ВЫБРАТЬ

|Ном.Наименование КАК Наим,

|ЕСТЬNULL(Рег.Цена,0) КАК Цена,

|ЕСТЬNULL(Рег.Период,0) КАК Период

|ИЗ Справочник.Номенклатура КАК Ном

|ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних(&ДатаСреза)КАК Рег

|ПО Ном.Наименование = Рег.Наименование

|ГДЕ Ном.Наименование=&Найм

|»;

Запрос.УстановитьПараметр(«ДатаСреза», КонецДня(ТекущаяДата()));

Запрос.УстановитьПараметр(«Найм»,Найм);

Рез = Запрос.Выполнить().Выбрать();

Пока Рез.Следующий()Цикл

   Сообщить(Рез.Наим);

   Сообщить(Рез.Цена);

   Сообщить(Рез.Период);

КонецЦикла;

КонецФункции

&НаКлиенте

Процедура ПриОткрытии()

   ВыбратьДанные(ЭтаФорма.Объект.Наименование);  

КонецПроцедуры

Наименование обьекта текущей формы возвращает. Цену и Период возвращает почему-то пустыми. Хотя в регистресведений Цены эти данные заполнены

  

DionisSergeevich

54 — 07.11.12 — 15:34

(53) Отладчик в руки и смотри что у тебя в Рез после Рез.Следующий. Попробуй запрос с твоими параметрами в консоли запросов. Так на глаз не вижу почему возвращает пустые значения

  

Шапокляк

55 — 07.11.12 — 15:50

(53) Ну и кто там на сервере это читает

Пока Рез.Следующий()Цикл

   Сообщить(Рез.Наим);

   Сообщить(Рез.Цена);

   Сообщить(Рез.Период);

КонецЦикла;

Засовывай в структуру и возвращай клиенту

  

DionisSergeevich

56 — 07.11.12 — 15:51

(55) суть то не в этом. суть то в другом

  

GreenDay1986

57 — 07.11.12 — 15:55

(55) Рез.Наим возвращает и сообщает. Цену с периодом берет пустые

  

Aprobator

58 — 07.11.12 — 15:56

(46) (48) не взлетит по той простой причине, что таблица значений не живет на клиенте.

  

Aprobator

59 — 07.11.12 — 15:58

(53) дык у тебя соединения нет. Кто же соединение по наименованию делает? Самописка что ли полная?

  

Шапокляк

60 — 07.11.12 — 15:58

(56) Суть… Интересно, какой кошмар у него затаился в регистре Цены? Неужто Измерение Наименование строкового типа?

  

  

GreenDay1986

61 — 07.11.12 — 16:01

(60) Измерение Наименование типа СправочникСсылка.Номенклатура

  

hhhh

62 — 07.11.12 — 16:02

(61) а измерение Номенклатура типа СправочникСсылка.Номенклатура значит безжалостно удалил?

  

Шапокляк

63 — 07.11.12 — 16:02

(61) Да ну? А это как понимать?

|ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних(&ДатаСреза)КАК Рег

|ПО Ном.Наименование = Рег.Наименование

  

Serginio1

64 — 07.11.12 — 16:02

Может ВыбратьДанные(ЭтаФорма.Объект.Наименование.ТекстРедактирования);

или что там еще

  

GreenDay1986

65 — 07.11.12 — 16:03

(63) тут накосячил, Ном.Ссылка = Рег.Ссылка?

  

salvator

66 — 07.11.12 — 16:04

(65) продолжайте наблюдения

  

DionisSergeevich

67 — 07.11.12 — 16:07

(65) У записи регистра нет ссылки. Да открой ты консоль запросов

  

GreenDay1986

68 — 07.11.12 — 16:08

Извиняйте ребят, психологических отклонений нет,просто мудаг :))) Измерение Наименование сделал :( В общем переименовал заработало все.

При запросе выдает ошибку.

Автор Серега16, 09 авг 2014, 13:54

0 Пользователей и 1 гость просматривают эту тему.

 в 1с 8.2 Почему выдает ошибку
Запрос.УстановитьПараметр(«Наименование»<<?>>Наименование); (Проверка: Сервер)
а вот сам код

Запрос = Новый Запрос;
   Запрос.Текст ="ВЫБРАТЬ
                             | Покупатель.Наименование
                             |ИЗ
                             | Справочник.Покупатель КАК Покупатель
|Где
|Покупатель.Наименование = &Наименование" ;
   
       Запрос.УстановитьПараметр("Наименование"Наименование);
       Результат = Запрос.Выполнить();
       Если НЕ Результат.Пустой() Тогда

                   Сообщить( "Данный покупатель уже существует!");

              КонецЕсли;


РS Пробывал и на сервере и на клиенте везде выдает ошибку. Роботает только в модуле объекта. ПередЗаписью
А я хочу при НаименованиеОкончаниеВводаТекста.


Посмотрите описание этого события, по-моему из него запрещено обращаться на сервер.
Используйте событие ПриИзменении


Цитата: GRADUS от 09 авг 2014, 14:07
Посмотрите описание этого события, по-моему из него запрещено обращаться на сервер.
Используйте событие ПриИзменении

ПриИзменении вот такая ошибка.
Тип не определен (Запрос)
   Запрос = Новый <<?>>Запрос; (Проверка: Тонкий клиент)



Серега16, после «Наименование» в УстановитьПараметр вообще-то следует ставить запятую.



ЦитироватьРоботает только в модуле объекта

Это я видел;

а прежде сообщение об ошибке:

ЦитироватьЗапрос.УстановитьПараметр(«Наименование»<<?>>Наименование); (Проверка: Сервер)

и далее код с этой ошибкой.

Тогда реально с чем работает автор темы? И что мы обсуждаем?


Цитата: pavl_vs от 09 авг 2014, 18:14

ЦитироватьРоботает только в модуле объекта

Это я видел;

а прежде сообщение об ошибке:

ЦитироватьЗапрос.УстановитьПараметр(«Наименование»<<?>>Наименование); (Проверка: Сервер)

и далее код с этой ошибкой.

Тогда реально с чем работает автор темы? И что мы обсуждаем?

Запятую я потерял чуть позже когда пытался поменять параметры. Ща перепроверю все свои эксперименты с запятой.

Добавлено: 09 авг 2014, 19:41


&НаКлиенте
Процедура НаименованиеПриИзменении(Элемент)
Проверка();
КонецПроцедуры
&НаСервере
Процедура Проверка()экспорт

Запрос = Новый Запрос;
   Запрос.Текст ="ВЫБРАТЬ
                             | Покупатель.Наименование
                             |ИЗ
                             | Справочник.Покупатель КАК Покупатель
|Где
|Покупатель.Наименование = &Наименование" ;
   
       Запрос.УстановитьПараметр("Наименование",Наименование);
       Результат = Запрос.Выполнить();
       Если НЕ Результат.Пустой() Тогда

                   Сообщить( "Данный покупатель уже существует!");

              КонецЕсли;


{Справочник.Покупатель.Форма.ФормаЭлемента.Форма(17,49)}: Переменная не определена (Наименование)
       Запрос.УстановитьПараметр(«Наименование»,<<?>>Наименование); (Проверка: Сервер).
Может есть другой способ проверки на уникальность при создании. Хотелось чтоб при заполнении первого регистра была проверка, а не после заполнения всех данных.


И что же у нас в переменной наименование, выложите скрин значения переменной «Наименование» в отладчике. После скрина продолжаем разговор.


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

Запрос.УстановитьПараметр(«Наименование», Объект.Наименование);

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


Теги:

  • Форум 1С

  • Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4

  • Конфигурирование, программирование в 1С Предприятие 8

  • При запросе выдает ошибку.

Похожие темы (5)

Рейтинг@Mail.ru

Rambler's Top100

Поиск

kosvo
02.04.2012 10:44 Прочитано: 9133

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

=========================
&НаКлиенте

Процедура сталь_055ПриИзменении(Элемент)

Запрос = Новый Запрос();
Запрос.Текст = «ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Услуга»;

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
Сообщить(Выборка.Ссылка);
КонецЦикла;

КонецПроцедуры
================================

Выдает ошибку:

{ОбщаяФорма.Вариант.Форма(6,16)}: Тип не определен (Запрос)
Запрос = Новый <<?>>Запрос();

Учусь в ДемоВерсии 1С.v8

Спасибо!

Yandex
Возможно, вас также заинтересует

Реклама на портале

Mokey
02.04.2012 11:31 Ответ № 1

Что первое в голову пришло, буквы Рус-Лат какие-то в слове «Запрос».


Изменено 02.04.12 11:31:47

E_Migachev
02.04.2012 11:42 Ответ № 2

(0) kosvo,
1. Пишется: Код 1C v 8.х

 Запрос = Новый Запрос;   

2. Если это УП, то Запрос можно выполнять только на сервере

Mokey
02.04.2012 11:43 Ответ № 3

(2) E_Migachev, вроде же и со скобками работает…

… проверил у себя (засомневался было), всё работает со скобками.


Изменено 02.04.12 11:45:04

kosvo
02.04.2012 11:53 Ответ № 4

т.е. причина в «&НаКлиенте» ?

E_Migachev
02.04.2012 12:04 Ответ № 5

(3) Mokey, хорошо ), я всегда без () пишу…
(4) kosvo, да

Mokey
02.04.2012 12:37 Ответ № 6

Ух ты.. а я и не обратил внимание на &НаКлиенте… сорри

kosvo
02.04.2012 12:47 Ответ № 7

Всем СПАСИБО!

kosvo
02.04.2012 12:47 Ответ № 8

Вопрос закрыт!

DJ_Serega
03.04.2012 11:59 Ответ № 9

(5) E_Migachev,
Я обычно так пишу запросы:
Код 1C v 8.х

 
Процедура БлаБлаБла
Запрос = Новый Запрос(ПолучитьТекстЗапроса());
КонецПроцедуры

Функция ПолучитьТекстЗапроса()
ТекстЗапроса =
"БлаБлаБла"
;
Возврат ТекстЗапроса;
КонецФункции

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


Изменено 03.04.12 12:02:47

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

Содержание:

1.     Пример с внешней обработкой

2.     Исправление ошибки в 1С

3.     Новое условие при выполнении запроса

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

Разберем на примере почему данная ошибка программы 1С происходит, и как ее избежать при разработке.  

1. Пример с внешней обработкой

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

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

Пример с внешней обработкой

Рис. 1

Теперь напишем запрос, который будет выводить номенклатуру данных производителей (Рисунок 2).

выводить номенклатуру данных

Рис. 2

При попытке запустить заполнение табличной части 1С 8.3 выдает ошибку «Тип не может быть выбран в запросе» (Рисунок 3).

Тип не может быть выбран

Рис. 3

Данная ошибка при выполнении операции в 1С возникла потому, что в таблице значений не указан тип колонки «Наименование».  

2. Исправление ошибки в 1С

Чтобы исправить ошибку, необходимо явно указать тип при добавлении колонки. Сделать это можно при помощи Описания типов. Укажем наименование строкового типа данных (Рисунок 4).

Тип выбран в запросе

Рис. 4

Также можно указать тип «СправочникСсылка.Производители», но тогда таблица значений не заполнится необходимыми данными, что, впрочем, можно исправить, воспользовавшись поиском по наименованию в справочнике, и подставив найденное значение в поле «Наименование» (Рисунок 5).

Исправление ошибки в 1С

Рис. 5

Но остановимся на типе «Строка».

При попытке выполнить код, возникает новая ошибка программы, говорящая о том, что нельзя сравнивать разные типы (Рисунок 6).

ошибки в 1С

Рис. 6 

3. Новое условие при выполнении запроса 1С

Вернемся к выполнению запроса 1С и изменим его, заменив жесткое сравнение на условие «Подобно».

Запрос примет следующий вид (Рисунок 7).

Новое условие 1С

Рис. 7

В результате мы получим список всей номенклатуры данных производителей (Рисунок 8).

при выполнении запроса 1С

Рис. 8

Специалист компании «Кодерлайн»

Айдар Фархутдинов

Тип не может быть выбран в запросе

Ошибка при вызове возникает в запросе, когда тип не может быть выбран в качестве источника данных (таблицы), либо не инициализирован в процессе выборки из временной таблицы. Значит вы пытаетесь загрузить таблицу значений в запрос 1С.

Полный текст ошибки:

Ошибка при вызове метода контекста (Выполнить) 
ТЗ = Запрос.Выполнить().Выгрузить(); 
по причине: {(310, 32)}: Тип не может быть выбран в запросе

ТипНеМожетБытьВыбранВЗапросе

Сопутствующий ошибке код:

В качестве одного из параметров передается заполненная «Таблица значений», которая помещается во временную таблицу запроса, а затем уже производится ее выборка.

Например:

Запрос.УстановитьПараметр(«ТЗДеньги», Новый ТаблицаЗначений);

Сам текст запроса:

ВЫБРАТЬ * ПОМЕСТИТЬ ТДеньги ИЗ &ТЗДеньги КАК Т
;
ВЫБРАТЬ 
   ЗарплатныйПериод,
   Статья,
   Сотрудник,
   Подразделение,
   Сумма 
ИЗ 
   тДеньги

Ошибка возникает в версиях 8.2 и 8.3 платформы 1С.

Причина ошибки:

Не инициализированные типы колонок в таблице значений.

ТЗДеньги = Новый  ТаблицаЗначений;
ТЗДеньги.Колонки.Добавить("ЗарплатныйПериод");
ТЗДеньги.Колонки.Добавить("Статья");
ТЗДеньги.Колонки.Добавить("Сотрудник");
ТЗДеньги.Колонки.Добавить("Подразделение");
ТЗДеньги.Колонки.Добавить("Сумма");

Ошибка может проявится при значениях в таблице, которые не могут быть выбраны: объект Картинка, Диаграмма, Шрифт и прочие интерфейсные, либо не ссылочные типы.

Решение

Верная инициализация, каждой колонки в таблице значений:

ТЗДеньги = Новый ТаблицаЗначений;
ТЗДеньги.Колонки.Добавить("ЗарплатныйПериод",Новый ОписаниеТипов("Дата"));
ТЗДеньги.Колонки.Добавить("Статья",Новый ОписаниеТипов("Строка"));
ТЗДеньги.Колонки.Добавить("Сотрудник",Новый ОписаниеТипов("Строка"));
ТЗДеньги.Колонки.Добавить("Подразделение",Новый ОписаниеТипов("Строка"));
ТЗДеньги.Колонки.Добавить("Сумма",Новый ОписаниеТипов("Число"));

Если колонка должна содержать несколько типов, тогда используйте другой вариант инициализации ОписаниеТипов:

МассивТипов = Новый Массив;
МассивТипов.Добавить("Строка");
МассивТипов.Добавить("Число");
пОписаниеТипов = Новый ОписаниеТипов(МассивТипов);

Основное требование — точное указание для всех колонок.

Также смотрите про статью про тип «ЛюбаяСсылка»

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

«Неверные параметры Сумма», возникает, в случае хотя бы одно из значений в переданной таблице значений равно Null.

Люди кончают самоубийством оттого, что получают по почте одну рекламу.

Тема: Путаница в модулях! Откуда вызывать запрос?  (Прочитано 4757 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Всем доброго времени суток! Совсем запуталась в модулях! Объясните, пожалуйста, что делаю не так?

У документа реквизиты: Номер, Дата, СчетДенежныхСредств, ОстатокНаСчете, СуммаФактическая, такие-же на форме. Хочу при выборе счета автоматом получть остаток по нему. Пробовала так:

&НаКлиенте
Процедура СчетДенежныхСредствПриИзменении(Элемент)
СуммаНаСчете = ВернутьОстатокПоСчету();
КонецПроцедуры

&НаСервере
Функция ВернутьОстатокПоСчету()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
           | ОстатокПоСчетамДенежныхСредствОстатки.СуммаОстаток
           |ИЗ
           | РегистрНакопления.ОстатокПоСчетамДенежныхСредств.Остатки(&НаДату, СчетДенежныхСредств = &Счет) КАК ОстатокПоСчетамДенежныхСредствОстатки";
Запрос.УстановитьПараметр("НаДату", Дата);
Запрос.УстановитьПараметр("Счет", СчетДенежныхСредств);
Результат = Запрос.Выполнить().Выгрузить();
Возврат Результат.СуммаОстаток;
КонецФункции

Орёт, что переменная не определена:

{Документ.КорректировкаСчетаДенежныхСредств.Форма.ФормаДокумента.Форма(13,38)}: Переменная не определена (Дата)
   Запрос.УстановитьПараметр(«НаДату», <<?>>Дата); (Проверка: Сервер)
{Документ.КорректировкаСчетаДенежныхСредств.Форма.ФормаДокумента.Форма(14,36)}: Переменная не определена (СчетДенежныхСредств)
   Запрос.УстановитьПараметр(«Счет», <<?>>СчетДенежныхСредств);    (Проверка: Сервер)

Пыталась передавать их в процедуру:

СуммаНаСчете = ВернутьОстатокПоСчету(Дата, СчетДенжныхСредств);Орёт уже на форму:

{Документ.КорректировкаСчетаДенежныхСредств.Форма.ФормаДокумента.Форма(3,39)}: Переменная не определена (Дата)
   СуммаНаСчете = ВернутьОстатокПоСчету(<<?>>Дата, СчетДенжныхСредств);       (Проверка: Тонкий клиент)
{Документ.КорректировкаСчетаДенежныхСредств.Форма.ФормаДокумента.Форма(3,45)}: Переменная не определена (СчетДенжныхСредств)
   СуммаНаСчете = ВернутьОстатокПоСчету(Дата, <<?>>СчетДенжныхСредств);       (Проверка: Тонкий клиент)

Перекинула эту функцию в модуль объекта, пыталась вызывать её из модуля формы, ругается, что функция не определена, хотя я даже добавила к функции «Экспорт».
А в самой процедуре СчетДенежныхСредствПриИзменении(Элемент) не даёт сделать запрос, ругается на запрос.

{Документ.КорректировкаСчетаДенежныхСредств.Форма.ФормаДокумента.Форма(3,17)}: Тип не определен (Запрос)
   Запрос = Новый <<?>>Запрос; (Проверка: Тонкий клиент)

Где что не так делаю? Как правильно и почему?  ???
Заранее благодарна!


Записан


&НаКлиенте
Процедура СчетДенежныхСредствПриИзменении(Элемент)   тут надо в отладчике посмотреть и из элемента найти значение нового счета
   СуммаНаСчете = ВернутьОстатокПоСчету(ДАТА, СЧЕТ);   здесь надо передать значение даты и значение счета(или строку счета а в серверной функции найти счет по коду)   
КонецПроцедуры

&НаСервере
Функция ВернутьОстатокПоСчету(ДАТА, СЧЕТ)   
   Запрос = Новый Запрос;
   Запрос.Текст = «ВЫБРАТЬ
           |   ОстатокПоСчетамДенежныхСредствОстатки.СуммаОстаток
           |ИЗ
           |   РегистрНакопления.ОстатокПоСчетамДенежныхСредств.Остатки(&НаДату, СчетДенежныхСредств = &Счет) КАК ОстатокПоСчетамДенежныхСредствОстатки»;
   Запрос.УстановитьПараметр(«НаДату», Дата);
   Запрос.УстановитьПараметр(«Счет», СчетДенежныхСредств);   
   Результат = Запрос.Выполнить().Выгрузить();   
   Возврат Результат.СуммаОстаток;   
КонецФункции


Записан



Ничё не поняла! Можно поподробней?
В отладчике смотрела, но значение даты и счета так и не нашла. :(


Записан


На клиенте определите переменную Дата И Счет

&НаКлиенте
Процедура СчетДенежныхСредствПриИзменении(Элемент)   
        Дата = Объект.Дата;
        Счет = Объект. СчетДенежныхСредств;

//Затем передайте эти переменный в процедуру на сервер в качестве параметров

   СуммаНаСчете = ВернутьОстатокПоСчету(Дата, Счет);      
КонецПроцедуры

//После чего можно вызывать функцию на сервере без контекста
&НаСервереБезКонтекста
Функция ВернутьОстатокПоСчету(Дата, Счет)   
   Запрос = Новый Запрос;
   Запрос.Текст = «ВЫБРАТЬ
           |   ОстатокПоСчетамДенежныхСредствОстатки.СуммаОстаток
           |ИЗ
           |   РегистрНакопления.ОстатокПоСчетамДенежныхСредств.Остатки(&НаДату, СчетДенежныхСредств = &Счет) КАК ОстатокПоСчетамДенежныхСредствОстатки»;
   Запрос.УстановитьПараметр(«НаДату», Дата);
   Запрос.УстановитьПараметр(«Счет», Счет);   
   Результат = Запрос.Выполнить().Выгрузить();   
   Возврат Результат.СуммаОстаток;   
КонецФункции


Записан



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

Вы зададитесь вопросом: «Как она может его не знать!?» Очень просто: либо используемый Вами релиз платформы ниже 1С:Предприятие 8.3.14, либо в свойствах конфигурации установлен режим совместимости ниже 8.3.14. Начиная с него тип УправляемаяФорма стал называться ФормаКлиентскогоПриложения. Это не означает, что старый тип не работает, но он устарел и фирма «1С» не дает никаких гарантий, что его не удалят в одном из будущих релизов.

Возможные варианты решений:

  1. Найти и заменить в коде все упоминания типа ФормаКлиентскогоПриложения на тип УправляемаяФорма
  2. Переключить режим совместимости в свойствах конфигурации на 8.3.14 и выше
  3. Выполнить апгрейд технологической платформы на версию 8.3.14 и выше

Внимание! В последних двух случаях не забывайте выполнить проверку остальных ключевых механизмов на тестовой среде перед обновлением платформы на рабочем контуре

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

  1. Ошибка «Отсутствует отображение для типа (ФормаКлиентскогоПриложения)»

Студворк — интернет-сервис помощи студентам

Доброго времени суток. Появляются такие ошибки:
{Форма.ФормаОтчета.Форма(31,17)}: Тип не определен (Запрос)
Запрос = Новый <<?>>Запрос; (Проверка: Тонкий клиент)
{Форма.ФормаОтчета.Форма(203,23)}: Тип не определен (Запрос)
ЗапрУвол = Новый <<?>>Запрос; (Проверка: Тонкий клиент)
{Форма.ФормаОтчета.Форма(274,21)}: Тип не определен (Запрос)
ЗапрУвол = Новый <<?>>Запрос; (Проверка: Тонкий клиент)
{Форма.ФормаОтчета.Форма(348,23)}: Тип не определен (Запрос)
ЗапрОтпуск = Новый <<?>>Запрос; (Проверка: Тонкий клиент)
{Форма.ФормаОтчета.Форма(418,23)}: Тип не определен (Запрос)
ЗапрОтпуск = Новый <<?>>Запрос; (Проверка: Тонкий клиент)
{Форма.ФормаОтчета.Форма(581,17)}: Тип не определен (Запрос)
Запрос = Новый <<?>>Запрос; (Проверка: Тонкий клиент)

Прошу объяснить, что не так, пожалуйста

  • Ошибка тип листа нетрудоспособности не соответствует фактическому типу листа
  • Ошибка тип serial не существует
  • Ошибка тинькофф неуспешная авторизация
  • Ошибка тинькофф недостаточно данных для совершения платежа
  • Ошибка тик ток вы слишком часто пользуетесь нашими услугами