![]() |
![]() |
![]() |
|
Странный баг после перехода на платформу старше 8.3.9.2170 | ☑ | ||
---|---|---|---|---|
0
alex1974
20.04.17
✎
09:19
|
Есть вот такой простенький код:
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | хр.Субконто1.Код КАК Код, | СУММА(хр.КоличествоКонечныйРазвернутыйОстатокДт) КАК Количество |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(, &Дата, , ДвиженияИГраницыПериода, Счет = &Счет, , ) КАК хр | |ГДЕ | хр.Субконто1.Код В(&НоменклатураКод) И хр.Субконто"+НомерТипаСубконто+".Код = &СкладКод | |СГРУППИРОВАТЬ ПО | хр.Субконто1.Код"; Запрос.УстановитьПараметр("Дата", НачалоДня(Объект.Дата1)); Запрос.УстановитьПараметр("НоменклатураКод", МассивТоваровДляЗапроса); Запрос.УстановитьПараметр("Счет", ББСч4101); Запрос.УстановитьПараметр("СкладКод", Объект.СкладОтправитель.Код); ОстаткиТовара = Запрос.Выполнить().Выгрузить(); Если ОстаткиТовара.Количество() = 0 Тогда Сообщить("Остатков указанного товара на складе-отправителе нет"); Возврат; КонецЕсли; Для Каждого стр Из Объект.Товары Цикл Если стр.Количество = 0 Тогда Продолжить; КонецЕсли; НайдКод = ОстаткиТовара.Найти(стр.Код, "Код"); Если НайдКод <> Неопределено Тогда Если стр.Количество > НайдКод.Количество Тогда стр.Количество = НайдКод.Количество; КонецЕсли; Иначе стр.Количество = 0; КонецЕсли; КонецЦикла; Эта обработка залезает в удаленную базу, берет там остатки товара и сравнивает их количество со своей табличной частью. Обе таблицы в тесте маленькие - по 700 строк, везде тип поля Количество = "Число" В отладчике в обеих таблицах всё чисто и красиво, только определенные числовые значения. Этот кусок всегда работал и вот вдруг после перехода на платформу 8.3.9.2233 начала намертво падать 1С в момент вот этого присвоения стр.Количество = НайдКод.Количество; примерно через 50 итераций цикла. Обновление до последней версии 8.3.10 не помогло. А знаете, что помогло? |
|||
1
Гипервизор
20.04.17
✎
09:26
|
откат на 8.3.9.2170?
|
|||
2
alex1974
20.04.17
✎
09:29
|
Ладно не буду томить. Пришлось насильно установить тип. Хотя там кроме числа ничего не могло быть.
стр.Количество = Число(НайдКод.Количество); |
|||
3
Мимохожий Однако
20.04.17
✎
09:33
|
Иногда помогает регистрация com...dll после установки новой платформы.
|
|||
4
alex1974
20.04.17
✎
09:44
|
А каким боком на операцию присвоения в цикле может влиять регистрация длл? Там же простой тип. Хотя... Кто его знает, что там в "ейном нутре" - отладчик показывает число, а на самом деле это неведома зверушка.
Разумеется, я нашел строку, на которой падает платформа. Никакого криминала на первый взгляд, самое обычное числовое значение в поле "Количество". |
|||
5
Про100Филя
20.04.17
✎
10:00
|
(0) v83COMConnector зарегай заново.
|
|||
6
НЕА123
20.04.17
✎
10:04
|
(0)
ОстаткиТовара.Найти(стр.Код, "Код") вернул пустую ссылку. |
|||
7
НЕА123
20.04.17
✎
10:08
|
(6) сторно.
ЗЫ не проснулся |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |