Имя: Пароль:
1C
 
Формирование при открытии
0 se112
 
09.05.06
22:08
Помогите!!!Мне нужно чтобы при открытии программы формировался отчет.
У меня получается только открывать журналы, а как заставить сформировать отчет

ОткрытьФорму("Журнал.Торговля.ФормаСписка");
       Распахнуть=1;
1 Стрелок
 
09.05.06
22:10
через параметр метода ОткрытьФорму и ОткрытьФормуМодально ты можешь сделать всё что угодно. В т.ч. и передать в открытую форму отчёта параметр там его получить и соответственно запустить на исполнение
2 Ёпрст2
 
09.05.06
22:11
ОткрытьФорму("Отчет.ТотКоторыйНужен");
3 Стрелок
 
09.05.06
22:12
(2) ему наверное выполнить надо.... нет?
4 kostyak
 
09.05.06
22:12
а может ему нужно не только открыть...но и сформировать сразу?
5 se112
 
09.05.06
22:13
и сформировать сразу
6 kostyak
 
09.05.06
22:14
Ну допустим в Процедуре ПриОткрытии()
Сформировать();

Нет?
7 se112
 
09.05.06
22:16
сформировать<<?>>("Отчет.ККМ2");
{Глобальный модуль(1813)}: Процедура не обнаружена (сформировать)
8 kostyak
 
09.05.06
22:17
Ну у тебя сам отчет какая процедура формирует? ту и пиши в ПриОткрытии
9 Стрелок
 
09.05.06
22:17
(5)
Парам=1;
ОткрытьФорму("Отчет.ТвойОтчет",Парам);

Процедура ПриОткрытии()

Если ПустоеЗначение(Форма.параметр)=0 Тогда
Если Форма.параметр=1 Тогда
Сформировать();
СтатусВозврата(0);
Возврат;
КонецЕсли;
КонецЕсли;

КонецПроцедуры
10 Стрелок
 
09.05.06
22:17
(7) Программист?
11 se112
 
09.05.06
22:19
неа, начинаю тока
12 kostyak
 
09.05.06
22:19
(9)это если у него с парам... :))а то сейчас напишет..лишний кусок кода будет..
13 Стрелок
 
09.05.06
22:21
(12) Какой кусок лишний в этом коде?
14 kostyak
 
09.05.06
22:25
Процедура ПриОткрытии()
Сформировать();
СтатусВозврата(0);
Возврат();
КонецПроцедуры


(13)все ок.
15 se112
 
09.05.06
22:26
ПОд параметром подразумевается Название отчета?
16 abjurer
 
09.05.06
22:28
(14) Так отчет всегда будет формировать (чего он там должен формировать). Во фрагменте (9) работа отчета опциональна, т.е. есть возможность дать пользователь сделать отчет интерактивно и есть способ сотворить отчет программно
17 abjurer
 
09.05.06
22:29
(15) Под параметром подразумеваются данные, которые передаются в контекст отчета.
18 kostyak
 
09.05.06
22:31
(14)..да это понятно...
19 se112
 
09.05.06
22:33
А нельзя чтобы при открытии отчета автоматически нажималась кнопка сформировать отчет
20 Стрелок
 
09.05.06
22:33
(18) А так его открывать не надо будет никогда в жизни?
21 Стрелок
 
09.05.06
22:34
(19) не слушай ламеров и делай как в 9
22 Стрелок
 
09.05.06
22:34
я всё сказал
23 se112
 
09.05.06
22:35
мне надо чтоб он вообще сформировывался незаметно для других и записывался в файл
24 abjurer
 
09.05.06
22:36
(23) ну если нужно всегда требование (19) - тогда смотри (14) :)
25 kostyak
 
09.05.06
22:40
(23)может у тя обработка???а не отчет??? ну это нев...дак делай всё в Сформировать() только таблицу не показывай....
26 Стрелок
 
09.05.06
22:46
(25) я прошу прощения - вы сколько кодите? месяц?
27 kostyak
 
09.05.06
22:50
(26) столько сколько нужно.
28 Стрелок
 
09.05.06
22:51
(27) да я вижу по вашим советам...... ну ладно... давайте продолжайте..... я понаблюдаю..... себя "зелёным" вспомню.....
29 Бубузяка
 
09.05.06
22:52
(0) Мозги людям не морочь, а опиши задачу комплексно. Тогда получишь не только кусок кода, но и рекомендации по оптимальному решению на будущее.
См. Правила::рекомендации п.4 (http://www.forum.mista.ru/rules.htm) ;)
30 se112
 
09.05.06
22:52
Не у меня точно отчет, по кассе
31 kostyak
 
09.05.06
22:55
(28) да мне вообще пофигу... в (0) я не увидел грамотно заданного вопроса...поэтому и гадаю... блин какие-то умные все...
32 se112
 
09.05.06
22:55
мне надо чтобы при загрузке 1С программа сама формировала отчет по кассе и сохраняла в какую нить папку на жестком диске, и чтоб лди которые ее открывают не знали что он формируется
33 Стрелок
 
09.05.06
22:55
(31) Не правда ваша - всё чётко и ясно стала мне лично к 8 посту.
34 Стрелок
 
09.05.06
22:56
(32) Упс.. а вот это сложнее... что дружок? шпиона пишешь? кидай это гиблое дело.... фоновой работф в 1С в обычном понимании этого слова нет. Есть хитрость со стартом отчёта в фоне - но оно тебе не надо...
35 se112
 
09.05.06
22:58
щпиона???
36 se112
 
09.05.06
22:58
начальство хочет защитить себя от воровства
37 Стрелок
 
09.05.06
22:59
(25) А что тебе нужно делать в фоне так, чтобы юзера не знали об этом.
38 Стрелок
 
09.05.06
22:59
(36) начальству объясни что 1С не для этого предназначена... пускай охрану наймут
39 Стрелок
 
09.05.06
22:59
и уж тем более не новичёк работать должен
40 se112
 
09.05.06
23:00
ну чтоб он открывался незаметно для них формировался и сохранялся и закрывался
41 se112
 
09.05.06
23:00
просто я примерно представляю как это хочу но как прописать, не очень
42 Стрелок
 
09.05.06
23:00
(40) см 9 там всё есть
43 se112
 
09.05.06
23:01
(42)хорошо, спасибо буду думать...
44 Бубузяка
 
09.05.06
23:03
О, тогда можно на ОЛЕ замахнуться :) Заодно научишься не только формы открывать.
Ага, размести вызов отчета по примеру (9) в процедуре ПриНачалеРаботыСистемы() глоб. модуля, а после выполнения отчета пиши СтатусВозврата(0). Система, не загрузив GUI, завершитработу.
45 Стрелок
 
09.05.06
23:04
(44) Что по ОЛЕ он открывать будет?
46 Бубузяка
 
09.05.06
23:06
А он ничего открывть не будет, он инициализировать будет.
Я так понимаю, что ему, все же, шпион нужен ;) Пусть в произвольной БД пишет отчет с применением ОЛЕ и из этого отчета анициализирует нужную базу.
47 se112
 
09.05.06
23:06
(44) Так я там (ПриНачалеРаботыСистемы()) и пытаюсь сформировать
48 Бубузяка
 
09.05.06
23:08
Что, не формирует? Стрелок привел академический пример, хоть в учебник заноси.
49 se112
 
09.05.06
23:11
нет там надо закончить процедуру в глобальном модуле, а там еще есть функции которые должны выполнятсятам много
Процедура ПриНачалеРаботыСистемы()
   СтатусВозврата(Старт());
   ПодготовкаОтборов();
   // установка текущего пользователя
   Если СтрДлина(ИмяПользователя())>0 Тогда
       Спр=СоздатьОбъект("Справочник.Пользователи");
       Если Спр.НайтиПоКоду(ИмяПользователя())=0  Тогда
           Спр.Новый();
           Спр.Код=ИмяПользователя();
           Спр.Наименование=ПолноеИмяПользователя();
           Спр.ОснФирма=Константа.ОснФирма;
           Спр.ОснСклад=Константа.ОснСклад;
           Спр.ОснПокупатель=Константа.ОснПокупатель;
           Спр.ОснПоставщик=Константа.ОснПоставщик;
           Если НазваниеНабораПрав()="Администратор" Тогда
               Спр.Отмена=1;
               Спр.Удаление=1;
               Спр.Запись=1;
           КонецЕсли;
           
   
           Спр.Записать();
           Предупреждение("Новый пользователь успешно зарегистрирован.");
       КонецЕсли;      
       
       Пользователь=Спр.ТекущийЭлемент();
       Спр=0;
   Иначе
       Пользователь="";
       Предупреждение("Пользователь системы не определен!");
   КонецЕсли;
   ЗаголовокСистемы(ЗаголовокСистемы()+" - ["+Пользователь+"]");
   // установка текущей ККМ
   Спр=СоздатьОбъект("Справочник.ККМ");
   Если Спр.НайтиПоНаименованию(ИмяКомпьютера(),0,1)=1 Тогда
       ТекущаяККМ=Спр.ТекущийЭлемент();
   Иначе
       Спр.Новый();
       Спр.Наименование=ИмяКомпьютера();
       Спр.Записать();
       ТекущаяККМ=Спр.ТекущийЭлемент();
       Предупреждение("Новая ККМ успешно зарегистрирована.");
       
   КонецЕсли;

 
Парам=1;
ОткрытьФорму("Отчет.ТвойОтчет",Парам);

Процедура ПриОткрытии()

Если ПустоеЗначение(Форма.параметр)=0 Тогда
Если Форма.параметр=1 Тогда
Сформировать();
СтатусВозврата(0);
Возврат;
КонецЕсли;
КонецЕсли;

КонецПроцедуры
   
     //        Распахнуть=1;
   Если НазваниеНабораПрав()="Кассир" Тогда
50 se112
 
09.05.06
23:11
и дальше еще много чего
51 kostyak
 
09.05.06
23:12
(50)ясно.
52 se112
 
09.05.06
23:13
Но как написать чтоб он сформировал отчет не въезжаю
53 se112
 
09.05.06
23:13
разве модено процедуру внутри процедуры?
54 Стрелок
 
09.05.06
23:15
(52) у тебя есть два варианта
1. сказать руковосдвту что ты не можешь это сделать и пригласить программиста
2. читать книжки и быть котовым к тому, что нужно время. ты пытаешься перепрыгнуть основы языка и сразу начать кодить круто - так не получится
55 Стрелок
 
09.05.06
23:15
скажи спасибо что ты это пишешь вечером и не в рабочий день. уже бы отгрёб наверное ;))
56 se112
 
09.05.06
23:16
Учится никогда не поздно, на ошибках и методом тыка учатся
57 Бубузяка
 
09.05.06
23:17
Похоже ты не понял алгоритм!
1. при начале работы системы отрабатываешь до конца. В конце процедуры вызываешь отчет.
2. В отчете процедуру ПриОТкрытии переписываешь как в примере. Причем, в примере подразумевается, что Сформировать()  - запускает выполнение отчета (вызывается по кнопке на форме отчета). Надо не забыть установить параметры отчета и результирующую таблицу не показывать, а сохранять...
А вообще см. (54), это самый дельный совет. Начинать надо с простого, и, возможно, бесплатно.
58 Стрелок
 
09.05.06
23:17
(56) Методом тыка учатся долбо..бы. понял. Нормальные люди учаться анализируя и думая
59 Бубузяка
 
09.05.06
23:17
(58) + 1
60 se112
 
09.05.06
23:19
(58)все равно даже думая все равно совершает ряд ошибок пока не найдется верное решение
61 Любитель XML
 
09.05.06
23:20
(59) ты бы хоть ник себе нормальный придумал
62 se112
 
09.05.06
23:20
Общее представление есть так что что нить получиться, спасибо за помощь
63 Стрелок
 
09.05.06
23:21
(60) Совершать ошибки можно только думая хоть немного. Ты же не обезьяна, правда? это ту посади за компа и когда нибудь она точно напечатает ЖКК
64 Стрелок
 
09.05.06
23:22
(62) общего представления хватит чтобы печатную форму подправить или реквизит в справочник добавить.
65 se112
 
09.05.06
23:23
если получится то покажу что я хотел, буду искать кто ищет тот всегда найдет
66 Стрелок
 
09.05.06
23:24
(65) Удачи в поиске. а показывать? ну покажешь.... почему нет. новичков надо поддерживать похвалой ;))