|
v7: Связать между собой неподчиненые справочники | ☑ | ||
---|---|---|---|---|
0
geniusbsd
16.02.18
✎
13:39
|
День добрый Натолкните на мысли как реализовать
Есть Справочник ОборудованиеКлиента подчинен Справочнику Контрагенты. На форме элемента справочника есть реквизиты ТипОборудования - тип перечисление ВидТовара Производитель - тип справочник Производитли Серия - тип справочник ТМЦ ТМЦ имеет вид Ноутбук |
|||
1
geniusbsd
16.02.18
✎
13:44
|
ТМЦ имеет вид
Ноутбук Asus K73 Как сделать так что бы при выборе реквизита серия при выбраных реквизитах Тип Оборудования -Ноутбук Производитель ASUS Сразу попасть в Нужную группу справчника ТМЦ |
|||
2
Darych
16.02.18
✎
13:47
|
ну видимо при выборе в процедуре написать то, что вам нужно
|
|||
3
user-ok
16.02.18
✎
13:49
|
Процедура ПриНачалеВыбораЗначения(<?>,)
КонецПроцедуры Синтаксис: ПриНачалеВыбораЗначения(<ИдентЭлемДиалога>,<ФлагСтандОбр>) Назначение: Предопределенная процедура после выбора значения в форме выбора (выбор может быть инициирован в немодальном режиме интерактивно, при помощи элемента диалога с ''педалькой''). <ИдентЭлемДиалога> - идентификатор элемента диалога, которым инициализирован выбор значения. <ФлагСтандОбр> - флаг, изначально, при вызове процедуры равен 1, если в теле процедуры значение этого параметра поменять на 0, то стандартный процесс выбора значения не будет происходить. Замечание: Данная процедура может располагаться только в программном модуле формы. |
|||
4
Kigo_Kigo
16.02.18
✎
13:53
|
(1) Как узнать, в какую группу надо попасть?
|
|||
5
geniusbsd
16.02.18
✎
13:56
|
(3) Это я знаю
(4) Вот и я не могу понять как это узнать |
|||
6
geniusbsd
16.02.18
✎
13:58
|
Просто есль бы асусу делали только ноутбуки то проблем бы не было, а вот есть еще планшеты мониторы и.тд
найти поНаименованию находит первый попавшийся |
|||
7
Масянька
16.02.18
✎
13:59
|
(5) Нарисуй структуру обоих справочников - мне не очень понятно, что есть что.
|
|||
8
uno-group
16.02.18
✎
14:00
|
УстановитьОтборПоРеквизиту или видимость по спискузначений
|
|||
9
aka AMIGO
16.02.18
✎
14:01
|
(6) ИМХО кто-то должен побеспокоиться о способе связи элементов справочников, конфигурации на это наплевать.
|
|||
10
geniusbsd
16.02.18
✎
14:03
|
В обоих справочниках есть одинаковый элемент ТипОборудования
|
|||
11
aka AMIGO
16.02.18
✎
14:04
|
Или так: в Запросе связать элементы справочников по какому-нибудь признаку, выдать список, и пусть юзер жмакает по нужному элементу списка
|
|||
12
Масянька
16.02.18
✎
14:04
|
(6) Разные папки для ноутов, планшетов и пр. Поиск по заданной папке. Я говорю - мне без структуры ни фиги не понятно.
|
|||
13
aka AMIGO
16.02.18
✎
14:04
|
(10) Вот, в запросе и свяжи по Типу
|
|||
14
geniusbsd
16.02.18
✎
14:08
|
(12)
ТМЦ Реквизиты Наименование Производитель Видоборудования Производители Наименование ВидОборудования |
|||
15
Масянька
16.02.18
✎
14:13
|
(14) А теперь распиши пример из (1).
|
|||
16
Darych
16.02.18
✎
14:13
|
(14) и что???... ну обзови группы в тмц так, как те проще будет в процедуре искать.. ну все в твоих руках\голове.. в чем ВОПРОС то?.. ты что-нить делать пробовал?
|
|||
17
aka AMIGO
16.02.18
✎
14:16
|
http://helpme1c.ru/yazyk-zaprosov-1s-8-3-dlya-nachinayushhix-programmistov-paketnye-zaprosy-i-vremennye-tablicy
Обучение языку. Работа с ВТ. Там-же есть Связать и Объединить, всё нужное, чтобы получить нужный результат |
|||
18
Darych
16.02.18
✎
14:18
|
(17) у него клюшки)
|
|||
19
aka AMIGO
16.02.18
✎
14:20
|
(18) Блин.. только что увидел, невнимателен! Извини, ТС! :)
|
|||
20
Масянька
16.02.18
✎
14:21
|
(19) Пятница... Хочу, блин, блинов :)
|
|||
21
geniusbsd
16.02.18
✎
14:23
|
(15)
На Форме выбираем ТипОборудования Ноутбук Производитель ASUS(ТипОборудования Ноутбук) Мне нужно попасть в Папку ТМЦ ASUS в папке Ноутбуки |
|||
22
geniusbsd
16.02.18
✎
14:24
|
(16)
Процедура ПриНачалеВыбораЗначения(Рекв,Фл) Перем ВыбЗначение,парам; Если Рекв = "Производитель" Тогда фл=0; // Парам=ТипОборудования; // Производитель.УстановитьОтбор("Вид",ТипОборудования); Сп=СоздатьОбъект("СписокЗначений"); Сп.ДобавитьЗначение(ТипОборудования,"ТипОборудования"); ОткрытьФорму("Справочник.Производители.ФормаСписка",сп); КонецЕсли; Если Рекв = "Модель" Тогда СпрТов = СоздатьОбъект("Справочник.ТМЦ"); //СпрТов.НайтиПоКоду("0000004717",0); СпрТов.НайтиПоРеквизиту("Вид",ТипОборудования,1); //Сообщить(СпрТов.ТекущийЭлемент().Родитель.Родитель); СпрТов.НайтиПоНаименованию(СокрЛП(Производитель.ТекущийЭлемент()),0); // Модель // Модель.ИспользоватьРодителя(СпрТов.ТекущийЭлемент(),0); Модель.ИспользоватьРодителя(спртов.ТекущийЭлемент(),0); КонецЕсли; |
|||
23
Масянька
16.02.18
✎
14:29
|
(22) мНоменклатура.ИспользоватьРодителя(ГруппаСправочникаДляПечати, 0);
мНоменклатура.ВыбратьЭлементы(1); |
|||
24
geniusbsd
16.02.18
✎
14:37
|
Немного не то ине нужно открыть форму списка с отбором
|
|||
25
HawkEye
16.02.18
✎
14:47
|
(6) ПоискПоНаименованию в рекурсию с Режимом 1...
|
|||
26
HawkEye
16.02.18
✎
14:51
|
(22) для чего СЗ с одним значением?
Сп=СоздатьОбъект("СписокЗначений"); Сп.ДобавитьЗначение(ТипОборудования,"ТипОборудования"); ОткрытьФорму("Справочник.Производители.ФормаСписка",сп); если после закрытия открытия формы Производители, надо будет что-нибудь вернуть.. лучше использовать подбор. зачем два раза искать? СпрТов.НайтиПоРеквизиту("Вид",ТипОборудования,1); СпрТов.НайтиПоНаименованию(СокрЛП(Производитель.ТекущийЭлемент()),0); ? почему нет проверок нашел ли? |
|||
27
Масянька
16.02.18
✎
14:54
|
(24) Трудно в стандарте глянуть?
Процедура ПриОткрытии() Если ТипЗначенияСтр(Форма.Параметр) = "Справочник" Тогда Если (Форма.Параметр.Вид() = "Контрагенты") И (Форма.Параметр.Выбран() = 1) И (Форма.Параметр.ЭтоГруппа() = 0) Тогда ИспользоватьВладельца(Форма.Параметр); ИерархическийСписок(1, 1); Форма.ОбработкаВыбораСтроки(1); КонецЕсли; Иначе ИерархическийСписок(1, 0); КонецЕсли; КонецПроцедуры // ПриОткрытии() Вместо владельца - передаешь свои параметры. |
|||
28
geniusbsd
16.02.18
✎
15:54
|
Если Рекв = "Модель" Тогда
СпрТов = СоздатьОбъект("Справочник.ТМЦ"); Пока СпрТов.ПолучитьЭлемент() = 1 Цикл Если (СокрЛП(СпрТов.Вид) =СокрЛП(ТипОборудования)) И(СокрЛП(СпрТов.Наименование)=СокрЛП(Производитель)) И (СпрТов.ЭтоГруппа()=1) тогда Сообщить(СпрТов); Прервать; КонецЕсли; КонецЦикла; Модель.ИспользоватьРодителя(спртов.ТекущийЭлемент(),0); КонецЕсли; Сделал так вроде работает КонецПроцедуры |
|||
29
HawkEye
16.02.18
✎
16:11
|
(28) для таких поисков лучше использовать составнойреквизит в справочнике... и по нему искать один раз, а не перебирать каждый раз всю номенклатуру.
|
|||
30
HawkEye
16.02.18
✎
16:13
|
+29, либо уж использовать ВыбратьЭлементыПоРеквизиту с режимомгруппы = 1... всяко меньше элементов перебирать
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |