Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Можно ли узнать из какого объекта была открыта форма справочника

v7: Можно ли узнать из какого объекта была открыта форма справочника
Я
   zenon46
 
22.10.18 - 15:48
Доброго дня!
Конфа комплексная 7.7, можно как то узнать в форме списка, из какого объекта была открыта данная форма (из отчета или документа)?
 
 
   Масянька
 
1 - 22.10.18 - 15:57
В ПриОткрытии через Форма.Параметр. А в Параметр передавать.
ИМХО.
   Карст
 
2 - 22.10.18 - 15:57
узнать - нет , сделать - как в (1) ... можно
   Калиостро
 
3 - 22.10.18 - 15:59
Откуда открываем:
СписокПараметров=СоздатьОбъект("СписокЗначений");
СписокПараметров.ДобавитьЗначение("ОткрываемИзОтчета","ОткудаОткрываем");

В форме, которую открываем
Процедура ПриОткрытии()
...
Если ТипЗначенияСтр(Форма.Параметр) = "СписокЗначений" Тогда
ОткудаОткрываем = Форма.Параметр.Получить("ОткудаОткрываем");
...
   Базис
 
4 - 22.10.18 - 16:00
Перебрать открытые формы, наверное, может Формекс.
   zenon46
 
5 - 22.10.18 - 16:00
(2) понял, печально. как например в Параметр что -то передать, при нажатии кнопки Ins в Табличной Части документа ?
   Калиостро
 
6 - 22.10.18 - 16:06
(5)
Процедура ОбработкаПодбора(Элемент)

НоваяСтрока();
Номенклатура = Элемент;
КонецПроцедуры


Процедура МояПроцедура()
ОткрытьПодбор();
КонецПроцедуры

Процедура ПриВводеСтроки()
МояПроцедура();
СтатусВозврата(0);
КонецПроцедуры
   Масянька
 
7 - 22.10.18 - 16:12
(5) А в ТЧ на этом поле что-то висит?
   Масянька
 
8 - 22.10.18 - 16:12
+ (7) Я имела ввиду - формулу.
   zenon46
 
9 - 22.10.18 - 16:14
(7) в табличной части без разницы на каком поле стоять, по кнопке Ins открывается справочник номенклатура.
С кнопкой "Подбор" проще, там можно передать параметр из нужных объектов.
   Масянька
 
10 - 22.10.18 - 16:17
(9) А почему "без разницы на каком поле"?
Номенклатура (справочник) должна открывать только для номенклатуры. А если в колонке "Цена" - на фига номенклатура?
 
 Рекламное место пустует
   zenon46
 
11 - 22.10.18 - 16:19
(10) откройте любую типовую конфу 7.7, создайте любой пустой документ и нажмите Ins, открывается "Номенклатура"
   Duke1C
 
12 - 22.10.18 - 16:19
(10) У него наверняка стоит в колонке Номенклатура - АвтоВыбор и колонка эта первая. Поэтому при вводе новой строки она активизируется и происходит открытие формы списка
   Масянька
 
13 - 22.10.18 - 16:21
(11) Я уже поняла.
Перехват клавы... Надо делать...
   zenon46
 
14 - 22.10.18 - 16:22
(12) именно так на поле "Номенклатура" стоит АвтоВыбор
   Duke1C
 
15 - 22.10.18 - 16:25
(13) Помимо клавы, новую строку можно еще другими способами создать:)
Нужно убирать АвтоВыбор и в ПриНачалеВыбораЗначения() открывать форму с нужным параметром
   Масянька
 
16 - 22.10.18 - 16:25
(14) А опиши задачу. Всю.
Может чего путного и посоветуют.
   Масянька
 
17 - 22.10.18 - 16:27
Кстати... Мысль тут пришла (ржать тихо :) ).
В отчете можно сделать параметр, поскольку это же поле, а не ТЧ.
Так вот в списке и обрабатывай: есть параметр 0 отчет, нет - док-т.
Но - надо проверять...
   zenon46
 
18 - 22.10.18 - 16:29
(16) всю описывать очень долго, надо реализовать механизм контроля выбора номенклатуры из справочника, а именно из 5 видов документов для некоторых наборов прав НЕ давать выбирать номенклатуру без определенного признака.
С подбором то все понятно, осталось решить с Insert-ом (
   Масянька
 
19 - 22.10.18 - 16:31
(18) Лови Ё - он может помочь с перехватом клавы.
   Калиостро
 
20 - 22.10.18 - 16:31
(18) еще раз, смотри (6) ПриВводеСтроки() -> СтатусВозврата(0) и подставь свою процедуру подбора
   zenon46
 
21 - 22.10.18 - 16:32
(19) так а тут не только клава, если ЛКМ сделать на любом пустом поле, тоже открывается номенклатура.
   Масянька
 
22 - 22.10.18 - 16:33
(21) По мышам - он тоже спец :)
   Kigo_Kigo
 
23 - 22.10.18 - 16:46
(21) Вам в 20 уже все сказали
Процедура ПриВводеСтроки()
   zenon46
 
24 - 22.10.18 - 16:53
(23) попробовал, при включенном "АвтоВыбор" происходит открытие и "Подбора" и обычной формы списка. Видимо придется выключать "АвтоВыбор"
   zenon46
 
25 - 22.10.18 - 17:03
Эх, засада со всех сторон, отключил "АвтоВыбор" теперь если два раза щелкнуть в поле номенклатура, появляются кнопка выбора и все по кругу. По Insert проблему решил вызываю ПоКнопкеПодбора().
   FIXXXL
 
26 - 22.10.18 - 17:22
(18) а если с другой стороны зайти: после выбора "обнулить" недопустимое значение выбора
и не важно как был сделан выбор...
   Злопчинский
 
27 - 22.10.18 - 20:54
(26) и около птиц!
   Ёпрст
 
28 - 22.10.18 - 23:03
(25) Форма.РежимВыбора() смотри в форме списка, это, если особо не заморачиваться, откуда открывают форму списка.
   Ёпрст
 
29 - 22.10.18 - 23:04
(18) ну, будь проще - после выбора зануляй поле, это проще, чем передавать контекст формы. Хотя, с вк, вообще проблем нет
   Ёпрст
 
30 - 22.10.18 - 23:18
Ну, или так, например:
в глобальный модуль экспортную переменную
Перем Вася Экспорт;

в документе в предопределенных процах ПриВВыодеСтроки, ПриРедактированииСтроки и т.д пихаешь Вася = глВзятьКонтекст(Контекст);

в форме списка справочника в ПриОткрытии()

Ежели (Форма.РежимВыбора()=1) И (ТипЗначения(Вася)=100) Тогда
   Ежели Вася.Вид() ="Реализация" Тогда Форма.ТолькоПросмотр(1);
   Chieftain
 
31 - 23.10.18 - 00:16
Если есть FormEx, то почти в 100% случаев можно сделать типа такого:

Процедура ПослеСозданияФормы()
    Перем Конт;
    Если Форма.РежимВыбора()=1 Тогда
        Сервис                = СоздатьОбъект("Сервис");
        Если Сервис.АктивныйКонтекст(Конт)=1 Тогда
            тВид            = "";
            Попытка
                тДокумент    = Конт.ТекущийДокумент();
                тВид        = Конт.Вид();
            Исключение
            КонецПопытки;
            Если тВид="ОприходованиеТМЦ" Тогда
                Сообщить("Оприходование!");
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры
   Масянька
 
32 - 23.10.18 - 08:39
(30) Давно хотела тебя спросить: почему "Вася"?
   АгентБезопаснойНацио
 
33 - 23.10.18 - 09:06
(32) Пупкин жеж...
 
 
   ADirks
 
34 - 23.10.18 - 10:03
(18) есть же ПриНачалеВыбораЗначения() и ОбработкаВыбораЗначения()
В первом событии можно передать всё что угодно в форму выбора, во втором запретить всё неугодное.
   MadDAD
 
35 - 26.10.18 - 13:57
(5) С помощью перехватчика 1С++ и события ПриСозданииКонтекста вести глобальный список открытых контекстов. В свежеоткрывшейся форме получаешь список и предпоследний контекст. А оттуда уже и Вид() и Тип() и Форма.АктивныйЭлемент() и все прочее. При уничтожении контеста в списке будет пустое значение.
   Ёпрст
 
36 - 26.10.18 - 15:42
(35) не кошерно, если будет открыта и форма дока и форма отчета, например.. нужно пасти еще и активный предпоследний контекст


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует