Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подбор товара с остатком
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
Sharzem
1 С 7.7. (7.70.027). Конфигурация: Переделанный до неузнаваня ТИС.
В общих словах, есть аптека. Справочник товаров очень огромный, нужно чтобы фармацевт при подборе товара видел только тот, который есть на остатке. Состряпал следующий код:
Процедура ПриОткрытии()
  
    глПриОткрытииФормыСправочника(Контекст);
    
    Касса = глПользователь.ТекущийЭлемент().Касса;
    
    Магазин = Касса.Магазин;
    Склад = Касса.Склад;
    Подразделение = Магазин.ОсновноеПодразделение;
    
    СписТов = 0;

    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Магазин1 = Регистр.ОстаткиТоваров.Магазин;
    |Подразделение1 = Регистр.ОстаткиТоваров.Подразделение;
    |Склад1 = Регистр.ОстаткиТоваров.Склад;
    |Товар = Регистр.ОстаткиТоваров.Товар;
    |Количество = Регистр.ОстаткиТоваров.Количество;
    |Функция КоличествоКонОст = КонОст(Количество);
    |Группировка Товар упорядочить по Товар.Наименование;
    |Условие(Магазин1 в Магазин);
    |Условие(Подразделение1 в Подразделение);
    |Условие(Склад1 в Склад);
    |"//}}ЗАПРОС
   ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
        СтатусВозвра(0)
    КонецЕсли;

    СписТов = СоздатьОбъект("СписокЗначений");

    Пока Запрос.Группировка(1) = 1 Цикл
        СписТов.ДобавитьЗначение(Запрос.Товар);
    КонецЦикла;

    Если СписТов <> 0 Тогда
        ИспользоватьСписокЭлементов(СписТов);
        ИерархическийСписок(0,0);
    КонецЕсли;
КонецПроцедуры


Суть проблемы: когда делаем ручками подбор, нахождение Элемента справочника происходит очень долго.
Вопрос: Как убрать товар с остатком 0 с внимания пользователя и чтобы при этом подбор не тормозил ?
Ardi
1)Как именно происходит "нахождение"?
2)Список товара должен быть плоский или иерархический?
Sharzem
Цитата(Ardi @ 30.12.12, 17:04) необходимо зарегистрироваться для просмотра ссылки
1)Как именно происходит "нахождение"?
2)Список товара должен быть плоский или иерархический?


Подбор: набираем Анальгин, находит Анальгин.
Сортировка по наименованию, родителей в базе нет.
Ardi
Сделать подбор из таблицы значений. Без справочника.
Sharzem
Цитата(Ardi @ 30.12.12, 17:14) необходимо зарегистрироваться для просмотра ссылки
Сделать подбор из таблицы значений. Без справочника.


При подборе из таблицы значений каждый раз придется подниматься наверх, а это не удобно. Уже испробовано. Не подходит.
Ardi
Цитата(Sharzem @ 30.12.12, 18:20) необходимо зарегистрироваться для просмотра ссылки
При подборе из таблицы значений каждый раз придется подниматься наверх, а это не удобно.

При ИспользоватьСписокЭлементов(СписТов); также необходимо подниматься на верх.
sava1
Табличное поле на форму подбора + прямой запрос к таблице остатков
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.