|   |   | 
| 
 | Типы сравнений. Подскажите пожалуйста | ☑ | ||
|---|---|---|---|---|
| 0
    
        Kostik2013 26.08.13✎ 23:45 | 
        1С:Предприятие 8.2 (8.2.15.310) УТ  
 Всем добрый вечер! Нужно сравнить два разных типа между собой. Один Строка в табличной части (ОтработанныхДней) а второй Число (НормаДней). Как правильно записать разные типы,чтоб получилось сравнить больше или меньше? Спасибо всем за помощь. &НаКлиенте Процедура ТаблицаОтработанныхДнейПриИзменении(Элемент) Если ОтработанныхДней > НормаДней Тогда Предупреждение("Превышение нормы рабочих дней !"); Отказ=Истина КонецЕсли; КонецПроцедуры | |||
| 1
    
        Max Street 26.08.13✎ 23:55 | 
        разные типы никак. попробуй написать:
 Если Число(ОтработаноДней) > НормаДней Тогда | |||
| 2
    
        Kostik2013 26.08.13✎ 23:59 | 
        (1) все равно не определяет переменную ОтработанныхДней     | |||
| 3
    
        Max Street 27.08.13✎ 00:01 | 
        пишет, что не может преобразовать в тип Число?
 а как ОтработаноДней вообще может быть строкой? | |||
| 4
    
        Kostik2013 27.08.13✎ 00:06 | 
        (3) я ввожу руками сколько дней отработано,вот и есть строка.Поменял на число,то же самое. 
 Отработано дней,находится в ТЧ а НормаДней Реквизит Вот,что пишет {Документ.НачислениеЗарплаты.Форма.ФормаДокумента.Форма(11,7)}: Переменная не определена (ОтработанныхДней) Если <<?>>ОтработанныхДней > НормаДней Тогда (Проверка: Толстый клиент (обычное приложение)) | |||
| 5
    
        Славен 27.08.13✎ 00:08 | 
        так ты определись с правильным названием, тебе же пишет что не вкурил что такое ОтработанныхДней     | |||
| 6
    
        Славен 27.08.13✎ 00:09 | 
        да и как ты строку ТЧ сравниваешь? тебе может всё же значение поля из строки     | |||
| 7
    
        Max Street 27.08.13✎ 00:10 | 
        т.е ОтработаноДней - реквизит ТЧ, а НормаДней - реквизит шапки?
 если так, то: для каждого абв из ТЧ цикл если абв.отработанодней > нормадней тогда ... конецесли; конеццикла; | |||
| 8
    
        Славен 27.08.13✎ 00:11 | 
        (7)нах тогда "Процедура ТаблицаОтработанныхДнейПриИзменении(Элемент)" - ПриИзменении!     | |||
| 9
    
        Max Street 27.08.13✎ 00:13 | 
        (8) не ко мне вопрос     | |||
| 10
    
        Kostik2013 27.08.13✎ 00:13 | 
        (8) Если пользователь изменил значение     | |||
| 11
    
        Kostik2013 27.08.13✎ 00:16 | 
        (7) НормаДней реквизит в форме     | |||
| 12
    
        Kostik2013 27.08.13✎ 00:18 | 
        Получилось)Всем спасибо! 
 Для каждого Стр из НачисленияСотрудников Цикл Если Стр.ОтработанныхДней > НормаДней Тогда Предупреждение("Превышение нормы рабочих дней !"); Отказ=Истина КонецЕсли; КонецЦикла; НачисленоПоОкладу(); | |||
| 13
    
        acanta 27.08.13✎ 00:19 | 
        Стр = Элементы.абв.ТекущиеДанные;
 Если Стр.ОтработанныхДней > НормаДней Тогда | |||
| 14
    
        Славен 27.08.13✎ 00:20 | 
        а если строк несколько тысяч? постоянно будешь перебирать все?
 если уж суешь в приИзменении то вот и посмотри отладчиком какие данные есть в Элемент. (пысы ориентируйся на что то типа ДанныеСтроки, ТекущиеДанные, ТекущаяСтрока, для особо тупых ещё уточню ставишь точку останова смотришь что у тебя в Элемент, потом в выражении прямо дописываешь Элемент.ТекущаяСтрока или ....) | |||
| 15
    
        Max Street 27.08.13✎ 00:23 | 
        (12) кстати, да, вариант (13) лучше     | |||
| 16
    
        Wobland 27.08.13✎ 04:30 | 
        (12) я очень, очень хочу посмотреть на 20 тысяч предупреждений подряд     | |||
| 17
    
        Vovan_Magadan 27.08.13✎ 04:56 | 
        (7) что за быдло оформление когда))) аж глаза слезятся     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |