Реализация внешней обработки по учёту объёма продаж

Тема в разделе "1C и всё что с ней связано", создана пользователем Nev, 27 апр 2009.

  1. Nev

    Nev Гость

    Здравствуйте...
    Существует частная конфигурация приемущественно оперативного учёта, на которую недавно села некая организация. До этого была типовая Торговля и Склад.
    Задачей является реализация внешней обработки\отчёта, выводящей результаты продаж розничного товара за определённый период, с ранжированием товара по свойству номенклатуры (реквизиту карточки номенклатуры).
    Свойство это присутствовало в Торгове и Склад, но в новой конфигурации его нет.

    Пример отчёта:

    Номер Наименование Реализовано
    Свойство №1
    1 Товар №1 500
    2 Товар №2 200
    Свойство №2
    3 Товар №3 125
    .... и т.д.
    Т.е. к каджому свойству относится группа товара.

    Принцип работы примерно такой:
    Должностное лицо заполняет свойства номенклатуры, которые как то должны связываться с группами товаров карточки номенклатуры, и строится отчёт.

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

    С уважением, Nev.
     
  2. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    По идее это некое свойство можно занести в какой-нить существующий пустой реквизит справочника товары. А в обработке сделать табчасть и поле со списком значений. В список значений добавлять свойство из реквизита (получим список всех свойств с возможностью выбора нужных). А потом по выбранному списку отбираем реализованные товары. Я бы делал так, но возможно есть и более оптимальный способ..
     
  3. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Никак - если этого свойства нет, то и сгруппировать по нему не получится. Надо добавлять реквизит в справочник номенклатура ( лучше всего), либо сделать внешний файлик (ДБФ например) - где будет прописано соответствие кода товара свойству. ПРи отчете , пробегаясь по нему будет заполняться список товаров с нужным свойством, и потом это список будет участвовать в фильтре. А код отчета по любому менять придется.
    Как вариант - использовать в качестве свойства группу товаров (родителя). Большинство отчетов родителя показывают, так что по любому видно будет.
     
  4. Nev

    Nev Гость

    Спасибо за ответы.

    puh14, можно поподробнее о реализации соответствия кода товара свойству в дбф...? Нужно к одному свойству привязать группу товаров, желательно интерактивно.
    Т.е. я представляю примерно как внести свойства, но как из связать с группами товаров....
     
  5. tanat

    tanat Well-Known Member

    Регистрация:
    2 мар 2007
    Сообщения:
    265
    Симпатии:
    0
    Помоему, вы собираетесь идти ложным путем. Для чего вообще необходимо данное свойство? Для того, чтоб красиво макет рисовался? Если его нет в данных, то не проще уж тогда вместо этого свойства просто использовать другое? Например ценовые группы или тип товар-услуга?
     
  6. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Да геморрой это - на самый крайний случай. И на больших объемах будет медленно работать. В чем такая острая необходимость не менять конфу? Если надо ранжировать группы, то чем не устраивает собственно иерархическая структура справочника? верхняя папка - это свойство, по которому ранжируют, ниже - группа товаров, ниже элементы - собсно товары. Если надо перенести папку товаров из одного свойства в другое- меняешь нужной папке родителя.
     
  7. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    а почему нельзя использовать какой-нить существующий реквизит, который не используется по назнаению?
     
  8. Nev

    Nev Гость

    Данное свойство необходимо для ранжирования товаров, на основе которого составляется ведомость.


    Добавление нового реквизита на форму карточки номенклатуры, или изменение типа существующего, если он не используется в операциях, как то может повлиять на работу системы? вызвать косвенно какие то изменения в информационной базе. А также перенос карточек из одной группы в другую?... Если база к примеру ведётся давно... Т.е. если пойти простым путём и просто добавить реквизит и справочник связанный с ним.... где будут находится эти свойства номенклатуры.
     
  9. Nev

    Nev Гость

    Доброго времени суток.

    Я добавил реквизит в карточку номенклатуры типа справочник, который отражает свойства товаров. Но заполняться он будет только у определённой группы товаров. ( например: Молочные продукты : жирность )
    Вопрос: каким образом можно сделать выборку продаж товаров из регистров по условию что этот реквизит заполнен?
    Всмысле как прописать, чтобы товары отбирались при условии что реквизит заполнен? можно запросом.
     
  10. kaa

    kaa Гость

    Условие (ПустоеЗначение(Переменная)=0)
     
  11. Nev

    Nev Гость

    Благодарю.
     
  12. Nev

    Nev Гость

    Код (Text):
    |Условие(ТекущийДокумент.Вид()=""ZОтчет"");
    Как по аналогии сделать условие, при котором данные будут выниматься из двух и более документов?

    Код (Text):
    Если (Рег.ПоДокументу.Вид()<>"РасходнаяНакладная")      
    И (Рег.ПоДокументу.Вид()<>"ZОтчет") Тогда
    Продолжить;
    КонецЕсли;
    Мой вариант без запроса. Не работает. ПоДокументу - измерение регистра, куда в документах, в ПриПроведении() прописывается ТекущийДокумент().
     
  13. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Загони нужные виды документов в список значениий и
    |Условие(ТекущийДокумент.Вид() в СписокЗначений);

    конечно не работает! - если у тебя расходная накладная то она одновременно не может быть ZОтчет, вот и пролеташь. ИЛИ вместо И надо и равенство вместо <>, а продожить повесить на Иначе
     
  14. Nev

    Nev Гость

    Т.е. до запроса создать СЗ, а в условии "СписокЗначений"-переменная которой мы его присвоим?

    А я считал что это будет читаться как:
    При переборе, если выбранный документ не равен Расходной накладной, и не равен ZОтчёту, тогда пропускаем его. (условие в цикле)

    Такой ещё вопрос, как можно найти конечный остаток продукции из регистров? В запросах есть спец Функции.. атак...
     
  15. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Функция Остаток = КонОст(Количество);
     
  16. Nev

    Nev Гость

    Что то не получается... можно пример?

    Т.е. должно выглядить так? И что стоять в условии, пустое место оставить?
    Код (Text):
    Если (Рег.ПоДокументу.Вид()="РасходнаяНакладная")
    ИЛИ (Рег.ПоДокументу.Вид()="ZОтчет") Тогда
    Иначе
    Продолжить;
    КонецЕсли;
     
  17. kaa

    kaa Гость

    Не мудрите:
    |ТекДок = РасходнаяНакладная.ТекщийДокумент(),ZОтчет.ТекущийДокумент();
    |Группировка ТекДок;
     
  18. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Это если документы перебирать - а если текущий документ регистра? Тож сработает?
     
  19. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Забавная дискуссия на тему булевой алгебры
    оба условия, по сути идентичны, ибо отрицание суммы есть произведение отрицаний и наоборот
     
  20. kaa

    kaa Гость

    |ТекДок = Регистр.Продажи.ТекущийДокумент.РасходнаяНакладная.ТекущийДокумент, |Регистр.Продажи.ТекущийДокумент.ZОтчет.ТекущийДокумент;
     
Загрузка...

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