Имя: Пароль:
1C
1С v8
Ошибка СУБД: Недопустимое преобразование типов данных в записи
0 a13k55
 
04.10.16
10:08
Добрый день. УТ 10.3, клиент-сервер, MS SQL
Переходили с платформы 8.1 на 8.3.
Есть обработка заполнения табличных частей, периодически она вываливается в такую ошибку: Ошибка СУБД: Недопустимое преобразование типов данных в записи. Причем работу в программе продолжить нельзя, только завершить или перезапустить. Пробовал бегать отладчиком - вываливается в разных местах. С 3-5 попытки ошибка уходит и  тч заполняется нормально. Скуль все регламентные операции отрабатывает.
Может кто сталкивался, подскажите, куда копать?
1 butterbean
 
04.10.16
10:10
запрос заполнения надо смотреть
2 a13k55
 
04.10.16
10:37
Обычное соединение 3 виртуальных таблиц с итогами. Но ошибка возникает не всегда во время его выполнения.

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ВнутренниеЗаказыОстатки.Номенклатура КАК Номенклатура,
    ВнутренниеЗаказыОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    СУММА(ВнутренниеЗаказыОстатки.КоличествоОстаток) КАК КолОстаток,
    ВнутренниеЗаказыОстатки.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения,
    ВнутренниеЗаказыОстатки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК Коэффициент,
    ВнутренниеЗаказыОстатки.СтатусПартии КАК СтатусПартии,
    ВнутренниеЗаказыОстатки.ВнутреннийЗаказ КАК Заказ,
    ВнутренниеЗаказыОстатки.Заказчик КАК Заказчик,
    МАКСИМУМ(ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0)) КАК КолРезерв,
    МАКСИМУМ(ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0)) КАК КолНаСкладе,
    ТоварыНаСкладахОстатки.Склад
ИЗ
    РегистрНакопления.ВнутренниеЗаказы.Остатки(
            &КонДата,
            ВнутреннийЗаказ = &Заказ
                И СтатусПартии В (&СтатусыПартий)) КАК ВнутренниеЗаказыОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&КонДата, ДокументРезерва = &Заказ) КАК ТоварыВРезервеНаСкладахОстатки
        ПО ВнутренниеЗаказыОстатки.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура
            И ВнутренниеЗаказыОстатки.ХарактеристикаНоменклатуры = ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&КонДата, ) КАК ТоварыНаСкладахОстатки
        ПО ВнутренниеЗаказыОстатки.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
            И ВнутренниеЗаказыОстатки.ХарактеристикаНоменклатуры = ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры
ГДЕ
    ТоварыВРезервеНаСкладахОстатки.Склад = ТоварыНаСкладахОстатки.Склад

СГРУППИРОВАТЬ ПО
    ВнутренниеЗаказыОстатки.Номенклатура,
    ВнутренниеЗаказыОстатки.ХарактеристикаНоменклатуры,
    ВнутренниеЗаказыОстатки.СтатусПартии,
    ВнутренниеЗаказыОстатки.ВнутреннийЗаказ,
    ВнутренниеЗаказыОстатки.Заказчик,
    ВнутренниеЗаказыОстатки.Номенклатура.ЕдиницаХраненияОстатков,
    ВнутренниеЗаказыОстатки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент,
    ТоварыНаСкладахОстатки.Склад

ИМЕЮЩИЕ
    МАКСИМУМ(ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0)) > 0 И
    СУММА(ВнутренниеЗаказыОстатки.КоличествоОстаток) > 0
ИТОГИ
    СУММА(КолОстаток),
    МАКСИМУМ(КолРезерв),
    МАКСИМУМ(КолНаСкладе)
ПО
    Номенклатура,
    ХарактеристикаНоменклатуры
3 a13k55
 
04.10.16
10:37
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ВнутренниеЗаказыОстатки.Номенклатура КАК Номенклатура,
    ВнутренниеЗаказыОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    СУММА(ВнутренниеЗаказыОстатки.КоличествоОстаток) КАК КолОстаток,
    ВнутренниеЗаказыОстатки.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения,
    ВнутренниеЗаказыОстатки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК Коэффициент,
    ВнутренниеЗаказыОстатки.СтатусПартии КАК СтатусПартии,
    ВнутренниеЗаказыОстатки.ВнутреннийЗаказ КАК Заказ,
    ВнутренниеЗаказыОстатки.Заказчик КАК Заказчик,
    МАКСИМУМ(ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0)) КАК КолРезерв,
    МАКСИМУМ(ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0)) КАК КолНаСкладе,
    ТоварыНаСкладахОстатки.Склад
ИЗ
    РегистрНакопления.ВнутренниеЗаказы.Остатки(
            &КонДата,
            ВнутреннийЗаказ = &Заказ
                И СтатусПартии В (&СтатусыПартий)) КАК ВнутренниеЗаказыОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&КонДата, ДокументРезерва = &Заказ) КАК ТоварыВРезервеНаСкладахОстатки
        ПО ВнутренниеЗаказыОстатки.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура
            И ВнутренниеЗаказыОстатки.ХарактеристикаНоменклатуры = ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&КонДата, ) КАК ТоварыНаСкладахОстатки
        ПО ВнутренниеЗаказыОстатки.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
            И ВнутренниеЗаказыОстатки.ХарактеристикаНоменклатуры = ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры
ГДЕ
    ТоварыВРезервеНаСкладахОстатки.Склад = ТоварыНаСкладахОстатки.Склад

СГРУППИРОВАТЬ ПО
    ВнутренниеЗаказыОстатки.Номенклатура,
    ВнутренниеЗаказыОстатки.ХарактеристикаНоменклатуры,
    ВнутренниеЗаказыОстатки.СтатусПартии,
    ВнутренниеЗаказыОстатки.ВнутреннийЗаказ,
    ВнутренниеЗаказыОстатки.Заказчик,
    ВнутренниеЗаказыОстатки.Номенклатура.ЕдиницаХраненияОстатков,
    ВнутренниеЗаказыОстатки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент,
    ТоварыНаСкладахОстатки.Склад

ИМЕЮЩИЕ
    МАКСИМУМ(ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0)) > 0 И
    СУММА(ВнутренниеЗаказыОстатки.КоличествоОстаток) > 0
ИТОГИ
    СУММА(КолОстаток),
    МАКСИМУМ(КолРезерв),
    МАКСИМУМ(КолНаСкладе)
ПО
    Номенклатура,
    ХарактеристикаНоменклатуры
4 CyberJACK
 
04.10.16
14:28
(0) Если сервер 1С и сервер MS SQL находятся на разных машинах, попробуй установить SQL Server Native Client на машине с сервером 1С
5 a13k55
 
05.10.16
10:11
(4) Спасибо за ответ, но на диске ИТС написано:

"При установке свойства Режим совместимости (описание свойства см. здесь) в значение большее, чем Версия 8.3.7:

? Для работы системы «1С:Предприятие» требуется установленный SQL Server Native Client for SQL Server 2005 (и более старших версий Microsoft SQL Server). "

А у меня режим совместимости Версия 8.1
Причем:

"Проверка наличия установленного SQL Server Native Client осуществляется при выполнении следующих операций:

? создание информационной базы;

? загрузка информационной базы;

? обновление конфигурации базы данных."

У меня же ошибка возникает во время выполнения программного кода.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс