Имя: Пароль:
1C
1C 7.7
v7: Можно ли узнать из какого объекта была открыта форма справочника
0 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 Базис
 
naïve
22.10.18
16:00
Перебрать открытые формы, наверное, может Формекс.
5 zenon46
 
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) Я имела ввиду - формулу.
9 zenon46
 
22.10.18
16:14
(7) в табличной части без разницы на каком поле стоять, по кнопке Ins открывается справочник номенклатура.
С кнопкой "Подбор" проще, там можно передать параметр из нужных объектов.
10 Масянька
 
22.10.18
16:17
(9) А почему "без разницы на каком поле"?
Номенклатура (справочник) должна открывать только для номенклатуры. А если в колонке "Цена" - на фига номенклатура?
11 zenon46
 
22.10.18
16:19
(10) откройте любую типовую конфу 7.7, создайте любой пустой документ и нажмите Ins, открывается "Номенклатура"
12 Duke1C
 
22.10.18
16:19
(10) У него наверняка стоит в колонке Номенклатура - АвтоВыбор и колонка эта первая. Поэтому при вводе новой строки она активизируется и происходит открытие формы списка
13 Масянька
 
22.10.18
16:21
(11) Я уже поняла.
Перехват клавы... Надо делать...
14 zenon46
 
22.10.18
16:22
(12) именно так на поле "Номенклатура" стоит АвтоВыбор
15 Duke1C
 
22.10.18
16:25
(13) Помимо клавы, новую строку можно еще другими способами создать:)
Нужно убирать АвтоВыбор и в ПриНачалеВыбораЗначения() открывать форму с нужным параметром
16 Масянька
 
22.10.18
16:25
(14) А опиши задачу. Всю.
Может чего путного и посоветуют.
17 Масянька
 
22.10.18
16:27
Кстати... Мысль тут пришла (ржать тихо :) ).
В отчете можно сделать параметр, поскольку это же поле, а не ТЧ.
Так вот в списке и обрабатывай: есть параметр 0 отчет, нет - док-т.
Но - надо проверять...
18 zenon46
 
22.10.18
16:29
(16) всю описывать очень долго, надо реализовать механизм контроля выбора номенклатуры из справочника, а именно из 5 видов документов для некоторых наборов прав НЕ давать выбирать номенклатуру без определенного признака.
С подбором то все понятно, осталось решить с Insert-ом (
19 Масянька
 
22.10.18
16:31
(18) Лови Ё - он может помочь с перехватом клавы.
20 Калиостро
 
22.10.18
16:31
(18) еще раз, смотри (6) ПриВводеСтроки() -> СтатусВозврата(0) и подставь свою процедуру подбора
21 zenon46
 
22.10.18
16:32
(19) так а тут не только клава, если ЛКМ сделать на любом пустом поле, тоже открывается номенклатура.
22 Масянька
 
22.10.18
16:33
(21) По мышам - он тоже спец :)
23 Kigo_Kigo
 
22.10.18
16:46
(21) Вам в 20 уже все сказали
Процедура ПриВводеСтроки()
24 zenon46
 
22.10.18
16:53
(23) попробовал, при включенном "АвтоВыбор" происходит открытие и "Подбора" и обычной формы списка. Видимо придется выключать "АвтоВыбор"
25 zenon46
 
22.10.18
17:03
Эх, засада со всех сторон, отключил "АвтоВыбор" теперь если два раза щелкнуть в поле номенклатура, появляются кнопка выбора и все по кругу. По Insert проблему решил вызываю ПоКнопкеПодбора().
26 FIXXXL
 
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);
31 Chieftain
 
23.10.18
00:16
Если есть FormEx, то почти в 100% случаев можно сделать типа такого:

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