8.х Связанные таблицы и связь один-ко-многим

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем rean1mator, 24 авг 2015.

  1. TopicStarter Overlay
    rean1mator
    Offline

    rean1mator

    Регистрация:
    29 июл 2015
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте!
    Только начинаю изучать разработку под 1С и начал пытаться делать свою маленькую подсистему.
    Создал несколько справочников, но натолкнулся на проблему, которую не знаю каким способом решать в 1С.

    Суть такова: есть справочник "ТипыТехники", справочник "Комплектующие" и справочник "Производители". Понятное дело, что один и тот же производитель может клепать ноуты, свитчи, видеокарты, звуковухи и тд. Т.е. готовую технику и комплектующие.
    После небольшого опыта работы с SQL-базами я привык, что для связи подобных справочников делаются связующие таблицы, например: id | TechType_id | Manufacturer_id.

    Скажите, пожалуйста, как подобную задачу решают в 1С ?

    P.S.
    В голову приходит только вариант связывать справочники по полю Владелец.

    ------
    Немного уточню, к чему я хочу прийти в итоге.
    В итоге я хочу прийти к тому, что система должна будет понимать, что при создании единицы техники "Системный блок" (при добавлении к нему списка комплектующих) при формировании списка комплектующих туда не должны попадать такие элементы, как картридж или диктофон, а только комплектующие.
    Последнее редактирование: 24 авг 2015
  2. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.565
    Симпатии:
    716
    Баллы:
    204
    Вопрос в чем? Вы думаете в реляционной БД от 1с как-то по-другому создаются ссылки на другие таблицы? :)
    Связь между таблицами не обязательно по реквизиту Владелец может быть, но у связи по Владельцу есть некоторые недостатки(ограничения) и преимущества, как впрочем, у любой другой связи таблиц по другим полям.
  3. TopicStarter Overlay
    rean1mator
    Offline

    rean1mator

    Регистрация:
    29 июл 2015
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Может быть своим немного затянутым топик стартом я немного запутал.
    Есть справочник "ТипыТехники", справочник "Комплектующие" и справочник "Производители". В каждом справочнике наименования должны быть уникальны. Между Производителем и ТипамиТехники нужно сделать связь один-ко-мнгогим (один производитель на несколько типов техники).
  4. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.565
    Симпатии:
    716
    Баллы:
    204
    Связь по Владелец - подойдет, но необходимо понимать, какие есть преимущества/недостатки у данной связи.
    Быть может лучше сделать связь по другому реквизиту или вообще не связывать эти справочники между собой.
  5. TopicStarter Overlay
    rean1mator
    Offline

    rean1mator

    Регистрация:
    29 июл 2015
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Не связывать - не вариант. Цель связывания - избежать "искажения реальности" в данных, чтоб производитель асус вдруг не начал штамповать процы и разрабатывать Винду (среди пользователей найдутся индивиды, которые могут накнопить подобное).
    Связь по Владельцу подходит только от части, тк, если вязать так два справочника между собой (без промежуточной таблицы), то в подчиненном справочнике (Производитель подчинен Типу техники) в стандартном будет куча элементов с одинаковым наименованием, но привязанных к разным элементам справочника-владельца.
    Хотелось бы получить результат, когда в самих справочниках наименования уникальны.

    Понимаю, что моя задача может выглядеть, несколько, бредово, но я хочу сделать работу пользователя в подсистеме линейной, "как по рельсам", дабы у некоторых пользователей было минимум возможностей наклацать "франкенштейна", типа "Виндовс 10, производитель - асус, и тд цирк" (похожие умозаключения я уже видел в базе не очень давно)
    Последнее редактирование: 24 авг 2015
  6. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.565
    Симпатии:
    716
    Баллы:
    204
    А такой связи не получится сделать по владельцу в данном случае, т.к. производителей одного и того же типа техники может быть много, если сделать связь, то для каждого вида техники набор производителей будет своим, даже в том случае, если такой же производитель уже есть у другого вида техники.

    Поэтому выход один, делать связь по другому реквизиту, но связь по другому реквизиту будет вида 1 к 1, т.е. тоже не подходит.
    Вариант решения: набить все возможные комбинации в какой-то другой список и делать отбор доступных производителей/видов техники при выборе соответствующих элементов в других объектах: документах/справочниках.....
  7. TopicStarter Overlay
    rean1mator
    Offline

    rean1mator

    Регистрация:
    29 июл 2015
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Получается, что конечному пользователю (например,бухгалтеру) будет необходимо совершить отбор по значению поля (ПКМ->"Найти:<ИмяПоля > - <НаименованиеЭлемента>") ?
  8. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.565
    Симпатии:
    716
    Баллы:
    204
    Пользователь должен будет выбрать вид техники из списка доступных т.к. уже указал производителя, либо выбрать производителя из списка доступных, т.к. уже выбрал вид техники.
    Все это происходит при работе пользователя с новым элементом справочника, скажем "Оборудование" или в форме документа "Заказ-наряд".....
    rean1mator нравится это.
  9. TopicStarter Overlay
    rean1mator
    Offline

    rean1mator

    Регистрация:
    29 июл 2015
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Ясно. Значит продолжу делать так же, как и начал.
    nomad_irk, благодарю Вас за то, что отозвались обсудить тему
    --- Объединение сообщений, 24 авг 2015 ---
    nomad_irk, если можно, ещё один вопрос: не могли бы Вы перечислить плюсы и минусы использования связи по Владельцу (хотя бы основные)
    Последнее редактирование: 24 авг 2015
  10. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.565
    Симпатии:
    716
    Баллы:
    204
    навскидку:
    плюс: на форме можно сделать отбор по владельцу типовым механизмом платформы 1С
    минусы: подчиненные элементы уникальны в пределах владельца.
  11. TopicStarter Overlay
    rean1mator
    Offline

    rean1mator

    Регистрация:
    29 июл 2015
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
  12. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Чет я не совсем может понял.
    А зачем справочник тип техники делать подчиненым производителю?
    Или это уже не предлагается?
  13. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.565
    Симпатии:
    716
    Баллы:
    204
    вроде как, ТС уже отказался от этой затеи.....
  14. TopicStarter Overlay
    rean1mator
    Offline

    rean1mator

    Регистрация:
    29 июл 2015
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Справочник "ТипыТехники" у меня сейчас является Владельцем справоника "Производители", так как я хочу чтоб конечный пользователь не мог "наклацать" мифических комбинаций, типа: ТипТехники = клавиатура, а Производитель: D-Link
  15. TopicStarter Overlay
    rean1mator
    Offline

    rean1mator

    Регистрация:
    29 июл 2015
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    В идеале, я хочу добиться следующей работы подсистемы:
    1. Справочная информация (справоники) из которой в дальнейшем будет собираться единица техники: Тип техники, производительи, модели и куча тех.характеристик и их значений. В идеале тех.характеристики должны быть привязаны к типам техники. Т.е. каждый тип техники должен иметь определенный набор тех.характеристик.

    2. Хранилище так называемой коллекции техники. Здесь мы уже "собираем" какую-либо единицу техники, указывая Тип техники, Производителя, Модель и заполняем необходимый набор тех.характеристик. Но на данном этапе единица техники ещё не должна ставиться на учет/баланс. Коллекция техники, по сути, так же является справочной. В ней мы собираем единицы техники для их последующего многократного использования.

    3. Постановка на учет/баланс. Здесь мы уже используем технику, созданную в пункте 2, указываем цену, количество, место хранения и тд.


    Как всё это делать под 1С я пока до конца не представляю. Сегодня разговаривал с нашим спецом по 1С, обслуживающим нашу организацию, но точного овета не получил, какие объекты конфигурации и в каком месте использовать.
  16. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Чет это. А вы не велосипед изобретаете?

    Я не знаю какая у вас конфигурация. Если брать УТ10 (или УПП) например, то п.2 - это вероятно будет в стандартных терминах Набор-пакет или Набор-Комплект, смотреть надо как вам удобнее списывать. Тех характеристики при этом это просто элементы справочника Номенклатура.
    Создание каких-то дополнительных справочников и т.п. может быть только с целью контроля описаного в #14, чтобы выводить предупреждающие сообщения.

    По #14 - зачем Тип Техники владелец Производителя?
    По мне так достаточно создать отдельные (не связанные) справочники Тип Техники, Производитель.
    В справочнике Производитель создать табличную часть (ПроизводимыеТипыТехники) с реквизитом ТипыТехники. Ну и соответственно заполнить ее типами техники, которые может производить данный производитель.
    Кроме того, опять таки, если в стандартных терминах - то Производитель, это по сути Контрагент. Если у вас типовая конфигурация - зачем плодить дополнительную сущность (справочник) с одним смыслом?
    rean1mator нравится это.
  17. flax
    Offline

    flax Новичок в 1С

    Регистрация:
    21 авг 2015
    Сообщения:
    9
    Симпатии:
    2
    Баллы:
    4
    Делается также как Вы и привыкли, Создается связующий справочник, ему владелец - скажем "ТипыТехники", реквизит допустим - "Производители", в Вашем случае возможно достаточно будет не создавать связующий, а сделать связующим "Комплектующие".
    rean1mator нравится это.
  18. TopicStarter Overlay
    rean1mator
    Offline

    rean1mator

    Регистрация:
    29 июл 2015
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    shurikvz, конфигурация - Бухгалтерия гос.учреждения. Я, возможно и пложу сущности и изобретаю велосипеды, но я только начал учиться 1С. :)
    По поводу Производителя и Контрагента: мне не хочется "смешивать мух и котлеты". В Контрагентах пусть будут фирмы, с которыми сотрудничает наша организация, а в производителях будут сами производители. В противном случае в одном справочнике будет намешано всё, что только можно и это не есть хорошо.:)

    Табличная часть "ПроизводдимыеТипыТехники" - интересная мысль, спасибо за неё:). Меня она не посетила, но теперь возьму на вооружение. Но в данном случае, с учетом техники, я хочу разделять сущности "по полочкам" и выстроить логическую цепочку работы конечного пользователя. Первая мысль, когда нам приносят какую-либо технику - "Что это такое?", а это, например, ноутбук. Дальше обычно возникает вопрос "Что за ноут?", ответ - "асус x750lb". Первое - производитель, второе - модель, а дальше уже идет набор характеристик. Т.е., если база изначально пустая или нет нужных записей в справочниках, то создавать их пользователь будет, скорее всего, в таком порядке

    flax, по поводу связующего справочника "Комплектующие" - интересная мысль, спасибо за подсказку :)

Поделиться этой страницей