Имя: Пароль:
   
1C
 
открыть форму() - не соображу как
0 on2
 
11.11.09
15:15
ОткрытьФОрму("Документ.ВхКонтроль",)
вопрос такой эта строчка открывает новый док. а мне надо открыть существующий в справке написано что должно быть так
ОткрытьФорму("Документ.ВхКонтр", Значание)
а что такое значение? что я должна передавать туда?
Это у меня в отчете.
1 Fragster
 
11.11.09
15:16
ссылку на открываемый док
2 zak555
 
11.11.09
15:16
(0) контекст
3 v_rtex
 
11.11.09
15:17
ОткрытьФорму(Значение);
4 GedKo
 
11.11.09
15:18
(0) нужно передавать туда 100 баксов. при каждой попытке.
5 TrTrTr
 
11.11.09
15:18
Процедура ПриВыбореСтроки()
  ОткрытьФорму(ИмяТаблицы.УказательНаДок,1);
КонецПроцедуры
6 XLife
 
11.11.09
15:19
(3) +1
(0) за фотку 5+!
7 Эльниньо
 
11.11.09
15:26
(5) ?
8 Волесвет
 
11.11.09
15:39
если формируем документ тоды записываем и
ОткрытьФорму(ДокЗаказ.ТекущийДокумент());
если какой то определенный то сначала находим его а потом тож самое
если в отчете выводим список документов и нужно "кликнуться чтоб открыть" тоды кури Расшифровка
9 on2
 
12.11.09
07:45
в общем у меня выводится по запросу список документов по нажатию на которых я должна их открыть (через отчет).
обьясните мне что такое ссылка на открываемый документ.
Если искать в запросе то где это?=)))))

тут вообще вроде как очень просто только я не поняла...
так ...как выиащить ссылку на открываемый документ ???
10 Rie
 
12.11.09
07:49
(9) Покажи код вокруг того места, где хочешь открыть документ.
11 Рэйв
 
12.11.09
07:52
(9)Поидее ты для составления списка должна поместить туда ссылки. Вопрос в обработке выбора? То есть двойного клика по списку?
12 los_hooliganos
 
12.11.09
07:52
Да просто сунь переменную содержащую документ в свойство ячейки Расшифровка.
13 Diter
 
12.11.09
07:53
(6) ты дикий? никогда девушку в купальнике не видел? ;)
14 PaulBC
 
12.11.09
07:54
(9) куда выводится список документов? СЗ на форме, ТЗ, в таблицу, ВыбратьЗначение()?
15 on2
 
12.11.09
08:06
у меня запрос выполняется.и производится 4 группировки.

Документы выводятся в отчет. (отчет сделан без такого понятия как создать обьект(таблица) но вывожу секции)

свойсва формы -"пустая"

в расшифровке написала "докум"

в коде пишу%(в обработке ячейки)

Если значение=Докум тогда
ОткрфтьФорму("Документ.НазваниеДокумента",)
конецЕсли
16 on2
 
12.11.09
08:08
(9) да Рейв мне надо понять как ссылки получить
17 supremum
 
12.11.09
08:11
тзДок=СоздатьОбъект("ТаблицаЗначений");
тзДок.НоваяКолонка("ДокТакойто");
докТакойто=СоздатьОбъект("Документ.Какойто")
//Дата1, Дата2 - переменные типа даты
докТакойто.ВыбратьДокументы(Дата1,Дата2);
Пока докТакойто.ПолучитьДокумент() Цикл
//вот это как раз и будет ссылкой на документ
//докТакойто.ТекущийДокумент()
   тзДок.НоваяСтрока();
   тзДок.ДокТакойто=докТакойто.ТекущийДокумент();
//Получили ссылку на документ и сохранили ее в иаблице значений
КонецЦикла;

Долее можно открыть документ. Открыть документ можно через "ОткрытьФорму(СсылкаНаДокумент)". Пример:
если мы спозиционировались на какой то строке таблицы значений, то можно получить соответсвенно ссылку на документ
ОткрытьФорму(тзДок.ДокТакойто)
18 Рэйв
 
