8.х Вопрос по справочнику

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

  1. TopicStarter Overlay
    Adminspb
    Offline

    Adminspb Опытный в 1С

    Регистрация:
    18 дек 2006
    Сообщения:
    116
    Симпатии:
    0
    Баллы:
    26
    На предприятие на каждый товар есть документация, причем каждому документу описания номенклатуры может соответствовать несколько номенклатур, так же одна номенклатура может быть включена в несколько докуметации

    (Надо решить через доп. справочник)


    Есть справочник номенклатура
    Есть справочник документация
    В справочнике документации все вроде понятно как организовать.
    В форму элемента справочника номнклатура я добавляю табличное поле.


    Реквизиты справочника номенклатура
    БазоваяЕдиницаИзмерения
    Артикул
    Комментарий

    Реквизиты справочника документация
    Комментарий
    Документы

    + Табличная часть
    ТабличноеПоле1 реквизит ссылка на справочник номенклатура.

    (хочу в нем Табличом поле вывести ту документацию, которая относится имено к этой номенклатурной позиции) - Не получается.
    Подскажите пожалуйста, как сего добиться и куда копать?



    Отбор думал сделать примерно так
    Отбираю = Справочники.Номенклатура.НайтиПоКоду(Код);

    ТабличноеПоле1.Отбор.Родитель.Установить(Отбираю);
    ТабличноеПоле1.Отбор.Родитель.Значение = (Отбираю);
    ТабличноеПоле1.Отбор.Родитель.ВидСравнения = ВидСравнения.Равно;
    ТабличноеПоле1.Отбор.Родитель.Использование = Истина;

    Но не уверен в оптимальности идеи. Можете помочь?
  2. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Идея в принципе правильная,если конфа типовая, то справочник номенклатура не трогаем. а создаем лдокументация и туда добавляем табличную часть Номенклатура. ГДЕ ВЫ И УКАЗЫВАЕТЕ КАКА НОМЕНКЛАТУРА ПРЕНАДЛЕЖИТ ДАННОЙ ДОКУМЕНТАЦИИ.

    Это что за бред вы же ее и вбиватете туда что бы знать что она относится к данной документации... Т.е делаете связь Документация Номенклатура. До этого у Вас этой связи нет. Что бы смотреть что чему относиться пишите отчет и все
  3. TopicStarter Overlay
    Adminspb
    Offline

    Adminspb Опытный в 1С

    Регистрация:
    18 дек 2006
    Сообщения:
    116
    Симпатии:
    0
    Баллы:
    26
    Конфигурация нетиповая. Написана с нуля.
    Погодите...но если в Номенклатура создать
    таблицу справочника Документация....но сделать там отбор по скажеим номенклатуре....
    Теоретически работать может. Но как это реализоваь?
  4. Доктор Руфус Бейли
    Offline

    Доктор Руфус Бейли Опытный в 1С

    Регистрация:
    7 апр 2010
    Сообщения:
    277
    Симпатии:
    0
    Баллы:
    26
    Этот абзац заставил бы меня подцепить регистр с измерениями "номенклатура" и "документация", содержащими ссылки на элементы справочника. Это весьма удобно и прозрачно (особенно, если к задаче придётся вернуться после). Кроме того, обе табличные части будут реализованы по схожему принципу: заполнением через запрос.
  5. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Начнем с того что правильно сформулируем задачу. Что Вам нужно?
    Вам нужна табличная часть в справочнике номенклатура, где бы хранились список договоров по данной номенклатуре, так? Вы хотите что бы при добавлении туда элемента в эту ТЧ выбиралась только договора которые относятся к данной номенклатуре? Что бы делать отбор вам нужно что бы уже данные эти хранились. Пусть как предложил коллега у Вас есть регистр сведений где хранится данная информация и еще в ТЧ вы вбиваетет такую же информацию, получается задвоение данных.

    Т.е У вас свзяь Номенклатура - Документация и в регистре сведени и в справочнике. Вопрос зачем хранить 2 одинаковые связи?
  6. TopicStarter Overlay
    Adminspb
    Offline

    Adminspb Опытный в 1С

    Регистрация:
    18 дек 2006
    Сообщения:
    116
    Симпатии:
    0
    Баллы:
    26
    Мне надо
    Справочник Документация.
    В нем - все Документы и ссылки в т.ч. на номенклатуру в которой каждый документ участвует.
    Справочник номенклатура - в нем д.б. таблица справочника Документы (их список) критерием отбора в котором является открытый элемент номенклатуры в справочнике
  7. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Хорошо пусть будет так.
    В ТЧ документы справочника номенклатура элементы будут добавляться, а при добавлении надо Выбирать только те, у которых в ТЧ есть эта номенклатура. я так понимаю?
  8. TopicStarter Overlay
    Adminspb
    Offline

    Adminspb Опытный в 1С

    Регистрация:
    18 дек 2006
    Сообщения:
    116
    Симпатии:
    0
    Баллы:
    26
    Да.
  9. Доктор Руфус Бейли
    Offline

    Доктор Руфус Бейли Опытный в 1С

    Регистрация:
    7 апр 2010
    Сообщения:
    277
    Симпатии:
    0
    Баллы:
    26
    Несколько не понимаю суть проблемы: почему бы не создать, скажем, в справочнике "номенклатура" табличную часть, не содержащую данных, которая будет при открытии заполняться результатами запроса, который выбирает ссылки на элементы справочника "документы", содержащие в табличной части ссылки на номенклатуру? На каком именно этапе работы у вас возникает проблема, и в чём конкретно она заключается?

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

    Идеалом было бы, чтобы вы нам подарили уже существующие куски кода, а так же описания структуры метаданных, чтобы можно было понять меру вашей испорченности, и чем она отличается от нашей, от чего стоит отталкиваться в предложении решений.
  10. TopicStarter Overlay
    Adminspb
    Offline

    Adminspb Опытный в 1С

    Регистрация:
    18 дек 2006
    Сообщения:
    116
    Симпатии:
    0
    Баллы:
    26
    Справочник документы естественно работает без проблем. И все что надо при прямом обращении к нему заполняется корректно (я про сссылки ноенклатуры в ТЧ

    При работе со соправочником номенклатура есть ТЧ котору. надо ....заполнить отобрав список номенклатуры....по элементу номенклатуры. Впринципе...можно как вы сами описали и через запрос...но в случае редактирования подобной таблицы ( а этот список должен иметь возожность редактироваться) при сохранении либо много кода и ловля дубликатов..либо....хмммм.

    Идею с регистром кстати интересна...но...не совсем....пончтна. Можно раскрть тему подроьбнее.

    В данный момент кода почти нет. Есть отрисованные формы, самописная конфиурация в котрой все это
    сделано. Словом....стадия поиска решения....более логичного чем уже есть.

    PS Я может и испорченный , но код мой не обижайте! =)
  11. Доктор Руфус Бейли
    Offline

    Доктор Руфус Бейли Опытный в 1С

    Регистрация:
    7 апр 2010
    Сообщения:
    277
    Симпатии:
    0
    Баллы:
    26
    Неиспорченный программист и не способен создавать код.

    Если обе табличных части должны иметь возможность редактирования, тогда регистр - самое то.

    1. Создаётся простейший регистр с двумя измерениями: "Номенклатура" и "Документ", не допускающий дублирующих записей.

    2. В каждом из справочников создаётся табличная часть, ссылающая на регистр и фильтрующая по собственной ссылке (т. е. справочник "документ" задаёт фильтр по измерению "документ", а справочник "номенклатура" - по измерению "номенклатура" соответственно).

    3. Колонка, по которой происходит фильтр делается невидимой.

    4. При добавлении новой строки невидимое в табличной части измерение заполняется автоматически (ему присваевается простейшее "ЭтотОбъект.Ссылка").

    5. Наводим красоту в меру испорченности заказчика.

    6. PROFIT!!! Наслаждаемся результатом. Система контроля уникальности регистров сама не позволит создавать задвоения.
  12. TopicStarter Overlay
    Adminspb
    Offline

    Adminspb Опытный в 1С

    Регистрация:
    18 дек 2006
    Сообщения:
    116
    Симпатии:
    0
    Баллы:
    26
    Огромное Спасибо - пошел по этому пути.Согласен до п.4
    В п.4 получается если элемент уже был записан. Т.е после его открытия можно добавить и получит эту ссылку автоматически.

    А если человек заводит Справочники.Документ - новый документ.
    Заполняет его данные....и потом хочет в ТЧ выбрать номенклатуру.
    Словом...будет ошибка.

    Как ее лучше обойти?
    Ведь...скрыв колонку в таблице - мы перестаем иметь возможность ее редактировать вручную. автоматическит она не заполнится.

    Есть ли красивое рекшение?
    Которое не приведет к записи нового элемента справочника автоматически(минуя юзера)....а как-то...красивее?
  13. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    С тем что вы задумали у Вас вообще получается что одни и теже данные храняться в 3х местах это вообще както глупо. В 2х то же не очень хорошо.
    Для добавления в ТЧ номенклатура можно проделать следующее... кстати своим студентам давал похожую задачу. при добавлении формируется запрос и выводится отчет о доступных документах(кстати в этом запросу так же уже можно учеть те которые уже добавлены в ТЧ Номенклатура) по данной номенклатуре.Когда щелкаем по элементу отчета то он добавляется в ТЧ Номенклатура для этого надо это описать в процедуре обработка расшифровки и все. Это позвлит Вам избежать лишнего хранения данных.
  14. TopicStarter Overlay
    Adminspb
    Offline

    Adminspb Опытный в 1С

    Регистрация:
    18 дек 2006
    Сообщения:
    116
    Симпатии:
    0
    Баллы:
    26
    В трех?
    Документы - в форме элемента данные о документе.
    в таб. части - отображ. отсортированого регистра сведений
    Номенклатура -в форме элемента - данные о номенклатуре
    в табличной части - отсортированный регистр сведений
    Регистр сведений - ссылка на документы и номенклатуру в измерении.
    Регистр просто...удобен.

    Вопрос лишь как вести себя с элеиентом..когда он - новый ...и еще не был записан - как заполнить скрытую ТЧ по которой была сортировка?
  15. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Ну заполняйте ее только в условии ЭтоНовый()

    Если НЕ ЭтоНовый() Тогда

    ////заполняем

    Если
  16. Доктор Руфус Бейли
    Offline

    Доктор Руфус Бейли Опытный в 1С

    Регистрация:
    7 апр 2010
    Сообщения:
    277
    Симпатии:
    0
    Баллы:
    26
    С типовых решениях обычно выкидывают сообщение "документ не записан. Для печати (заполнения табличных частей, расчёта и пр.) необходимо записать его. Записать? Да/Нет". По нажатии на "Да" документ сам записывается. Как советовал мэтр Draco, воспользуйтесь красивой функцией "ЭтоНовый()". В противном случае можно, конечно, обойтись без подобного сообщения, но тот способ, который я знаю, прибавляет весьма прилично (в сравнении со всей имеющейся работой) кода (для незаписанных документов табличная часть выдаётся фиктивная, и при записи она сама заполняет все данные в регистр).
  17. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Спасибо, но после такой фразы начинаешь думать что тебе уже за 30 перевалило .. Прошу прощения за ОФФТОП.

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