7.7 Как правильно хранить данные

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

  1. TopicStarter Overlay
    Asttoxa
    Offline

    Asttoxa Опытный в 1С

    Регистрация:
    18 май 2010
    Сообщения:
    525
    Симпатии:
    0
    Баллы:
    26
    Ребят подскажите как будет правильно хранить данные у справочника.
    Например:
    Имеется справочник по картриджам отделов. Тоесть эти картриджи, время от времени посещают тех.отдел для заправки.
    В справочнике "Картриджи" есть параметр "Дата последнего посещения" а так же "Время последнего посещения"и там хранится соответственно дата и время последнего прихода этого картриджа на заправку. Мне кажется это не красиво и не профессионально хранить такого рода информацию в самом справочнике. В Регистрах хранить эти данные, как я понимаю, я его тоже не смогу, так как нет числовых движений (количество либо цены).

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

    Подскажите, как профессионально хранят такие данные?
  2. ОльгаНик
    Offline

    ОльгаНик

    Регистрация:
    1 сен 2011
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    Если картридж "ходит" на заправку документом, то позиция такого документа - это и есть дата и время "похода".
  3. TopicStarter Overlay
    Asttoxa
    Offline

    Asttoxa Опытный в 1С

    Регистрация:
    18 май 2010
    Сообщения:
    525
    Симпатии:
    0
    Баллы:
    26
    Это логично. Но мне нужно знать еще более подробную информацию. Такую как Дата/Время прихода, Дата/время исполнения услуг, Дата/время когда картридж забрали! А документ один. Но в документе можно указать все эти параметры. Только как потом вытащить их?
  4. ОльгаНик
    Offline

    ОльгаНик

    Регистрация:
    1 сен 2011
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    Вытащить куда? Если в отчет - то КонструкторОтчетов поможет.
  5. TopicStarter Overlay
    Asttoxa
    Offline

    Asttoxa Опытный в 1С

    Регистрация:
    18 май 2010
    Сообщения:
    525
    Симпатии:
    0
    Баллы:
    26
    Была проблема в том что этот документ не совершал числовые операции .. Я сделал чтобы в регистре он прибавлял по единице. Тут все нормуль вроде.

    А по второму вопросу. Как нумерацию делать?
  6. ОльгаНик
    Offline

    ОльгаНик

    Регистрация:
    1 сен 2011
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    Последний номер для ЧЕГО - НИБУДЬ? Посмотрите в Синтаксе СохранитьЗначение и ВосстановитьЗначение (для работы по аналогии посмотрите в глобальном поиске). И что значит "документ не совершал числовых операций" Это то как?
  7. TopicStarter Overlay
    Asttoxa
    Offline

    Asttoxa Опытный в 1С

    Регистрация:
    18 май 2010
    Сообщения:
    525
    Симпатии:
    0
    Баллы:
    26
    Спс за СохранитьЗнач.
    А по поводу документа ... бывает и так :) Например документ который не работает с цифрой.

    Например этот док указывает:
    1) кто принял картридж (ФИО)
    2) Во сколько какого числа,
    3) какие были дефекты,
    4) и что с ним нужно сделать.
    При его проведении означалось его выдача (тоесть фиксировалась дата и время его выдачи сотрудникам)

    И заметьте никаких цифр :)

    Все эти данные я записывал напрямую в справочник :( что казалось не есть гуд. Сейчас создал регистр в который этот документ прибавляет по единице, чтобы создавать какие то числовые движения. Чтобы вытаскивать нужные мне данные запросом.

    Считаю тоже не очень метод. А запросом перебирать все доки напрямую будет долго. Так как информацию хочу использовать в функции которая показывает последние данные в справочнике по выделенному элементу!
  8. ОльгаНик
    Offline

    ОльгаНик

    Регистрация:
    1 сен 2011
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    Стесняюсь спросить, сколько же у Вас документов, что запрос по ним долго работает? (А вообще - хозяин - барин. Регистр так регистр. Кстати, для спасибо есть кнопочка...)
  9. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    никак в толк не возьму чем справочник не устроил
    люди движения по складу (напимер) на справочниках пишут, чтоб с регистрами не заморачиваться, а тут на тебе
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Asttoxa, твоя проблема яйца выеденого не стоит. Делай не через справочник, а через документ. Дата/время храни нем. П регстрку можно хранить количество посещений ну и почти мгновенно найти последнее посещение. По поводу нумерации - опять же документ все за тебя сделает
  11. ОльгаНик
    Offline

    ОльгаНик

    Регистрация:
    1 сен 2011
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    Asttoxa, думаю, что Вашу задачку (получение данных, записанных в документе, по конкретной позиции справочника - картриджу) можно решить и так: ВыбратьДокументы в определенном интервале, упорядочить их по УБЫВАНИЮ (ОбратныйПорядок), в цикле (ПолучитьДокумент) найти первый нужный. Правда, если картридж указан в табличной части документа, то, думаю, нужен еще цикл по табличной части, если же один картридж - один документ (нет табличной части), то вместо ВыбратьДокументы воспользуйтесь ВыбратьПоЗначению, тогда (после упорядочения) первый документ в выборке - Ваш. Что же касается "выеденного яйца", уважаемые коллеги, то мы все здесь затем, чтобы учиться. (на своих, но лучше на чужих, ошибках).
  12. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    ОльгаНик ваш метод будет работать долго. Так не правильно. НАМНОГО быстрее через установку фильтра по регистру и в обратном порятке выборку делать. Последний документ найдется мгновенно (количество строк уже не существенно).
  13. ОльгаНик
    Offline

    ОльгаНик

    Регистрация:
    1 сен 2011
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    Согласна. Но регистр по информационному документу... Хотя опятьже хозяин - барин.
  14. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Просто с регистром больше плюсов чем минусов....
    Самое наглядное - количество "посещений" картриджа.
    Что быстрее - остаток по регистру или "лопатить" все документы? Ну и про поиск - сказано в предыдущем посте
  15. ОльгаНик
    Offline

    ОльгаНик

    Регистрация:
    1 сен 2011
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    Да... А возразить - то и нечего. Век живи - все время учись. Спасибо за ответы.
  16. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Не за что. Обращайтесь
  17. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Ну вот Угодник и уболтал :angry:.

    ИМХО выбирать лучший вариант можно только после полного анализа обстановки (разумеется тут его нет).
    А из возможных вариантов, например, еще не рассматривали графы отбора и периодические реквизиты справочника.

    Что касается хранения какого-то уникального значения, то, опять же, все зависит от конкретной задачи.
    Как советовалось выше, сохранять значение между сеансами - это слишком не надежный вариант. Во-первых, он работает только для одного пользователя, во-вторых, хранится во внешнем файле.

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

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