8.х Преобразование значения к типу Дата не может быть выполнено

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Светлана_Трофимова, 20 апр 2010.

  1. TopicStarter Overlay
    Светлана_Трофимова
    Offline

    Светлана_Трофимова

    Регистрация:
    17 мар 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Есть Документ : Сдельная Работа
    Реквизиты: Оборудование
    ТекущаяРастановка
    Подразделение
    Табличные Части: Повременная Оплата
    * сотрудник (СправочникСсылка.СотрудникиОрганизации)
    * Тариф (число)
    * ЧасыВр (строка)
    * СуммаВр (число)
    Сдельная оплата
    * сотрудник (СправочникСсылка.СотрудникиОрганизации)
    * Тариф (число)
    * ЧасыСд (строка)
    * СуммаСд (число)
    Еще есть Регистр Сведений: РегистрПериод
    Измерения: Подразделения
    Разряд
    Ресурсы : СуммаПовременная
    СуммаСдельная

    Мне необходимо при добавить в табличную часть ПовременнаяОплата, в поле Тариф значение из РегистраПериод СуммаПовременная, аналогично со сдельной.

    Я делаю так, но у меня ошибка:


    Код:
    Процедура СуммаИтогоСотрудникПриИзменении(Элемент)
    
    СотрудникТек=ЭлементыФормы.СуммаИтого.ТекущиеДанные.Сотрудник;
    
    // Повременная оплата	
    СтрокаТЧВр = ПовременнаяОплата.Добавить();
    СтрокаТЧВр.Сотрудник = СотрудникТек; 
    
    Для Каждого Сотрудник из ПовременнаяОплата Цикл
    
    Запрос = Новый Запрос;
    Запрос.Текст  =
    "ВЫБРАТЬ
    |	ЕСТЬNULL(СУММА(РегистрПериод.СуммаПовременная), 0) КАК ТАРИФ,
    |	РегистрПериод.Подразделение.Ссылка
    |ИЗ
    |	РегистрСведений.РегистрПериод КАК РегистрПериод
    |ГДЕ
    |	РегистрПериод.Период МЕЖДУ &ДатаНач И &ДатКон
    |	И РегистрПериод.Подразделение = &Подразделение
    |
    |СГРУППИРОВАТЬ ПО
    |	РегистрПериод.Подразделение.Ссылка";
    
    Запрос.УстановитьПараметр("Подразделение", Подразделение);
    ПериодРегистрации=ЭлементыФормы.ПериодРегистрации;
    Запрос.УстановитьПараметр("ДатаНач", НачалоМесяца(ПериодРегистрации));
    Запрос.УстановитьПараметр("ДатаКон", КонецМесяца(ПериодРегистрации));
    Выборка = Запрос.Выполнить().Выбрать();
    
    Пока   Выборка.Следующий() Цикл
    ПовременнаяОплата.Тариф = Выборка.СуммаПовременная;
    ЭлементыФормы.Сотрудники.ТекущаяСтрока = Сотрудник;
    КонецЦикла;	 
    КонецЦикла;
    

    Ошибка такая: {Документ.СдельнаяРабота.Форма.ФормаДокумента(28)}: Преобразование значения к типу Дата не может быть выполнено
    Запрос.УстановитьПараметр("ДатаНач", НачалоМесяца(ПериодРегистрации));
  2. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    1. Использовать запрос в цикле - грубейшая ошибка. Будет работать медленно. Лучше сделать запрос по списку сотрудников и обрабатывать полученный результат.

    2. Это процедура находится в модуле формы или в модуле объекта?
    Если в модуле формы, то нет необходимости обращатся к элементам формы через ЭлементыФормы, можно просто по имени элемента. Если из модуля объекта - то нужно обращатся к значению, а не к самому элементу управления.
    В вашем случае будет

    ПериодРегистрации = ЭлементыФормы.ПериодРегистрации.Значение;

    либо вообще убрать эту строку(если в модуле формы)

Поделиться этой страницей