8.х Перекрашивание отгруженных заказов

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

  1. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Для начала - сделай один запрос вместо двух,
    потом передавай туда массив параметров, а не по одному.
    Соответственно - уберешь свою главную ошибку - запрос в цикле.
  2. Belis
    Offline

    Belis

    Регистрация:
    17 июл 2009
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Тема еще актуальна? Я просто так и не понял из вышенаписанного, каким образом можно реализовать данную задачу. У меня задача примерно такая же, нужно раскрашивать только отгруженные реализации.
  3. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
  4. Belis
    Offline

    Belis

    Регистрация:
    17 июл 2009
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Спасибо! :unsure:
  5. Belis
    Offline

    Belis

    Регистрация:
    17 июл 2009
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Написал процедуру, которая отмечает отгруженные и остальные (не отгруженные или частично не отгруженные) заказы покупателей.
    Код:
    Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    ТЗ=УправлениеЗаказами.ОстаткиТоваровПоЗаказуПокупателя(ДанныеСтроки.Ссылка,ДанныеСтроки.Ссылка.ДоговорКонтрагента,РабочаяДата);
    Если ТЗ.Количество()>0 Тогда
    ОформлениеСтроки.ЦветФона=WebЦвета.СветлоРозовый;
    Иначе
    ОформлениеСтроки.ЦветФона=WebЦвета.НейтральноЗеленый;
    КонецЕсли; 
    КонецПроцедуры
    
    Возник вопрос, как выделить именно частично не отгруженные заказы?

    Сделал также отметку о наличии ПКО (из Этого примера). Но опять же возникает вопрос, как вытащить условие "частично оплачен", а не "наличие ПКО". :unsure:
  6. Gfdtk
    Offline

    Gfdtk Опытный в 1С

    Регистрация:
    28 апр 2008
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    по каким критериям Вы определяете, что заказ отгружен частично?
  7. Belis
    Offline

    Belis

    Регистрация:
    17 июл 2009
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Я открываю отчет "анализ" заказа, и смотрю, сколько отгружено и сколько осталось отгрузить. Если в столбце "отгружено/отменено" и в столбце "осталось отгрузить" ненулевые значения, то заказ частично отгружен. Если в столбце "осталось отгрузить" значения нулевые, то заказ отгружен полностью. Вот моя логика :)
  8. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Здраствуйте!
    Используйте туже самую функцию, только обратите внимание на параметр дата...
    Код:
    // Функция формирует таблицу содержащую остатки товаров (неотгруженные товары) по заказу покупателя
    //
    //	Параметры:
    //		Заказ - заказ покупателя, остатки по которому требуется получить
    //		Дата  - дата на которую надо получить остатки
    //	Возврат:
    //		Таблица с остатками, со следующей структурой:
    //			Номенклатура               - товар,
    //			ХарактеристикаНоменклатуры - хар-ка товара,
    //			Цена                       - цена
    //			КолОстаток                 - количество неотгруженного товара по заказу
    //			ПроцентСкидкиНаценки       - % скидки / наценки
    //			ЕдиницаИзмерения           - ед. изм. товаров в заказе
    //			Коэффициент                - коэфф. ед. измерения товара в заказе
    //
    Функция ОстаткиТоваровПоЗаказуПокупателя( Заказ, Договор, КонДата, Знач СтатусПартии = Неопределено) Экспорт
    
    запросите две таблицы остатков по заказу, на дату оформления заказа и на текущую дату, после чего сравните две таблицы, если данные эдинтичны, значит товар не отгружался, если есть расхождение в данных значит заказ отгружен частично, ну и т.д. по обстоятельствам.
  9. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Кхм, нефига не быстро это будет....
  10. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    BabySG, я и неутверждаю что это будет быстро выполняться (зато точно), какова задача, таково и решение, если есть другой вариант я его с удовольствием выслушаю, самообразование никогда лишним не бывает.
  11. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Надо написать запрос, который сразу (одни запросом к базе) вытащит всю инфу максимально эффективно.

    Использование функции в данном случае вызовет множественное обращение к базе, что очень сильно может замедлить работу.

    Итого: вся информация, необходимая для работы должна быть получена одни запросом сразу. При этом сам запрос также должен быть оптимизирован, иначе можно нарваться на падение производительности.
  12. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    Чтоб побыстрее работало, как вариант:
    1. добавляем Регистр сведений: Заказ - состояние (сюда еще много каких ресурсов можно замутить).
    2. Регл. задание по "нужному" расписанию выполняет все необходимые запросы и проч, заносит инфу в РС.
    3. Читаем РС при получении данных.
  13. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    А еще лучше - перейти на 8.2 :))))
    Там все это штатно реализуется :)

    ЗЫ. Описанный вариант неплох, но при активном вводе работать будет не очень оперативно.
  14. Belis
    Offline

    Belis

    Регистрация:
    17 июл 2009
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Серьезно?)) Ну если так, то я полетел переходить))
    Только можно немного поподробнее? =)
  15. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Смысл в том, что для формы можно задать элемент Динамический список, строки которого формируются запросом и сделать для этого элемента условное оформление.

    В качестве примера посмотрите УТ 11 форму списка заказов - там это сделано.

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