Ошибка при вызове метода контекста найтипонаименованию несоответствие типов параметр номер 4

  

falselight

08.05.19 — 14:09

Ошибка выдается вот на эту строку

Справочники.Номенклатура.НайтиПоНаименованию(«Хлеб»,1)

Из за чего это?

  

butterbean

1 — 08.05.19 — 14:10

дык та же написано что за ошибка, хотя и так видно, что кривой второй параметр

  

falselight

2 — 08.05.19 — 14:13

(1) Второй параметр, истина или 1 может же быть?!

  

1Сергей

3 — 08.05.19 — 14:14

(2) CTRL+F1

  

falselight

4 — 08.05.19 — 14:20

(3) И что там? Всегдя так пользовался.

Разбираюсь. Гружу большой файл.

  

sqr4

5 — 08.05.19 — 14:22

(4) вместо булево число пихал?

  

butterbean

6 — 08.05.19 — 14:23

(4) ты бы хоть описание ошибки озвучил, там же все написано

  

falselight

7 — 08.05.19 — 14:23

(5) Булево эквивалент 1, 0

  

falselight

8 — 08.05.19 — 14:24

(6) не тот индекс сувал видимо, гружу далее

  

Tonik992

9 — 08.05.19 — 14:26

(7) Если сигнатура метода предполагает определенный тип переменной, то он должен быть именно таким.

Не надо искать какие-то другие доводы.

  

falselight

10 — 08.05.19 — 14:27

Реально ругается!!!! То находит то нет!!!!!!

  

falselight

11 — 08.05.19 — 14:28

(9) На это такая же ошибка!!!

Справочники.БазовыеЕдиницыИзмерения.НайтиПоНаименованию(МассивКолонок[4], Истина)

  

sqr4

12 — 08.05.19 — 14:29

(9) а чему будет равно (не 1)

А (не 0) ?

  

sqr4

13 — 08.05.19 — 14:29

(11) похоже не строка в наименование идет?

  

sqr4

14 — 08.05.19 — 14:30

Остановка по ошибке все как надо показывает?

  

falselight

15 — 08.05.19 — 14:31

Вот проверяю

НайденнаяБазоваяЕдиницаИзмерения = Справочники.БазовыеЕдиницыИзмерения.НайтиПоНаименованию(МассивКолонок[4], 1);

Все находит. И идет строка «шт»

И находится элемент. Но на одном месте ломается ((((

Отладчик показывает что так же идет строка «шт»

И там, на родителе тоже.

  

Tonik992

16 — 08.05.19 — 14:32

(12) Есть сигнатура метода. Лучше придерживаться её.

  

mikecool

17 — 08.05.19 — 14:32

сборище телепатов

  

falselight

18 — 08.05.19 — 14:33

(16) Не имеет значения. Дело не в этом. Если писать истина, такая же ошибка.

Я пытаюсь понять в чем причина?!

  

Tonik992

19 — 08.05.19 — 14:37

(18) такая же, это какая? скрин давайте сюда

  

mikecool

20 — 08.05.19 — 14:38

(19) не спугни, пусть найдет

  

sqr4

21 — 08.05.19 — 14:38

(15) кроме как неограниченной строки не могу ничего предположить

  

falselight

22 — 08.05.19 — 14:41

Гружу файл. Просмотрел как грузятся проблемные места все нормально.

Находятся элементы и прописываются.

Отлавливаю проблему.

Когда функция просто не отрабатывает, поиска по наименованию (((

Хотя так же все нормально передается туда для поиска.

  

palsergeich

23 — 08.05.19 — 14:42

Потому что может быть не «хлеб»

А «хлеб »

Визуально одно и тоже, но при поиске по полному соответствию это не одно и то же.

Вариантов невидимых символов достаточно много, причем некоторые могут крашить сеанс

  

falselight

24 — 08.05.19 — 14:44

(23) Я их отлавливаю. Должно быть все нормально, без пробелов!

  

falselight

25 — 08.05.19 — 14:45

Вот сломалось, —

МассивКолонок[4] = «шт»   — как и всегда

Справочники.БазовыеЕдиницыИзмерения.НайтиПоНаименованию(МассивКолонок[4], 1) = Ошибка при вызове метода контекста (НайтиПоНаименованию)

Почему? И на родителе так же.

  

palsergeich

26 — 08.05.19 — 14:45

А может быть что часть символов не в том языке.

Постоянно такое с буквой с

  

falselight

27 — 08.05.19 — 14:46

(26) Ну так найдена была бы пустая ссылка, но не ошибка.

То работает то нет. Так же строка передается!

  

palsergeich

28 — 08.05.19 — 14:47

(27) а там для подчинённых справочников разве не надо владельца указывать?

  

falselight

29 — 08.05.19 — 14:48

БазовыеЕдиницыИзмерения — независимый справочник!

  

falselight

30 — 08.05.19 — 14:49

И тут ошибка

                Если МассивКолонок[23] <> «» Тогда

                    ЭлементНоменклатуры.Родитель = Справочники.Номенклатура.НайтиПоНаименованию(МассивКолонок[23], 1);

                КонецЕсли;

МассивКолонок[23] = «СЫР» , все должно работать. Или находит элемент или пустую ссылку.

Веть до работало.

А на 2991 элементе ломается!

  

palsergeich

31 — 08.05.19 — 14:49

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

Сделай соответствие символьного представления и ссылки

  

falselight

32 — 08.05.19 — 14:50

(31)  Это перегрузка. Для каждой строки свои данные. Вопрос не в этом.

  

sqr4

33 — 08.05.19 — 14:51

(24) все же сомнения терзают, там не пробел будет, а нечитаемый неправильный вызывающий ошибку символ, который СОКРЛП не отловит и СТРЗаменить

  

falselight

34 — 08.05.19 — 14:52

На этой строке ломается. Ну и что тут не так?

«Эл.»,»00000968″,»Набор для приготовления Адыгейского сыра»,»»,»шт»,»0″,»Товар (пр. ТМЦ)»,»»,»0″,»0″,»»,»шт»,»»,»Набор для приготовления Адыгейского сыра»,»Без НДС»,»Без налога»,»»,»»,»»,»0″,»»,»»,»0″,»СЫР»,»00000975″

  

falselight

35 — 08.05.19 — 14:52

Все как нужно!

  

falselight

36 — 08.05.19 — 14:52

(33) «шт» — тут какой может быть пробел?

  

palsergeich

37 — 08.05.19 — 14:53

(32) Да посрать что это)

Один раз шт. создал, во второй ее точно создавать не будешь. Ну и закешируй.

Это хотя бы с точки зрения оптимизации очевидное решение.

А так как телепатические митохондрии на сегодня у меня устали могу сказать одно.

Или делай устойчивый пример с ошибкой, которую можно воспроизвести на демо, или иди на v8@1c.ru

  

palsergeich

38 — 08.05.19 — 14:54

(34) Да понятия не имею.

Без кода, без возможности воспроизвести — это шоу «Экстрасенсы»

  

mikecool

39 — 08.05.19 — 14:54

надо больше восклицательных знаков и меньше рассказывать о проблеме!!!

  

falselight

40 — 08.05.19 — 14:55

(38)  

                Если МассивКолонок[4] <> «» Тогда

                    НайденнаяБазоваяЕдиницаИзмерения = Справочники.БазовыеЕдиницыИзмерения.НайтиПоНаименованию(МассивКолонок[4], 1);

                    Если НайденнаяБазоваяЕдиницаИзмерения <> Справочники.БазовыеЕдиницыИзмерения.ПустаяСсылка() Тогда

                        ЭлементНоменклатуры.ЕдиницаИзмерения = НайденнаяБазоваяЕдиницаИзмерения;

                    КонецЕсли;

                КонецЕсли;

  

НЕА123

41 — 08.05.19 — 14:57

а мне нравится ветка. настоящая пятница.

  

palsergeich

42 — 08.05.19 — 14:57

(40) И что?

Может У тебя СТРРАЗДЕЛИТЬ(Строка,»,»,Истина)

  

falselight

43 — 08.05.19 — 14:58

(37) Шт есть в справочнике, не создавал, а просто нахожу

  

palsergeich

44 — 08.05.19 — 14:58

(42) Ой Может У тебя СТРРАЗДЕЛИТЬ(Строка,»,»,ЛОЖЬ)

Баз кода полного и нормального примера иди на v8@1c.ru

  

falselight

45 — 08.05.19 — 14:59

(44) Сейчас отлаживаю эту процедуру, по нажатию кнопке. Ошибки в ней.

&НаСервере

Процедура ЗагрузитьНоменклатуруНаСервере()

    СчЭл  = 1;

    Текст = Новый ТекстовыйДокумент;

    Текст.Прочитать(ИмяФайлаЗагрузкиНоменклатуры);

    НачатьТранзакцию();

    Для НомерСтроки = 1 по Текст.КоличествоСтрок() Цикл

        Строка        = Текст.ПолучитьСтроку(НомерСтроки);

        МассивКолонок = РазложитьСтрокуВМассивПодстрок(Строка, Разделитель);

        //

        Для Индекс = 0 По МассивКолонок.Количество() — 1 Цикл

            МассивКолонок[Индекс] = СтрЗаменить( МассивКолонок[Индекс], «»»», «» );

        КонецЦикла;

        //

        Если МассивКолонок[0] = «Гр.» Тогда

            //

            // Группа                  // 1.  [0]

            // Код                     // 2.  [1]

            // Наименование            // 3.  [2]

            //

            // Артикул                // 4.  [3]

            // БазоваяЕдиница         // 5.  [4]

            // Весовой                // 6.  [5]

            // ВидНоменклатуры        // 7.  [6]

            // Комментарий            // 8.  [7]

            // МинОстаток             // 9.  [8]

            // НеВключатьВпрайс       // 10. [9]

            // НомерГТД               // 11. [10]

            // ОсновнаяЕдиница        // 12. [11]

            // ОсновноеСвойство       // 13. [12]

            // ПолнНаименование       // 14. [13]

            // СтавкаНДС              // 15. [14]

            // СтавкаНП               // 16. [15]

            // СтранаПроисхождения    // 17. [16]

            // Производитель          // 18. [17]

            // Импортер               // 19. [18]

            // АлкогольнаяПродукция   // 20. [19]

            // ВидПродукции           // 21. [20]

            // ВидЛицензии            // 22. [21]

            // КоэффПересчетаДал      // 23. [22]

            //                              

            // Родитель.Наименование  // 24. [23]        

            // Родитель.Код           // 25. [24]        

            //

            НайденнаяГруппа = Справочники.Номенклатура.НайтиПоНаименованию(МассивКолонок[2],1);

            Если НайденнаяГруппа = Справочники.Номенклатура.ПустаяСсылка() Тогда

                ГруппаНоменклатуры                       = Справочники.Номенклатура.СоздатьГруппу();

                ГруппаНоменклатуры.Наименование       = МассивКолонок[2];

                //ГруппаКонтрагентов.НаименованиеПолное = МассивКолонок[2];

                //ГруппаНоменклатуры.Наименование       = СтрЗаменить( МассивКолонок[2], «»»», «» );

                Если МассивКолонок[11] <> «» Тогда

                    ГруппаНоменклатуры.Родитель = Справочники.Номенклатура.НайтиПоНаименованию(МассивКолонок[23], 1);

                КонецЕсли;

                ГруппаНоменклатуры.Записать();

                Сообщить(«Создана группа » + ГруппаНоменклатуры.Наименование);

            Иначе

                Сообщить(«Пропущена группа » + МассивКолонок[2]);

            КонецЕсли;

        ИначеЕсли МассивКолонок[0] = «Эл.» Тогда

            //

            // Элемент                  // 1.  [0]

            // Код                     // 2.  [1]

            // Наименование            // 3.  [2]

            //

            // Артикул                // 4.  [3]

            // БазоваяЕдиница         // 5.  [4]

            // Весовой                // 6.  [5]

            // ВидНоменклатуры        // 7.  [6]

            // Комментарий            // 8.  [7]

            // МинОстаток             // 9.  [8]

            // НеВключатьВпрайс       // 10. [9]

            // НомерГТД               // 11. [10]

            // ОсновнаяЕдиница        // 12. [11]

            // ОсновноеСвойство       // 13. [12]

            // ПолнНаименование       // 14. [13]

            // СтавкаНДС              // 15. [14]

            // СтавкаНП               // 16. [15]

            // СтранаПроисхождения    // 17. [16]

            // Производитель          // 18. [17]

            // Импортер               // 19. [18]

            // АлкогольнаяПродукция   // 20. [19]

            // ВидПродукции           // 21. [20]

            // ВидЛицензии            // 22. [21]

            // КоэффПересчетаДал      // 23. [22]

            //                              

            // Родитель.Наименование  // 24. [23]        

            // Родитель.Код           // 25. [24]        

            //

            НайденныйЭлемент = Справочники.Номенклатура.НайтиПоНаименованию(МассивКолонок[2],1);

            Если НайденныйЭлемент = Справочники.Номенклатура.ПустаяСсылка() Тогда

                ЭлементНоменклатуры              = Справочники.Номенклатура.СоздатьЭлемент();

                // Наименование            // 3.  [2]

                ЭлементНоменклатуры.Наименование = МассивКолонок[2];

                // Артикул                // 4.  [3]

                Если МассивКолонок[3] <> «» Тогда

                    ЭлементНоменклатуры.Артикул = МассивКолонок[3];

                КонецЕсли;

                // БазоваяЕдиница         // 5.  [4]

                Если МассивКолонок[4] <> «» Тогда

                    НайденнаяБазоваяЕдиницаИзмерения = Справочники.БазовыеЕдиницыИзмерения.НайтиПоНаименованию(МассивКолонок[4], 1);

                    Если НайденнаяБазоваяЕдиницаИзмерения <> Справочники.БазовыеЕдиницыИзмерения.ПустаяСсылка() Тогда

                        ЭлементНоменклатуры.ЕдиницаИзмерения = НайденнаяБазоваяЕдиницаИзмерения;

                    КонецЕсли;

                КонецЕсли;

                // Весовой                // 6.  [5]

                Если МассивКолонок[5] <> «» Тогда

                    Если МассивКолонок[5] = «Истина» или МассивКолонок[5] = «1» Тогда

                        ЭлементНоменклатуры.Весовой = Истина;

                    Иначе

                        ЭлементНоменклатуры.Весовой = Ложь;

                    КонецЕсли;

                КонецЕсли;

                // ВидНоменклатуры        // 7.  [6]

                Если МассивКолонок[6] <> «» Тогда

                    НайденныйВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию(МассивКолонок[6], 1);

                    Если НайденныйВидНоменклатуры <> Справочники.ВидыНоменклатуры.ПустаяСсылка() Тогда

                        ЭлементНоменклатуры.ВидНоменклатуры = НайденныйВидНоменклатуры;

                    КонецЕсли;

                КонецЕсли;

                // Комментарий            // 8.  [7]

                //Если МассивКолонок[7] <> «»»»»» и МассивКолонок[7] <> «»»0″»» Тогда

                //    ЭлементНоменклатуры.Комментарий = МассивКолонок[7];

                //КонецЕсли;

                // МинОстаток             // 9.  [8]

                // НеВключатьВпрайс       // 10. [9]

                // НомерГТД               // 11. [10]

                

                // ОсновнаяЕдиница        // 12. [11]

                //Если МассивКолонок[11] <> «»»»»» Тогда

                //    ЭлементНоменклатуры. = МассивКолонок[11];

                //КонецЕсли;

                // ОсновноеСвойство       // 13. [12]

                // ПолнНаименование       // 14. [13]

                Если МассивКолонок[13] <> «» Тогда

                    ЭлементНоменклатуры.НаименованиеПолное = МассивКолонок[13];

                КонецЕсли;

                // СтавкаНДС              // 15. [14]

                Если МассивКолонок[14] <> «» Тогда

                    Если МассивКолонок[14] = «Без НДС» Тогда

                        ЭлементНоменклатуры.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;

                    ИначеЕсли МассивКолонок[14] = «НДС 18» Тогда

                        ЭлементНоменклатуры.СтавкаНДС = Перечисления.СтавкиНДС.НДС18;

                    ИначеЕсли МассивКолонок[14] = «НДС 20» Тогда

                        ЭлементНоменклатуры.СтавкаНДС = Перечисления.СтавкиНДС.НДС20;

                    КонецЕсли;

                КонецЕсли;

                // СтавкаНП               // 16. [15]

                // СтранаПроисхождения    // 17. [16]

                Если МассивКолонок[16] <> «» Тогда

                    НайденнаяСтранаПроисхождения = Справочники.СтраныМира.НайтиПоНаименованию(МассивКолонок[16], 1);

                    Если НайденнаяСтранаПроисхождения <> Справочники.СтраныМира.ПустаяСсылка() Тогда

                        ЭлементНоменклатуры.СтранаПроисхождения = НайденнаяСтранаПроисхождения;

                    КонецЕсли;

                КонецЕсли;

                // Производитель          // 18. [17]

                Если МассивКолонок[17] <> «» Тогда

                    НайденныйПроизводитель = Справочники.Контрагенты.НайтиПоНаименованию(МассивКолонок[17], 1);

                    Если НайденныйПроизводитель <> Справочники.Контрагенты.ПустаяСсылка() Тогда

                        ЭлементНоменклатуры.Производитель = НайденныйПроизводитель;

                    КонецЕсли;

                КонецЕсли;

                // Импортер               // 19. [18]

                // АлкогольнаяПродукция   // 20. [19]

                Если МассивКолонок[19] <> «» Тогда

                    Если МассивКолонок[19] = «Истина» Тогда

                        ЭлементНоменклатуры.АлкогольнаяПродукция = Истина;

                    Иначе

                        ЭлементНоменклатуры.АлкогольнаяПродукция = Ложь;

                    КонецЕсли;

                КонецЕсли;

                // ВидПродукции           // 21. [20]

                Если МассивКолонок[20] <> «» Тогда

                    НайденныйВидАлкПродукции = Справочники.ВидыАлкогольнойПродукции.НайтиПоНаименованию(МассивКолонок[20], 1);

                    Если НайденныйВидАлкПродукции <> Справочники.ВидыАлкогольнойПродукции.ПустаяСсылка() Тогда

                        ЭлементНоменклатуры.ВидАлкогольнойПродукцииЕГАИС = МассивКолонок[20];

                    КонецЕсли;

                КонецЕсли;

                // ВидЛицензии            // 22. [21]

                // КоэффПересчетаДал      // 23. [22]

                //                              

                // Родитель.Наименование  // 24. [23]        

                Если МассивКолонок[23] <> «» Тогда

                    ЭлементНоменклатуры.Родитель = Справочники.Номенклатура.НайтиПоНаименованию(МассивКолонок[23], 1);

                КонецЕсли;

                // Родитель.Код           // 25. [24]        

                //

                ЭлементНоменклатуры.Записать();                

                Сообщить(«Создан элемент » + ЭлементНоменклатуры.Наименование);

            Иначе

                Сообщить(«Пропущен элемент » + МассивКолонок[2]);

            КонецЕсли;

        КонецЕсли;

        СчЭл = СчЭл + 1;

    КонецЦикла;

    ЗафиксироватьТранзакцию();

    Сообщить(«Загружено: » + СТРОКА(СчЭл) + » элементов.»);

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

//

  

mikecool

46 — 08.05.19 — 15:00

(44) не, надо сразув Кремль писать )

  

falselight

47 — 08.05.19 — 15:02

Вот. Все работает. Но иногда идет эта ошибка и все, на таких же данны!

http://joxi.ru/Vm6GePvf4jOba2

  

sqr4

48 — 08.05.19 — 15:04

отладка — останавливать по ошибке

  

trad

49 — 08.05.19 — 15:04

вангую, есть попытка в функции РазложитьСтрокуВМассивПодстрок()

  

sqr4

50 — 08.05.19 — 15:04

Ты ведь это делал да

  

lodger

51 — 08.05.19 — 15:04

Если МассивКолонок[4] <> «» Тогда

поменять на

Если ТипЗнч(МассивКолонок[4]) = Тип(«Строка») И НЕ ПустаяСтрока(МассивКолонок[4]) Тогда

  

kda26

52 — 08.05.19 — 15:05

(47)  Добавить в условие проверку на Неопределено

  

falselight

53 — 08.05.19 — 15:11

(48) я так и останавливаюсь на строке 2000 с лишним

(51)(52) Да можно многого добавить, но я же смотрю в отладчике, в функцию передаются верные данные, а идет ошибка.

Добавлю конечно проверки.

  

sqr4

54 — 08.05.19 — 15:12

а ну и тестирование исправление, кэш и прочая фигня

  

falselight

55 — 08.05.19 — 15:13

(54) Даже для пустой базы? Я туда ни разу ещё не загрузил эти элементы номенклатуры.

  

sqr4

56 — 08.05.19 — 15:15

(55) не знаю. у меня правило, если происходит неведомая херня, нужно сначала делать это, а потом только лезть за бубном

  

falselight

57 — 08.05.19 — 15:16

(56) Обычно, сколько кэш не чистил не помогало (

  

sqr4

58 — 08.05.19 — 15:18

(57) ну тогда вперед к админам за снастью если своей нет и вызывать помощника.

  

Галахад

59 — 08.05.19 — 15:19

(47) Точно останова явно не на ошибке.

  

sqr4

60 — 08.05.19 — 15:21

(59) кстати да

  

  

falselight

61 — 08.05.19 — 15:21

Кэш почищу сейчас догрузится.

Стоит галка останавливаться по ошибке.

Ошибка видимо возникает при записи элемента.

Я смотрю что там в нем, вижу проблему в единицах измерения и родителе.

Но из за чего не пойму.

  

sqr4

62 — 08.05.19 — 15:23

(61) чё мля

  

sqr4

63 — 08.05.19 — 15:23

иди накуй…

  

palsergeich

64 — 08.05.19 — 15:24

(61) платформенная проверка какая то.

Сделай обменДанными.загрузка = истина.

Потом глазами увидишь

  

falselight

65 — 08.05.19 — 15:24

Стоит галка при отладке останавливаться по ошибке. Вот на ней и вылетает.

  

falselight

66 — 08.05.19 — 15:24

(64) А это где сделать?

  

palsergeich

67 — 08.05.19 — 15:25

Спр = создать элемент или ПолучитьОбъект

Спр.обменДанными.загрузка = истина

Спр.записать()

  

palsergeich

68 — 08.05.19 — 15:26

Ход такой

  

falselight

69 — 08.05.19 — 15:26

(67) А что именно это даст?

  

palsergeich

70 — 08.05.19 — 15:26

(69) отключит платформенные проверки

  

palsergeich

71 — 08.05.19 — 15:27

У тебя ошибка не в найти по наименованию, а некорректная обработка исключения ранее

  

palsergeich

72 — 08.05.19 — 15:28

Или ошибка заполнения обязательных на уровне платформы полей: наименование, владелец (если справочник подчинённый) и тд

  

falselight

73 — 08.05.19 — 15:28

(71) У меня же нет попытки исключения?

Да ранее я вижу что в родителе и единицах измерения.

Но туда идут нормальные данные. Буду разбираться.

Видимо энергия ушла.

  

falselight

74 — 08.05.19 — 15:29

(72) Единицу измерения обязательно заполнять, выдавать ошибку стоит.

  

palsergeich

75 — 08.05.19 — 15:29

(74) это не валило бы в исключение

  

palsergeich

76 — 08.05.19 — 15:32

(74) технически это отказ=истина в процедуре ПроверкаЗаполнения, но не исключение

  

trad

77 — 08.05.19 — 15:34

  

falselight

78 — 08.05.19 — 15:38

(77)

Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = «,»)

    МассивСтрок = Новый Массив();

    Если Разделитель = » » Тогда

        Стр = СокрЛП(Стр);

        Пока Истина Цикл

            Поз = Найти(Стр,Разделитель);

            Если Поз=0 Тогда

                МассивСтрок.Добавить(Стр);

                Возврат МассивСтрок;

            КонецЕсли;

            МассивСтрок.Добавить(Лев(Стр,Поз-1));

            Стр = СокрЛ(Сред(Стр,Поз));

        КонецЦикла;

    Иначе

        ДлинаРазделителя = СтрДлина(Разделитель);

        Пока Истина Цикл

            Поз = Найти(Стр,Разделитель);

            Если Поз=0 Тогда

                МассивСтрок.Добавить(Стр);

                Возврат МассивСтрок;

            КонецЕсли;

            МассивСтрок.Добавить(Лев(Стр,Поз-1));

            Стр = Сред(Стр,Поз+ДлинаРазделителя);

        КонецЦикла;

    КонецЕсли;

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

  

falselight

79 — 08.05.19 — 15:54

  

palsergeich

80 — 08.05.19 — 15:55

Я ж говорю — платформенные проверки

  

hhhh

81 — 08.05.19 — 16:01

(79) наверно в поле группа фигачишь элемент. Такое 1с не прощает.

  

Галахад

82 — 08.05.19 — 16:19

Это какая-то Санта-Барбара…

  

falselight

83 — 08.05.19 — 16:33

(81) В родителя всмысле??????

  

hhhh

84 — 08.05.19 — 16:39

(83) в общем пройдись по справочнику номенклатуры где-то есть одинаковое наименование у элемента и группы. Или если самому лень, посади за проверку девочку-восьмиклассницу, пусть проштудирует справочник от и до.

  

falselight

85 — 08.05.19 — 16:41

(81) Не должно такого быть.

(84) Гружу структуру из другой базы. Я пока не могу записать ни одного элемента. Так как грузится в транзакции.

Мне не лень. Я пытаюсь разобраться. Но такого не могло в принципе быть. Надеюсь докапаться до проблемы.

  

falselight

86 — 08.05.19 — 16:43

(84) смотрю в файле не нахожу.

Поставил останавливаться по ошибке.

Остановка же будет на проблемном элементе?

Ну вот, пока я в отладчеке не увидел там проблемы.

  

mikecool

87 — 08.05.19 — 16:44

(82) +100500 серия )

  

falselight

88 — 08.05.19 — 16:46

(87) Хорошо, у вас в 1с все всегда хорошо работает!

  

mikecool

89 — 08.05.19 — 16:48

(88) да,  как то загрузки из текстовых файлов с одного прохода отладки работают

  

hhhh

90 — 08.05.19 — 16:49

(85) ну, грузи без транзакции, ну ты чудик.

  

mikecool

91 — 08.05.19 — 16:49

а ветка больше на бложек похожа

  

falselight

92 — 08.05.19 — 16:50

(90) Ошибку нужно отловить. Мне нужно что бы все хорошо грузилось. Пока первичные данные.

Потом остальное ещё цеплять.

И так долго грузится. Без транзакции ещё дольше будет.

Я же отлаживаю.

  

mikecool

93 — 08.05.19 — 16:51

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

  

Масянька

94 — 08.05.19 — 16:53

Лучше день потерять — зато потом за пять минут долететь (С)

  

sqr4

95 — 08.05.19 — 16:54

(92) без запросов в цикле еще быстрее

  

Rovan

96 — 08.05.19 — 16:54

(9) привычка писать 1 вместо «истина» выдает «клюшечника» со стажем

  

falselight

97 — 08.05.19 — 16:55

вот не находится группа сыр и идет ошибка

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

http://joxi.ru/gmvaZ43tqv5b5r

  

falselight

98 — 08.05.19 — 16:55

(96) Это никакого значения не имеет.

  

falselight

99 — 08.05.19 — 16:56

Что с этим (97) делать. Реально не вижу в чем проблема?!!!

  

Rovan

100 — 08.05.19 — 16:59

(97) а полностью ошибка вероятно звучит так

Ошибка при вызове метода контекста (НайтиПоНаименованию): В данной транзакции уже происходили ошибки!

https://downloads.v8.1c.ru/content/Conversion/ErrConversion_2_0_24_1.htm

Используется кусок кода(про убиться об стену за поиск — не надо): в результате: Ошибка при выполнении обработчика — ‘ОбработкаЗаполнения’ по причине: {Документ.ПоступлениеТоваровУслуг.МодульОбъекта(6020)}: Ошибка при вызове метода контекста (НайтиПоНаименованию) по причине: Несоответствие типов (параметр номер ‘2’) читаю СП: ПланСчетовМенеджер.<Имя плана счетов> (ChartOfAccountsManager.<Имя плана счетов>) НайтиПоНаименованию (FindByDescription) Синтаксис: НайтиПоНаименованию(<Наименование>, <ТочноеСоответствие>, <Родитель>) Параметры: Тип: Строка. Строка, содержащая искомое наименование. Тип: Булево. Определяет режим поиска по полному соответствию. Поиск будет успешным, если строка поиска: в случае значения параметра Ложь — будет соответствовать левой части наименования; в случае значения параметра Истина — будет полностью совпадать с наименованием (за исключением «хвостовых» пробелов в наименовании). Значение по умолчанию: Ложь <Родитель> (необязательный) Тип: ПланСчетовСсылка. Родитель, в пределах которого нужно выполнять поиск. Если не указан, то поиск будет проводиться по всем счетам. Что же я делаю не так?

да, так получается но сам факт интересен :)

Жесть… Про предопределенные элементы когда-нибудь слышали?

епт, ну прочитай первую строку… я переписываю то что досталось, вот и наткнулся

может потому..что внутри искомого значения используются скобки — (от поставщиков)? может попробовать как то убрать их?

+6 а хотя..вообще какое то странное наименование Плана счетов.. Нельзя ли вручную как то его откорректировать?

Пиши в 1Ц. Родитель обязателен, не верь СП. Указывай родителя и заработает. Вот так работает: ПланыСчетов.Хозрасчетный.НайтиПоНаименованию(«Товары в пути от поставщи»,Ложь, ПланыСчетов.Хозрасчетный.ПустаяСсылка)

тогда не понятен посыл на параметр 2

Он не указан, т.е. Неопределено. А 1С ссылку ждет.

по СП 2 параметр — точное соответствие и также как и 3 — необязателен я все таки читаю иногда СП и стараюсь ему верить :)

Что курил? «Точное соответствие» — это про первый параметр.

неа, еще нет :) чего то много начинаю спотыкаться после перехода

НайтиПоНаименованию(<Наименование>, <ТочноеСоответствие>, <Родитель>) счет идет с нуля?

Байты с нуля, ножки с единицы. Перепутал. Но не важно — Неопределено и Булево — разные типы, как ни крути

ВСЕ 3 параметра обязательны в текущем (11м) релизе платформы, это баг, одицказлы. Тебе написал как сделать чтобы работало. Что еще нужно?

Тэги:

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

Ошибка при вызове метода контекста (НайтиПоСсылкам) по причине: Несоответствие типов (параметр номер ‘4’)

Описание ошибки:
При попытке использовать новый функционал функции НайтиПоСсылкам(), а именно использовать параметр <ИсключитьОбъекты>, возникает ошибка «Несоответствие типов (параметр номер ‘4’)»

Найденные решения:

Платформа 1С: Предприятие 8.3 развивается. Так же развивается инструментарий разработчика конфигураций. Вот развитие коснулось и функции НайтиПоСсылкам. Если ранее была возможность просто организовать посредством функции поиск всех ссылок на массив переданных в параметр функции объектов, то теперь стало  возможно указать область поска, включить объекты или наоборот — исключить.

Вроде бы на первый взгляд все достаточно просто: НайтиПоСсылкам(<СписокСсылок>, <ОбластьПоиска>, <ВключитьОбъекты>, <ИсключитьОбъекты>), последние три параметра в синтакс-помощнике объявлены как необязательные. Поэтому с уверенностью в своей правоте была создана конструкция:

  МассивИсключений = Новый Массив;

МассивИсключений.Добавить(Метаданные.Справочники.ЕдиницыИзмерения);

 МассивПоиска = Новый Массив;
     МассивПоиска.Добавить(Выборка.Ссылка);

РезультатПоиска = НайтиПоСсылкам(МассивПоиска, , , МассивИсключений);

Но, увы положительного результата использования новых возможностей функции НайтиПоСсылке не удалось получить по причине возникновения ошибки: Ошибка при вызове метода контекста (НайтиПоСсылкам) по причине: Несоответствие типов (параметр номер ‘4’)

1c 8 найтипоссылкам как указать исключения включить исключить объекты

Предположение о том, что не правильно указан объект метаданных в массиве с исключенными объектами был оперативно отклонен посредством наскоро найденной информации в сети. Но ошибка оставалась и создавала проблему. Отказываться от возможности воспоьзоваться столь подходящим функционалом не хотелось, поэтому попытки поиска решения устранения проблемы увенчались небольшим успехом благодаря обсуждению на форуме сайта infostart.ru. Оказалось, что в данном случае, даже учитывая тот факт, что параметры 2 и 3 не обязательные, но тем не менее хотя бы пустые массивы, но должны быть переданы в качестве параметров:

1с 8 не работает найтипоссылке не соответствие типа параметра

Таким образом оказалась рабочим следующая версия кода:

  МассивИсключений = Новый Массив;

МассивИсключений.Добавить(Метаданные.Справочники.ЕдиницыИзмерения);

 МассивПоиска = Новый Массив;
     МассивПоиска.Добавить(Выборка.Ссылка);

ПустойМассив = Новый Массив;

РезультатПоиска = НайтиПоСсылкам(МассивПоиска, ПустойМассив, Новый Массив, МассивИсключений);

Эта конструкция оказалась работоспособной и РезультатПоиска действитель в примере выводились ссылки за исключением ссылок на справочник «Единицы измерения» конфигурации 1С: Управление торговлей 8, ред. 10.3, для которой и реализовывалась задача.

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

30-11-2016

Журавлев А.С.
(Сайт www.azhur-c.ru)

Jackshi

59 / 59 / 6

Регистрация: 16.01.2013

Сообщений: 162

1

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

14.05.2014, 12:23. Показов 15419. Ответов 5

Метки нет (Все метки)


Доброго времени суток. Помогите решить задачу в Бух 3.0

1C
1
2
3
4
5
6
7
8
9
10
11
12
Докум = Документы.ПоступлениеТоваровУслуг.ПолучитьСсылку(новый УникальныйИдентификатор(мОбъект.id));
Если не ЗначениеЗаполнено(Докум) Тогда
    Док = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
    Док.УстановитьСсылкуНового(новый УникальныйИдентификатор(мОбъект.id));
Иначе 
    Если Докум.ПолучитьОбъект() = Неопределено Тогда
        Док = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
        Док.УстановитьСсылкуНового(новый УникальныйИдентификатор(мОбъект.id));// в этом месте Ошибка
    Иначе
        Док = Докум.ПолучитьОбъект();
    КонецЕсли;
КонецЕсли;

Докум = Ссылка(<Объект не найден> (170:8cde001e6759045111e3b5045af92b08))

{Форма.Форма.Форма(405)}: Ошибка при вызове метода контекста (УстановитьСсылкуНового)
Док.УстановитьСсылкуНового(новый УникальныйИдентификатор(мОбъект.id));
по причине:
Несоответствие типов (параметр номер ‘1’)

Вроде первый раз не ругается, а вот второй раз….. Почему?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

14.05.2014, 12:23

Ответы с готовыми решениями:

Несоответствие типов
Подскажите пожалуйста мне надо написать программу автоматического формирования кода справочника по…

Несоответствие типов
Помогите исправить пожайлуста.
uses crt,graph;
var
a:array of integer;

Несоответствие типов
Всем привет, выдает ошибку о несоответствие типов хотя в БД стоит тип текстовый
cmd.CommandText =…

Несоответствие типов
var s1,s2,s3:string;
ss1,ss2,ss3 :set of byte;
y:integer;
H:char;

begin
readln(s1);

5

SPR1TE89

21 / 21 / 3

Регистрация: 22.04.2014

Сообщений: 112

14.05.2014, 12:36

2

Jackshi, А если так попробовать?

1C
1
2
НоваяСсылка = Документы.ПоступлениеТоваровУслуг.ПолучитьСсылку(новый УникальныйИдентификатор(мОбъект.id))
Док.УстановитьСсылкуНового(новаяСсылка);

И еще возможно битая ссылка. Поэтому и ругается.

1

59 / 59 / 6

Регистрация: 16.01.2013

Сообщений: 162

14.05.2014, 12:42

 [ТС]

3

Работает, Спасибо!

А есть возможность избавиться от битой ссылки?

0

21 / 21 / 3

Регистрация: 22.04.2014

Сообщений: 112

14.05.2014, 14:06

4

Jackshi, Вообще есть, но лучше пока не заморачивайтесь).

0

multirum

0 / 0 / 0

Регистрация: 14.09.2020

Сообщений: 6

30.11.2020, 14:07

5

1C
1
2
3
4
5
6
7
Процедура ИзменитьНаСервере()
    КодЭлемента = Справочники.Номенклатура.Выбрать(000000003);
    ИзменениеЦены = КодЭлемента.ПолучитьОбъект();
    ИзменениеЦены.ЦенаПродажи = 30000;
    ИзменениеЦены.Записать();
    Сообщить("Готово");
КонецПроцедуры

{Обработка.ИзменениеЦеныПоКодуЭлемента.Форма.Форма .Форма(4)}: Ошибка при вызове метода контекста (Выбрать)
КодЭлемента = Справочники.Номенклатура.Выбрать(000000003);
по причине:
Несоответствие типов (параметр номер ‘1’)
как исправить ?

0

polax

1783 / 1208 / 437

Регистрация: 16.01.2015

Сообщений: 5,322

30.11.2020, 18:44

6

multirum, Есть такая штука СП — синтакс помощник называется. Обращайтесь к нему чаще.

СправочникМенеджер.<Имя справочника> (CatalogManager.<Catalog name>)
Выбрать (Select)
Синтаксис:
Выбрать(<Родитель>, <Владелец>, <Отбор>, <Порядок>)
Параметры:
<Родитель> (необязательный)
Тип: СправочникСсылка.<Имя справочника>.
Отбор по родителю. Имеет смысл только для многоуровневых справочников. Если параметр не задан, то отбор по родителю не производится. Чтобы отобрать элементы верхнего уровня, нужно в качестве данного параметра указать пустую ссылку на элемент справочника.
<Владелец> (необязательный)
Тип: СправочникСсылка.<Имя справочника>.
Отбор по владельцу. Имеет смысл только для подчиненных справочников. Если параметр не задан, то отбор по владельцу не производится.
<Отбор> (необязательный)
Тип: Структура.
Задает поле и значение отбора открываемой выборки. Ключ структуры описывает имя поля, а значение структуры — значение отбора по этому полю. В качестве полей для отбора могут задаваться только поля «Код», «Наименование» и реквизиты справочника, для которых в конфигураторе признак индексирования установлен в значение «Индексировать» или в значение «Индексировать с доп. упорядоч.».
Важно! Структура может содержать только один элемент.
Если параметр не указан, то отбор не используется.
<Порядок> (необязательный)
Тип: Строка.
Строка с именем реквизита справочника, определяющая упорядочивание элементов в выборке. Может быть указано «Код», «Наименование» или имя одного из реквизитов примитивного типа (Число, Строка, Дата, Булево), для которого установлен признак «Индексирование» в значение «Индексировать» или в «Индексировать с дополнительным упорядочиванием» в конфигураторе. После имени реквизита через пробел может быть указано направление сортировки. Направление определяется: «Убыв» («Desc») — упорядочивать по убыванию; «Возр» («Asc») — упорядочивать по возрастанию. По умолчанию сортировка производится по возрастанию. Если параметр не указан, то порядок определяется основным представлением справочника.
Значение по умолчанию: Пустая строка.
Возвращаемое значение:
Тип: СправочникВыборка.<Имя справочника>.
Описание:
Формирует выборку элементов справочника по заданным условиям.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Пример:

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Номенклатура = Справочники.Номенклатура;
Отбор = Новый Структура("ТипНоменклатуры");
Пусто = Перечисления.ТипыНоменклатуры.ПустаяСсылка();
Отбор.ТипНоменклатуры = Пусто;
Выборка = Номенклатура.Выбрать(,,Отбор, "Наименование Убыв");
Пока Выборка.Следующий()  Цикл
    Объект = Выборка.ПолучитьОбъект();
    Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар;
    Попытка
        Объект.Записать();
    Исключение
        Предупреждение(НСтр("ru = 'Невозможно записать объект';"
           + " en = 'Can't write object'")
           +" '" + Объект + '"
           |" + ОписаниеОшибки(),60);
    КонецПопытки;
КонецЦикла;

0

IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

30.11.2020, 18:44

Помогаю со студенческими работами здесь

Несоответствие типов
Добрый день, ни как не могу победить несоответствие типов.
То есть, есть некая форма с полем…

Несоответствие типов
— в этом файле две базы данных, которые должны синхронизироваться. Главная база с названием &quot;а&quot;,…

if then else несоответствие типов
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,…

Несоответствие типов
Делаю прогу, в которой программа ищет — существует ли ряд файлов. Например 153 файла текстi.txt,…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

6

Содержание:

1.       Несоответствие типов данных

2.       Ошибка внутри таблицы в запросе

3.       Причина ошибки внутри команды

Приветствую, коллеги! В данной статье рассмотрим понятие и описание типа данных и переменных в системе 1С версии 8.3. Также поговорим о распространенной ошибке «Несоответствие типов», изложим инструкцию с по ее устранению. 


1.    Несоответствие типов данных

Тип – это характеристика у значения, которая определяет поведение и свойства, которые имеет данное значение.

В командах внутри системы 1С параметры имеют некую специальную очерёдность, а также все параметры имеют ссылку на данные, которые связаны с каким-либо типом. В случае, когда какой-то из параметров находится в неположенном месте, либо название не соответствует типу, выполняются невозможные действия для конкретного типа – появляется сообщение, в котором говорится о несоответствии типов данных (показано на скриншоте ниже):

Сообщение об ошибке несоответствии типов

Рис. 1 Сообщение об ошибке несоответствии типов

Чаще всего данная неполадка возникает, когда при написании запроса внутри команды не верно указывают параметры. Исправление подобной ошибки производится при помощи изменения типа передаваемого параметра или используемой переменной на правильный тип данных.  

2.    Ошибка внутри таблицы в запросе

Рассмотрим пример: при чтении цен из номенклатуры согласно регистру данных «Цены номенклатуры» с общего внешнего отчёта всплывает ошибка «Неоднозначное поле «ТипЦен.Номенклатура».

Ошибка Неоднозначное поле

Рис. 2 Ошибка Неоднозначное поле

Видим, что в окне с сообщением о неполадке указано место в коде, где возникла ошибка несоответствия типов: «Параметр номер «1», в строчке вида:

«РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&&ТипЦен,) КАК ЦеныНоменклатурыСрезПоследних.

Чтобы устранить данную ошибку в первую очередь откроем конфигурацию с данным отчётом и найдем внутри кода с формой строчку, которая была приведена выше:

Исправление ошибки несоответствия типов (Параметр номер 1)

Рис. 3 Исправление ошибки несоответствия типов (Параметр номер 1)

При помощи «Синтаксис-Помощника», в меню конфигурации 1С можно сверить, насколько правильно была написана команда:

Исправление ошибки несоответствия типов

Рис. 4 Проверка написания команды с помощью Синтаксис-Помощника

Согласно описанию, в команде «СрезПоследних» находится два параметра: «Отбор» и «Период».

В случае, когда параметр «Период» не был указан, в данной команде будет пустое поле, а после запятой будет написан параметр для отбора. Для нашего примера этим параметром будет «ТипЦен». После правок команда видоизменится так: «СрезПоследних(,ТипЦен = &ТипЦен).

Исправление команды СрезПоследних

Рис. 5 Исправление команды СрезПоследних

После того как команда СрезПоследних была исправлена, стоит снова сформировать отчёт из «Главное меню → Файл → Открыть». 

3.    Причина ошибки внутри команды

Имеем такую ошибку: когда происходит поиск вариантов ссылок на контрагента в отчёте системы 1С, то возникает ошибка «Несоответствие типов (параметр номер «2»), как на скриншоте ниже:

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

