Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
30 мая 2024, 07:35

Помогите с ошибкой сравнения

Автор programmister, 24 июл 2018, 06:21

0 Пользователей и 1 гость просматривают эту тему.

programmister

После переноса элементов формы из обработки на форму документа перестал работать запрос выдает ошибку {Документ.ТабельУчетаРабочегоВремени.Форма.Форма.Форма(245)}: Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата)
      Для Номер = 1 По 31 Цикл
Сам запрос
Для Каждого Строка Из ТабличноеПоле1 Цикл
ф = 0; //дни месяца
      от = 0; //дни отпуска
      бл = 0;   //дни болезни
      бс = 0;   //дни без содержания
      ко = 0; //дн командировки
      ЧМ = 0;  //часы месяца
       Запрос = Новый Запрос;
      Запрос.Текст =
      "ВЫБРАТЬ
      |  ОтклоненияВГрафиках.ВидОтклонения,
      |   ОтклоненияВГрафиках.ДатаНачала,
      |   ОтклоненияВГрафиках.ДатаОкончания
      |ИЗ
      |   РегистрСведений.ОтклоненияВГрафиках КАК ОтклоненияВГрафиках
      |ГДЕ
      |   ОтклоненияВГрафиках.Сотрудник = &Сотрудник
      |   И ОтклоненияВГрафиках.Организация = &Организация
      |   И ОтклоненияВГрафиках.Регистратор.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания";
      Запрос.УстановитьПараметр("Сотрудник",Строка.ФИО);
      Запрос.УстановитьПараметр("Организация",Организация);
      Запрос.УстановитьПараметр("ДатаНачала",НачалоМесяца(ЭлементыФормы.ДатаПериода.Значение));
      Запрос.УстановитьПараметр("ДатаОкончания",КонецМесяца(ЭлементыФормы.ДатаПериода.Значение));
      ТЗ = Запрос.Выполнить().Выбрать();    
     ТЗ = Запрос.Выполнить().Выбрать();
         Пока ТЗ.Следующий() Цикл      
      Для Номер = 1 По 31 Цикл
                 Колонка = Строка["Колонка"+Номер];         
           Если Номер >= ТЗ.ДатаНачала и Номер <= ТЗ.ДатаОкончания и Колонка = "я" Тогда
               Колонка = НРег(Лев(ТЗ.ВидОтклонения,2));
               Строка["Колонка" + Номер] = Колонка;
                Если Колонка = "я" Тогда
          ф = ф + 1;
       ЧМ = ЧМ + Строка["Время" + Номер];
      ИначеЕсли Колонка = "бс" Тогда
          бс = бс+1;
      ИначеЕсли Колонка = "от" Тогда
          от = от +1;
       ИначеЕсли Колонка = "бл" Тогда
          бл = бл + 1;
       ИначеЕсли Колонка = "ко" Тогда
          ко = ко+1;
       КонецЕсли;
        Если Номер = 15 Тогда
          ЧМ1 = ЧМ;
          ДМ1 = ф;
       КонецЕсли;
       КонецЕсли;
           КонецЦикла;
         Строка.Отпуск = от;
      Строка.Болезнь = бл;
      Строка.ОтпускБезСодержания = бс;
      Строка.Командировка = ко;
         КонецЦикла;
  КонецЦикла;
КонецФункции
Во внешней обработке все работало без ошибок перенес на форму документа в конфигурацию стало выдавать ошибку

alexandr_ll

Какое сравнение происходит в строке 245?

programmister

Значение переменной номер
Добавлено: 24 июл 2018, 06:52


Выражение цикла (отладчиком пользоваться не умею поэтому сильно не пинайте)

alexandr_ll

Так вы строку сравниваете с числом?

Sy4a

Цитата: programmister от 24 июл 2018, 06:21Во внешней обработке все работало без ошибок перенес на форму документа в конфигурацию стало выдавать ошибку
Скорее всего если у вас обычные формы, то на форме уже есть какоето поле которое называется номер, а вы ещё переменную такую испольуете, вот и конфликт, переименуйте вашу переменную "Номер".


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск