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’)
Предположение о том, что не правильно указан объект метаданных в массиве с исключенными объектами был оперативно отклонен посредством наскоро найденной информации в сети. Но ошибка оставалась и создавала проблему. Отказываться от возможности воспоьзоваться столь подходящим функционалом не хотелось, поэтому попытки поиска решения устранения проблемы увенчались небольшим успехом благодаря обсуждению на форуме сайта infostart.ru. Оказалось, что в данном случае, даже учитывая тот факт, что параметры 2 и 3 не обязательные, но тем не менее хотя бы пустые массивы, но должны быть переданы в качестве параметров:
Таким образом оказалась рабочим следующая версия кода:
МассивИсключений = Новый Массив;
МассивИсключений.Добавить(Метаданные.Справочники.ЕдиницыИзмерения);
МассивПоиска = Новый Массив;
МассивПоиска.Добавить(Выборка.Ссылка);
ПустойМассив = Новый Массив;
РезультатПоиска = НайтиПоСсылкам(МассивПоиска, ПустойМассив, Новый Массив, МассивИсключений);
Эта конструкция оказалась работоспособной и РезультатПоиска действитель в примере выводились ссылки за исключением ссылок на справочник «Единицы измерения» конфигурации 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
Докум = Ссылка(<Объект не найден> (170:8cde001e6759045111e3b5045af92b08)) {Форма.Форма.Форма(405)}: Ошибка при вызове метода контекста (УстановитьСсылкуНового) Вроде первый раз не ругается, а вот второй раз….. Почему?
__________________ 0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
14.05.2014, 12:23 |
Ответы с готовыми решениями: Несоответствие типов Несоответствие типов Несоответствие типов Несоответствие типов begin 5 |
SPR1TE89 21 / 21 / 3 Регистрация: 22.04.2014 Сообщений: 112 |
||||
14.05.2014, 12:36 |
2 |
|||
Jackshi, А если так попробовать?
И еще возможно битая ссылка. Поэтому и ругается. 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 |
|||
{Обработка.ИзменениеЦеныПоКодуЭлемента.Форма.Форма .Форма(4)}: Ошибка при вызове метода контекста (Выбрать) 0 |
polax 1783 / 1208 / 437 Регистрация: 16.01.2015 Сообщений: 5,322 |
||||
30.11.2020, 18:44 |
6 |
|||
multirum, Есть такая штука СП — синтакс помощник называется. Обращайтесь к нему чаще. СправочникМенеджер.<Имя справочника> (CatalogManager.<Catalog name>)
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
30.11.2020, 18:44 |
Помогаю со студенческими работами здесь Несоответствие типов Несоответствие типов if then else несоответствие типов interface uses Несоответствие типов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 6 |
Содержание:
1. Несоответствие типов данных
2. Ошибка внутри таблицы в запросе
3. Причина ошибки внутри команды
Приветствую, коллеги! В данной статье рассмотрим понятие и описание типа данных и переменных в системе 1С версии 8.3. Также поговорим о распространенной ошибке «Несоответствие типов», изложим инструкцию с по ее устранению.
1. Несоответствие типов данных
Тип – это характеристика у значения, которая определяет поведение и свойства, которые имеет данное значение.
В командах внутри системы 1С параметры имеют некую специальную очерёдность, а также все параметры имеют ссылку на данные, которые связаны с каким-либо типом. В случае, когда какой-то из параметров находится в неположенном месте, либо название не соответствует типу, выполняются невозможные действия для конкретного типа – появляется сообщение, в котором говорится о несоответствии типов данных (показано на скриншоте ниже):
Рис. 1 Сообщение об ошибке несоответствии типов
Чаще всего данная неполадка возникает, когда при написании запроса внутри команды не верно указывают параметры. Исправление подобной ошибки производится при помощи изменения типа передаваемого параметра или используемой переменной на правильный тип данных.
2. Ошибка внутри таблицы в запросе
Рассмотрим пример: при чтении цен из номенклатуры согласно регистру данных «Цены номенклатуры» с общего внешнего отчёта всплывает ошибка «Неоднозначное поле «ТипЦен.Номенклатура».
Рис. 2 Ошибка Неоднозначное поле
Видим, что в окне с сообщением о неполадке указано место в коде, где возникла ошибка несоответствия типов: «Параметр номер «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 дней бесплатно
04.06.10 — 13:56
Используется кусок кода(про убиться об стену за поиск — не надо):
СтрокаТЧ.СчетУчетаБУ = ПланыСчетов.Хозрасчетный.НайтиПоНаименованию(«Товары в пути (от поставщиков)»)
в результате:
Ошибка при выполнении обработчика — ‘ОбработкаЗаполнения’
по причине:
{Документ.ПоступлениеТоваровУслуг.МодульОбъекта(6020)}: Ошибка при вызове метода контекста (НайтиПоНаименованию)
по причине:
Несоответствие типов (параметр номер ‘2’)
читаю СП:
ПланСчетовМенеджер.<Имя плана счетов> (ChartOfAccountsManager.<Имя плана счетов>)
НайтиПоНаименованию (FindByDescription)
Синтаксис:
НайтиПоНаименованию(<Наименование>, <ТочноеСоответствие>, <Родитель>)
Параметры:
<Наименование> (обязательный)
Тип: Строка. Строка, содержащая искомое наименование.
<ТочноеСоответствие> (необязательный)
Тип: Булево. Определяет режим поиска по полному соответствию.
Поиск будет успешным, если строка поиска: в случае значения параметра Ложь — будет соответствовать левой части наименования; в случае значения параметра Истина — будет полностью совпадать с наименованием (за исключением «хвостовых» пробелов в наименовании).
Значение по умолчанию: Ложь
<Родитель> (необязательный)
Тип: ПланСчетовСсылка. Родитель, в пределах которого нужно выполнять поиск. Если не указан, то поиск будет проводиться по всем счетам.
Что же я делаю не так?
1 — 04.06.10 — 13:58
ищи по коду
2 — 04.06.10 — 13:59
(1) да, так получается
но сам факт интересен
3 — 04.06.10 — 14:00
Жесть… Про предопределенные элементы когда-нибудь слышали?
4 — 04.06.10 — 14:00
(3) епт, ну прочитай первую строку…
я переписываю то что досталось, вот и наткнулся
5 — 04.06.10 — 14:09
(4) Это не оправдание
6 — 04.06.10 — 14:52
(0) может потому..что внутри искомого значения используются скобки — (от поставщиков)? может попробовать как то убрать их?
7 — 04.06.10 — 14:54
+6 а хотя..вообще какое то странное наименование Плана счетов..
Нельзя ли вручную как то его откорректировать?
8 — 04.06.10 — 15:11
(0) Пиши в 1Ц.
Родитель обязателен, не верь СП.
Указывай родителя и заработает.
Вот так работает:
ПланыСчетов.Хозрасчетный.НайтиПоНаименованию(«Товары в пути от поставщи»,Ложь, ПланыСчетов.Хозрасчетный.ПустаяСсылка())
9 — 04.06.10 — 15:18
(8) тогда не понятен посыл на параметр 2
10 — 04.06.10 — 15:22
(9) Он не указан, т.е. Неопределено. А 1С ссылку ждет.
11 — 04.06.10 — 15:25
(10) по СП 2 параметр — точное соответствие
и также как и 3 — необязателен
я все таки читаю иногда СП и стараюсь ему верить
12 — 04.06.10 — 15:27
(11) да, это ошибка
да, 1С — гады
доволен ?
13 — 04.06.10 — 15:27
(11) Что курил? «Точное соответствие» — это про первый параметр.
14 — 04.06.10 — 15:31
(12) неа, еще нет
чего то много начинаю спотыкаться после перехода
15 — 04.06.10 — 15:31
(13) НайтиПоНаименованию(<Наименование>, <ТочноеСоответствие>, <Родитель>)
счет идет с нуля?
16 — 04.06.10 — 15:32
манитные бури…
17 — 04.06.10 — 15:34
(15) Байты с нуля, ножки с единицы. Перепутал.
Но не важно — Неопределено и Булево — разные типы, как ни крути
johnbay
18 — 04.06.10 — 15:35
(15) ВСЕ 3 параметра обязательны в текущем (11м) релизе платформы, это баг, одицказлы.
Тебе написал как сделать чтобы работало. Что еще нужно?
Ошибка при вызове метода контекста (НайтиПоСсылкам) по причине: Несоответствие типов (параметр номер ‘4’)
Описание ошибки:
При попытке использовать новый функционал функции НайтиПоСсылкам(), а именно использовать параметр <ИсключитьОбъекты>, возникает ошибка «Несоответствие типов (параметр номер ‘4’)»
Найденные решения:
Платформа 1С: Предприятие 8.3 развивается. Так же развивается инструментарий разработчика конфигураций. Вот развитие коснулось и функции НайтиПоСсылкам. Если ранее была возможность просто организовать посредством функции поиск всех ссылок на массив переданных в параметр функции объектов, то теперь стало возможно указать область поска, включить объекты или наоборот — исключить.
Вроде бы на первый взгляд все достаточно просто: НайтиПоСсылкам(<СписокСсылок>, <ОбластьПоиска>, <ВключитьОбъекты>, <ИсключитьОбъекты>), последние три параметра в синтакс-помощнике объявлены как необязательные. Поэтому с уверенностью в своей правоте была создана конструкция:
МассивИсключений = Новый Массив;
МассивИсключений.Добавить(Метаданные.Справочники.ЕдиницыИзмерения);
МассивПоиска = Новый Массив;
МассивПоиска.Добавить(Выборка.Ссылка);
РезультатПоиска = НайтиПоСсылкам(МассивПоиска, , , МассивИсключений);
Но, увы положительного результата использования новых возможностей функции НайтиПоСсылке не удалось получить по причине возникновения ошибки: Ошибка при вызове метода контекста (НайтиПоСсылкам) по причине: Несоответствие типов (параметр номер ‘4’)
Предположение о том, что не правильно указан объект метаданных в массиве с исключенными объектами был оперативно отклонен посредством наскоро найденной информации в сети. Но ошибка оставалась и создавала проблему. Отказываться от возможности воспоьзоваться столь подходящим функционалом не хотелось, поэтому попытки поиска решения устранения проблемы увенчались небольшим успехом благодаря обсуждению на форуме сайта infostart.ru. Оказалось, что в данном случае, даже учитывая тот факт, что параметры 2 и 3 не обязательные, но тем не менее хотя бы пустые массивы, но должны быть переданы в качестве параметров:
Таким образом оказалась рабочим следующая версия кода:
МассивИсключений = Новый Массив;
МассивИсключений.Добавить(Метаданные.Справочники.ЕдиницыИзмерения);
МассивПоиска = Новый Массив;
МассивПоиска.Добавить(Выборка.Ссылка);
ПустойМассив = Новый Массив;
РезультатПоиска = НайтиПоСсылкам(МассивПоиска, ПустойМассив, Новый Массив, МассивИсключений);
Эта конструкция оказалась работоспособной и РезультатПоиска действитель в примере выводились ссылки за исключением ссылок на справочник «Единицы измерения» конфигурации 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
Докум = Ссылка(<Объект не найден> (170:8cde001e6759045111e3b5045af92b08)) {Форма.Форма.Форма(405)}: Ошибка при вызове метода контекста (УстановитьСсылкуНового) Вроде первый раз не ругается, а вот второй раз….. Почему?
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
14.05.2014, 12:23 |
Ответы с готовыми решениями: Несоответствие типов Несоответствие типов Несоответствие типов Несоответствие типов begin 5 |
SPR1TE89 21 / 21 / 3 Регистрация: 22.04.2014 Сообщений: 112 |
||||
14.05.2014, 12:36 |
2 |
|||
Jackshi, А если так попробовать?
И еще возможно битая ссылка. Поэтому и ругается.
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 |
|||
{Обработка.ИзменениеЦеныПоКодуЭлемента.Форма.Форма.Форма(4)}: Ошибка при вызове метода контекста (Выбрать)
0 |
polax 1904 / 1304 / 465 Регистрация: 16.01.2015 Сообщений: 5,676 |
||||
30.11.2020, 18:44 |
6 |
|||
multirum, Есть такая штука СП — синтакс помощник называется. Обращайтесь к нему чаще. СправочникМенеджер.<Имя справочника> (CatalogManager.<Catalog name>)
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
30.11.2020, 18:44 |
Помогаю со студенческими работами здесь Несоответствие типов Несоответствие типов if then else несоответствие типов interface uses Несоответствие типов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 6 |
Содержание:
1. Несоответствие типов данных
2. Ошибка внутри таблицы в запросе
3. Причина ошибки внутри команды
Приветствую, коллеги! В данной статье рассмотрим понятие и описание типа данных и переменных в системе 1С версии 8.3. Также поговорим о распространенной ошибке «Несоответствие типов», изложим инструкцию с по ее устранению.
1. Несоответствие типов данных
Тип – это характеристика у значения, которая определяет поведение и свойства, которые имеет данное значение.
В командах внутри системы 1С параметры имеют некую специальную очерёдность, а также все параметры имеют ссылку на данные, которые связаны с каким-либо типом. В случае, когда какой-то из параметров находится в неположенном месте, либо название не соответствует типу, выполняются невозможные действия для конкретного типа – появляется сообщение, в котором говорится о несоответствии типов данных (показано на скриншоте ниже):
Рис. 1 Сообщение об ошибке несоответствии типов
Чаще всего данная неполадка возникает, когда при написании запроса внутри команды не верно указывают параметры. Исправление подобной ошибки производится при помощи изменения типа передаваемого параметра или используемой переменной на правильный тип данных.
2. Ошибка внутри таблицы в запросе
Рассмотрим пример: при чтении цен из номенклатуры согласно регистру данных «Цены номенклатуры» с общего внешнего отчёта всплывает ошибка «Неоднозначное поле «ТипЦен.Номенклатура».
Рис. 2 Ошибка Неоднозначное поле
Видим, что в окне с сообщением о неполадке указано место в коде, где возникла ошибка несоответствия типов: «Параметр номер «1», в строчке вида:
«РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&&ТипЦен,) КАК ЦеныНоменклатурыСрезПоследних.
Чтобы устранить данную ошибку в первую очередь откроем конфигурацию с данным отчётом и найдем внутри кода с формой строчку, которая была приведена выше:
Рис. 3 Исправление ошибки несоответствия типов (Параметр номер 1)
При помощи «Синтаксис-Помощника», в меню конфигурации 1С можно сверить, насколько правильно была написана команда:
Рис. 4 Проверка написания команды с помощью Синтаксис-Помощника
Согласно описанию, в команде «СрезПоследних» находится два параметра: «Отбор» и «Период».
В случае, когда параметр «Период» не был указан, в данной команде будет пустое поле, а после запятой будет написан параметр для отбора. Для нашего примера этим параметром будет «ТипЦен». После правок команда видоизменится так: «СрезПоследних(,ТипЦен = &ТипЦен).
Рис. 5 Исправление команды СрезПоследних
После того как команда СрезПоследних была исправлена, стоит снова сформировать отчёт из «Главное меню → Файл → Открыть».
3. Причина ошибки внутри команды
Имеем такую ошибку: когда происходит поиск вариантов ссылок на контрагента в отчёте системы 1С, то возникает ошибка «Несоответствие типов (параметр номер «2»), как на скриншоте ниже:
Рис. 6 Несоответствие типов (параметр номер «2»)
В системе 1С указано то место, где произошла неполадка – это недопустимый параметр номер 2, если кликнуть на кнопку «ERROR». Чтобы её исправить нужно запустить отчёт в конфигураторе системы 1С, далее ищем форму строчки, в которой написана команда «НайтиПоСсылкам», внутри модуля.
Рис. 7 Команда НайтиПоСсылкам внутри модуля
Можно проверить верность того, как написана команда при помощи «Синтаксис-Помощника» в панели меню системы 1С, кнопка будет выделена:
Рис. 8 Команда НайтиПоСсылкам в Синтаксис-Помощнике
По описанию следует: в команде «НайтиПоСсылкам» находится такие четыре параметра: СписокСсылок, ИсключитьОбъекты, ВключитьОбъекты и ОбластьПоиска.
В параметре с названием «ОбластьПоиска» будет тип «массив», в примере указана единица. Параметр «ОбластьПоиска» — не является обязательным, так что команда, которую исправили будет иметь следующий новый вид: НайтиПоСсылкам(МассивПоиска, , , МассивИсключений).
Рис. 9 Тип массив в НайтиПоСсылкам
Далее запускаем наш отчёт в системе 1С.
После наших действий команда работает исправно и ошибки нет.
Рис. 10 Проверка на наличие ошибок в системе конфигурации 1С
В данной статье было рассмотрено как устранить ошибку несоответствия типов в 1С. На примерах была устранена эта ошибка для запроса и для команды. По данному алгоритму можно всегда устранять данную ошибку.
Специалист компании «Кодерлайн»
Айдар Фархутдинов