|
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 - красава. Я вообще не заметил (блин опыта бы побольше :-(, что ведь верно - это мало того, что заготовка от толстого клиента, но и еще и от "Внешней обработки", которую пытаются прилепить к "тонкому" к "Внешнему отчету".
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |