7.7 Убрать строки в номенклатуре где нет остатка ТИС 9.2

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

  1. TopicStarter Overlay
    SerzhM
    Offline

    SerzhM Опытный в 1С

    Регистрация:
    26 окт 2009
    Сообщения:
    511
    Симпатии:
    3
    Баллы:
    29
    Для оператора ккм в подборе показывать только те номенклатурные позиции которые есть на остатках.
    Номенклатура, для подбора.
    Думаю добавить на форму еще одну галочку "Скрывать без остатка" .
    Но как написать код что бы не тормозило.

    Код:
    Если СкрыватьБезОстатка=1 и ПоказатьОстаткиЦену=1 Тогда
    
  2. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Какой размер списка ТМЦ?
  3. TopicStarter Overlay
    SerzhM
    Offline

    SerzhM Опытный в 1С

    Регистрация:
    26 окт 2009
    Сообщения:
    511
    Симпатии:
    3
    Баллы:
    29
    25000 строк
  4. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Без тормозов - не получится. В любом случае нужен запрос к регистрам для определения наличия остатка...
    Весь вопрос в какой момент нужно делать этот запрос. Насколько это актуально. Документооборот большой?
  5. TopicStarter Overlay
    SerzhM
    Offline

    SerzhM Опытный в 1С

    Регистрация:
    26 окт 2009
    Сообщения:
    511
    Симпатии:
    3
    Баллы:
    29
    Так в том то и проблема что подбор будет вызываться очень часто(из документа чек ккм, кассиром ккм), база простая дбф, не на серваке, размер базы 300-500мб.
  6. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Сформируйте отчет по остаткам ТМЦ в вашей базе. Будите иметь представление сколько у вас будит открываться форма подбора в документе.
    Если устраивает - далее дело техники. Можно сделать всего один запрос.
  7. Herby
    Offline

    Herby Опытный в 1С

    Регистрация:
    21 фев 2013
    Сообщения:
    95
    Симпатии:
    0
    Баллы:
    26
    а если просто показывать остаток, в том числе и нулевой, не устроит?

    если же все таки нужен фильтр, то при такой большой номенклатуре в любом случае будут тормоза, даже если вы прямым запросом остатки будете вытягивать.
  8. TopicStarter Overlay
    SerzhM
    Offline

    SerzhM Опытный в 1С

    Регистрация:
    26 окт 2009
    Сообщения:
    511
    Симпатии:
    3
    Баллы:
    29
    Все понятно. Всем спасибо.
  9. ZaharovAleksandr
    Offline

    ZaharovAleksandr

    Регистрация:
    17 авг 2012
    Сообщения:
    22
    Симпатии:
    0
    Баллы:
    1
    Есть вариант. Для 7.7. я бы сделал так: Конечно соглашусь со специалистами, что метод не совсем правильный, но работать будет. При любом проведении документа пользователем программа в справочник записывает документы. Назовем справочник ДокументыОстатки, и реквизит Документ. Пользователь Админ с обработкойОжидания.
    В обработчике ожидания я перебираю записи этого справочника, отбираю товары и проверяю остатки. После всего перечисленного записываю в новый созданный реквизит Номенклатуры (Например "ЕстьОстаток" - число, отбор по реквизиту + сортировка) по выбранным позициям остаток 1 - есть, 0 - нет. Далее в справочнике Удаляем (Удалить(1)); Тогда программа будет в "Админке" перебирать только те товары, которые затронулись при движении. Вариант второй. Не записывать никакие значение ни в какие справочники. Нечто похожее я делал в 7-ке только через константу. Назвал её ПроверкаРезервов. Когда проводятся любые документы с резервами, программа записывает в константу 1, а обработчик ожидания каждую минуту проверяет значение константы. Если значение 1, то далее я перебираю регистр резервов и делаю некие действия.... Далее константе присваиваю 0. и так до бесконечности. Тоже самое можно организовать и с регистром остатков.
  10. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Извините... Но все это шито белыми нитками.
    1) Справочник + удалить(1): при интенсивном документообороте этот справочник растет как на дрожжах. Непосредственное удаление не панацея. Из базы то элемент не удален физически! Нужно регуляно упаковывать Бд.
    2) Реквизит ЕстьОстаток + робот. При таком справочнике довольно регулярный запрос к остаткам просто парализуют прочую работу. Транзакции замучают.
  11. Herby
    Offline

    Herby Опытный в 1С

    Регистрация:
    21 фев 2013
    Сообщения:
    95
    Симпатии:
    0
    Баллы:
    26
    для доцента в универе может и можно сделать, который возможно и поставит за это зачет, но
    на реальных учетных системах, на которых крутится бизнес такие решения неприемлемы.
  12. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Да. Только непосредственно запрос к регистрам. О чем и сказано выше.
  13. ZaharovAleksandr
    Offline

    ZaharovAleksandr

    Регистрация:
    17 авг 2012
    Сообщения:
    22
    Симпатии:
    0
    Баллы:
    1
    Полностью согласен с Вами. Выглядит не профессионально. У меня каждую минуту формируется запрос к регистрам резервы на протяжении уже лет 3-х. Раз в неделю переиндексирую программу. 40 юзеров.
    "2) Реквизит ЕстьОстаток + робот. При таком справочнике довольно регулярный запрос к остаткам просто парализуют прочую работу. Транзакции замучают."
    Странно, но у меня сбоев в работе нет. Все стабильно. Номенклатура бешенная около 30000. Помимо всего прочего также каждую минуту я проверяю остатки с отрицательными значениями, записываю информацию в текст, а у нужного юзера читаю текст в обработке ожидания и информирую(сделано для моментальных исправлениях минусовых значений на скалде. Слишком большая "тякучка"). Уверяю Вас, что тормозов нет.
  14. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    У вас скуль или ДБФ? Что за конфа? Ведь при проведении документ сам должен еще проверять остатки и если интенсивность работы большая (40 юзеров - наверняка) Запросы должны "сталкиваться".
    При росте БД - тем более.
  15. ZaharovAleksandr
    Offline

    ZaharovAleksandr

    Регистрация:
    17 авг 2012
    Сообщения:
    22
    Симпатии:
    0
    Баллы:
    1
    Терминал, база дбф. ТиС ред. 9.2 Напрмер остаки ТМЦ формируются 25 сек, думаю запрос к остаткам будет формироватся не более 10 сек. Когда у меня стояла такая задача, которую я описал выше(запросы к регистрам остатки и регистрам резервы), я думал как и Вы, что будут тормоза, но все впорядке. Каждый год я свертываю базу, так что размер её не будет слишком огромным. Документооборот нормальный. думаю около 50 документов поступления и реализаций в день. База растет в количестве номенклатуры примерно за год с 20000 до 40000 позиций. Каждый год "хлам" не нужный удаляю при свертывании базы.
    Да и я ошибся немного. Раньше была минута, потом я помянял ОбработкаОжидания("ОбработкаЗапросаКРегистрам",100);
    Думаю, что при росте БД тормоза могут быть, все в зависимости от размера базы. Ну опять же все нужно проверять на практике.
  16. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    У меня есть клиенты. Ежедневный документооборот порядка 3тыс документов. Такой фокус не прокатывает... Ибо помимо 6 операторов работает еще робот, который обрабатывает заявки торговых с коммуникаторов. На 50 доках - даже не знаю. После свертки безусловно все летает (у меня тоже светка ежегодная). Во второй половине года появляются тормоза....
  17. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Решал аналогичную задачу на аналогичной базе...

    Я выбрал следующий метод - в справочнике завел реквизит, по нему отбор. Значение реквизита 1 - есть остаток, 0 - нет остатка.
    В проведение (отмену проведения) документов добавил работу с этим реквизитом.

    Так как не исключаю, что могли быть где-то перекосы - то в форму списка справочника добавил кнопку с переинициализацией данного реквизита по остаткам номенклатуры.

    В результате - работает нативный отбор элементов, который по скорости не уступает обычному отображению справочника. Переинициализация выполняется около минуты, но ее запуск требуется ооочень редко. Клиент был доволен.
  18. TopicStarter Overlay
    SerzhM
    Offline

    SerzhM Опытный в 1С

    Регистрация:
    26 окт 2009
    Сообщения:
    511
    Симпатии:
    3
    Баллы:
    29
    Но это не совсем то что мне нужно. Появилась мысль что раз в неделю или каждый день или раз в месяц или полмесяца, перед открытием номенклатуры, будет происходить переиндексация. Где перебирая справочник если есть остаток запишем это в реквизит 1-есть остаток 0-нет остатка а потом по нему будем делать отбор, как сказано выше. Только конечно остается вопрос на сколько долго будет обход. отчет остатки тмц может показать сколько будет примерно выполняться отбор, как советовали выше??
  19. Бухгалтерский угодник
    Offline

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

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

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    А почему вы думаете, что раз в неделю переиндексировать будет лучше, чем при проведении документа? Когда проводится расход, обычно остатки проверяются, и их можно анализировать. Когда проводятся приходы - можно не анализировать...

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