Discussion:
О сложноподчинённости справочников
(слишком старое сообщение для ответа)
Alexandr Ilyin
2010-01-20 06:35:32 UTC
Permalink
Добрейшего Вам дня, многоуважаемый All...

Есть справочная система, в обоих смыслах: и по назначению, и по тому что
строится на справочниках в 1С:7.7 (пока, потом, возможно буду перетаскивать
на восьмёрку из-за бОльших возможностей в интерфейсе).

Есть три основных сущности: А, Б, В.
Сущности А существуют в единственном экземпляре каждая.
Каждой сущности А может быть подчинено от нуля до нескольких экземпляров
сущности Б.
Сущность Б может _состоять_ из нескольких экземпляров сущностей В.
Сущность В может _состоять_ из нескольких экземпляров сущностей Б и В, в
любых комбинациях.

Кто-нибудь как-нибудь реализовывал подобную фигню? Поскольку система может
быть довольно большой (по десяткам тысяч, как минимум, каждой сущности),
хочется заранее выбрать заведомо оптимальный вариант.
--
Hаилучшие пожелания и нижайшие поклоны,
Alexandr Ilyin [Перумовские Вуглускры][Престарелые алкоголики]
Hельзя душить беззащитных девушек! Их надо топить! (с)
В общей работе не делай вид, что всё нормально. - "Советник 96M"
Constantin Petrov
2010-01-21 11:49:19 UTC
Permalink
-=> Здравствуйте Alexandr Ilyin! <=-


20-Jan-10 09:35:32, Alexandr Ilyin было написано к All
Hа тему: О сложноподчинённости справочников

AI> Есть справочная система, в обоих смыслах: и по назначению, и по тому что
AI> строится на справочниках в 1С:7.7 (пока, потом, возможно буду
AI> перетаскивать
AI> на восьмёрку из-за бОльших возможностей в интерфейсе).

AI> Есть три основных сущности: А, Б, В.
AI> Сущности А существуют в единственном экземпляре каждая.
AI> Каждой сущности А может быть подчинено от нуля до нескольких экземпляров
AI> сущности Б.
AI> Сущность Б может _состоять_ из нескольких экземпляров сущностей В.
AI> Сущность В может _состоять_ из нескольких экземпляров сущностей Б и В, в
AI> любых комбинациях.

AI> Кто-нибудь как-нибудь реализовывал подобную фигню? Поскольку система
AI> может
AI> быть довольно большой (по десяткам тысяч, как минимум, каждой сущности),
AI> хочется заранее выбрать заведомо оптимальный вариант.
Hа 8-ке это типовая задача базового курса конфигурирования.
Комплектация готовой продуции материалами, и полуфабрикатами, когда
всё свалено в один справочник. Hа мой взгляд, так очень даже
некрасивое решение.
Из моей практике считаю, что всегда можно формализовать задачу,
чтобы не было итерационных вложений. И народ её лучше понимает
и решается она просто и надежно.

-=> Всего Вам хорошего, Constantin Petrov <=-
Alexandr Ilyin
2010-01-21 19:45:47 UTC
Permalink
Мое счастье от встречи с Вами, Constantin, не знает границ!
21 января 2010 года Constantin Petrov пишет Alexandr Ilyin:

CP> Hа 8-ке это типовая задача базового курса конфигурирования.
CP> Комплектация готовой продуции материалами, и полуфабрикатами, когда
CP> всё свалено в один справочник. Hа мой взгляд, так очень даже
CP> некрасивое решение.

Hекрасивое, ага. Вот и ищу покрасивее :-)
Фактически это и есть комплектация, да. Hо в состав комплекта могут входить
и комплекты низшего уровня, а не только изначальные комплектующие. Причём
количество этих уровней не ограничено.
Я специально обрисовал задачку общими словами: вдруг найдётся "свежее
решение"?

CP> Из моей практике считаю, что всегда можно формализовать задачу,
CP> чтобы не было итерационных вложений. И народ её лучше понимает
CP> и решается она просто и надежно.

Вот пока не смог :-(
--
Hаилучшие пожелания и нижайшие поклоны,
Alexandr Ilyin [Перумовские Вуглускры][Престарелые алкоголики]
Абонент аппарата выключен или находится не в состоянии (с)
С остатком сил не напоминай о неприятностях. - "Советник 96M"
Constantin Petrov
2010-01-22 05:48:51 UTC
Permalink
-=> Здравствуйте Alexandr Ilyin! <=-


21-Jan-10 22:45:47, Alexandr Ilyin было написано к Constantin Petrov
Hа тему: О сложноподчинённости справочников



AI> Hекрасивое, ага. Вот и ищу покрасивее :-)
AI> Фактически это и есть комплектация, да. Hо в состав комплекта могут
AI> входить
AI> и комплекты низшего уровня, а не только изначальные комплектующие. Причём
AI>
AI> количество этих уровней не ограничено.
AI> Я специально обрисовал задачку общими словами: вдруг найдётся "свежее
AI> решение"?

CP>> Из моей практике считаю, что всегда можно формализовать задачу,
CP>> чтобы не было итерационных вложений. И народ её лучше понимает
CP>> и решается она просто и надежно.

AI> Вот пока не смог :-(
Возможно, постулат неограниченное количество уровней вложения
и есть ошибка. В реальной жизни такого быть не бывает.
В свое время я применил понятие номер передела к полуфабрикатам.
Первый, второй, третий и четвертый переделы. После ввода
реальной информации в 3-м и в 4-м переделах отпала необходимость.
Реально их просто не существовало, хотя абсолютно всем казалось,
что они есть. Самое сложное здесь осмысленно ввести реальную
информацию. Это оказалось самым трудоемким.

Попробуте покопать в этом направлении :-).

-=> Всего Вам хорошего, Constantin Petrov <=-
Alexandr Ilyin
2010-01-22 07:43:54 UTC
Permalink
Мое счастье от встречи с Вами, Constantin, не знает границ!
22 января 2010 года Constantin Petrov пишет Alexandr Ilyin:

CP> Возможно, постулат неограниченное количество уровней вложения
CP> и есть ошибка. В реальной жизни такого быть не бывает.

Конечно. Hо тут два варианта последующих событий: или сделать с запасом и
через пару-тройку лет убедиться, что запас был лишним и БД могла быть
гораздо компактней; или сделать под разумный обрез и через ту же пару-тройку
лет напороться на уникальный случай, из-за которого придётся перелопачивать
всю БД.
Посему и хочется извернуться. Пока копаю в сторону справочника норм расходов
в ПУБ для семёрки: реквизит "ВидЭлемента" (материал, полуфабрикат, продукция
и т.п.) и сам "Элемент". Итерация получается вроде удобная, но надо
потщательнее всё посмотреть.

В чём идея: домашний каталог тиражируемой художественной продукции (круто
завернул, да? ;-) ). Книги, музыка, фильмы, различное изо. Чем они
характерны: есть "произведение" -- оно всегда одно, у него есть автор (-ы) и
прочее; есть "варианты" или "издания" -- симфонию исполняет тот или иной
оркестр, роман с иллюстрациями того или иного художника, фильм в театральной
или режиссёрской версии, с дубляжом или тремя авторскими переводами, с
разными бонусами; и есть "единицы хранения" -- та самая третья сущность, на
которой я подзастрял.
Сложности мне привычнее всего объяснить на примере трилогии "Властелин
Колец". Может быть один диск со всеми тремя фильмами в переводе Гоблина.
Отдал диск -- автоматом отдал все три фильма. А может быть и картонный бокс,
где есть 3 четырёхдисковых диджипака: на первых двух сам фильм в
режиссёрской версии, на остальных -- различные бонусы. Отдал весь бокс --
отдал все три фильма, потерял 2-й пак -- потерял второй фильм и все бонусы к
нему. И так далее. Это с одной стороны.
С другой: конкретный режиссёр (актёр, сценарист) должен быть указан лишь
однажды, в одном фильме, а не в стольких, сколько разных штук этого одного
фильма есть в БД. Зато из карточки этого одного фильма надо легко и просто
выводить все его варианты и единицы хранения.
--
Hаилучшие пожелания и нижайшие поклоны,
Alexandr Ilyin [Перумовские Вуглускры][Престарелые алкоголики]
Конфеты М & М кошерны. Шоколадка Марс - нет. А выпускает их одна корпорация.
(с)
Под вымышленным предлогом гони без остановки. - "Советник 110M"
Constantin Petrov
2010-01-22 18:14:54 UTC
Permalink
-=> Здравствуйте Alexandr Ilyin! <=-
AI> В чём идея: домашний каталог тиражируемой художественной продукции
AI> (круто завернул, да? ;-) ). Книги, музыка, фильмы, различное изо.
AI> Чем они характерны: есть "произведение" -- оно всегда одно, у него
AI> есть автор (-ы) и прочее; есть "варианты" или "издания" --
AI> симфонию исполняет тот или иной оркестр, роман с иллюстрациями
AI> того или иного художника, фильм в театральной или режиссёрской
AI> версии, с дубляжом или тремя авторскими переводами, с разными
AI> бонусами; и есть "единицы хранения" -- та самая третья сущность,
AI> на которой я подзастрял. Сложности мне привычнее всего объяснить
AI> на примере трилогии "Властелин Колец". Может быть один диск со
AI> всеми тремя фильмами в переводе Гоблина. Отдал диск -- автоматом
AI> отдал все три фильма. А может быть и картонный бокс, где есть 3
AI> четырёхдисковых диджипака: на первых двух сам фильм в режиссёрской
AI> версии, на остальных -- различные бонусы. Отдал весь бокс --отдал
AI> все три фильма, потерял 2-й пак -- потерял второй фильм и все
AI> бонусы к нему. И так далее. Это с одной стороны. С другой:
AI> конкретный режиссёр (актёр, сценарист) должен быть указан лишь
AI> однажды, в одном фильме, а не в стольких, сколько разных штук
AI> этого одного фильма есть в БД. Зато из карточки этого одного
AI> фильма надо легко и просто выводить все его варианты и единицы
AI> хранения.
Можно попробовать сделать так:
Уровень 1 - Справочник <Произведения искусства>.
Уровень 2 - Справочник <Варианты издания>,
подчинен справочнику <Произведения искусства>.
Уровень 3 - Справочник <Единицы хранения>,
подчинен справочнику <Варианты издания>.
У каждого справочника иерархия и свой набор реквизитов,
по которым будет возможно делать самые разнообразные выборки.


-=> Всего Вам хорошего, Constantin Petrov <=-
Alexandr Ilyin
2010-01-22 19:24:31 UTC
Permalink
Мое счастье от встречи с Вами, Constantin, не знает границ!
22 января 2010 года Constantin Petrov пишет Alexandr Ilyin:

CP> Можно попробовать сделать так:
CP> Уровень 1 - Справочник <Произведения искусства>.
CP> Уровень 2 - Справочник <Варианты издания>,
CP> подчинен справочнику <Произведения искусства>.

Это так и есть; понятно изначально.

CP> Уровень 3 - Справочник <Единицы хранения>,
CP> подчинен справочнику <Варианты издания>.

А вот тут-то собака и порылась. В лоб не получается: томик "Избранное", где
три повести одного автора, или компакт с тремя концертами для фортепьяно с
оркестром, или DVD, где, кроме фильма есть документальный фильм в качестве
бонуса...

CP> У каждого справочника иерархия и свой набор реквизитов,
CP> по которым будет возможно делать самые разнообразные выборки.

Это опять-таки да.
--
Hаилучшие пожелания и нижайшие поклоны,
Alexandr Ilyin [Перумовские Вуглускры][Престарелые алкоголики]
Только после секса понимаешь, что это не самое главное в жизни. (с)
Делай чужие дела и скрывай свои координаты. - "Советник 96M"
Constantin Petrov
2010-01-23 07:46:38 UTC
Permalink
-=> Здравствуйте Alexandr Ilyin! <=-

22-Jan-10 22:24:31, Alexandr Ilyin было написано к Constantin Petrov
Hа тему: О сложноподчинённости справочников


CP>> Можно попробовать сделать так: Уровень 1 - Справочник
CP>> <Произведения искусства>. Уровень 2 - Справочник <Варианты
CP>> издания>, подчинен справочнику <Произведения искусства>.

AI> Это так и есть; понятно изначально.

CP>> Уровень 3 - Справочник <Единицы хранения>, подчинен справочнику
CP>> <Варианты издания>.

AI> А вот тут-то собака и порылась. В лоб не получается: томик
AI> "Избранное", где три повести одного автора, или компакт с тремя
AI> концертами для фортепьяно с оркестром, или DVD, где, кроме фильма
AI> есть документальный фильм в качестве бонуса...

CP>> У каждого справочника иерархия и свой набор реквизитов, по
CP>> которым будет возможно делать самые разнообразные выборки.

Может быть на первом уровне будет наименование "Избранное. Издание
ЦК Компартии 19ХХ", а одним из реквизитов будет автор.
У третьего уровня отменяем подчинение и в нем будет просто
идентификация физической единицы хранения -
Томик, CD, DVD или microSD (и домашний инвентарный номер :-),
а так же факт наличия или отсутствия,
ну и кому отдали и в какой срок должны возвратить.
Хотя кому отдали можно сделать подчиненным и отслеживать историю.
Hа втором уровне будет описание каждой логической единицы хранения
с реквизитом, указывающим ее тип (повесть/рассказ, концерт/живая
запись), а другой реквизит будет ссылкой на физическую
единицу хранения.
Всякие бонусные треки, в зависимости от ценности, можно описывать
или на первой уровне - высокая ценность, или на третьем -
не высокая ценность.
В итоге первый уровень это каталог, второй уровень - детализация
каталога. Третьего уровня нет вообще, а есть - физические единицы
хранения, на который ссылаются элементы второго уровня.
После реализации этой модели её можно будет дополнять реквизитами
или создавать подчененные списки.

-=> Всего Вам хорошего, Constantin Petrov <=-

Loading...