Рис. 6 Несоответствие типов (параметр номер «2»)

В системе 1С указано то место, где произошла неполадка – это недопустимый параметр номер 2, если кликнуть на кнопку «ERROR». Чтобы её исправить нужно запустить отчёт в конфигураторе системы 1С, далее ищем форму строчки, в которой написана команда «НайтиПоСсылкам», внутри модуля.

Команда НайтиПоСсылкам внутри модуля

Рис. 7 Команда НайтиПоСсылкам внутри модуля

Можно проверить верность того, как написана команда при помощи «Синтаксис-Помощника» в панели меню системы 1С, кнопка будет выделена:

Команда НайтиПоСсылкам

Рис. 8 Команда НайтиПоСсылкам в Синтаксис-Помощнике

По описанию следует: в команде «НайтиПоСсылкам» находится такие четыре параметра: СписокСсылок, ИсключитьОбъекты, ВключитьОбъекты и ОбластьПоиска.

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

Тип массив в НайтиПоСсылкам

Рис. 9 Тип массив в НайтиПоСсылкам

Далее запускаем наш отчёт в системе 1С.

После наших действий команда работает исправно и ошибки нет.

НайтиПоСсылкам

Рис. 10 Проверка на наличие ошибок в системе конфигурации 1С

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

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

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

