|
Обработка падает с ошибкой ↓ (Волшебник 16.01.2024 18:16) |
☑ | ||
---|---|---|---|---|
0
stajer666
16.01.24
✎
16:41
|
Обработка стала падать с ошибкой, какие действия к этому привели - хз, не уточняется
Код ошибки: Преобразование значения к типу Число не может быть выполнено {ВнешняяОбработка.ВыгрузкаNEONБалтимпэкс.МодульОбъекта(575)}:ДополнительныйОтбор = ?(ДополнительныйОтбор = "0","Субконто1 В (&СписокНоменклатуры)", {ВнешняяОбработка.ВыгрузкаNEONБалтимпэкс.МодульОбъекта(400)}:Выборка = ПолучитьВыборкуПоОстаткамСЦенами(СтруктураПараметров); {ВнешняяОбработка.ВыгрузкаNEONБалтимпэкс.Форма.ФормаУпр.Форма(139)}:АдресФайлаВыгрузкиВХранилище = ОбработкаОбъект.ВыгрузитьНаСервере(); {ВнешняяОбработка.ВыгрузкаNEONБалтимпэкс.Форма.ФормаУпр.Форма(159)}:АдресФайлаВыгрузкиВХранилище = ВыгрузитьНаСервере(); [ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка] Кусок кода, где падает ошибка: Если СтруктураПараметров.ЕстьОтборПоНоменклатуре Тогда ДополнительныйОтбор = ?(ДополнительныйОтбор = "","Субконто1 В (&СписокНоменклатуры)", ДополнительныйОтбор + " И Субконто1 В (&СписокНоменклатуры)"); Запрос.УстановитьПараметр("СписокНоменклатуры",СтруктураПараметров.СписокНоменклатуры); КонецЕсли; Даже и не знаю, с какой стороны подступиться к решению проблемы, обработка монструозная, на 2.5к симолов |
|||
1
Волшебник
16.01.24
✎
16:33
|
Кусок кода не соответствует тексту ошибки. Возможно, запускают другую обработку, не ту, которую Вы смотрите.
Чтобы устранить ошибку, в начале добавьте: ДополнительныйОтбор = ""; И можно переписать так: Доп = Доп + ?(Доп = "", "", " И "); Доп = Доп + "Субконто1 В (&СписокНоменклатуры)"); |
|||
2
stajer666
16.01.24
✎
16:36
|
В общем, видимо, дело не в какой-то конкретной ошибке
Как я понял, обработку надо переписать под другой регистр бухгалтерии |
|||
3
Волшебник
16.01.24
✎
16:38
|
(2) АдЪ и ИзраилЬ
|
|||
4
Лефмихалыч
16.01.24
✎
16:38
|
(1) все соответствует. У него просто переменная ДополнительныйОтбор проинициализирована числом (нулем, возможно), по этому сравнение с пустой строкой возвращает ложь и выполняется сложение числа со строкой
|
|||
5
Лефмихалыч
16.01.24
✎
16:39
|
(2) нет
|
|||
6
Волшебник
16.01.24
✎
16:40
|
(4) в ошибке:
?(ДополнительныйОтбор = "0" в куске кода ?(ДополнительныйОтбор = "" |
|||
7
Fedor-1971
16.01.24
✎
16:43
|
(2) ДополнительныйОтбор - выясни, каким образом в эту переменную попало значение Неопределено, возможно, она инициализируется в Если без безусловного присвоения в Иначе (да поможет тебе отладчик).
Если это некая работа с СКД, то могли просто снять галочку Использовать в настройках или ещё что. Нам отсюда не видно |
|||
8
stajer666
16.01.24
✎
16:46
|
Нашел выше закоменченный кусок кода
Запрос.УстановитьПараметр("СчетТовары", ПланыСчетов.Хозрасчетный.НайтиПоКоду("41.01")); Субконто = Новый Массив; Субконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура); Субконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады); Запрос.УстановитьПараметр("Субконто", Субконто); Если СтруктураПараметров.ЕстьОтборПоСкладам Тогда ДополнительныйОтбор = "Субконто2 В (&СписокСкладов)"; Запрос.УстановитьПараметр("СписокСкладов",СтруктураПараметров.СписокСкладов); Иначе ДополнительныйОтбор = ""; Здесь и задается ДополнительныйОтбор Но, видимо, реально надо переделывать обработку под другой регистр бухгалтерии, если раскоментить этот кусок кода, ошибки пропадают, но выгрузка оказывается пустой ;) |
|||
9
stajer666
16.01.24
✎
16:48
|
(7) нет, СКД здесь и не пахнет, по ряду введенных параметров выполняется выборка, потом эта выборка грузится в 3 разных csv файла
Постановщик нормально объясниться не может, либо не хочет, так как я молодой и неопытный |
|||
10
Fedor-1971
16.01.24
✎
16:54
|
(8) Поправь код как в 1, просто проинициализируй строкой ДополнительныйОтбор и выясни почему в ошибке он = "0", а в твоём коде = ""?
Точно смотришь в правильный кусок кода? |
|||
11
stajer666
16.01.24
✎
17:13
|
(10) Да, смотрел в правильный кусок кода
В итоге постановщик сказал, что Субоконто2 нам там не нужен, оставил строчку ДополнительныйОтбор = ""; добавил строчку Запрос.УстановитьПараметр("Субконто", Субконто); И все заработало! Благодарю всех небезучастных, с вами все невзгоды переносятся легче! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |