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

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

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

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

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

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

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

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#2
По идее это некое свойство можно занести в какой-нить существующий пустой реквизит справочника товары. А в обработке сделать табчасть и поле со списком значений. В список значений добавлять свойство из реквизита (получим список всех свойств с возможностью выбора нужных). А потом по выбранному списку отбираем реализованные товары. Я бы делал так, но возможно есть и более оптимальный способ..
 

puh14

Well-known member
11.07.2008
1 412
0
#3
Никак - если этого свойства нет, то и сгруппировать по нему не получится. Надо добавлять реквизит в справочник номенклатура ( лучше всего), либо сделать внешний файлик (ДБФ например) - где будет прописано соответствие кода товара свойству. ПРи отчете , пробегаясь по нему будет заполняться список товаров с нужным свойством, и потом это список будет участвовать в фильтре. А код отчета по любому менять придется.
Как вариант - использовать в качестве свойства группу товаров (родителя). Большинство отчетов родителя показывают, так что по любому видно будет.
 
N
#4
Спасибо за ответы.

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

tanat

Well-known member
02.03.2007
265
0
#5
Помоему, вы собираетесь идти ложным путем. Для чего вообще необходимо данное свойство? Для того, чтоб красиво макет рисовался? Если его нет в данных, то не проще уж тогда вместо этого свойства просто использовать другое? Например ценовые группы или тип товар-услуга?
 

puh14

Well-known member
11.07.2008
1 412
0
#6
puh14, можно поподробнее о реализации соответствия кода товара свойству в дбф...? Нужно к одному свойству привязать группу товаров, желательно интерактивно.
Т.е. я представляю примерно как внести свойства, но как из связать с группами товаров....
Да геморрой это - на самый крайний случай. И на больших объемах будет медленно работать. В чем такая острая необходимость не менять конфу? Если надо ранжировать группы, то чем не устраивает собственно иерархическая структура справочника? верхняя папка - это свойство, по которому ранжируют, ниже - группа товаров, ниже элементы - собсно товары. Если надо перенести папку товаров из одного свойства в другое- меняешь нужной папке родителя.
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#7
а почему нельзя использовать какой-нить существующий реквизит, который не используется по назнаению?
 
N
#8
Данное свойство необходимо для ранжирования товаров, на основе которого составляется ведомость.


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

Я добавил реквизит в карточку номенклатуры типа справочник, который отражает свойства товаров. Но заполняться он будет только у определённой группы товаров. ( например: Молочные продукты : жирность )
Вопрос: каким образом можно сделать выборку продаж товаров из регистров по условию что этот реквизит заполнен?
Всмысле как прописать, чтобы товары отбирались при условии что реквизит заполнен? можно запросом.
 
N
#12
Код:
|Условие(ТекущийДокумент.Вид()=""ZОтчет"");
Как по аналогии сделать условие, при котором данные будут выниматься из двух и более документов?

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

puh14

Well-known member
11.07.2008
1 412
0
#13
Как по аналогии сделать условие, при котором данные будут выниматься из двух и более документов?
Загони нужные виды документов в список значениий и
|Условие(ТекущийДокумент.Вид() в СписокЗначений);

Если (Рег.ПоДокументу.Вид()<>"РасходнаяНакладная")
И (Рег.ПоДокументу.Вид()<>"ZОтчет") Тогда
Продолжить;
КонецЕсли;
конечно не работает! - если у тебя расходная накладная то она одновременно не может быть ZОтчет, вот и пролеташь. ИЛИ вместо И надо и равенство вместо <>, а продожить повесить на Иначе
 
N
#14
Загони нужные виды документов в список значениий и
|Условие(ТекущийДокумент.Вид() в СписокЗначений);
Т.е. до запроса создать СЗ, а в условии "СписокЗначений"-переменная которой мы его присвоим?

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

Такой ещё вопрос, как можно найти конечный остаток продукции из регистров? В запросах есть спец Функции.. атак...
 
N
#16
Загони нужные виды документов в список значениий и
|Условие(ТекущийДокумент.Вид() в СписокЗначений);
Что то не получается... можно пример?

конечно не работает! - если у тебя расходная накладная то она одновременно не может быть ZОтчет, вот и пролеташь. ИЛИ вместо И надо и равенство вместо <>, а продожить повесить на Иначе
Т.е. должно выглядить так? И что стоять в условии, пустое место оставить?
Код:
Если (Рег.ПоДокументу.Вид()="РасходнаяНакладная") 
ИЛИ (Рег.ПоДокументу.Вид()="ZОтчет") Тогда
Иначе
Продолжить;
КонецЕсли;
 
K
#17
Не мудрите:
|ТекДок = РасходнаяНакладная.ТекщийДокумент(),ZОтчет.ТекущийДокумент();
|Группировка ТекДок;
 

puh14

Well-known member
11.07.2008
1 412
0
#18
ТекДок = РасходнаяНакладная.ТекщийДокумент(),ZОтчет.ТекущийДокумент();
|Группировка ТекДок;
Это если документы перебирать - а если текущий документ регистра? Тож сработает?
 

vbs

Well-known member
18.02.2007
1 708
1
#19
(Рег.ПоДокументу.Вид()="РасходнаяНакладная") ИЛИ (Рег.ПоДокументу.Вид()="ZОтчет")
Рег.ПоДокументу.Вид()<>"РасходнаяНакладная") И (Рег.ПоДокументу.Вид()<>"ZОтчет")
Забавная дискуссия на тему булевой алгебры
оба условия, по сути идентичны, ибо отрицание суммы есть произведение отрицаний и наоборот
 
K
#20
Это если документы перебирать - а если текущий документ регистра? Тож сработает?
|ТекДок = Регистр.Продажи.ТекущийДокумент.РасходнаяНакладная.ТекущийДокумент, |Регистр.Продажи.ТекущийДокумент.ZОтчет.ТекущийДокумент;