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


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

v7: Связать между собой неподчиненые справочники

v7: Связать между собой неподчиненые справочники
Я
   geniusbsd
 
16.02.18 - 13:39
День добрый Натолкните на мысли как реализовать 
Есть Справочник ОборудованиеКлиента подчинен Справочнику Контрагенты. На форме элемента справочника есть реквизиты
ТипОборудования - тип перечисление ВидТовара
Производитель  - тип справочник Производитли
Серия - тип справочник ТМЦ
ТМЦ имеет вид 
Ноутбук
 
 
   geniusbsd
 
1 - 16.02.18 - 13:44
ТМЦ имеет вид 
 Ноутбук
        Asus
             K73
Как сделать так что бы при выборе реквизита серия
при выбраных реквизитах 
Тип Оборудования -Ноутбук
Производитель ASUS
 Сразу попасть в Нужную группу справчника ТМЦ
   Darych
 
2 - 16.02.18 - 13:47
ну видимо при выборе в процедуре написать то, что вам нужно
   user-ok
 
3 - 16.02.18 - 13:49
Процедура ПриНачалеВыбораЗначения(<?>,)
КонецПроцедуры
Синтаксис:
ПриНачалеВыбораЗначения(<ИдентЭлемДиалога>,<ФлагСтандОбр>)
Назначение:
Предопределенная процедура после выбора значения в форме выбора (выбор может быть инициирован в немодальном режиме интерактивно, при помощи элемента диалога с ''педалькой'').
<ИдентЭлемДиалога> - идентификатор элемента диалога, которым инициализирован выбор значения.
<ФлагСтандОбр> - флаг, изначально, при вызове процедуры равен 1, если в теле процедуры значение этого параметра поменять на 0, то стандартный процесс выбора значения не будет происходить.
Замечание:
Данная процедура может располагаться только в программном модуле формы.
   Kigo_Kigo
 
4 - 16.02.18 - 13:53
(1) Как узнать, в какую группу надо попасть?
   geniusbsd
 
5 - 16.02.18 - 13:56
(3) Это я знаю
(4) Вот и я не могу понять как это узнать
   geniusbsd
 
6 - 16.02.18 - 13:58
Просто есль бы асусу делали только ноутбуки то проблем бы не было, а вот есть еще планшеты мониторы и.тд
найти поНаименованию находит первый попавшийся
   Масянька
 
7 - 16.02.18 - 13:59
(5) Нарисуй структуру обоих справочников - мне не очень понятно, что есть что.
   uno-group
 
8 - 16.02.18 - 14:00
УстановитьОтборПоРеквизиту или видимость по спискузначений
   aka AMIGO
 
9 - 16.02.18 - 14:01
(6) ИМХО кто-то должен побеспокоиться о способе связи элементов справочников, конфигурации на это наплевать.
   geniusbsd
 
10 - 16.02.18 - 14:03
В обоих справочниках есть одинаковый элемент ТипОборудования
 
 Рекламное место пустует
   aka AMIGO
 
11 - 16.02.18 - 14:04
Или так: в Запросе связать элементы справочников по какому-нибудь признаку, выдать список, и пусть юзер жмакает по нужному элементу списка
   Масянька
 
12 - 16.02.18 - 14:04
(6) Разные папки для ноутов, планшетов и пр. Поиск по заданной папке. Я говорю - мне без структуры ни фиги не понятно.
   aka AMIGO
 
13 - 16.02.18 - 14:04
(10) Вот, в запросе и свяжи по Типу
   geniusbsd
 
14 - 16.02.18 - 14:08
(12)
ТМЦ Реквизиты
Наименование
Производитель
Видоборудования

Производители
Наименование
ВидОборудования
   Масянька
 
15 - 16.02.18 - 14:13
(14) А теперь распиши пример из (1).
   Darych
 
16 - 16.02.18 - 14:13
(14) и что???... ну обзови группы в тмц так, как те проще будет в процедуре искать.. ну все в твоих руках\голове.. в чем ВОПРОС то?.. ты что-нить делать пробовал?
   aka AMIGO
 
17 - 16.02.18 - 14:16
http://helpme1c.ru/yazyk-zaprosov-1s-8-3-dlya-nachinayushhix-programmistov-paketnye-zaprosy-i-vremennye-tablicy
Обучение языку. Работа с ВТ.
Там-же есть Связать и Объединить, всё нужное, чтобы получить нужный результат
   Darych
 
18 - 16.02.18 - 14:18
(17) у него клюшки)
   aka AMIGO
 
19 - 16.02.18 - 14:20
(18) Блин.. только что увидел, невнимателен! Извини, ТС! :)
   Масянька
 
20 - 16.02.18 - 14:21
(19) Пятница... Хочу, блин, блинов :)
   geniusbsd
 
21 - 16.02.18 - 14:23
(15)

На Форме выбираем
ТипОборудования Ноутбук
Производитель ASUS(ТипОборудования Ноутбук)
Мне нужно попасть в Папку  ТМЦ ASUS в папке Ноутбуки
   geniusbsd
 
22 - 16.02.18 - 14:24
(16)

 Процедура ПриНачалеВыбораЗначения(Рекв,Фл)
    Перем ВыбЗначение,парам;
    Если Рекв = "Производитель" Тогда
        фл=0;    
    //    Парам=ТипОборудования;

    // Производитель.УстановитьОтбор("Вид",ТипОборудования); 

     Сп=СоздатьОбъект("СписокЗначений");
Сп.ДобавитьЗначение(ТипОборудования,"ТипОборудования");    
    ОткрытьФорму("Справочник.Производители.ФормаСписка",сп);
    КонецЕсли;
    
    
     Если Рекв = "Модель" Тогда 
     
        СпрТов = СоздатьОбъект("Справочник.ТМЦ");
        //СпрТов.НайтиПоКоду("0000004717",0); 

        СпрТов.НайтиПоРеквизиту("Вид",ТипОборудования,1); 
        //Сообщить(СпрТов.ТекущийЭлемент().Родитель.Родитель);

        СпрТов.НайтиПоНаименованию(СокрЛП(Производитель.ТекущийЭлемент()),0);
    //    Модель

    //    Модель.ИспользоватьРодителя(СпрТов.ТекущийЭлемент(),0);  

Модель.ИспользоватьРодителя(спртов.ТекущийЭлемент(),0);
КонецЕсли;
   Масянька
 
23 - 16.02.18 - 14:29
(22)         мНоменклатура.ИспользоватьРодителя(ГруппаСправочникаДляПечати, 0);
        мНоменклатура.ВыбратьЭлементы(1);
   geniusbsd
 
24 - 16.02.18 - 14:37
Немного не то ине нужно открыть форму списка с отбором
   HawkEye
 
25 - 16.02.18 - 14:47
(6) ПоискПоНаименованию в рекурсию с Режимом 1...
   HawkEye
 
26 - 16.02.18 - 14:51
(22) для чего СЗ с одним значением?
 Сп=СоздатьОбъект("СписокЗначений");
Сп.ДобавитьЗначение(ТипОборудования,"ТипОборудования");    
    ОткрытьФорму("Справочник.Производители.ФормаСписка",сп);


если после закрытия открытия формы Производители, надо будет что-нибудь вернуть.. лучше использовать подбор.



зачем два раза искать?
 СпрТов.НайтиПоРеквизиту("Вид",ТипОборудования,1); 
       СпрТов.НайтиПоНаименованию(СокрЛП(Производитель.ТекущийЭлемент()),0);

?

почему нет проверок нашел ли?
   Масянька
 
27 - 16.02.18 - 14:54
(24) Трудно в стандарте глянуть?
Процедура ПриОткрытии()
    
    Если ТипЗначенияСтр(Форма.Параметр) = "Справочник" Тогда
        Если (Форма.Параметр.Вид() = "Контрагенты") И 
             (Форма.Параметр.Выбран() = 1) И (Форма.Параметр.ЭтоГруппа() = 0) Тогда
                 
            ИспользоватьВладельца(Форма.Параметр);
            ИерархическийСписок(1, 1); 
            Форма.ОбработкаВыбораСтроки(1);
        КонецЕсли;
    Иначе
        ИерархическийСписок(1, 0);
    КонецЕсли;
    
КонецПроцедуры// ПриОткрытии()

Вместо владельца - передаешь свои параметры.
   geniusbsd
 
28 - 16.02.18 - 15:54
Если Рекв = "Модель" Тогда      
СпрТов = СоздатьОбъект("Справочник.ТМЦ");    
Пока СпрТов.ПолучитьЭлемент() = 1 Цикл 
Если (СокрЛП(СпрТов.Вид) =СокрЛП(ТипОборудования)) И(СокрЛП(СпрТов.Наименование)=СокрЛП(Производитель)) И  (СпрТов.ЭтоГруппа()=1) тогда
    Сообщить(СпрТов);
    Прервать;
    КонецЕсли;
КонецЦикла; 
Модель.ИспользоватьРодителя(спртов.ТекущийЭлемент(),0);
КонецЕсли; 

Сделал так вроде работает    

     

    КонецПроцедуры
   HawkEye
 
29 - 16.02.18 - 16:11
(28) для таких поисков лучше использовать составнойреквизит в справочнике... и по нему искать один раз, а не перебирать каждый раз всю номенклатуру.
   HawkEye
 
30 - 16.02.18 - 16:13
+29, либо уж использовать ВыбратьЭлементыПоРеквизиту с режимомгруппы = 1... всяко меньше элементов перебирать


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