12.11.09
08:11
(16)Если СписокЗначений то
СЗ.Получить(СЗ.ТекущаяСтрока())

Или у тебя в чем то другом список хранится?
19 Rie
 
12.11.09
08:18
(15) Это где находится?
В ОбработкаЯчейкиТаблицы?
Там один из параметров - это и есть расшифровка. Пусть он и называется у тебя Значение.
Тогда безо всяких Если

ОткрытьФорму(Значение);

Предполагается, что Докум в расшифровке - это и есть документ, который нужен.
Покажи, что присваивается Докум.
20 Белоконь
 
12.11.09
08:26
(16) Для начала надо научиться запятые в предложениях расставлять!
21 on2
 
12.11.09
08:28
перем конДата,начДата,тзУсловия,выбТовар,НомерДок;


Процедура Сформировать()
   
   Таблица.Очистить();
   Таблица.ВывестиСекцию("Кнопки");
   
   ТЗнч        = СоздатьОбъект("ТаблицаЗначений");
   Запрос        = СоздатьОбъект("Запрос");  

   ВыбТОвар     = глПолучитьЗначениеТаблицыУсловий(тзУсловия,"Товар");
   ВыбПоставщик = глПолучитьЗначениеТаблицыУсловий(тзУсловия,"Поставщик");
   ВыбСклад     = глПолучитьЗначениеТаблицыУсловий(тзУсловия,"Склад");
   
   ВыбПредостНаВхК     = глПолучитьЗначениеТаблицыУсловий(тзУсловия,"Дата1");
   ВыбПринятоНаВхК     = глПолучитьЗначениеТаблицыУсловий(тзУсловия,"Дата2");
   ВыбДатЗав         = глПолучитьЗначениеТаблицыУсловий(тзУсловия,"Дата3");
   ВыбЗабраносВх     = глПолучитьЗначениеТаблицыУсловий(тзУсловия,"Дата4");
   


ТекстЗапроса="
   |Период С НачДата По КонДата;
   |Товар                = Документ.ВхКонтр.Товар;
   |КолВо                = Документ.ВхКонтр.колво;
   |ЕдИз                = Документ.ВхКонтр.ЕдИз;
   |ДатаДок            = Документ.ВхКонтр.Датадок;
   |Родитель            = Документ.ВхКонтр.Товар.Родитель;
   |ДатЗав                = Документ.ВхКонтр.ДатЗав;
   |Ордер                = Документ.ВхКонтр.Ордер;
   |Заказ                = Документ.ВхКонтр.Заказ;
   |ВидПродукции        = Документ.ВхКонтр.ВидПродукции;
   |РезВхКонтр        = Документ.ВхКонтр.РезВхКонтр;
   |НомерДок            = Документ.ВхКонтр.НомерДок;
   |ПринятоНаВхК          = Документ.ВхКонтр.ПринятоНаВхК;
   |Изделие            = Документ.ВхКонтр.Изделие;
   |ПредостНаВхК        = Документ.ВхКонтр.ПредостНаВхК;
   |АктНесоответствия    = Документ.ВхКонтр.АктНесоот.НомерДок;
   |ДокАктНесоот        = Документ.ВхКонтр.АктНесоот;    
   |ТоварнНакл            = Документ.ВхКонтр.товарнНакл;
   |Примечание        = Документ.ВхКонтр.Примечание;
   |Склад                = Документ.ВхКонтр.Склад;
   |Поставщик            = Документ.ВхКонтр.Поставщик;
   |КтоПредостНаВхК    = Документ.ВхКонтр.КтоПредостНаВхК;
   |КемПроведен        = Документ.ВхКонтр.КемПроведен;
   |КолВоП                = Документ.ВхКонтр.КолВоП;
   |КолВоД             = Документ.ВхКонтр.КолВоД;
   |ПроисхИзд            = Документ.ВхКонтр.ПроисхИзд;
   |Партия                = Документ.ВхКонтр.Партия;
   |НомКР                = Документ.ВхКонтр.НомКР;
   |НомР                = Документ.ВхКонтр.НомР;
   |КатНСоотв            = Документ.ВхКонтр.КатНСоотв;
   |ЗабраносВх            = Документ.ВхКонтр.ЗабраносВх;
   |ПредВ                = Документ.ВхКонтр.ПредВ;
   |зДокумент            = Документ.ВхКОнтр.ТекущийДокумент;
   |ПредД                = Документ.ВхКонтр.ПредД;
   |КолВоОтдано        = Документ.ВхКонтр.КолВоОтдано;
   |КомуОтданЭлемент   = Документ.ВхКонтр.КомуОтданЭлемент;
   |Группировка ТоварнНакл;
   |Группировка Документ;
   |Группировка строкаДокумента;
   |Условие (Товар в ВыбТовар);
   |Условие (Поставщик в ВыбПоставщик);
   |Условие (Склад в ВыбСклад);
   |";
   
   Если ПустоеЗначение(ВыбПредостНаВхК)=0 Тогда
       ДопУсловиеВыбПредостНаВхК=?(ВыбПредостНаВхК=Да,"Условие (ПустоеЗначение(ПредостНаВхК)=0);","Условие (ПустоеЗначение(ПредостНаВхК)=1);");
   иначе
       ДопУсловиеВыбПредостНаВхК="";
   КонецЕСли;
   //принято на вх контроле    
   Если ПустоеЗначение(ВыбПринятоНаВхК)=0 Тогда
       ДопУсловиеВыбПринятоНаВхК=?(ВыбПринятоНаВхК=Да,"Условие ((ПустоеЗначение(ПринятоНаВхК)=0)и(ПустоеЗначение(ЗабраносВх)=1)и(ПустоеЗначение(ДатЗав)=1));","Условие (ПустоеЗначение(ПринятоНаВхК)=1);");
   иначе
       ДопУсловиеВыбПринятоНаВхК="";
   КонецЕСли;
   
   //завершен контроль
   Если ПустоеЗначение(ВыбДатЗав)=0 Тогда
       ДопУсловиеВыбДатЗав=?(ВыбДатЗав=Да,"Условие ((ПустоеЗначение(ДатЗав)=0) и (ПустоеЗначение(ЗабраносВх)=1));","Условие (ПустоеЗначение(ДатЗав)=1);");
   иначе
       ДопУсловиеВыбДатЗав="";
   КонецЕСли;
   
   //забрано
   Если ПустоеЗначение(ВыбЗабраносВх)=0 Тогда
       ДопУсловиеВыбЗабраносВх=?(ВыбЗабраносВх=Да,"Условие (ПустоеЗначение(ЗабраносВх)=0);","Условие (ПустоеЗначение(ЗабраносВх)=1);");
   иначе
       ДопУсловиеВыбЗабраносВх="";
   КонецЕСли;
       
   ТекстЗапроса = ТекстЗапроса
                               +ДопУсловиеВыбПредостНаВхК
                               +ДопУсловиеВыбПринятоНаВхК
                               +ДопУсловиеВыбДатЗав
                               +ДопУсловиеВыбЗабраносВх;
       
   Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда
   Возврат;
   КонецЕсли;    
   
       
     Таблица.Опции(0,0,3,0);
   Таблица.ВывестиСекцию("Шапка");    
   Нпп=0;
   ТоварнНакл        = Запрос.ТоварнНакл;
   Пока Запрос.Группировка(1)=1 цикл              
       Примечаниех  = Запрос.Примечание;//"повторно";
       Если СокрЛП(ПРимечаниех)="повторно" тогда
           перемен                ="АКТ";
           ТоварнНакл            = Запрос.ТоварнНакл;
           склад                = Запрос.Склад;
           автор                = Запрос.ПредВ;
           Поставщик            = Запрос.Поставщик.ПолнНаименование;  
           ДатаОрдера            = Запрос.Ордер.ДатаДок;
           Изделие                = Запрос.Изделие;
           АктНесоответствия    = Запрос.АктНесоответствия;
           ДокАктНесоот        = Запрос.ДокАктНесоот;
           Таблица.ВывестиСекцию("документ2");
       иначе  
           перемен="Накладная";        
           ТоварнНакл            = Запрос.ТоварнНакл;
           склад                = Запрос.Склад;
           автор                = Запрос.ПредВ;
           Поставщик            = Запрос.Поставщик.ПолнНаименование;  
           ДатаОрдера            = Запрос.Ордер.ДатаДок;
           Изделие                = Запрос.Изделие;
           АктНесоответствия    = Запрос.АктНесоответствия;
           ДокАктНесоот        = Запрос.ДокАктНесоот;
       
           Таблица.ВывестиСекцию("документ");      
       конецесли;          
       Пока Запрос.Группировка(2)=1 цикл            
           Пока Запрос.Группировка(3)=1 цикл                  
                     Нпп                = Нпп+1;        
                   Товар            = Запрос.Товар;    
                   КолВо            = Запрос.Колво;
                   ДатЗАв            = Запрос.ДатЗав;                    
                   ПринятоНаВхК    = Запрос.ПринятоНаВхК;                    
                   ПредостНаВхК    = Запрос.ПредостНаВхК;                    
                   ЗабраноСВх        = Запрос.ЗабраноСВх;
                   ПредД            = Запрос.ПредД;
                   ЕдИз            = Запрос.ЕдИз;                
                   Таблица.ВывестиСекцию("данные");
                   КолВоОтдано        = СокрЛП(ЗАпрос.КолВоОтдано);
                   Если Прав(КолВоОтдано,1)="0" тогда
                       КолВоОтдано="";
                   иначе
                       КолВоОтдано        = СокрЛП(ЗАпрос.КолВоОтдано);
                   КонецЕсли;
                   
                   
                   КомуОтданЭлемент= ЗАпрос.КомуОтданЭлемент;
                               
           конеццикла;                  
       конеццикла;
   конеццикла;


Таблица.ВывестиСекцию("подвал");
Таблица.ТолькоПросмотр(1);    
Таблица.Показать();

КонецПроцедуры

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

   Таблица.ВывестиСекцию("Кнопки");  
   
   тзУсловия = СоздатьОбъект("ТаблицаЗначений");
       
   глСформироватьТаблицуУсловий(тзУсловия);    
   глНовоеУсловие(тзУсловия,"МиКИ"            ,"Товар"        ,,"Справочник","МиКИ");
   глНовоеУсловие(тзУсловия,"Поставщик"        ,"Поставщик"    ,,"Справочник","Контрагенты");
   глНовоеУсловие(тзУсловия,"Склад"            ,"Склад"        ,,"Справочник","Склады");
   глНовоеУсловие(тзУсловия,"МиКИ, переданные на вх.контроль"    ,"Дата1"        ,,"Перечисление","Булево");
   глНовоеУсловие(тзУсловия,"МиКИ на вх.контроле"                ,"Дата2"        ,,"Перечисление","Булево");
   глНовоеУсловие(тзУсловия,"МиКИ, прошедшие вх.контроль"        ,"Дата3"        ,,"Перечисление","Булево");
   глНовоеУсловие(тзУсловия,"МиКИ, полученные с вх.контроля"    ,"Дата4"        ,,"Перечисление","Булево");
           
   //Таблица.ВывестиСекцию("Описание");
   Таблица.ВывестиСекцию("шапка");
   Таблица.ТолькоПросмотр(1);
   Таблица.Опции(0,0,4,0);
   Таблица.ОбластьПечати(2);
   Таблица.Показать();
   
   начДата    = ТекущаяДата();
   КонДата    = ТекущаяДата();
КОнецПроцедуры  



Процедура ОбработкаЯчейкиТаблицы(Значение,Флаг)
///    Если ТипЗначенияСтр(Значение) = "Данные" Тогда
       
       Если Значение = "Обновить" Тогда            
           Сформировать();
       КонецЕсли;        
       Если Значение = "Закрыть" Тогда            
           Форма.Закрыть();
       КонецЕсли;        
       Если Значение = "Условия" Тогда            
           //ОткрытьФормуМодально("Обработка.УсловияВхК");
           ОткрытьФормуМодально("Обработка.ЗадатьУсловия",тзУсловия);
       КонецЕсли;          
       Если Значение = "Период" Тогда
           глЗадатьПериод(начДата,КонДата);
       КонецЕсли;
                       
       Если Значение = "Входник" Тогда    
               ссылка=СоздатьОбъект("Документ.ВхКонтр");
           ОткрытьФорму("Документ.ВхКонтр",ссылка);
       КонецЕсли;
       
       Если Значение = "Акт" Тогда
       
           ОткрытьФОрму("Документ.АктНесоотв",);
       КонецЕсли;
           
           
   Флаг=0;            
КонецПроцедуры
22 on2
 
12.11.09
08:30
в общем вот листинг. в РАсшифровке написано "Входник"
как видите сделано по запросу
23 Мутабор
 
12.11.09
08:31
(22) Солнушко, тута в ветке походу тока твои поклонники. :)))
24 on2
 
12.11.09
08:32
(15) вот в процедуре ОбработкаЯчейкиТаблицы(Значение,Флаг) там есть  условие
   Если Значение = "Входник" Тогда    
               ссылка=СоздатьОбъект("Документ.ВхКонтр");
           ОткрытьФорму("Документ.ВхКонтр",ссылка);
       КонецЕсли;
это как раз меня и интересует
25 on2
 
12.11.09
08:32
спасибки мальчики...я будущая хакершща по 1с гЫЫЫЫ
26 Rie
 
12.11.09
08:37
(21) В ОбработкаЯчейкиТаблицы - не серия Если, а ИначеЕсли. После выполнения оператора из Если при истинном условии - выполнение пойдёт дальше.

(24) Если ты хочешь создать новый документ - ты его создаёшь.

Если же хочешь открыть существующий - в расшифровке соответствующей ячейки напиши Запрос.Документ (или какой документ ты открывать хочешь).
Когда перепишешь условия в ОбработкаЯчейкиТаблицы по человечески - ставь Флаг=0 только для тех условий которые обрабатываешь, оставляя его 1 для всего остального.
Документ тогда откроется сам собой.
27 PaulBC
 
12.11.09
08:37
вообще не надо ОткрытьФорму()
в расшифровку помещай ссылку на документ, тогда при клике на ячейку он и откроется без всякой обработкиячейки
28 Rie
 
12.11.09
08:40
(27) У неё не откроется, пока будет Флаг=0;
29 PaulBC
 
12.11.09
08:42
значит Флаг=0; надо засунуть в Если КонецЕсли;
30 supremum
 
12.11.09
08:43
(24) Как вариант так
       Если Значение.Вид() = "Входник" Тогда    
           ОткрытьФорму(Значение);
       КонецЕсли;
31 on2
 
12.11.09
08:52
так мальчики сейчас я попробую ;)
32 on2
 
12.11.09
09:29
supermum и Rie огромное вам спасибо =) все получилось!!!
опыта мало сами понимаете... я учусь только. в следущий раз буду знать как это делается %)
Остальным кто так же помогал и шутил=) огромный респект!

ну а теперь вы посмейтесь=)
я 2 дня думала как это сделать=))))))))))))
33 Mikeware
 
12.11.09
09:33
(32) Думать - это хорошо. Правда, можно посмотреть в любом отчете из типовых конфигураций как это реализовано - облегчит жизнь.