|   |   | 
| 
 | 1с 8.2 | ☑ | ||
|---|---|---|---|---|
| 0
    
        Arutynov 25.07.12✎ 10:06 | 
        Здравствуйте, я начинающий прграммист 1с 8.2. Только устроивщись на работу мне дали задание написать платежный календарь, справочкики и документы я сделал, а вот с отчетом проблема(я в тонком клиенте работаю)я могу вывести всю информацию, но не могу вывести например по периоду или документы определенного контрагента. Помогите пожалуйста если знаете.Я пробовал как на толстом клиенте-не работает!!!!!Заранее спасибо!!!!     | |||
| 1
    
        Азат 25.07.12✎ 10:07 | 
        (0) давай начнем с предоплаты в 5000 рублей...     | |||
| 2
    
        kuromanlich 25.07.12✎ 10:07 | 
        (1) ну что так сразу?     | |||
| 3
    
        Гефест 25.07.12✎ 10:07 | 
        Значит, ты что то там сделал, оно не работает, а почему не работает - мы должны знать?     | |||
| 4
    
        butterbean 25.07.12✎ 10:08 | 
        (0) а отбор в скд?? причем это пользователь делает     | |||
| 5
    
        Arutynov 25.07.12✎ 10:08 | 
        пишет не определена дата     | |||
| 6
    
        Arutynov 25.07.12✎ 10:08 | 
        Неодходимо без СКД     | |||
| 7
    
        Arutynov 25.07.12✎ 10:13 | 
        Процедура Заполнить(ТабДок)
  ТабДок.Очистить(); макет=Отчеты.Отчет1.ПолучитьМакет( "Макет1"); //ОблШапка=Макет.ПолучитьОбласть("Шапка" ); //ОблЭлемент=Макет.ПолучитьОбласть("Элемент" ); //ОблШапка.Параметры.Дата=ТекущаяДата(); //ТабДок.Вывести (ОблШапка); Макет = Отчеты.Отчет1.ПолучитьМакет("Макет1"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Счет_На_Оплату.Номер, | Счет_На_Оплату.Дата, | Счет_На_Оплату.Номер_Клиента, | Счет_На_Оплату.Контрагент, | ПРЕДСТАВЛЕНИЕ(Счет_На_Оплату.Контрагент), | Счет_На_Оплату.Платеж, | ПРЕДСТАВЛЕНИЕ(Счет_На_Оплату.Платеж), | Счет_На_Оплату.Форма_Оплаты_К, | Счет_На_Оплату.Критичная_Дата_Платежа, | Счет_На_Оплату.Сумма |ИЗ | Документ.Счет_На_Оплату КАК Счет_На_Оплату |ГДЕ | Счет_На_Оплату.Дата МЕЖДУ &Дат И &Дат1" ; Результат = Запрос.Выполнить(); Сообщить("Номер= "+Результат.Номер+" Дата= "+Результат.Дата); Запрос.УстановитьПараметр("Дат", НачПериода); Запрос.УстановитьПараметр("Дат1", КонецДня(КонПериода)); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы"); ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали"); ТабДок.Очистить(); ТабДок.Вывести(ОбластьЗаголовок); ТабДок.Вывести(ОбластьШапкаТаблицы); ТабДок.НачатьАвтогруппировкуСтрок(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи); ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень()); КонецЦикла; ТабДок.ЗакончитьАвтогруппировкуСтрок(); ТабДок.Вывести(ОбластьПодвалТаблицы); ТабДок.Вывести(ОбластьПодвал); //Выборка = Документы.Счет_На_Оплату.Выбрать(НачПериода,КонецДня(КонПериода)); //Пока Выборка.Следующий() Цикл // Если Выборка.Дата Тогда // Продолжить; // КонецЕсли; //КонецЦикла; //Выборка=Документы.Счет_На_Оплату.Выбрать(); // //Пока Выборка.Следующий()цикл // ОблЭлемент.Параметры.Заполнить(Выборка); // ТабДок.Вывести(ОблЭлемент); //КонецЦикла КонецПроцедуры &НаСервере Процедура ВыбПериодНажатие(Элемент) НастройкаПериода = Новый НастройкаПериода; НастройкаПериода.РедактироватьКакИнтервал = Истина; НастройкаПериода.РедактироватьКакПериод = Истина; НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период; НастройкаПериода.УстановитьПериод(НачПериода, ?(КонПериода='0001-01-01', КонПериода, КонецДня(КонПериода))); Если НастройкаПериода.Редактировать() Тогда НачПериода = НастройкаПериода.ПолучитьДатуНачала(); КонПериода = НастройкаПериода.ПолучитьДатуОкончания(); КонецЕсли; КонецПроцедуры Код примерно такой!!!! | |||
