8.х УТ В групповой обработке не отбирается номенклатура по остаткам

Тема в разделе ""1С:Управление торговлей УТ"", создана пользователем AndreyNag, 23 сен 2012.

  1. TopicStarter Overlay
    AndreyNag
    Offline

    AndreyNag Опытный в 1С

    Регистрация:
    25 апр 2012
    Сообщения:
    133
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте.
    Есть магазин. Торгует одеждой. Порядка 7000 наименований (половина номенклатуры давно продана и не будет поступать больше).
    В "ведомости товаров на складах" отбор происходит нормально, т.е. могу отборать номенклатуру с остатками или по другим реквизитам. Однако же в "групповой обработке справочников и документов" отбор номенклатуры по остаткам товара не происходит. В таблице отбора колонка "остаток товара" пустой и выводит полный список номенклатуры.
    А я хотел почистить базу от проданного товара.
    Спасибо за внимание.
  2. Draco
    Online

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.631
    Симпатии:
    946
    Баллы:
    204
    Ну конечно - остатки то не в справочнике харнятся - я бы на вашем месте написал обработку которая бы перегнала номенклатура без остатков в отдельную папку, например неиспользовать. Ну номенклатура у вас врятли вся удалиться у Вас же на нее ссылки есть в документах.
  3. TopicStarter Overlay
    AndreyNag
    Offline

    AndreyNag Опытный в 1С

    Регистрация:
    25 апр 2012
    Сообщения:
    133
    Симпатии:
    0
    Баллы:
    26
    Легко сказать написать.
    Если на пальцах, то в обработке надо открыт справочник номенклатура и в цикле (как подсчитать количество позиций?) прогнать по регистру остатки, а что будет больше нуля, то изменить (как изменить свойство?) номенклатурную группу. Так?!
    Сложно это пока для меня реализовать.
    Но всё равно спасибо.
  4. Draco
    Online

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.631
    Симпатии:
    946
    Баллы:
    204
    Если в двух словах то...
    Пишите запрос, вернее два запроса
    1. К справочнику номенклатура, второй который делает выборку остатков по номенклатуре с остатком.
    и пиште Выбрать из справочника номенклатура все то, что не попадает в запрос 2 и все.
    Потом обходя выборку перемещаете все в нужную папку
  5. TopicStarter Overlay
    AndreyNag
    Offline

    AndreyNag Опытный в 1С

    Регистрация:
    25 апр 2012
    Сообщения:
    133
    Симпатии:
    0
    Баллы:
    26
    1. Спасибо за Ваше внимание.
    2. Часто в форумах упоминается какой-то построитель запросов. Как его найти и можно ли его использовать в моём случае?
    3. Пожалуйста пример строки "обхода" выборки.
  6. Draco
    Online

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.631
    Симпатии:
    946
    Баллы:
    204
    Как то так - без наворотов

    Код:
    Запрос=Новый Запрос;
    
    Запрос.Текст="ВЫБРАТЬ
    | Номенклатура.Ссылка КАК Товар
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    | НЕ Номенклатура.Ссылка В
    |    (ВЫБРАТЬ
    |	 ТоварыКПолучениюНаСкладыОстатки.Номенклатура
    |    ИЗ
    |	 РегистрНакопления.ТоварыКПолучениюНаСклады.Остатки КАК ТоварыКПолучениюНаСкладыОстатки
    |    ГДЕ
    |	 ТоварыКПолучениюНаСкладыОстатки.КоличествоОстаток <> 0)";
    
    
    Выборка=Запрос.Выполнить().Выбрать();
    
    Пока Выборка.Следующий() Цикл
    
    
    
    КонецЦикла; 
    А конструктор - в коде на пустом поле - правой кнопкой мыши и там внизу есть - конструктор запроса
  7. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.175
    Симпатии:
    13
    Баллы:
    29
    +Draco
    оптимизируем (уберем соединение):

    Код:
    Запрос=Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
    |  ТоварыКПолучениюНаСкладыОстатки.Номенклатура
    |    ИЗ
    |  РегистрНакопления.ТоварыКПолучениюНаСклады.Остатки КАК ТоварыКПолучениюНаСкладыОстатки
    |    ГДЕ
    |  ТоварыКПолучениюНаСкладыОстатки.КоличествоОстаток = 0";
    Выборка=Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
    КонецЦикла; 
  8. Draco
    Online

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.631
    Симпатии:
    946
    Баллы:
    204
    Но тут тогда попадет нменклатура. по которой был приход. Но бывают такие ситауции, что переносят справочник номенклатура, по номенклатуре движений не было но она храниться. В первом случае она тоже попадает, во втором нет. Смотря какая задача интересует - оба варианта имеют право на жизнь
  9. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.175
    Симпатии:
    13
    Баллы:
    29
    за исключением того..что у тебя еще группы попадут ...
    а...и я регистр не то взял... надо РН товарыНаСкладах.Остатки
  10. Draco
    Online

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.631
    Симпатии:
    946
    Баллы:
    204
    Ничего страшного - это же просто "рыба", пусть человек учиться
  11. TopicStarter Overlay
    AndreyNag
    Offline

    AndreyNag Опытный в 1С

    Регистрация:
    25 апр 2012
    Сообщения:
    133
    Симпатии:
    0
    Баллы:
    26
    Спасибо за Ваше внимание к моей проблеме.
    Опыт программирования на ObjectPascal у меня есть, но на вскидку не понял как оформить данный код в работающий вариант.
    1. Как прицепить код: в виде внешней обработки или встроить её в конфигурацию?
    2. Как оформить визуальную "форму"? (простите за тавтологию). Какие "кнопки" и элементы управления и отображения информации надо разместить на форме для исполнения кода.

    Еще раз Спасибо за внимание!
  12. Draco
    Online

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.631
    Симпатии:
    946
    Баллы:
    204
    Купите или возьмите (сами занете где) книгу Радченко - там написанно ка создавать формы, документы и т.д. Просто Вы сейчас просите - написать за Вас эту обработку - для нас впринципе - это не проблема, но вы же от этого навыков не получите.

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

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