Ошибка при установке значения атрибута контекста параметрывыбора несоответствие типов

открытие формы выбора с отбором

Я
   falselight

02.12.16 — 12:41

есть перечисление, оно задано реквизиту справочника

есть реквизит у этого справочника, типа другого справочника

где так же есть реквизит типа перечисления

как при открытии формы справочника, устанавливать отбор элементов

в форме выбора равному значению перечисления?

   DrShad

1 — 02.12.16 — 12:43

присвоить отбору значение

   Ёпрст

2 — 02.12.16 — 12:43

Если смотреть сбоку, то сверху кажется, что снизу ничего не видно

   falselight

3 — 02.12.16 — 12:45

(1) средствами свойств конфигурации?

   falselight

4 — 02.12.16 — 12:50

или кодом накладывать?

   DrShad

5 — 02.12.16 — 12:53

кодом конечно, программа сама не знает чего ты хочешь

   DrShad

6 — 02.12.16 — 12:54

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

   falselight

7 — 02.12.16 — 13:38

почему может ругаться на такую конструкцию, не соответсвие типов

&НаКлиенте

Процедура ДежурныйНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

   СтандартнаяОбработка = Ложь;

  
   ЗначениеОтбора = Новый Структура(«ЭксплуатационныйРайон», Объект.ЭксплуатационныйРайон);

   ПараметрыВыбора = Новый Структура(«Отбор», ЗначениеОтбора);

   ОткрытьФорму(«Справочник.Дежурный.ФормаВыбора», ПараметрыВыбора, Элемент);

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

   DrShad

8 — 02.12.16 — 13:41

а такой отбор точно есть в форме выбора?

   falselight

9 — 02.12.16 — 13:48

(8) подскажите пожалуйста, где это посмотреть?

   falselight

10 — 02.12.16 — 13:51

(8) видимо нет, взял пример, но не знаю как его приделать

   SergTheGreat

11 — 02.12.16 — 13:58

(9) Напиши коротенький пример, без туманных намеков как в (0).

   falselight

12 — 02.12.16 — 14:09

(11) я сделал как в примере (7)

у формы создал параметр «Отбор»

   falselight

13 — 02.12.16 — 14:10

(12) у формы владельца есть реквизит перечисление

у формы выбора есть параметр отбор типа этого перечисления

есть реквизит типа этого перечисления у подчиненного справочника

   Lexey_

14 — 02.12.16 — 14:10

(7) из-за совпадения имени переменной ПараметрыВыбора с параметром формы

   Lexey_

15 — 02.12.16 — 14:13

(7) вообще, в подробном тексте ошибки всё написано, но ты за 10 лет так и не научился ни читать его, ни копировать на Мисту

   falselight

16 — 02.12.16 — 14:16

(15) от туда не перенесешь его

   Lexey_

17 — 02.12.16 — 14:17

(16) откуда?

   falselight

18 — 02.12.16 — 14:21

(17) текст ошибки с сервера

   Lexey_

19 — 02.12.16 — 14:22

(18) нет ничего невозможного для человека с интеллектом

   falselight

20 — 02.12.16 — 14:34

(19) ну ошибка называется «несоответствие типов»

на строке  ПараметрыВыбора = Новый Структура(«Отбор», ЗначениеОтбора);

чт опоправить, до меня не доходит (((

   falselight

21 — 02.12.16 — 14:37

(11) просто нужно открыть форму выбора справочника с отбором

   Lexey_

22 — 02.12.16 — 14:40

(20) в (14) написано, думай

   falselight

23 — 02.12.16 — 14:45

(22) ну понятно, я создал параметр формы отбор

и в строке (20) тоже отбор

так он же и должен совпадать?

как иначе то?????

   falselight

24 — 02.12.16 — 14:58

(22) ну изменю значение параметра на другое, попробую

непомогло

   falselight

25 — 02.12.16 — 15:08

ПОДСКАЖИТЕ В ЧЕМ ДЕЛО?

   Lexey_

26 — 02.12.16 — 15:10

(25) еще раз: ошибка возникает из-за того, что имя переменной ПараметрыВыбора совпадает с именем параметра формы ПараметрыВыбора

   falselight

27 — 02.12.16 — 15:35

(26) я не могу сделать, ты можешь сказать как нужно поправить?

   falselight

28 — 02.12.16 — 15:41

везде одинаковые примеры

    ЗначениеОтбора = Новый Структура(«Контрагент», «ОАО Рога и копыта»);

      

    ПараметрыВыбора = Новый Структура(«Отбор», ЗначениеОтбора);

      

    ОткрытьФорму(«Документ.ПриходнаяНакладная.ФормаСписка», ПараметрыВыбора);

   falselight

29 — 03.12.16 — 07:38

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

имитирую этот момент, ошибка та же, подскажите как исправить???

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

   ПараметрыВыбора = Новый Структура(«Отбор», ЗначениеОтбора);

по причине:

Несоответствие типов

&НаКлиенте

Процедура ВидРубкиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

   СтандартнаяОбработка = Ложь;

   ЗначениеОтбора = Новый Структура(«СпособРубки», Объект.СпособРубки);

   ПараметрыВыбора = Новый Структура(«Отбор», ЗначениеОтбора);

   ОткрытьФорму(«Справочник.ВидыРубок.ФормаВыбора», ПараметрыВыбора, Элемент);

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

   falselight

30 — 03.12.16 — 07:40

Уважаемый Lexey_, говорит что дело в имени переменной ПараметрыВыбора.

Как исправить, подскажите кто понимает?

Я всяко разно пробовал. Причем во всех примерах все так же, у меня не работает ((((

   falselight

31 — 03.12.16 — 07:46

Согласно (26) исправил, понимая буквально замечание, на

&НаКлиенте

Процедура ВидРубкиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

   СтандартнаяОбработка = Ложь;

   ЗначениеОтбора = Новый Структура(«СпособРубки», Объект.СпособРубки);

   ПараметрыВыбора1 = Новый Структура(«Отбор», ЗначениеОтбора);

   ОткрытьФорму(«Справочник.ВидыРубок.ФормаВыбора», ПараметрыВыбора1, Элемент);

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

Но сейчас нет ошибки, но и отбор не устанавливается в форме выбора справочника, подскажите почему?

   falselight

32 — 03.12.16 — 07:48

и так пробую

&НаКлиенте

Процедура ВидРубкиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

   СтандартнаяОбработка = Ложь;

   ЗначениеОтбора = Новый Структура(«СпособРубки», Объект.СпособРубки);

   //ПараметрыВыбора1 = Новый Структура(«Отбор», ЗначениеОтбора);

   //ОткрытьФорму(«Справочник.ВидыРубок.ФормаВыбора», ПараметрыВыбора1, Элемент);

   ОткрытьФорму(«Справочник.ВидыРубок.ФормаВыбора», ЗначениеОтбора, Элемент);

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

   falselight

33 — 03.12.16 — 07:50

нужно ли как то саму форму дорабатывать на какие либо параметры

используя (31) или (32)

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

34 — 03.12.16 — 07:58

Возьми фрагмент «НачалоВыбора(» и полным поиском в типовой конфигурации найдешь кучку примеров

   falselight

35 — 03.12.16 — 07:59

(34) да я в интернете много примеров нахожу

все они подобные, но не работает у меня (((((

   falselight

36 — 03.12.16 — 07:59

(34) в конфигурации какой? в УТ 11.3 попробую поискать

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

37 — 03.12.16 — 08:01

(35) Так бывает…

(36) в типовой или  в своей, если типовая.

   falselight

38 — 03.12.16 — 08:01

(37) в которой я стал делать пример

там вообще пара объектов, не доделанные

   falselight

39 — 03.12.16 — 08:10

реально не понимаю (((( все подобно везде!!!!

   falselight

40 — 03.12.16 — 08:13

не работает отбор (

   falselight

41 — 03.12.16 — 08:20

СтандартнаяОбработка = Ложь;

   ЗначениеОтбора       = Новый Структура(«СпособыРубок», Объект.СпособРубки);

   ПараметрыВыбора1     = Новый Структура(«Отбор», ЗначениеОтбора);

   ОткрытьФорму(«Справочник.ВидыРубок.ФормаВыбора», ПараметрыВыбора1, Элемент);

вот так сработало, важно было в значении отбора, установить название параметра таким же как у справочника

  

EvgeniuXP

42 — 03.12.16 — 13:22

Посмотри курсы, чтобы множество вопросов у тебя отпало — и с энономишь кучу времени себе и другим.

открытие формы выбора с отбором

Я

  

falselight

02.12.16 — 12:41

есть перечисление, оно задано реквизиту справочника

есть реквизит у этого справочника, типа другого справочника

где так же есть реквизит типа перечисления

как при открытии формы справочника, устанавливать отбор элементов

в форме выбора равному значению перечисления?

  

DrShad

1 — 02.12.16 — 12:43

присвоить отбору значение

  

Ёпрст

2 — 02.12.16 — 12:43

Если смотреть сбоку, то сверху кажется, что снизу ничего не видно

  

falselight

3 — 02.12.16 — 12:45

(1) средствами свойств конфигурации?

  

falselight

4 — 02.12.16 — 12:50

или кодом накладывать?

  

DrShad

5 — 02.12.16 — 12:53

кодом конечно, программа сама не знает чего ты хочешь

  

DrShad

6 — 02.12.16 — 12:54

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

  

falselight

7 — 02.12.16 — 13:38

почему может ругаться на такую конструкцию, не соответсвие типов

&НаКлиенте

Процедура ДежурныйНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

   СтандартнаяОбработка = Ложь;

  

   ЗначениеОтбора = Новый Структура(«ЭксплуатационныйРайон», Объект.ЭксплуатационныйРайон);

   ПараметрыВыбора = Новый Структура(«Отбор», ЗначениеОтбора);

   ОткрытьФорму(«Справочник.Дежурный.ФормаВыбора», ПараметрыВыбора, Элемент);

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

  

DrShad

8 — 02.12.16 — 13:41

а такой отбор точно есть в форме выбора?

  

falselight

9 — 02.12.16 — 13:48

(8) подскажите пожалуйста, где это посмотреть?

  

falselight

10 — 02.12.16 — 13:51

(8) видимо нет, взял пример, но не знаю как его приделать

  

SergTheGreat

11 — 02.12.16 — 13:58

(9) Напиши коротенький пример, без туманных намеков как в (0).

  

falselight

12 — 02.12.16 — 14:09

(11) я сделал как в примере (7)

у формы создал параметр «Отбор»

  

falselight

13 — 02.12.16 — 14:10

(12) у формы владельца есть реквизит перечисление

у формы выбора есть параметр отбор типа этого перечисления

есть реквизит типа этого перечисления у подчиненного справочника

  

Lexey_

14 — 02.12.16 — 14:10

(7) из-за совпадения имени переменной ПараметрыВыбора с параметром формы

  

Lexey_

15 — 02.12.16 — 14:13

(7) вообще, в подробном тексте ошибки всё написано, но ты за 10 лет так и не научился ни читать его, ни копировать на Мисту

  

falselight

16 — 02.12.16 — 14:16

(15) от туда не перенесешь его

  

Lexey_

17 — 02.12.16 — 14:17

(16) откуда?

  

falselight

18 — 02.12.16 — 14:21

(17) текст ошибки с сервера

  

Lexey_

19 — 02.12.16 — 14:22

(18) нет ничего невозможного для человека с интеллектом

  

falselight

20 — 02.12.16 — 14:34

(19) ну ошибка называется «несоответствие типов»

на строке  ПараметрыВыбора = Новый Структура(«Отбор», ЗначениеОтбора);

чт опоправить, до меня не доходит (((

  

falselight

21 — 02.12.16 — 14:37

(11) просто нужно открыть форму выбора справочника с отбором

  

Lexey_

22 — 02.12.16 — 14:40

(20) в (14) написано, думай

  

falselight

23 — 02.12.16 — 14:45

(22) ну понятно, я создал параметр формы отбор

и в строке (20) тоже отбор

так он же и должен совпадать?

как иначе то?????

  

falselight

24 — 02.12.16 — 14:58

(22) ну изменю значение параметра на другое, попробую

непомогло

  

falselight

25 — 02.12.16 — 15:08

ПОДСКАЖИТЕ В ЧЕМ ДЕЛО?

  

Lexey_

26 — 02.12.16 — 15:10

(25) еще раз: ошибка возникает из-за того, что имя переменной ПараметрыВыбора совпадает с именем параметра формы ПараметрыВыбора

  

falselight

27 — 02.12.16 — 15:35

(26) я не могу сделать, ты можешь сказать как нужно поправить?

  

falselight

28 — 02.12.16 — 15:41

везде одинаковые примеры

    ЗначениеОтбора = Новый Структура(«Контрагент», «ОАО Рога и копыта»);

    ПараметрыВыбора = Новый Структура(«Отбор», ЗначениеОтбора);

    ОткрытьФорму(«Документ.ПриходнаяНакладная.ФормаСписка», ПараметрыВыбора);

  

falselight

29 — 03.12.16 — 07:38

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

имитирую этот момент, ошибка та же, подскажите как исправить???

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

   ПараметрыВыбора = Новый Структура(«Отбор», ЗначениеОтбора);

по причине:

Несоответствие типов

&НаКлиенте

Процедура ВидРубкиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

   СтандартнаяОбработка = Ложь;

   ЗначениеОтбора = Новый Структура(«СпособРубки», Объект.СпособРубки);

   ПараметрыВыбора = Новый Структура(«Отбор», ЗначениеОтбора);

   ОткрытьФорму(«Справочник.ВидыРубок.ФормаВыбора», ПараметрыВыбора, Элемент);

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

  

falselight

30 — 03.12.16 — 07:40

Уважаемый Lexey_, говорит что дело в имени переменной ПараметрыВыбора.

Как исправить, подскажите кто понимает?

Я всяко разно пробовал. Причем во всех примерах все так же, у меня не работает ((((

  

falselight

31 — 03.12.16 — 07:46

Согласно (26) исправил, понимая буквально замечание, на

&НаКлиенте

Процедура ВидРубкиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

   СтандартнаяОбработка = Ложь;

   ЗначениеОтбора = Новый Структура(«СпособРубки», Объект.СпособРубки);

   ПараметрыВыбора1 = Новый Структура(«Отбор», ЗначениеОтбора);

   ОткрытьФорму(«Справочник.ВидыРубок.ФормаВыбора», ПараметрыВыбора1, Элемент);

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

Но сейчас нет ошибки, но и отбор не устанавливается в форме выбора справочника, подскажите почему?

  

falselight

32 — 03.12.16 — 07:48

и так пробую

&НаКлиенте

Процедура ВидРубкиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

   СтандартнаяОбработка = Ложь;

   ЗначениеОтбора = Новый Структура(«СпособРубки», Объект.СпособРубки);

   //ПараметрыВыбора1 = Новый Структура(«Отбор», ЗначениеОтбора);

   //ОткрытьФорму(«Справочник.ВидыРубок.ФормаВыбора», ПараметрыВыбора1, Элемент);

   ОткрытьФорму(«Справочник.ВидыРубок.ФормаВыбора», ЗначениеОтбора, Элемент);

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

  

falselight

33 — 03.12.16 — 07:50

нужно ли как то саму форму дорабатывать на какие либо параметры

используя (31) или (32)

  

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

34 — 03.12.16 — 07:58

Возьми фрагмент «НачалоВыбора(» и полным поиском в типовой конфигурации найдешь кучку примеров

  

falselight

35 — 03.12.16 — 07:59

(34) да я в интернете много примеров нахожу

все они подобные, но не работает у меня (((((

  

falselight

36 — 03.12.16 — 07:59

(34) в конфигурации какой? в УТ 11.3 попробую поискать

  

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

37 — 03.12.16 — 08:01

(35) Так бывает…

(36) в типовой или  в своей, если типовая.

  

falselight

38 — 03.12.16 — 08:01

(37) в которой я стал делать пример

там вообще пара объектов, не доделанные

  

falselight

39 — 03.12.16 — 08:10

реально не понимаю (((( все подобно везде!!!!

  

falselight

40 — 03.12.16 — 08:13

не работает отбор (

  

falselight

41 — 03.12.16 — 08:20

СтандартнаяОбработка = Ложь;

   ЗначениеОтбора       = Новый Структура(«СпособыРубок», Объект.СпособРубки);

   ПараметрыВыбора1     = Новый Структура(«Отбор», ЗначениеОтбора);

   ОткрытьФорму(«Справочник.ВидыРубок.ФормаВыбора», ПараметрыВыбора1, Элемент);

вот так сработало, важно было в значении отбора, установить название параметра таким же как у справочника

  

EvgeniuXP

42 — 03.12.16 — 13:22

Посмотри курсы, чтобы множество вопросов у тебя отпало — и с энономишь кучу времени себе и другим.

Содержание:

1.       Ошибка при установке значения атрибута контекста

2.       Ошибка при получении значения атрибута контекста

Одной из наиболее частых ошибок исполнения кода 1С являются ошибки, связанные с установкой реквизита либо получением реквизита через точку, либо ошибка при вызове функции или процедуры через точку. Все данные объекты являются атрибутами информационных объектов-владельцев, к которым они принадлежат. Рассмотрим примеры таких ошибок и причины их возникновения.  

1.    Ошибка при установке значения атрибута контекста

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

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

2.    Ошибка при получении значения атрибута контекста

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

При возникновении данных ошибок значения атрибута в 1Св первую очередь следует проверить существование атрибута, к которому обращаются, затем проверить совпадение типов значений атрибута и присваиваемого ему значения, затем уже проверить права на установку либо чтение значения. Проверить, является ли дело в правах либо дать права на действия с атрибутом, можно, установив привилегированный режим для совершения действия с данным атрибутом, прописав перед строчкой с ошибкой УстановитьПривилегированныйРежим(Истина), после строчки — УстановитьПривилегированныйРежим(Ложь).  

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

Александр Суворов

Несоответствие типов 1С

Ошибка по причине Несоответствие типов в 1С 8.3 связана с передачей параметров в командах и запросах 1С.

Изучив статью, вы:

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

В какой момент выходит ошибка

Как правило, параметры в командах 1С идут в определенной очередности и ссылаются на данные конкретного типа. Ошибка в указании параметра не на том месте или не того типа приводит к появлению сообщения о несоответствии типов:

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

Рассмотрим причины ее возникновения и исправление на конкретном примере.

Ошибка в таблице запроса

При чтении цен номенклатуры по регистру сведений Цены номенклатуры из внешнего отчета появляется ошибка Неоднозначное поле «ТипЦен.Номенклатура».

В окне сообщений уже указано место возникновения ошибки: Несоответствие типов Параметр номер «1» в строке Регистр сведений.ЦеныНоменклатуры.СрезПоследних(&&ТипЦен,) КАК ЦеныНоменклатурыСрезПоследних.

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

Правильность написания команды проверьте по выделенной кнопке Синтаксис-Помощник в меню 1 С Предприятие:

Из описания видно, что команда СрезПоследних имеет 2 параметра:

  • Период;
  • Отбор.

Если параметр Период не указывается, место в команде остается пустым, а через запятую указывается параметр отбора, в нашем случае: ТипЦен. Исправленная команда выглядит следующим образом: СрезПоследних(, ТипЦен = &ТипЦен ).

После исправления команды запустите отчет в 1 С Бухгалтерия по кнопке Главное меню — Файл — Открыть:

Теперь отчет формируется правильно!

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

При поиске ссылок на контрагента в отчете 1С появляется ошибка Несоответствие типов (параметр номер 2):

1С сообщает место ошибки — Параметр номер 2 при нажатии кнопки ERROR.

Для ее исправления необходимо открыть отчет в Конфигураторе 1С и найти в модуле формы строчку с командой НайтиПоСсылкам.

Правильность написания команды проверьте по выделенной кнопке Синтаксис-Помощник в меню 1С:

Из описания идно, что команда НайтиПоСсылкам имеет 4 параметра:

  • СписокСсылок;
  • ОбластьПоиска;
  • ВключитьОбъекты;
  • ИсключитьОбъекты.

Параметр ОбластьПоиска имеет тип «массив», а в нашем примере указано число 1: НайтиПоСсылкам(МассивПоиска, 1, , МассивИсключений)Область поиска — необязательный параметр, поэтому исправленная команда может выглядеть следующим образом: НайтиПоСсылкам(МассивПоиска,  ,  , МассивИсключений).

После исправления команды запустите внешний отчет в 1С по кнопке Главное меню — Файл — Открыть:

Теперь команда поиска ссылок на контрагента отрабатывает правильно.

Вот так можно получить ошибку 1С Несоответствие типов в 1С, поэтому контролируйте правильность указания параметров в запросах и командах 1С в Синтаксис-Помощнике

Обслуживание

Заказать консультацию

По этой или иной ошибке Вы можете обратиться к нашим специалистам, мы Вам поможем решить Вашу проблему.

Построитель

Автор Альбина, 16 мар 2010, 17:41

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

Всем добрый день!
Помогите разобраться, пожалуйста, с возникшей проблемой.
Суть:
Формируется отчёт с помощью построителя с отбором по дате.
Необходимо проверить роль активного пользователя, и если это не «Администратор», то добавить отбор по сотруднику(по текущему пользователю) без возможности снятия этого отбора.

Добавляю отбор так:

Сотрудник = ПараметрыСеанса.ТекущийПользователь;
    Если (НЕ РольДоступна("Администратор"))
         Тогда   
         ОтборСотрудник = ПостроительОтчетаТрудозатраты.Отбор.Добавить("Сотрудник");
         ОтборСотрудник.Значение = Сотрудник;
         ОтборСотрудник.ВидСравнения = ВидСравнения.Равно;
         ПостроительОтчетаТрудозатраты.Отбор.Сотрудник.Использование = Истина;

Выдаёт ошибку:
Ошибка при установке значения атрибута контекста (Значение): Неверный тип значения
ОтборСотрудник.Значение = Сотрудник;


Пожалуйста,кто-нибудь подкиньте идейку.Мои идеи уже исчерпали себя(((((

Заранее,спасибо


проверь значения (ПараметрыСеанса.ТекущийПользователь)


Проверила,Там всё в норме.


а какой тип у «ОтборСотрудник.Значение»?


Что значит в норме???? Типы через отладчик посмотри. тип «ПараметрыСеанса.ТекущийПользователь» и тип «ОтборСотрудник.Значение»
— они разные у тибя


я не понимаю, как мне их к одинаковому типу привести.


спасибо всем большое)Всё заработало)


:))) хоросе


Теги:

  • Форум 1С

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

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

  • Построитель

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

Рейтинг@Mail.ru

Rambler's Top100

Поиск

&НаКлиенте Он стал выдавать ошибку. {Документ.УведомлениеКлиентТаможеннаяПроцедура.Форма.ФормаДокумента.Форма}: Ошибка при установке значения атрибута контекста (ПараметрыВыбора)     ПараметрыВыбора = Новый Структура(«Отбор», ЗначенияОтбора); по причине: СписКлиентДТО имеет тип массив из СправочникСсылка.Партнеры Подскажите в чем может быть дело.

переименуй переменную ПараметрыВыбора

теперь так надо отбор делать? раньше то у меня работал этот код

см и Отбор можно использовать, но он считается устаревшим параметром, оставлен только для совместимости..

&НаКлиенте И ошибка теперь {Документ.УведомлениеКлиентТаможеннаяПроцедура.Форма.ФормаДокумента.Форма}: Ошибка при установке значения атрибута контекста (ПараметрыВыбора)     ПараметрыВыбора = Новый Структура(«ФиксированныеНастройки», ФиксированныеНастройки); по причине: Несоответствие типов

как обычно те же грабли ))) Спасибо огромное…

Вот то что взлетело, но отбор списком не выводит &НаКлиенте Процедура КлиентНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СписКлиентДТО — список значений со ссылками на справочник партнеры

если список ссылок помещать в массив, то тоже не работает

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям



1 февраля, 2017
21 апреля, 2017

Дано

  • 1С конфигурация бухгалтерия предприятия 2.0
  • Ошибка печати ПКО (приходный кассовый ордер):

{ОбщаяФорма.ФормаПечати.Форма(18)}: Ошибка при установке значения атрибута контекста

   ЭлементыФормы.ПолеДокумента.ПолеСверху

по причине:

Несоответствие типов

Анализ проблемы

На первый взгляд все ужасно:

  • в конфигураторе видно, что система пытается выполнить строчку кода:

ЭлементыФормы.ПолеДокумента.ПолеСверху          = ПечатныйДокумент.ПолеСверху;

  • в отладке видно, что обе переменные типа “Число”,
  • синтакс-помощник говорит что:

ТабличныйДокумент (SpreadsheetDocument)

ПолеСверху (TopMargin)

Использование:

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

То есть ПолеСверху доступно для записи и обе переменные типа число и все тут корректно, но система говорит “Несоответствие типов” – полный бред.

Решение

На решение проблемы натолкнула фраза “Ошибка при установке значения атрибута контекста”, значит что-то не так с доступом.
Оказалось в базе нет ни одного пользователя и работа осуществлялась под пользователем НеАвторизован. После создания пользователя с необходимыми правами все заработало.

Дополнено 2017.04.10

Проблема повторилась, но уже при печати РТУ и с использованием уже настроенной учетной записи.

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

Ошибка Несоответствие типов в 1С 8.3 связана с передачей параметров в командах и запросах 1С.

Изучив статью, вы:

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

Содержание

  • Несоответствие типов в 1С 8.3
    • Ошибка в таблице запроса
    • Исправление ошибки в команде 1С

Как правило, параметры в командах 1С идут в определенной очередности и ссылаются на данные конкретного типа. Ошибка в указании параметра не на том месте или не того типа приводит к появлению сообщения о несоответствии типов:

Rambler's Top100

Поиск

&НаКлиенте Он стал выдавать ошибку. {Документ.УведомлениеКлиентТаможеннаяПроцедура.Форма.ФормаДокумента.Форма}: Ошибка при установке значения атрибута контекста (ПараметрыВыбора)     ПараметрыВыбора = Новый Структура(«Отбор», ЗначенияОтбора); по причине: СписКлиентДТО имеет тип массив из СправочникСсылка.Партнеры Подскажите в чем может быть дело.

переименуй переменную ПараметрыВыбора

теперь так надо отбор делать? раньше то у меня работал этот код

см и Отбор можно использовать, но он считается устаревшим параметром, оставлен только для совместимости..

&НаКлиенте И ошибка теперь {Документ.УведомлениеКлиентТаможеннаяПроцедура.Форма.ФормаДокумента.Форма}: Ошибка при установке значения атрибута контекста (ПараметрыВыбора)     ПараметрыВыбора = Новый Структура(«ФиксированныеНастройки», ФиксированныеНастройки); по причине: Несоответствие типов

как обычно те же грабли ))) Спасибо огромное…

Вот то что взлетело, но отбор списком не выводит &НаКлиенте Процедура КлиентНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СписКлиентДТО — список значений со ссылками на справочник партнеры

если список ссылок помещать в массив, то тоже не работает

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям



1 февраля, 2017
21 апреля, 2017

Дано

  • 1С конфигурация бухгалтерия предприятия 2.0
  • Ошибка печати ПКО (приходный кассовый ордер):

{ОбщаяФорма.ФормаПечати.Форма(18)}: Ошибка при установке значения атрибута контекста

   ЭлементыФормы.ПолеДокумента.ПолеСверху

по причине:

Несоответствие типов

Анализ проблемы

На первый взгляд все ужасно:

  • в конфигураторе видно, что система пытается выполнить строчку кода:

ЭлементыФормы.ПолеДокумента.ПолеСверху          = ПечатныйДокумент.ПолеСверху;

  • в отладке видно, что обе переменные типа “Число”,
  • синтакс-помощник говорит что:

ТабличныйДокумент (SpreadsheetDocument)

ПолеСверху (TopMargin)

Использование:

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

То есть ПолеСверху доступно для записи и обе переменные типа число и все тут корректно, но система говорит “Несоответствие типов” – полный бред.

Решение

На решение проблемы натолкнула фраза “Ошибка при установке значения атрибута контекста”, значит что-то не так с доступом.
Оказалось в базе нет ни одного пользователя и работа осуществлялась под пользователем НеАвторизован. После создания пользователя с необходимыми правами все заработало.

Дополнено 2017.04.10

Проблема повторилась, но уже при печати РТУ и с использованием уже настроенной учетной записи.

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

Ошибка Несоответствие типов в 1С 8.3 связана с передачей параметров в командах и запросах 1С.

Изучив статью, вы:

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

Содержание

  • Несоответствие типов в 1С 8.3
    • Ошибка в таблице запроса
    • Исправление ошибки в команде 1С

Как правило, параметры в командах 1С идут в определенной очередности и ссылаются на данные конкретного типа. Ошибка в указании параметра не на том месте или не того типа приводит к появлению сообщения о несоответствии типов:

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

Рассмотрим причины ее возникновения и исправление на конкретном примере.

Ошибка в таблице запроса

При чтении цен номенклатуры по регистру сведений Цены номенклатуры из внешнего отчета появляется ошибка Неоднозначное поле «ТипЦен.Номенклатура».

В окне сообщений уже указано место возникновения ошибки: Параметр номер «1» в строке Регистр сведений.ЦеныНоменклатуры.СрезПоследних(&&ТипЦен,) КАК ЦеныНоменклатурыСрезПоследних.

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

Правильность написания команды проверьте по выделенной кнопке Синтаксис-Помощник в меню 1С:

Из описания видно, что команда СрезПоследних имеет 2 параметра:

  • Период;
  • Отбор.

Если параметр Период не указывается, место в команде остается пустым, а через запятую указывается параметр отбора, в нашем случае: ТипЦен. Исправленная команда выглядит следующим образом: СрезПоследних(, ТипЦен = &ТипЦен ).

После исправления команды запустите отчет в 1С по кнопке Главное меню — Файл — Открыть:

Теперь отчет формируется правильно!

Скачать внешний отчет Вывод списка цен номенклатуры

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

При поиске ссылок на контрагента в отчете 1С появляется ошибка Несоответствие типов (параметр номер 2):

1С сообщает место ошибки — Параметр номер 2 при нажатии кнопки ERROR.

Для ее исправления необходимо открыть отчет в Конфигураторе 1С и найти в модуле формы строчку с командой НайтиПоСсылкам.

Правильность написания команды проверьте по выделенной кнопке Синтаксис-Помощник в меню 1С:

Из описания идно, что команда НайтиПоСсылкам имеет 4 параметра:

  • СписокСсылок;
  • ОбластьПоиска;
  • ВключитьОбъекты;
  • ИсключитьОбъекты.

Параметр ОбластьПоиска имеет тип «массив», а в нашем примере указано число 1: НайтиПоСсылкам(МассивПоиска, 1, , МассивИсключений). Область поиска — необязательный параметр, поэтому исправленная команда может выглядеть следующим образом: НайтиПоСсылкам(МассивПоиска,  ,  , МассивИсключений).

После исправления команды запустите внешний отчет в 1С по кнопке Главное меню — Файл — Открыть:

Теперь команда поиска ссылок на контрагента отрабатывает правильно.

Скачать внешний отчет Поиск ссылок на контрагента

Вот так можно получить ошибку 1С Несоответствие типов в 1С, поэтому контролируйте правильность указания параметров в запросах и командах 1С в Синтаксис-Помощнике!

См. также:

  • Неоднозначное поле в запросе
  • Исправление технических ошибок при работе с 1С:Бухгалтерия: для начинающих и опытных пользователей
  • Метод объекта не обнаружен
  • Неизвестный идентификатор формы
  • Переменная не определена

Если Вы еще не подписаны:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

После оформления подписки вам станут доступны все материалы Бухэксперт8, записи поддерживающих эфиров и вы сможете задавать любые вопросы по программе 1С.

Подписывайтесь на наши YouTube и Telegram чтобы не пропустить
важные изменения 1С и законодательства

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Ошибка при установке значения атрибута контекста (СписокВыбора)

Данная ошибка возникает при попытке установить полю с типом «СписокЗначений» значение неподходящего типа. Например: Неопределено. 

Полная ошибка

Ошибка при установке значения атрибута контекста (СписокВыбора)
ЭлементыФормы.Поставщик.СписокВыбора = КЭШируемые.СписокПоставщиков(Контрагент);
по причине:
Несоответствие типов

Скриншот:oshibka-ustanovki-spiska-vybora

Причина: В функции, которая формировала данный список (КЭШируемые.СписокПоставщиков()) отсутствовал возврат значения.


В экспериментальных целях:

передал значение с типом «Массив»  — текст ошибки не поменялся.

В итоге переписал на более универсальный метод ЗагрузитьЗначения() самого элемента диалога:

ЭлементыФормы.Поставщик.СписокВыбора.ЗагрузитьЗначения(КЭШируемые.СписокПоставщиков(Контрагент));

Реклама — искусство превращения полуправды в полную ложь.

Здравствуйте, помогите пожалуйста с проблемой.
У меня внешняя обработка, загрузка xml файла в дерево значений, и выдает ошибку {Обработка.Обработка1.Форма.Форма.Форма(37)}: Ошибка при вызове метода контекста (УстановитьСтроку)
   Чтение.УстановитьСтроку(ТекстXML);
по причине:
Несоответствие типов (параметр номер ‘1’)
Что нужно сделать?? Я начинающий программист в 1с, и поэтому не очень сильна  в этом.

Вот полностью мой код модуля.

&НаКлиенте
Процедура Файл(Команда)
   Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
   Диалог.Заголовок = «Выбор документа»;
   Диалог.Фильтр = «Документы XML (*.xml, *.xdr, *.xsd, *.xsl)|*.xml;*.xdr;*.xsd;*.xsl|Все файлы|*.*|»;
   Если Диалог.Выбрать() Тогда
      ТекстXML.Прочитать(Диалог.ПолноеИмяФайла);
      Документ  = ТекстXML.ПолучитьТекст();
      Заголовок = «Просмотр XML-документа: » + Диалог.ПолноеИмяФайла;

         КонецЕсли;

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

&НаКлиенте
Процедура КнИмпорт(Команда)
Если НЕ ПустаяСтрока(ТекстXML) Тогда
            Дерево = Импорт1();

                              Если Объект.Дерево.Строки.Количество() > 0 Тогда
         ЭлементДерево = ТекстXML.Объект.Дерево;
         ЭлементДерево.СоздатьКолонки();
         ЭлементДерево.Колонки.Удалить(ЭлементДерево.Колонки[«Атрибуты»]);

               КонецЕсли;
   КонецЕсли;
КонецПроцедуры
&НаСервере
Функция Импорт1() Экспорт
   Чтение = Новый ЧтениеXML();
   Чтение.УстановитьСтроку(ТекстXML);
   ДеревоЗначений = Новый ДеревоЗначений();

   ДеревоЗначений.Колонки.Добавить(«Элемент»);
   ДеревоЗначений.Колонки.Добавить(«Текст»);
   ДеревоЗначений.Колонки.Добавить(«Атрибуты»);
   Корень = ДеревоЗначений.Строки.Добавить();
   Корень.Элемент = Чтение.Имя;
   Рекурсия(Корень, Чтение);
   Возврат ДеревоЗначений;
КонецФункции
Процедура Рекурсия(СтрокаДерева, Чтение)
   Если Чтение.КоличествоАтрибутов() > 0 Тогда
      АтрибутыСоответствие = Новый Соответствие();
      Пока Чтение.ПрочитатьАтрибут() Цикл
         АтрибутыСоответствие.Вставить(Чтение.Имя, Чтение.Значение);
      КонецЦикла;
      СтрокаДерева.Атрибуты = АтрибутыСоответствие;
   КонецЕсли;
   //Состояние(Чтение.Имя);
   Пока Чтение.Прочитать() Цикл
      Если Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
         Прервать;
      ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.Текст Тогда
         СтрокаДерева.Текст = Чтение.Значение;
      ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
         Дочерний = СтрокаДерева.Строки.Добавить();
         Дочерний.Элемент = Чтение.Имя;
         Рекурсия(Дочерний, Чтение);
      КонецЕсли;
         КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура Дерево1ПриАктивизацииСтроки(Элемент)
   Объект.Атрибуты.Очистить();
   Данные = Элемент.ТекущиеДанные;
   Если Данные <> Неопределено Тогда
      АтрибутыДерева = Данные.Атрибуты;
      Если ТипЗнч(АтрибутыДерева) = Тип(«Соответствие») Тогда
         Для каждого АтрибутДерева из АтрибутыДерева Цикл
            СтрокаТаблицы                  = Объект.Атрибуты.Добавить();
            СтрокаТаблицы.Атрибут          = АтрибутДерева.Ключ;
            СтрокаТаблицы.ЗначениеАтрибута = АтрибутДерева.Значение;
         КонецЦикла;
      КонецЕсли;
   КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура Дерево1Выбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
   ОткрытьЗначение(ВыбраннаяСтрока.Текст);
КонецПроцедуры

&НаКлиенте
Процедура АтрибутыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
      ОткрытьЗначение(ВыбраннаяСтрока.ЗначениеАтрибута);

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

Процедура ОчиститьТаблицы() Экспорт
   Объект.Дерево.Строки.Очистить();
   Объект.Дерево.Колонки.Очистить();
   Объект.Атрибуты.Очистить();
КонецПроцедуры



1 февраля, 2017
21 апреля, 2017

Дано

  • 1С конфигурация бухгалтерия предприятия 2.0
  • Ошибка печати ПКО (приходный кассовый ордер):
{ОбщаяФорма.ФормаПечати.Форма(18)}: Ошибка при установке значения атрибута контекста
   ЭлементыФормы.ПолеДокумента.ПолеСверху
по причине:
Несоответствие типов

Анализ проблемы

На первый взгляд все ужасно:

  • в конфигураторе видно, что система пытается выполнить строчку кода:
ЭлементыФормы.ПолеДокумента.ПолеСверху          = ПечатныйДокумент.ПолеСверху;
  • в отладке видно, что обе переменные типа “Число”,
  • синтакс-помощник говорит что:
ТабличныйДокумент (SpreadsheetDocument)
ПолеСверху (TopMargin)
Использование:

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

То есть ПолеСверху доступно для записи и обе переменные типа число и все тут корректно, но система говорит “Несоответствие типов” – полный бред.

Решение

На решение проблемы натолкнула фраза “Ошибка при установке значения атрибута контекста”, значит что-то не так с доступом.
Оказалось в базе нет ни одного пользователя и работа осуществлялась под пользователем НеАвторизован. После создания пользователя с необходимыми правами все заработало.

Дополнено 2017.04.10

Проблема повторилась, но уже при печати РТУ и с использованием уже настроенной учетной записи.

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

Понравилась статья? Поделить с друзьями:
  • Ошибка при установке значения атрибута контекста отправитель
  • Ошибка при установке значения атрибута контекста отображение
  • Ошибка при установке значения атрибута контекста номеротправленного
  • Ошибка при установке значения атрибута контекста неверный тип значения
  • Ошибка при установке значения атрибута контекста нарушение прав доступа