| 8
    
        Agent ООЗ 25.07.12✎ 10:13 | 
        прекрасное название темы, не хватает только КАПСЛОКА.     | |||
| 9
    
        Азат 25.07.12✎ 10:14 | 
        (0) ну так что, помочь тебе?     | |||
| 10
    
        neomarat 25.07.12✎ 10:15 | 
        напиши ошибку полностью - телепатия не в моде     | |||
| 11
    
        Arutynov 25.07.12✎ 10:17 | 
        {Отчет.Отчет1.Форма.ФормаОтчета.Форма(43,35)}: Переменная не определена (НачПериода)
  Запрос.УстановитьПараметр("Дат", <<?>>НачПериода); {Отчет.Отчет1.Форма.ФормаОтчета.Форма(44,45)}: Переменная не определена (КонПериода) Запрос.УстановитьПараметр("Дат1", КонецДня(<<?>>КонПериода)); | |||
| 12
    
        Agent ООЗ 25.07.12✎ 10:18 | 
        лицорука     | |||
| 13
    
        neomarat 25.07.12✎ 10:20 | 
        ну так у тебя не определены НачПериода и КонПериода - в чем вопрос то?     | |||
| 14
    
        Arutynov 25.07.12✎ 10:22 | 
        На форме у меня есть поля ввода  НачПериода и КонПериода, почему они не определены?     | |||
| 15
    
        vicof 25.07.12✎ 10:22 | 
        (14) это не 7.7     | |||
| 16
    
        Arutynov 25.07.12✎ 10:23 | 
        8.2     | |||
| 17
    
        vicof 25.07.12✎ 10:23 | 
        (14) Данные у этих элементов формы какие?     | |||
| 18
    
        neomarat 25.07.12✎ 10:23 | 
        Сделай так: Отчет.НачПериода если это реквизиты отчета конечно     | |||
| 19
    
        geka-geka 25.07.12✎ 10:23 | 
        Моежет сначала параметры установить, а потом выполнить запрос?     | |||
| 20
    
        Cashtane 25.07.12✎ 10:24 | 
        (19) Дело говорит.     | |||
| 21
    
        neomarat 25.07.12✎ 10:24 | 
        эх, Азат походу не сможет заработать - народу в тему набилось...     | |||
| 22
    
        neomarat 25.07.12✎ 10:25 | 
        (19) а точно блин. даже в голову не пришло что можно так сделать ))     | |||
| 23
    
        Азат 25.07.12✎ 10:33 | 
        (21) да пофиг, пойду в старбакс кофе попью лучше     | |||
| 24
    
        Arutynov 25.07.12✎ 11:11 | 
        Я Устонавил параметр вручную перед запросом вот таким образом
  НачПериода='2012-07-01'; КонПериода='2012-07-06'; Теперь он говорит {Отчет.Отчет1.Форма.ФормаОтчета.Форма(51)}: Ошибка при вызове метода контекста (Выполнить) Результат = Запрос.Выполнить(); по причине: {(15, 30)}: Не задано значение параметра "НачПериода" Счет_На_Оплату.Дата МЕЖДУ <<?>>&НачПериода И &КонПериода | |||
| 25
    
        vasilii85 25.07.12✎ 11:20 | 
        "Вручную" это как?     | |||
| 26
    
        Arutynov 25.07.12✎ 11:21 | 
        НачПериода='2012-07-01'; 
  КонПериода='2012-07-06'; Я это имел ввиду вручную | |||
| 27
    
        vasilii85 25.07.12✎ 11:23 | 
        НачПериода='2012-07-01';  - Это что?     | |||
| 28
    
        Arutynov 25.07.12✎ 11:25 | 
        когда указываешь период чтобы вывести документ нужно указать начало и конец, так это начало     | |||
| 29
    
        VasjaIvanov 25.07.12✎ 11:26 | 
        20120701     | |||
| 30
    
        Arutynov 25.07.12✎ 11:27 | 
        можно и так 20120701 и так 2012-07-01 -это одно и тоже     | |||
| 31
    
        vasilii85 25.07.12✎ 11:32 | 
        Ты параметры установил? см(19)     | |||
| 32
    
        vasilii85 25.07.12✎ 11:32 | 
        Покажи как.     | |||
| 33
    
        WASSAW 25.07.12✎ 14:13 | 
        Та же проблемма была. От неопытности ушел на "Обычное приложение" и "Толстый клиент". Сразу все пошло - я Семерочник со стажем.
  Самому интересно узнать как тебе помогут. Причина: У меня так же грозит написание управляемого приложения под тонким клиентом, причем однозначно под WEB. | |||
| 34
    
        WASSAW 25.07.12✎ 14:16 | 
        То есть "как корректно передать из формы на тонком клиенте период на сервер, что бы потом заформировать запрос по переданному периоду, и получить обратно на клиент результаты отработки запроса".     | |||
| 35
    
        EasyRider 25.07.12✎ 14:17 | 
        Слабо вяжется это "Счет_На_Оплату.Дата МЕЖДУ <<?>>&НачПериода И &КонПериода" и это "Запрос.УстановитьПараметр("Дат", <<?>>НачПериода);"     | |||
| 36
    
        WASSAW 25.07.12✎ 14:32 | 
        могу ошибаться, но это была попытка использовать заготовку (имеющийся) отчет от толстого клиента обычного приложения. И попытка его использовать для тонкого клиента управляемого приложения. ТАК НЕ ПРОКАТИТ. )) и еще, если я прав, то на толстом произойдет присвоение НачПериода переменной Дат и.т.д и все будет вязаться. А вот для тонкого - нет.     | |||
| 37
    
        WASSAW 25.07.12✎ 14:35 | 
        как для тонкого правильно сделать - не знаю - опыта маловато. поэтому не умничаю - жду гуру отзывов.     | |||
| 38
    
        hhhh 25.07.12✎ 14:47 | 
        может за Азатом пора сходить?     | |||
| 39
    
        Cashtane 25.07.12✎ 14:48 | 
        (38) Думаешь не перебор?     | |||
| 40
    
        Cashtane 25.07.12✎ 14:51 | 
        Я тоже в хлам новичок, но задача не сложна. У меня тонкий клиент только дома. Вечером доберусь - решим.     | |||
| 41
    
        hhhh 25.07.12✎ 14:53 | 
        просто все чувствуется накурились, он один кофе пил.     | |||
| 42
    
        WASSAW 25.07.12✎ 15:04 | 
        а что не понятно то?
  Если клиент толстый, то форма то на СЕРВЕРЕ и НачДата - это переменная УЖЕ НА СЕРВЕРЕ, запрос просто ныряет и берет из неё значение. А вот если клиент тонкий и управляемое приложение, то НачДата на КЛИЕНТЕ (даже в браузере на другом конце света через инет), тогда СЕРВЕР её НЕ НАЙДЕТ у себя. То есть нужно позаботится о передаче значения переменной НачДата из КЛИЕНТА на СЕРВЕР. | |||
| 43
    
        nikitaclanbox 25.07.12✎ 15:13 | 
        (14) обратиться к значениям элементов формы можно так:
  ЭлементыФормы.НачПериода.Значение ЭлементыФормы.КонПериода.Значение | |||
| 44
    
        Yorokonde 25.07.12✎ 15:16 | 
        Для начала хотелось бы все таки понять с какими данными связаны поля ввода на форме? :)
  С реквизитами формы? С реквизитами отчета? Выбирай поле ввода, Alt+Enter и кинь сюда содержание свойства "ПутьКДанным" | |||
| 45
    
        Yorokonde 25.07.12✎ 15:26 | 
        В общем если это реквизиты формы, тогда при установке параметров используешь их напрямую (при условии что процедура с директивой &НаСервере, и реквизиты формы там видны:
  Запрос.УстановитьПараметр("Дат", НачПериода); Запрос.УстановитьПараметр("Дат1", КонецДня(КонПериода)); Если это реквизиты отчета, тогда если ты создал Внешнюю обработку вместо Внешнего отчета Запрос.УстановитьПараметр("Дат", Объект.НачПериода); Запрос.УстановитьПараметр("Дат1", Объект.КонецДня(КонПериода)); А если всетаки внешний отчет то Запрос.УстановитьПараметр("Дат", Отчет.НачПериода); Запрос.УстановитьПараметр("Дат1", Отчет.КонецДня(КонПериода)); В остальном все должно работать, только строка Сообщить("Номер= "+Результат.Номер+" Дата= "+Результат.Дата); напрягает. Не совсем понятно как ты хочешь взять поля дата и номер из РезультатаЗапроса | |||
| 46
    
        WASSAW 25.07.12✎ 15:45 | 
        Yorokonde - красава. Я вообще не заметил (блин опыта бы побольше :-(, что ведь верно - это мало того, что заготовка от толстого клиента, но и еще и от "Внешней обработки", которую пытаются прилепить к "тонкому" к "Внешнему отчету".     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |