Четверг, 25.04.2024, 09:11
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Основной » Проблемные ситуации » 4.38 Управление итогами регистров (Ошибка при установке галки "Статистика по текущему регистру")
4.38 Управление итогами регистров
gslawaДата: Суббота, 06.01.2018, 15:15 | Сообщение # 1
Лейтенант
Группа: Проверенные
Сообщений: 61
Репутация: 32
Статус: Оффлайн
Конфигурация БП КОРП 3.0.57.10
MS SQL 2016
ИР 6.4.38 интегрирована в конфигурацию
Запускаю УправлениеИтогамиРегистров
Нажимаю галку "Показывать структуру хранения"
Выделяю строку РегистрБухгалтерии.ЖурналПроводок...
Нажимаю галку "Статистика по текущему регистру"
Получаю ошибку:

"{Обработка.ирУправлениеИтогамиРегистров.Форма.Форма.Форма(503)}: Ошибка при вызове метода контекста (Open)
РезультатЗапроса.Open(ТекстЗапроса, мСоединениеADO, adOpenStatic, adLockOptimistic, adCmdText);
по причине:
Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Неправильный синтаксис около ключевого слова "then".

"

Смотрю в отладчике в этой строке (503) ТекстЗапроса = 

"Select Period, sum(TotalsRows) as TotalsRows, sum(DetailRows) as DetailRows 
, sum(TotalsNonZeroRows) as TotalsNonZeroRows, sum(TotalsZeroRows) as TotalsZeroRows
From
(SELECT
_Period as Period, 
0 AS DetailRows,
count(*) as TotalsRows,
sum(case when 
then 1 else 0 end) as TotalsZeroRows,
sum(case when 
then 0 else 1 end) as TotalsNonZeroRows

FROM 
_AccRgAT07552
GROUP BY _Period
  
  UNION all 
 
SELECT 
Period as Period, 
count(*) as DetailRows, 
0 as TotalsRows,
0 as TotalsZeroRows,
0 as TotalsNonZeroRows
From 

  SELECT DATEADD(MONTH,1+DATEDIFF(MONTH,0, _Period),0) as Period
FROM _AccRg7539
) as v
GROUP BY Period 
) as al
GROUP by Period
ORDER by Period
"

Между "case when" и "then" нет условия

По другим регистрам та-же история

Добавлено (06.01.2018, 15:15)
---------------------------------------------
Добавлю: режим работы обычное приложение.

 
tormozitДата: Суббота, 06.01.2018, 17:09 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 6175
Репутация: 156
Статус: Оффлайн
Нужна полна информация для технической поддержки http://devtool1c.ucoz.ru/forum/2-2-1
Покажи все строки из инструмента "Структура хранения БД" с отбором по метаданным этого регистра.
 
gslawaДата: Суббота, 06.01.2018, 18:11 | Сообщение # 3
Лейтенант
Группа: Проверенные
Сообщений: 61
Репутация: 32
Статус: Оффлайн
Такой?
Прикрепления: 0302323.jpg (343.9 Kb)
 
tormozitДата: Суббота, 06.01.2018, 18:39 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 6175
Репутация: 156
Статус: Оффлайн
Относительно "информация для технической поддержки" нет. Обычно после прочтения http://devtool1c.ucoz.ru/forum/2-2-1 такой вопрос не возникает.
 
gslawaДата: Суббота, 06.01.2018, 18:47 | Сообщение # 5
Лейтенант
Группа: Проверенные
Сообщений: 61
Репутация: 32
Статус: Оффлайн
ОС: Windows x86 Microsoft Windows 8.1 version 6.3  (Build 9600)
Платформа: 8.3.11.2867
Конфигурация: Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.57.10)
Режим БД: клиент-серверный
Приложение: Обычное приложение 32б
Основной режим запуска: Управляемое приложение
От имени администратора Windows: Нет
Режим совместимости: Версия8_3_10
Инструменты разработчика: Подсистема 4.38
 
tormozitДата: Суббота, 06.01.2018, 18:48 | Сообщение # 6
Генералиссимус
Группа: Администраторы
Сообщений: 6175
Репутация: 156
Статус: Оффлайн
Найди строку кода в модуле формы
Код
Если МетаРегистр.Ресурсы.Найти(ПолеИтогов.ИмяПоля) <> Неопределено Тогда
И в отладчике попробуй разобраться, почему это условие не выполняется.
 
gslawaДата: Суббота, 06.01.2018, 19:14 | Сообщение # 7
Лейтенант
Группа: Проверенные
Сообщений: 61
Репутация: 32
Статус: Оффлайн
Хор
Гляну
 
gslawaДата: Воскресенье, 07.01.2018, 10:57 | Сообщение # 8
Лейтенант
Группа: Проверенные
Сообщений: 61
Репутация: 32
Статус: Оффлайн
Хор
У меня уже время (в хабаровске) 02:30 - спать пора

Добавлено (06.01.2018, 19:39)
---------------------------------------------
хотел спросить про скриншот, но уже завтра

Добавлено (07.01.2018, 06:54)
---------------------------------------------
1с 8.3.11.2867
Системная функция ПолучитьСтруктуруХраненияБазыДанных возвращает некоторые данные с пустым ИмяПоля