Ошибка Несоответствие типов в 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 дней бесплатно

   mikecool

04.06.10 — 13:56

Используется кусок кода(про убиться об стену за поиск — не надо):

СтрокаТЧ.СчетУчетаБУ = ПланыСчетов.Хозрасчетный.НайтиПоНаименованию(«Товары в пути (от поставщиков)»)

в результате:

Ошибка при выполнении обработчика — ‘ОбработкаЗаполнения’

по причине:

{Документ.ПоступлениеТоваровУслуг.МодульОбъекта(6020)}: Ошибка при вызове метода контекста (НайтиПоНаименованию)

по причине:

Несоответствие типов (параметр номер ‘2’)

читаю СП:

ПланСчетовМенеджер.<Имя плана счетов> (ChartOfAccountsManager.<Имя плана счетов>)

НайтиПоНаименованию (FindByDescription)

Синтаксис:

НайтиПоНаименованию(<Наименование>, <ТочноеСоответствие>, <Родитель>)

Параметры:

<Наименование> (обязательный)

Тип: Строка. Строка, содержащая искомое наименование.

<ТочноеСоответствие> (необязательный)

Тип: Булево. Определяет режим поиска по полному соответствию.

Поиск будет успешным, если строка поиска: в случае значения параметра Ложь — будет соответствовать левой части наименования; в случае значения параметра Истина — будет полностью совпадать с наименованием (за исключением «хвостовых» пробелов в наименовании).

Значение по умолчанию: Ложь

<Родитель> (необязательный)

Тип: ПланСчетовСсылка. Родитель, в пределах которого нужно выполнять поиск. Если не указан, то поиск будет проводиться по всем счетам.

Что же я делаю не так?

   Чайник Рассела

1 — 04.06.10 — 13:58

ищи по коду

   mikecool

2 — 04.06.10 — 13:59

(1) да, так получается
но сам факт интересен :)

   Defender aka LINN

3 — 04.06.10 — 14:00

Жесть… Про предопределенные элементы когда-нибудь слышали?

   mikecool

4 — 04.06.10 — 14:00

(3) епт, ну прочитай первую строку…
я переписываю то что досталось, вот и наткнулся

   Defender aka LINN

5 — 04.06.10 — 14:09

(4) Это не оправдание :)

   Сергиус

6 — 04.06.10 — 14:52

(0) может потому..что внутри искомого значения используются скобки — (от поставщиков)? может попробовать как то убрать их?

   Сергиус

7 — 04.06.10 — 14:54

+6 а хотя..вообще какое то странное наименование Плана счетов..

Нельзя ли вручную как то его откорректировать?

   johnbay

8 — 04.06.10 — 15:11

(0)  Пиши в 1Ц.
Родитель обязателен, не верь СП.
Указывай родителя и заработает.
Вот так работает:
ПланыСчетов.Хозрасчетный.НайтиПоНаименованию(«Товары в пути от поставщи»,Ложь, ПланыСчетов.Хозрасчетный.ПустаяСсылка())

   mikecool

9 — 04.06.10 — 15:18

(8) тогда не понятен посыл на параметр 2

   Defender aka LINN

10 — 04.06.10 — 15:22

(9) Он не указан, т.е. Неопределено. А 1С ссылку ждет.

   mikecool

11 — 04.06.10 — 15:25

(10) по СП 2 параметр — точное соответствие
и также как и 3 — необязателен
я все таки читаю иногда СП и стараюсь ему верить :)

   shuhard

12 — 04.06.10 — 15:27

(11) да, это ошибка
да, 1С — гады
доволен ?

   Defender aka LINN

13 — 04.06.10 — 15:27

(11) Что курил? «Точное соответствие» — это про первый параметр.

   mikecool

14 — 04.06.10 — 15:31

(12) неа, еще нет :)
чего то много начинаю спотыкаться после перехода

   mikecool

15 — 04.06.10 — 15:31

(13) НайтиПоНаименованию(<Наименование>, <ТочноеСоответствие>, <Родитель>)
счет идет с нуля?

   Mitriy

16 — 04.06.10 — 15:32

манитные бури…

   Defender aka LINN

17 — 04.06.10 — 15:34

(15) Байты с нуля, ножки с единицы. Перепутал.

Но не важно — Неопределено и Булево — разные типы, как ни крути

  

johnbay

18 — 04.06.10 — 15:35

(15) ВСЕ 3 параметра обязательны в текущем (11м) релизе платформы, это баг, одицказлы.
Тебе написал как сделать чтобы работало. Что еще нужно?

Ошибка при вызове метода контекста (НайтиПоСсылкам) по причине: Несоответствие типов (параметр номер ‘4’)

Описание ошибки:
При попытке использовать новый функционал функции НайтиПоСсылкам(), а именно использовать параметр <ИсключитьОбъекты>, возникает ошибка «Несоответствие типов (параметр номер ‘4’)»

Найденные решения:

Платформа 1С: Предприятие 8.3 развивается. Так же развивается инструментарий разработчика конфигураций. Вот развитие коснулось и функции НайтиПоСсылкам. Если ранее была возможность просто организовать посредством функции поиск всех ссылок на массив переданных в параметр функции объектов, то теперь стало  возможно указать область поска, включить объекты или наоборот — исключить.

Вроде бы на первый взгляд все достаточно просто: НайтиПоСсылкам(<СписокСсылок>, <ОбластьПоиска>, <ВключитьОбъекты>, <ИсключитьОбъекты>), последние три параметра в синтакс-помощнике объявлены как необязательные. Поэтому с уверенностью в своей правоте была создана конструкция:

  МассивИсключений = Новый Массив;

МассивИсключений.Добавить(Метаданные.Справочники.ЕдиницыИзмерения);

 МассивПоиска = Новый Массив;
     МассивПоиска.Добавить(Выборка.Ссылка);

РезультатПоиска = НайтиПоСсылкам(МассивПоиска, , , МассивИсключений);

Но, увы положительного результата использования новых возможностей функции НайтиПоСсылке не удалось получить по причине возникновения ошибки: Ошибка при вызове метода контекста (НайтиПоСсылкам) по причине: Несоответствие типов (параметр номер ‘4’)

1c 8 найтипоссылкам как указать исключения включить исключить объекты

Предположение о том, что не правильно указан объект метаданных в массиве с исключенными объектами был оперативно отклонен посредством наскоро найденной информации в сети. Но ошибка оставалась и создавала проблему. Отказываться от возможности воспоьзоваться столь подходящим функционалом не хотелось, поэтому попытки поиска решения устранения проблемы увенчались небольшим успехом благодаря обсуждению на форуме сайта infostart.ru. Оказалось, что в данном случае, даже учитывая тот факт, что параметры 2 и 3 не обязательные, но тем не менее хотя бы пустые массивы, но должны быть переданы в качестве параметров:

1с 8 не работает найтипоссылке не соответствие типа параметра

Таким образом оказалась рабочим следующая версия кода:

  МассивИсключений = Новый Массив;

МассивИсключений.Добавить(Метаданные.Справочники.ЕдиницыИзмерения);

 МассивПоиска = Новый Массив;
     МассивПоиска.Добавить(Выборка.Ссылка);

ПустойМассив = Новый Массив;

РезультатПоиска = НайтиПоСсылкам(МассивПоиска, ПустойМассив, Новый Массив, МассивИсключений);

Эта конструкция оказалась работоспособной и РезультатПоиска действитель в примере выводились ссылки за исключением ссылок на справочник «Единицы измерения» конфигурации 1С: Управление торговлей 8, ред. 10.3, для которой и реализовывалась задача.

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

30-11-2016

Журавлев А.С.
(Сайт www.azhur-c.ru)

Jackshi

59 / 59 / 6

Регистрация: 16.01.2013

Сообщений: 162

1

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

14.05.2014, 12:23. Показов 16121. Ответов 5

Метки нет (Все метки)


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

Доброго времени суток. Помогите решить задачу в Бух 3.0

1C
1
2
3
4
5
6
7
8
9
10
11
12
Докум = Документы.ПоступлениеТоваровУслуг.ПолучитьСсылку(новый УникальныйИдентификатор(мОбъект.id));
Если не ЗначениеЗаполнено(Докум) Тогда
    Док = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
    Док.УстановитьСсылкуНового(новый УникальныйИдентификатор(мОбъект.id));
Иначе 
    Если Докум.ПолучитьОбъект() = Неопределено Тогда
        Док = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
        Док.УстановитьСсылкуНового(новый УникальныйИдентификатор(мОбъект.id));// в этом месте Ошибка
    Иначе
        Док = Докум.ПолучитьОбъект();
    КонецЕсли;
КонецЕсли;

Докум = Ссылка(<Объект не найден> (170:8cde001e6759045111e3b5045af92b08))

{Форма.Форма.Форма(405)}: Ошибка при вызове метода контекста (УстановитьСсылкуНового)
Док.УстановитьСсылкуНового(новый УникальныйИдентификатор(мОбъект.id));
по причине:
Несоответствие типов (параметр номер ‘1’)

Вроде первый раз не ругается, а вот второй раз….. Почему?



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

14.05.2014, 12:23

Ответы с готовыми решениями:

Несоответствие типов
Подскажите пожалуйста мне надо написать программу автоматического формирования кода справочника по…

Несоответствие типов
Помогите исправить пожайлуста.
uses crt,graph;
var
a:array of integer;

Несоответствие типов
Всем привет, выдает ошибку о несоответствие типов хотя в БД стоит тип текстовый
cmd.CommandText =…

Несоответствие типов
var s1,s2,s3:string;
ss1,ss2,ss3 :set of byte;
y:integer;
H:char;

begin
readln(s1);

5

SPR1TE89

21 / 21 / 3

Регистрация: 22.04.2014

Сообщений: 112

14.05.2014, 12:36

2

Jackshi, А если так попробовать?

1C
1
2
НоваяСсылка = Документы.ПоступлениеТоваровУслуг.ПолучитьСсылку(новый УникальныйИдентификатор(мОбъект.id))
Док.УстановитьСсылкуНового(новаяСсылка);

И еще возможно битая ссылка. Поэтому и ругается.



1



59 / 59 / 6

Регистрация: 16.01.2013

Сообщений: 162

14.05.2014, 12:42

 [ТС]

3

Работает, Спасибо!

А есть возможность избавиться от битой ссылки?



0



21 / 21 / 3

Регистрация: 22.04.2014

Сообщений: 112

14.05.2014, 14:06

4

Jackshi, Вообще есть, но лучше пока не заморачивайтесь).



0



multirum

0 / 0 / 0

Регистрация: 14.09.2020

Сообщений: 6

30.11.2020, 14:07

5

1C
1
2
3
4
5
6
7
Процедура ИзменитьНаСервере()
    КодЭлемента = Справочники.Номенклатура.Выбрать(000000003);
    ИзменениеЦены = КодЭлемента.ПолучитьОбъект();
    ИзменениеЦены.ЦенаПродажи = 30000;
    ИзменениеЦены.Записать();
    Сообщить("Готово");
КонецПроцедуры

{Обработка.ИзменениеЦеныПоКодуЭлемента.Форма.Форма.Форма(4)}: Ошибка при вызове метода контекста (Выбрать)
КодЭлемента = Справочники.Номенклатура.Выбрать(000000003);
по причине:
Несоответствие типов (параметр номер ‘1’)
как исправить ?



0



polax

1904 / 1304 / 465

Регистрация: 16.01.2015

Сообщений: 5,676

30.11.2020, 18:44

6

multirum, Есть такая штука СП — синтакс помощник называется. Обращайтесь к нему чаще.

СправочникМенеджер.<Имя справочника> (CatalogManager.<Catalog name>)
Выбрать (Select)
Синтаксис:
Выбрать(<Родитель>, <Владелец>, <Отбор>, <Порядок>)
Параметры:
<Родитель> (необязательный)
Тип: СправочникСсылка.<Имя справочника>.
Отбор по родителю. Имеет смысл только для многоуровневых справочников. Если параметр не задан, то отбор по родителю не производится. Чтобы отобрать элементы верхнего уровня, нужно в качестве данного параметра указать пустую ссылку на элемент справочника.
<Владелец> (необязательный)
Тип: СправочникСсылка.<Имя справочника>.
Отбор по владельцу. Имеет смысл только для подчиненных справочников. Если параметр не задан, то отбор по владельцу не производится.
<Отбор> (необязательный)
Тип: Структура.
Задает поле и значение отбора открываемой выборки. Ключ структуры описывает имя поля, а значение структуры — значение отбора по этому полю. В качестве полей для отбора могут задаваться только поля «Код», «Наименование» и реквизиты справочника, для которых в конфигураторе признак индексирования установлен в значение «Индексировать» или в значение «Индексировать с доп. упорядоч.».
Важно! Структура может содержать только один элемент.
Если параметр не указан, то отбор не используется.
<Порядок> (необязательный)
Тип: Строка.
Строка с именем реквизита справочника, определяющая упорядочивание элементов в выборке. Может быть указано «Код», «Наименование» или имя одного из реквизитов примитивного типа (Число, Строка, Дата, Булево), для которого установлен признак «Индексирование» в значение «Индексировать» или в «Индексировать с дополнительным упорядочиванием» в конфигураторе. После имени реквизита через пробел может быть указано направление сортировки. Направление определяется: «Убыв» («Desc») — упорядочивать по убыванию; «Возр» («Asc») — упорядочивать по возрастанию. По умолчанию сортировка производится по возрастанию. Если параметр не указан, то порядок определяется основным представлением справочника.
Значение по умолчанию: Пустая строка.
Возвращаемое значение:
Тип: СправочникВыборка.<Имя справочника>.
Описание:
Формирует выборку элементов справочника по заданным условиям.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Пример:

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Номенклатура = Справочники.Номенклатура;
Отбор = Новый Структура("ТипНоменклатуры");
Пусто = Перечисления.ТипыНоменклатуры.ПустаяСсылка();
Отбор.ТипНоменклатуры = Пусто;
Выборка = Номенклатура.Выбрать(,,Отбор, "Наименование Убыв");
Пока Выборка.Следующий()  Цикл
    Объект = Выборка.ПолучитьОбъект();
    Объект.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар;
    Попытка
        Объект.Записать();
    Исключение
        Предупреждение(НСтр("ru = 'Невозможно записать объект';"
           + " en = 'Can't write object'")
           +" '" + Объект + '"
           |" + ОписаниеОшибки(),60);
    КонецПопытки;
КонецЦикла;



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

30.11.2020, 18:44

Помогаю со студенческими работами здесь

Несоответствие типов
Добрый день, ни как не могу победить несоответствие типов.
То есть, есть некая форма с полем…

Несоответствие типов
— в этом файле две базы данных, которые должны синхронизироваться. Главная база с названием &quot;а&quot;,…

if then else несоответствие типов
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,…

Несоответствие типов
Делаю прогу, в которой программа ищет — существует ли ряд файлов. Например 153 файла текстi.txt,…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

6

Содержание:

1.       Несоответствие типов данных

2.       Ошибка внутри таблицы в запросе

3.       Причина ошибки внутри команды

Приветствую, коллеги! В данной статье рассмотрим понятие и описание типа данных и переменных в системе 1С версии 8.3. Также поговорим о распространенной ошибке «Несоответствие типов», изложим инструкцию с по ее устранению. 


1.    Несоответствие типов данных

Тип – это характеристика у значения, которая определяет поведение и свойства, которые имеет данное значение.

В командах внутри системы 1С параметры имеют некую специальную очерёдность, а также все параметры имеют ссылку на данные, которые связаны с каким-либо типом. В случае, когда какой-то из параметров находится в неположенном месте, либо название не соответствует типу, выполняются невозможные действия для конкретного типа – появляется сообщение, в котором говорится о несоответствии типов данных (показано на скриншоте ниже):

Сообщение об ошибке несоответствии типов

Рис. 1 Сообщение об ошибке несоответствии типов

Чаще всего данная неполадка возникает, когда при написании запроса внутри команды не верно указывают параметры. Исправление подобной ошибки производится при помощи изменения типа передаваемого параметра или используемой переменной на правильный тип данных.  

2.    Ошибка внутри таблицы в запросе

Рассмотрим пример: при чтении цен из номенклатуры согласно регистру данных «Цены номенклатуры» с общего внешнего отчёта всплывает ошибка «Неоднозначное поле «ТипЦен.Номенклатура».

Ошибка Неоднозначное поле

Рис. 2 Ошибка Неоднозначное поле

Видим, что в окне с сообщением о неполадке указано место в коде, где возникла ошибка несоответствия типов: «Параметр номер «1», в строчке вида:

«РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&&ТипЦен,) КАК ЦеныНоменклатурыСрезПоследних.

Чтобы устранить данную ошибку в первую очередь откроем конфигурацию с данным отчётом и найдем внутри кода с формой строчку, которая была приведена выше:

Исправление ошибки несоответствия типов (Параметр номер 1)

Рис. 3 Исправление ошибки несоответствия типов (Параметр номер 1)

При помощи «Синтаксис-Помощника», в меню конфигурации 1С можно сверить, насколько правильно была написана команда:

Исправление ошибки несоответствия типов

Рис. 4 Проверка написания команды с помощью Синтаксис-Помощника

Согласно описанию, в команде «СрезПоследних» находится два параметра: «Отбор» и «Период».

В случае, когда параметр «Период» не был указан, в данной команде будет пустое поле, а после запятой будет написан параметр для отбора. Для нашего примера этим параметром будет «ТипЦен». После правок команда видоизменится так: «СрезПоследних(,ТипЦен = &ТипЦен).

Исправление команды СрезПоследних

Рис. 5 Исправление команды СрезПоследних

После того как команда СрезПоследних была исправлена, стоит снова сформировать отчёт из «Главное меню → Файл → Открыть». 

3.    Причина ошибки внутри команды

Имеем такую ошибку: когда происходит поиск вариантов ссылок на контрагента в отчёте системы 1С, то возникает ошибка «Несоответствие типов (параметр номер «2»), как на скриншоте ниже:

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

Рис. 6 Несоответствие типов (параметр номер «2»)

В системе 1С указано то место, где произошла неполадка – это недопустимый параметр номер 2, если кликнуть на кнопку «ERROR». Чтобы её исправить нужно запустить отчёт в конфигураторе системы 1С, далее ищем форму строчки, в которой написана команда «НайтиПоСсылкам», внутри модуля.

Команда НайтиПоСсылкам внутри модуля

Рис. 7 Команда НайтиПоСсылкам внутри модуля

Можно проверить верность того, как написана команда при помощи «Синтаксис-Помощника» в панели меню системы 1С, кнопка будет выделена:

Команда НайтиПоСсылкам

Рис. 8 Команда НайтиПоСсылкам в Синтаксис-Помощнике

По описанию следует: в команде «НайтиПоСсылкам» находится такие четыре параметра: СписокСсылок, ИсключитьОбъекты, ВключитьОбъекты и ОбластьПоиска.

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

Тип массив в НайтиПоСсылкам

Рис. 9 Тип массив в НайтиПоСсылкам

Далее запускаем наш отчёт в системе 1С.

После наших действий команда работает исправно и ошибки нет.

 НайтиПоСсылкам

Рис. 10 Проверка на наличие ошибок в системе конфигурации 1С


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

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

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

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