Имя: Пароль:
1C
1С v8
Дата в форме Дока
0 Su60ta_SunRise
 
20.08.13
20:23
У меня делема
На форме есть ТабличноеПоле и Период
Когда вызываю форму то период значений не несет некаких, если выставляем даты, то показывает документы в заданном периоде
А как сделать, что бы не указывая даты выводились все документы по кнопке вывести данные (Для кнопки есть процедура, там запрос по документам и там же условие в запросе про период)

Т.к. как сделать, чтобы период в форме уже был выбран к примеру НачПериода = "0001-01-01" и КонПериода = "3999-31-12"
Стандартные условие типа Если КонПериода= "0001-01-01" ТОгда
СтавьМоюДату, не пашут
1 Ork
 
20.08.13
20:26
(0)
1. Таки собраться с духом и выучить русский язык.
2. Установить значение реквизитов можно
  для УФ - в процедуре ПриСозданииНаСервере()
  для обычного приложения в ПередОткрытием, в ПриОткрытии.
2 Su60ta_SunRise
 
20.08.13
20:30
Делал, все равно значение не передает.
3 Su60ta_SunRise
 
20.08.13
20:32
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
    Если НачПериода = "0001-01-01" Тогда
        НачПериода = "1990-01-01";
    КонецЕсли;
    
    Если КонПериода = "0001-01-01" Тогда
        КонПериода = "3999-12-31";
    КонецЕсли;
    
КонецПроцедуры
4 silent person
 
20.08.13
20:37
там же не строки там тип значения Дата.  а ты чего со строками сравниваешь ? и присваиваешь тоже строковые значения
5 Su60ta_SunRise
 
20.08.13
20:46
{Форма.Форма.Форма(61)}: Ошибка при вызове метода контекста (ЗначениеЗаполнено)
    Если НЕ ЗначениеЗаполнено(ЭлементыФормы.НачПериода) Тогда
по причине:
Проверка мутабельных значений на заполненность не поддерживается
6 Su60ta_SunRise
 
20.08.13
21:02
Тонкости...

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)    
    Если НЕ ЗначениеЗаполнено(ЭтаФорма.НачПериода) Тогда
        Сообщить("ПустаяДата");
        НачПериода = Дата(2000,01,01);
    КонецЕсли;
    
    Если НЕ ЗначениеЗаполнено(ЭтаФорма.КонПериода) Тогда
        КонПериода = Дата(3999,12,31);
    КонецЕсли;
    
КонецПроцедуры


так все работает
7 hhhh
 
20.08.13
22:09
Если НЕ ЗначениеЗаполнено(НачПериода) Тогда
8 Su60ta_SunRise
 
21.08.13
13:56
А Вот если ничего не передовать в КонПериода, то естественно у нас будет значение "пустой даты" и ничего не отобразиться
Тут по логике надо задать условие что Если Конпериода = ""
Тогда ставь "мой период".Т.к. работаю с формой и запросом только, то получается, что значение встанет в форме, т.е. будет сразу выбран "мой Период"
Как сделать, что бы это условие не выводилось в форму, а передавало само значение в запрос?



Запрос = Новый запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    РеализацияТоваровУслуг.Ссылка,
    |    РеализацияТоваровУслуг.СуммаДокумента,
    |    РеализацияТоваровУслуг.Контрагент,
    |    ВложенныйЗапрос.Значение
    |ИЗ
    |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |            ЗначенияСвойствОбъектов.Объект КАК Объект,
    |            ЗначенияСвойствОбъектов.Значение КАК Значение
    |        ИЗ
    |            РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
    |        ГДЕ
    |            ЗначенияСвойствОбъектов.Свойство = &Свойство) КАК ВложенныйЗапрос
    |        ПО РеализацияТоваровУслуг.Ссылка = ВложенныйЗапрос.Объект";
    Если ЗначениеЗаполнено(НачПериода) или ЗначениеЗаполнено(КонПериода)  Тогда
        Запрос.Текст= Запрос.Текст +     
        "    ГДЕ
        |    РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНач И &ДатаКон";    
    КонецЕсли;
    Запрос.УстановитьПараметр("ДатаНач",НачПериода);
    Запрос.УстановитьПараметр("ДатаКон",КонПериода);
    Запрос.УстановитьПараметр("Свойство",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("ДатаПланируемойОплаты"));
    ТЗ = Запрос.Выполнить().Выбрать();
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.