Нужно подменить вызов этой функции на ирПолучитьСтруктуруХраненияБазыДанных

Нужно добавить новую в ОбщийМодуль.ирГлобальный


Код
Функция ирПолучитьСтруктуруХраненияБазыДанных(ОбъектыМетаданных, ИменаБазыДанных) Экспорт //slawa Нач 20180107 12:57 (ID:) Кон
   Результат = ПолучитьСтруктуруХраненияБазыДанных(ОбъектыМетаданных, ИменаБазыДанных);
   
   //ВерсияПлатформы = Новый СистемнаяИнформация().ВерсияПриложения;
   
   Для каждого КаждыйМета Из Результат Цикл
      Для каждого КаждоеПолеИзМета Из КаждыйМета.Поля Цикл
         Если Не ЗначениеЗаполнено(КаждоеПолеИзМета.ИмяПоля) Тогда
            НачалоИмениВМетаданных = СтрНайти(КаждоеПолеИзМета.Метаданные, ".", НаправлениеПоиска.СКонца);
            Если НачалоИмениВМетаданных <> 0 Тогда
               КаждоеПолеИзМета.ИмяПоля = Сред(КаждоеПолеИзМета.Метаданные, НачалоИмениВМетаданных+1);
            КонецЕсли;
         КонецЕсли;
      КонецЦикла;
   КонецЦикла;
   
   Возврат Результат;
КонецФункции


Может нужно проверять версию, но мне кажется она не так часто вызывается


Сообщение отредактировал gslawa - Воскресенье, 07.01.2018, 07:19
 
gslawaДата: Воскресенье, 07.01.2018, 11:05 | Сообщение # 9
Лейтенант
Группа: Проверенные
Сообщений: 61
Репутация: 32
Статус: Оффлайн
Я про это во вложении
Прикрепления: 3547525.jpg (85.7 Kb)
 
tormozitДата: Воскресенье, 07.01.2018, 18:40 | Сообщение # 10
Генералиссимус
Группа: Администраторы
Сообщений: 6175
Репутация: 156
Статус: Оффлайн
Код
Функция УсловиеНулевогоИтога(Знач ПолноеИмяРегистра, Знач СтрокаХраненияИтогов)
    
    МетаРегистр = Метаданные.НайтиПоПолномуИмени(ПолноеИмяРегистра);
    ПоляТаблицыИтогов = СтрокаХраненияИтогов.Поля;
    Если СтрокаХраненияИтогов.Назначение = "ИтогиМеждуСчетами" Тогда
        // Антибаг платформы 8.3.8. В описании полей не указаны метаданные
        Возврат "1=0";
    КонецЕсли;
    УсловиеНулевыхРесурсов = "";
    Для Каждого ПолеИтогов Из ПоляТаблицыИтогов Цикл
        ИмяПоля = ПолеИтогов.ИмяПоля;
        Если Не ЗначениеЗаполнено(ИмяПоля) Тогда
            // Антибаг платформы 8.3.11 https://bugboard.v8.1c.ru/error/000016790.html
            ИмяПоля = ирОбщий.ПолучитьПоследнийФрагментЛкс(ПолеИтогов.Метаданные);
        КонецЕсли;
        Если МетаРегистр.Ресурсы.Найти(ИмяПоля) <> Неопределено Тогда
            Если УсловиеНулевыхРесурсов <> "" Тогда
                УсловиеНулевыхРесурсов = УсловиеНулевыхРесурсов + "
                |    AND ";
            КонецЕсли;
            УсловиеНулевыхРесурсов = УсловиеНулевыхРесурсов + ПолеИтогов.ИмяПоляХранения +  " = 0";
        КонецЕсли;
    КонецЦикла;
    Возврат УсловиеНулевыхРесурсов;

КонецФункции


Попробуй такой вариант функции. Использовать предлагаемую тобой функцию ирПолучитьСтруктуруХраненияБазыДанных не хочется, т.к. она является антибагом платформы, но делает больше и дольше чем можно в конкретном месте.

Проблема пустых свойств ИмяПоля мной уже отправлялась пару лет назад в 1С и они ее вроде бы исправили 8.3.9 https://bugboard.v8.1c.ru/error/000016790.html , но в 8.3.11 видимо опять сломали. Я сейчас им снова написал.
 
tormozitДата: Воскресенье, 07.01.2018, 18:41 | Сообщение # 11
Генералиссимус
Группа: Администраторы
Сообщений: 6175
Репутация: 156
Статус: Оффлайн
По смещению дат заведи пожалуйста отдельную тему, иначе проблема рискует затеряться.
 
tormozitДата: Суббота, 20.01.2018, 17:03 | Сообщение # 12
Генералиссимус
Группа: Администраторы
Сообщений: 6175
Репутация: 156
Статус: Оффлайн
Исправлено в 4.39
 
Форум » Основной » Проблемные ситуации » 4.38 Управление итогами регистров (Ошибка при установке галки "Статистика по текущему регистру")
  • Страница 1 из 1
  • 1
Поиск: