|   |   | 
| 
 | Обработка падает с ошибкой ↓ (Волшебник 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 нам там не нужен, оставил строчку ДополнительныйОтбор = ""; добавил строчку Запрос.УстановитьПараметр("Субконто", Субконто); И все заработало! Благодарю всех небезучастных, с вами все невзгоды переносятся легче! | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |